All functions:
  Elements:
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EC_get_builtin_curves
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:15,1
    - Dst: OPENSSL_malloc
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:16,1
    - Dst: fprintf
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:18,1
    - Dst: EC_get_builtin_curves
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:21,1
    - Dst: OPENSSL_free
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:22,1
    - Dst: fprintf
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:23,1
    - Dst: OBJ_nid2sn
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:27,1
    - Dst: printf
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:31,1
    - Dst: OPENSSL_free
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:33,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 12
    functionDepth: 0
    functionLinenumber: 12
    functionLinenumberEnd: 35
    functionName: list_curves
    functionSourceFile: /src/rnp/cmake/Modules/findopensslfeatures.c
    functionUses: 0
    functionsReached:
    - OPENSSL_free
    - OPENSSL_malloc
    - fprintf
    - printf
    - OBJ_nid2sn
    - EC_get_builtin_curves
    linkageType: ''
    returnType: int
    signature: int list_curves()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strstr
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:43,1
    - Dst: strstr
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:43,1
    - Dst: printf
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 4
    argNames:
    - md
    - from
    - to
    - arg
    argTypes:
    - EVP_MD*
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 47
    functionName: print_hash
    functionSourceFile: /src/rnp/cmake/Modules/findopensslfeatures.c
    functionUses: 0
    functionsReached:
    - printf
    - strstr
    linkageType: ''
    returnType: void
    signature: void print_hash(const EVP_MD *md, const char *from, const char *to,
      void *arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_do_all_sorted
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 54
    functionName: list_hashes
    functionSourceFile: /src/rnp/cmake/Modules/findopensslfeatures.c
    functionUses: 0
    functionsReached:
    - EVP_MD_do_all_sorted
    linkageType: ''
    returnType: int
    signature: int list_hashes()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - cipher
    - from
    - to
    - x
    argTypes:
    - EVP_CIPHER*
    - char*
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: print_cipher
    functionSourceFile: /src/rnp/cmake/Modules/findopensslfeatures.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_cipher(const EVP_CIPHER *cipher, const char *from, const
      char *to, void *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_do_all_sorted
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: list_ciphers
    functionSourceFile: /src/rnp/cmake/Modules/findopensslfeatures.c
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_do_all_sorted
    linkageType: ''
    returnType: int
    signature: int list_ciphers()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:80,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - name
    - param
    argTypes:
    - char*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 81
    functionName: print_km_name
    functionSourceFile: /src/rnp/cmake/Modules/findopensslfeatures.c
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: void
    signature: void print_km_name(const char *name, void *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KEYMGMT_names_do_all
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - km
    - param
    argTypes:
    - EVP_KEYMGMT*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: print_km
    functionSourceFile: /src/rnp/cmake/Modules/findopensslfeatures.c
    functionUses: 0
    functionsReached:
    - EVP_KEYMGMT_names_do_all
    linkageType: ''
    returnType: void
    signature: void print_km(EVP_KEYMGMT *km, void *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KDF_names_do_all
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - kdf
    - param
    argTypes:
    - EVP_KDF*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: print_kdf
    functionSourceFile: /src/rnp/cmake/Modules/findopensslfeatures.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_names_do_all
    linkageType: ''
    returnType: void
    signature: void print_kdf(EVP_KDF *kdf, void *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_meth_get_count
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:100,1
    - Dst: EVP_PKEY_meth_get0
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:101,1
    - Dst: EVP_PKEY_meth_get0_info
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:103,1
    - Dst: printf
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:104,1
    - Dst: OBJ_nid2ln
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:104,1
    - Dst: EVP_KEYMGMT_do_all_provided
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 110
    functionName: list_publickey
    functionSourceFile: /src/rnp/cmake/Modules/findopensslfeatures.c
    functionUses: 0
    functionsReached:
    - EVP_PKEY_meth_get_count
    - OBJ_nid2ln
    - EVP_KEYMGMT_do_all_provided
    - EVP_PKEY_meth_get0_info
    - printf
    - EVP_PKEY_meth_get0
    linkageType: ''
    returnType: int
    signature: int list_publickey()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:115,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:119,1
    - Dst: printf
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:121,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:122,1
    - Dst: printf
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:127,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 130
    functionName: list_providers
    functionSourceFile: /src/rnp/cmake/Modules/findopensslfeatures.c
    functionUses: 0
    functionsReached:
    - OSSL_PROVIDER_load
    - OSSL_PROVIDER_unload
    - printf
    linkageType: ''
    returnType: int
    signature: int list_providers()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KDF_do_all_provided
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 139
    functionName: list_kdfs
    functionSourceFile: /src/rnp/cmake/Modules/findopensslfeatures.c
    functionUses: 0
    functionsReached:
    - EVP_KDF_do_all_provided
    linkageType: ''
    returnType: int
    signature: int list_kdfs()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:145,1
    - Dst: strcmp
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:149,1
    - Dst: list_hashes
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:150,1
    - Dst: strcmp
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:152,1
    - Dst: list_ciphers
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:153,1
    - Dst: strcmp
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:155,1
    - Dst: list_curves
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:156,1
    - Dst: strcmp
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:158,1
    - Dst: list_publickey
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:159,1
    - Dst: strcmp
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:161,1
    - Dst: list_providers
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:162,1
    - Dst: strcmp
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:164,1
    - Dst: list_kdfs
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:165,1
    - Dst: fprintf
      Src: /src/rnp/cmake/Modules/findopensslfeatures.c:167,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 169
    functionName: main
    functionSourceFile: /src/rnp/cmake/Modules/findopensslfeatures.c
    functionUses: 0
    functionsReached:
    - list_kdfs
    - list_ciphers
    - fprintf
    - list_providers
    - strcmp
    - list_hashes
    - list_curves
    - list_publickey
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:49,1
    - Dst: pgp_source_t::read
      Src: /src/rnp/src/tests/streams.cpp:57,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/tests/streams.cpp:62,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:67,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - hash
    - path
    argTypes:
    - rnp::Hash
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 69
    functionName: stream_hash_file
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - init_file_src
    - pgp_source_t::read
    - pgp_source_t::close
    - rnp::Hash::add
    linkageType: ''
    returnType: bool
    signature: bool stream_hash_file(rnp::Hash &hash, const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/rnp/src/tests/streams.cpp:79,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:82,1
    - Dst: init_mem_dest
      Src: /src/rnp/src/tests/streams.cpp:82,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:83,1
    - Dst: dst_write
      Src: /src/rnp/src/tests/streams.cpp:84,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:85,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:86,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:88,1
    - Dst: mem_dest_get_memory
      Src: /src/rnp/src/tests/streams.cpp:88,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:89,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/streams.cpp:89,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:90,1
    - Dst: mem_dest_own_memory
      Src: /src/rnp/src/tests/streams.cpp:90,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:91,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/streams.cpp:91,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:92,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:94,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/streams.cpp:94,1
    - Dst: free
      Src: /src/rnp/src/tests/streams.cpp:95,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/streams.cpp:98,1
    - Dst: init_mem_src
      Src: /src/rnp/src/tests/streams.cpp:98,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/streams.cpp:99,1
    - Dst: init_mem_src
      Src: /src/rnp/src/tests/streams.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 100
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - assert_rnp_failure
    - mem_dest_own_memory
    - assert_int_equal
    - dst_write
    - memcmp
    - assert_rnp_success
    - dst_close
    - assert_false
    - strlen
    - mem_dest_get_memory
    - free
    - init_mem_src
    - init_mem_dest
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_stream_memory)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:110,1
    - Dst: init_mem_dest
      Src: /src/rnp/src/tests/streams.cpp:110,1
    - Dst: dst_write
      Src: /src/rnp/src/tests/streams.cpp:111,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:112,1
    - Dst: dst_write
      Src: /src/rnp/src/tests/streams.cpp:113,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:114,1
    - Dst: dst_write
      Src: /src/rnp/src/tests/streams.cpp:115,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:116,1
    - Dst: mem_dest_discard_overflow
      Src: /src/rnp/src/tests/streams.cpp:118,1
    - Dst: dst_write
      Src: /src/rnp/src/tests/streams.cpp:119,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:120,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:121,1
    - Dst: dst_write
      Src: /src/rnp/src/tests/streams.cpp:122,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:124,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:125,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:126,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/streams.cpp:126,1
    - Dst: dst_write
      Src: /src/rnp/src/tests/streams.cpp:127,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:128,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:129,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:130,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/streams.cpp:130,1
    - Dst: mem_dest_discard_overflow
      Src: /src/rnp/src/tests/streams.cpp:132,1
    - Dst: dst_write
      Src: /src/rnp/src/tests/streams.cpp:133,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:134,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/streams.cpp:135,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:137,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:138,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/streams.cpp:138,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:142,1
    - Dst: init_mem_dest
      Src: /src/rnp/src/tests/streams.cpp:142,1
    - Dst: dst_write
      Src: /src/rnp/src/tests/streams.cpp:144,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:145,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:146,1
    - Dst: mem_dest_discard_overflow
      Src: /src/rnp/src/tests/streams.cpp:149,1
    - Dst: dst_write
      Src: /src/rnp/src/tests/streams.cpp:150,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:151,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:152,1
    - Dst: mem_dest_discard_overflow
      Src: /src/rnp/src/tests/streams.cpp:153,1
    - Dst: dst_write
      Src: /src/rnp/src/tests/streams.cpp:154,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:155,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/streams.cpp:156,1
    - Dst: dst_write
      Src: /src/rnp/src/tests/streams.cpp:157,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:158,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/streams.cpp:159,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 161
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - mem_dest_discard_overflow
    - assert_int_equal
    - dst_write
    - memcmp
    - assert_rnp_success
    - dst_close
    - init_mem_dest
    - assert_int_not_equal
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_stream_memory_discard)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/rnp/src/tests/streams.cpp:174,1
    - Dst: pgp_dest_file_param_t*::path::c_str
      Src: /src/rnp/src/tests/streams.cpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - buf
    - buflen
    - dst
    argTypes:
    - char*
    - size_t
    - pgp_dest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 175
    functionName: copy_tmp_path
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - strncpy
    - pgp_dest_file_param_t*::path::c_str
    linkageType: ''
    returnType: void
    signature: void copy_tmp_path(char *buf, size_t buflen, pgp_dest_t *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/rnp/src/tests/streams.cpp:184,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/streams.cpp:191,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:191,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/streams.cpp:192,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:192,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:194,1
    - Dst: RNP_MKDIR
      Src: /src/rnp/src/tests/streams.cpp:194,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/streams.cpp:196,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:196,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/streams.cpp:197,1
    - Dst: init_file_dest
      Src: /src/rnp/src/tests/streams.cpp:197,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:199,1
    - Dst: init_file_dest
      Src: /src/rnp/src/tests/streams.cpp:199,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:200,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:200,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:201,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:203,1
    - Dst: RNP_MKDIR
      Src: /src/rnp/src/tests/streams.cpp:203,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:206,1
    - Dst: init_file_dest
      Src: /src/rnp/src/tests/streams.cpp:206,1
    - Dst: dst_write
      Src: /src/rnp/src/tests/streams.cpp:207,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/streams.cpp:208,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:208,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:209,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:210,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:210,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:213,1
    - Dst: init_file_dest
      Src: /src/rnp/src/tests/streams.cpp:213,1
    - Dst: dst_write
      Src: /src/rnp/src/tests/streams.cpp:214,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/streams.cpp:215,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:215,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:216,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:217,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:217,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/streams.cpp:220,1
    - Dst: init_file_dest
      Src: /src/rnp/src/tests/streams.cpp:220,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:221,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:221,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:224,1
    - Dst: init_file_dest
      Src: /src/rnp/src/tests/streams.cpp:224,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:225,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:225,1
    - Dst: dst_write
      Src: /src/rnp/src/tests/streams.cpp:227,1
    - Dst: dst_write
      Src: /src/rnp/src/tests/streams.cpp:231,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:233,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:234,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:234,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:237,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:237,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:240,1
    - Dst: pgp_source_t::read
      Src: /src/rnp/src/tests/streams.cpp:240,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:241,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:242,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/streams.cpp:242,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:246,1
    - Dst: pgp_source_t::read
      Src: /src/rnp/src/tests/streams.cpp:246,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:247,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:248,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/streams.cpp:248,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:250,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:253,1
    - Dst: init_file_dest
      Src: /src/rnp/src/tests/streams.cpp:253,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:254,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:254,1
    - Dst: dst_write
      Src: /src/rnp/src/tests/streams.cpp:256,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:258,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:259,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:259,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:262,1
    - Dst: init_file_dest
      Src: /src/rnp/src/tests/streams.cpp:262,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:263,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:263,1
    - Dst: dst_write
      Src: /src/rnp/src/tests/streams.cpp:265,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:267,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:268,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:268,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:269,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/streams.cpp:269,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:272,1
    - Dst: init_tmpfile_dest
      Src: /src/rnp/src/tests/streams.cpp:272,1
    - Dst: copy_tmp_path
      Src: /src/rnp/src/tests/streams.cpp:273,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:274,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:274,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:275,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:275,1
    - Dst: dst_write
      Src: /src/rnp/src/tests/streams.cpp:277,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:279,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:280,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:280,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:281,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:281,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:284,1
    - Dst: init_tmpfile_dest
      Src: /src/rnp/src/tests/streams.cpp:284,1
    - Dst: copy_tmp_path
      Src: /src/rnp/src/tests/streams.cpp:285,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:286,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:286,1
    - Dst: dst_write
      Src: /src/rnp/src/tests/streams.cpp:287,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:289,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:289,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:290,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:291,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:291,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:292,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:292,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:295,1
    - Dst: init_tmpfile_dest
      Src: /src/rnp/src/tests/streams.cpp:295,1
    - Dst: copy_tmp_path
      Src: /src/rnp/src/tests/streams.cpp:296,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:297,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:297,1
    - Dst: dst_write
      Src: /src/rnp/src/tests/streams.cpp:298,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:300,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:300,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/streams.cpp:301,1
    - Dst: dst_finish
      Src: /src/rnp/src/tests/streams.cpp:301,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:302,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:303,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:303,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:304,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:304,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:305,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/streams.cpp:305,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:308,1
    - Dst: init_tmpfile_dest
      Src: /src/rnp/src/tests/streams.cpp:308,1
    - Dst: copy_tmp_path
      Src: /src/rnp/src/tests/streams.cpp:309,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:310,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:310,1
    - Dst: dst_write
      Src: /src/rnp/src/tests/streams.cpp:311,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:313,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:313,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:314,1
    - Dst: dst_finish
      Src: /src/rnp/src/tests/streams.cpp:314,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:315,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:316,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:316,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:317,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:317,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:320,1
    - Dst: init_tmpfile_dest
      Src: /src/rnp/src/tests/streams.cpp:320,1
    - Dst: copy_tmp_path
      Src: /src/rnp/src/tests/streams.cpp:321,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:322,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:322,1
    - Dst: dst_write
      Src: /src/rnp/src/tests/streams.cpp:323,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:325,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:325,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:326,1
    - Dst: dst_finish
      Src: /src/rnp/src/tests/streams.cpp:326,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:327,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:328,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:328,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:329,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:329,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:332,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/streams.cpp:332,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 106
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 333
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - assert_rnp_failure
    - pgp_source_t::close
    - dst_write
    - dst_finish
    - dst_close
    - rnp_unlink
    - strlen
    - pgp_source_t::read
    - assert_int_not_equal
    - assert_true
    - copy_tmp_path
    - memcmp
    - assert_rnp_success
    - init_file_src
    - file_size
    - assert_int_equal
    - RNP_MKDIR
    - init_tmpfile_dest
    - init_file_dest
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_stream_file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::Signature
      Src: /src/rnp/src/tests/streams.cpp:337,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/streams.cpp:342,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:343,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/streams.cpp:343,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:345,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:345,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:346,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/streams.cpp:346,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:347,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/tests/streams.cpp:350,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:351,1
    - Dst: stream_hash_file
      Src: /src/rnp/src/tests/streams.cpp:351,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/tests/streams.cpp:353,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:354,1
    - Dst: stream_hash_file
      Src: /src/rnp/src/tests/streams.cpp:355,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:357,1
    - Dst: auto::get_signer
      Src: /src/rnp/src/tests/streams.cpp:357,1
    - Dst: auto::clone
      Src: /src/rnp/src/tests/streams.cpp:359,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:360,1
    - Dst: pgp::pkt::Signature::creation
      Src: /src/rnp/src/tests/streams.cpp:360,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:361,1
    - Dst: signature_validate
      Src: /src/rnp/src/tests/streams.cpp:361,1
    - Dst: rnp::Key*::material
      Src: /src/rnp/src/tests/streams.cpp:361,1
    - Dst: auto::clone
      Src: /src/rnp/src/tests/streams.cpp:363,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:364,1
    - Dst: signature_validate
      Src: /src/rnp/src/tests/streams.cpp:365,1
    - Dst: rnp::Key*::material
      Src: /src/rnp/src/tests/streams.cpp:365,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/streams.cpp:369,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:370,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/streams.cpp:370,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:371,1
    - Dst: auto::get_signer
      Src: /src/rnp/src/tests/streams.cpp:371,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:372,1
    - Dst: rnp::Key*::is_secret
      Src: /src/rnp/src/tests/streams.cpp:372,1
    - Dst: time
      Src: /src/rnp/src/tests/streams.cpp:374,1
    - Dst: rnp::Key*::alg
      Src: /src/rnp/src/tests/streams.cpp:379,1
    - Dst: pgp::pkt::Signature::set_type
      Src: /src/rnp/src/tests/streams.cpp:380,1
    - Dst: pgp::pkt::Signature::set_keyfp
      Src: /src/rnp/src/tests/streams.cpp:381,1
    - Dst: rnp::Key*::fp
      Src: /src/rnp/src/tests/streams.cpp:381,1
    - Dst: pgp::pkt::Signature::set_keyid
      Src: /src/rnp/src/tests/streams.cpp:382,1
    - Dst: rnp::Key*::keyid
      Src: /src/rnp/src/tests/streams.cpp:382,1
    - Dst: pgp::pkt::Signature::set_creation
      Src: /src/rnp/src/tests/streams.cpp:383,1
    - Dst: pgp::pkt::Signature::set_expiration
      Src: /src/rnp/src/tests/streams.cpp:384,1
    - Dst: std::vector::resize
      Src: /src/rnp/src/tests/streams.cpp:388,1
    - Dst: pgp::pkt::Signature::add_notation
      Src: /src/rnp/src/tests/streams.cpp:389,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:390,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:392,1
    - Dst: code
      Src: /src/rnp/src/tests/streams.cpp:392,1
    - Dst: pgp::pkt::Signature::add_notation
      Src: /src/rnp/src/tests/streams.cpp:394,1
    - Dst: pgp::pkt::Signature::fill_hashed_data
      Src: /src/rnp/src/tests/streams.cpp:395,1
    - Dst: auto::clone
      Src: /src/rnp/src/tests/streams.cpp:397,1
    - Dst: assert_throw
      Src: /src/rnp/src/tests/streams.cpp:398,1
    - Dst: signature_calculate
      Src: /src/rnp/src/tests/streams.cpp:398,1
    - Dst: rnp::Key*::material
      Src: /src/rnp/src/tests/streams.cpp:398,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:401,1
    - Dst: rnp::Key*::unlock
      Src: /src/rnp/src/tests/streams.cpp:401,1
    - Dst: auto::clone
      Src: /src/rnp/src/tests/streams.cpp:402,1
    - Dst: signature_calculate
      Src: /src/rnp/src/tests/streams.cpp:403,1
    - Dst: rnp::Key*::material
      Src: /src/rnp/src/tests/streams.cpp:403,1
    - Dst: auto::clone
      Src: /src/rnp/src/tests/streams.cpp:405,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:407,1
    - Dst: pgp::pkt::Signature::creation
      Src: /src/rnp/src/tests/streams.cpp:407,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:408,1
    - Dst: pgp::pkt::Signature::expiration
      Src: /src/rnp/src/tests/streams.cpp:408,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:409,1
    - Dst: pgp::pkt::Signature::has_subpkt
      Src: /src/rnp/src/tests/streams.cpp:409,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:410,1
    - Dst: pgp::pkt::Signature::keyfp
      Src: /src/rnp/src/tests/streams.cpp:410,1
    - Dst: rnp::Key*::fp
      Src: /src/rnp/src/tests/streams.cpp:410,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:411,1
    - Dst: signature_validate
      Src: /src/rnp/src/tests/streams.cpp:411,1
    - Dst: rnp::Key*::material
      Src: /src/rnp/src/tests/streams.cpp:411,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 46
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 335
    functionDepth: 2
    functionLinenumber: 335
    functionLinenumberEnd: 415
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - pgp::pkt::Signature::Signature
    - pgp_source_t::close
    - rnp::Key*::keyid
    - pgp::pkt::Signature::expiration
    - pgp::pkt::Signature::set_expiration
    - pgp::pkt::Signature::set_keyfp
    - rnp::Hash::create
    - pgp::pkt::Signature::set_creation
    - assert_true
    - signature_calculate
    - assert_rnp_success
    - pgp::pkt::Signature::parse
    - init_file_src
    - rnp::Key*::is_secret
    - std::vector::resize
    - auto::clone
    - rnp::Key*::material
    - signature_validate
    - assert_int_equal
    - assert_throw
    - pgp::pkt::Signature::has_subpkt
    - rnp::Key*::alg
    - pgp::pkt::Signature::set_keyid
    - rnp::Key*::unlock
    - rnp::KeyStore::KeyStore
    - time
    - pgp::pkt::Signature::add_notation
    - code
    - pgp::pkt::Signature::fill_hashed_data
    - pgp::pkt::Signature::set_type
    - auto::get_signer
    - rnp::Key*::fp
    - auto::load
    - stream_hash_file
    - assert_false
    - pgp::pkt::Signature::keyfp
    - pgp::pkt::Signature::creation
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_stream_signatures)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:423,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:424,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:425,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/streams.cpp:425,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:426,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:428,1
    - Dst: pgp::pkt::Signature::revocation_code
      Src: /src/rnp/src/tests/streams.cpp:428,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/streams.cpp:429,1
    - Dst: pgp::pkt::Signature::revocation_reason
      Src: /src/rnp/src/tests/streams.cpp:429,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 417
    functionDepth: 1
    functionLinenumber: 417
    functionLinenumberEnd: 430
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_t::close
    - pgp::pkt::Signature::revocation_reason
    - assert_int_equal
    - assert_string_equal
    - assert_rnp_success
    - pgp::pkt::Signature::parse
    - init_file_src
    - pgp::pkt::Signature::revocation_code
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_stream_signatures_revoked_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:437,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:442,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:442,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:443,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:443,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:444,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:444,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:445,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:447,1
    - Dst: init_file_dest
      Src: /src/rnp/src/tests/streams.cpp:447,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:448,1
    - Dst: write_transferable_keys
      Src: /src/rnp/src/tests/streams.cpp:448,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:449,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:451,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:451,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:452,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:452,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:453,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:455,1
    - Dst: init_file_dest
      Src: /src/rnp/src/tests/streams.cpp:455,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:456,1
    - Dst: write_transferable_keys
      Src: /src/rnp/src/tests/streams.cpp:456,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:457,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:459,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:459,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:460,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:460,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:461,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:464,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:464,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:465,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:465,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:466,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:466,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:467,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:469,1
    - Dst: init_file_dest
      Src: /src/rnp/src/tests/streams.cpp:469,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:470,1
    - Dst: write_transferable_keys
      Src: /src/rnp/src/tests/streams.cpp:470,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:471,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:473,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:473,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:474,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:474,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:475,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:477,1
    - Dst: init_file_dest
      Src: /src/rnp/src/tests/streams.cpp:477,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:478,1
    - Dst: write_transferable_keys
      Src: /src/rnp/src/tests/streams.cpp:478,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:479,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:481,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:481,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:482,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:482,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:483,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:486,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:486,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:487,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:487,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:488,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:488,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:489,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:489,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:490,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:491,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/streams.cpp:491,1
    - Dst: pgp::Fingerprint::keyid
      Src: /src/rnp/src/tests/streams.cpp:491,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:492,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/streams.cpp:492,1
    - Dst: pgp::Fingerprint::keyid
      Src: /src/rnp/src/tests/streams.cpp:492,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:493,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:496,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:496,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:497,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:497,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:498,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:498,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:499,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:499,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:500,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:501,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/streams.cpp:501,1
    - Dst: pgp::Fingerprint::keyid
      Src: /src/rnp/src/tests/streams.cpp:501,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:502,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:505,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:505,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:506,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:506,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:507,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:507,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:508,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:508,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:509,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:510,1
    - Dst: cmp_keyfp
      Src: /src/rnp/src/tests/streams.cpp:510,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:511,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/streams.cpp:511,1
    - Dst: pgp::Fingerprint::keyid
      Src: /src/rnp/src/tests/streams.cpp:511,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:512,1
    - Dst: pgp_transferable_key_t*::subkeys::size
      Src: /src/rnp/src/tests/streams.cpp:512,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:513,1
    - Dst: subkey::pub_data::empty
      Src: /src/rnp/src/tests/streams.cpp:513,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:514,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:517,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:517,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:518,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:518,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:519,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:519,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:520,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:520,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:521,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:522,1
    - Dst: cmp_keyfp
      Src: /src/rnp/src/tests/streams.cpp:522,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:523,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/streams.cpp:523,1
    - Dst: pgp::Fingerprint::keyid
      Src: /src/rnp/src/tests/streams.cpp:523,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:524,1
    - Dst: pgp_transferable_key_t*::subkeys::size
      Src: /src/rnp/src/tests/streams.cpp:524,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:525,1
    - Dst: subkey::pub_data::empty
      Src: /src/rnp/src/tests/streams.cpp:525,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:526,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:529,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:529,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:530,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:530,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:531,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:531,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:532,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:532,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:533,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:534,1
    - Dst: cmp_keyfp
      Src: /src/rnp/src/tests/streams.cpp:534,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:535,1
    - Dst: pgp_transferable_key_t*::subkeys::size
      Src: /src/rnp/src/tests/streams.cpp:535,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:536,1
    - Dst: pgp_transferable_key_t*::subkeys::front
      Src: /src/rnp/src/tests/streams.cpp:536,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:537,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:538,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/streams.cpp:538,1
    - Dst: pgp::Fingerprint::keyid
      Src: /src/rnp/src/tests/streams.cpp:538,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:539,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:542,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:542,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:543,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:543,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:544,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:544,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:545,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:545,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:546,1
    - Dst: pgp_transferable_key_t*::subkeys::size
      Src: /src/rnp/src/tests/streams.cpp:546,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:547,1
    - Dst: subkey::pub_data::empty
      Src: /src/rnp/src/tests/streams.cpp:547,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:548,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:551,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:551,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:552,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:552,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:553,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:553,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:554,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:554,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:555,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:556,1
    - Dst: cmp_keyfp
      Src: /src/rnp/src/tests/streams.cpp:556,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:557,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:560,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:560,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:561,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:561,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:562,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:562,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:563,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:563,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:564,1
    - Dst: pgp_transferable_key_t*::subkeys::empty
      Src: /src/rnp/src/tests/streams.cpp:564,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:565,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:568,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:568,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:569,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:569,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:570,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:570,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:571,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:571,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:572,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:573,1
    - Dst: cmp_keyfp
      Src: /src/rnp/src/tests/streams.cpp:573,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:574,1
    - Dst: pgp_transferable_key_t*::subkeys::size
      Src: /src/rnp/src/tests/streams.cpp:574,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:575,1
    - Dst: pgp_transferable_key_t*::subkeys::front
      Src: /src/rnp/src/tests/streams.cpp:575,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:576,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:577,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/streams.cpp:577,1
    - Dst: pgp::Fingerprint::keyid
      Src: /src/rnp/src/tests/streams.cpp:577,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:578,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:581,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:581,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:582,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:582,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:583,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:583,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:584,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:584,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:585,1
    - Dst: pgp_transferable_key_t*::subkeys::size
      Src: /src/rnp/src/tests/streams.cpp:585,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:586,1
    - Dst: subkey::pub_data::empty
      Src: /src/rnp/src/tests/streams.cpp:586,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:587,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:590,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:590,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:591,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:591,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:592,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:592,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:593,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:593,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:594,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:595,1
    - Dst: cmp_keyfp
      Src: /src/rnp/src/tests/streams.cpp:595,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:596,1
    - Dst: pgp_transferable_key_t*::subkeys::front
      Src: /src/rnp/src/tests/streams.cpp:596,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:597,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:598,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/streams.cpp:598,1
    - Dst: pgp::Fingerprint::keyid
      Src: /src/rnp/src/tests/streams.cpp:598,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:599,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:602,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:602,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:603,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:603,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:604,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:604,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:605,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:605,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:606,1
    - Dst: pgp_transferable_key_t*::subkeys::size
      Src: /src/rnp/src/tests/streams.cpp:606,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:607,1
    - Dst: subkey::pub_data::empty
      Src: /src/rnp/src/tests/streams.cpp:607,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:608,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:611,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:611,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:612,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:612,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:613,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:613,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:614,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:614,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:615,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:616,1
    - Dst: cmp_keyfp
      Src: /src/rnp/src/tests/streams.cpp:616,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:617,1
    - Dst: pgp_transferable_key_t*::subkeys::front
      Src: /src/rnp/src/tests/streams.cpp:617,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:618,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:619,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/streams.cpp:619,1
    - Dst: pgp::Fingerprint::keyid
      Src: /src/rnp/src/tests/streams.cpp:619,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:620,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:623,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:623,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:624,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:624,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:625,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:625,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:626,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:626,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:627,1
    - Dst: pgp_transferable_key_t*::subkeys::size
      Src: /src/rnp/src/tests/streams.cpp:627,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:628,1
    - Dst: subkey::pub_data::empty
      Src: /src/rnp/src/tests/streams.cpp:628,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:629,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:632,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:632,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:633,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:633,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:634,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:634,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:635,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:635,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:636,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:637,1
    - Dst: cmp_keyfp
      Src: /src/rnp/src/tests/streams.cpp:637,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:638,1
    - Dst: pgp_transferable_key_t*::subkeys::front
      Src: /src/rnp/src/tests/streams.cpp:638,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:639,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:640,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/streams.cpp:640,1
    - Dst: pgp::Fingerprint::keyid
      Src: /src/rnp/src/tests/streams.cpp:640,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:641,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:644,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:644,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:645,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:645,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:646,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:646,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:647,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:647,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:648,1
    - Dst: pgp_transferable_key_t*::subkeys::size
      Src: /src/rnp/src/tests/streams.cpp:648,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:649,1
    - Dst: subkey::pub_data::empty
      Src: /src/rnp/src/tests/streams.cpp:649,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:650,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:653,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:653,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:654,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:654,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:655,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:655,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:656,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:656,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:657,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:658,1
    - Dst: cmp_keyfp
      Src: /src/rnp/src/tests/streams.cpp:658,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:659,1
    - Dst: pgp_transferable_key_t*::subkeys::front
      Src: /src/rnp/src/tests/streams.cpp:659,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:660,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:661,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/streams.cpp:661,1
    - Dst: pgp::Fingerprint::keyid
      Src: /src/rnp/src/tests/streams.cpp:661,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:662,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:665,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:665,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:666,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:666,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:667,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:667,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:668,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:668,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:669,1
    - Dst: pgp_transferable_key_t*::subkeys::size
      Src: /src/rnp/src/tests/streams.cpp:669,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:670,1
    - Dst: subkey::pub_data::empty
      Src: /src/rnp/src/tests/streams.cpp:670,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:671,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:674,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:674,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:675,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:675,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:676,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:676,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:677,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:677,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:678,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:679,1
    - Dst: cmp_keyfp
      Src: /src/rnp/src/tests/streams.cpp:679,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:680,1
    - Dst: pgp_transferable_key_t*::subkeys::front
      Src: /src/rnp/src/tests/streams.cpp:680,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:681,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:682,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/streams.cpp:682,1
    - Dst: pgp::Fingerprint::keyid
      Src: /src/rnp/src/tests/streams.cpp:682,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:683,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:686,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:686,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:687,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:687,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:688,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:688,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:689,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:689,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:690,1
    - Dst: pgp_transferable_key_t*::subkeys::size
      Src: /src/rnp/src/tests/streams.cpp:690,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:691,1
    - Dst: subkey::pub_data::empty
      Src: /src/rnp/src/tests/streams.cpp:691,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:692,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:695,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:695,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:696,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:696,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:697,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:697,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:698,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:698,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:699,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:700,1
    - Dst: cmp_keyfp
      Src: /src/rnp/src/tests/streams.cpp:700,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:701,1
    - Dst: pgp_transferable_key_t*::subkeys::front
      Src: /src/rnp/src/tests/streams.cpp:701,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:702,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:703,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/streams.cpp:703,1
    - Dst: pgp::Fingerprint::keyid
      Src: /src/rnp/src/tests/streams.cpp:703,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:704,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:707,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:707,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:708,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:708,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:709,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:709,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:710,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:710,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:711,1
    - Dst: pgp_transferable_key_t*::subkeys::size
      Src: /src/rnp/src/tests/streams.cpp:711,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:712,1
    - Dst: subkey::pub_data::empty
      Src: /src/rnp/src/tests/streams.cpp:712,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:713,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:716,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:716,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:717,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:717,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:718,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:718,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:719,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:719,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:720,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:721,1
    - Dst: cmp_keyfp
      Src: /src/rnp/src/tests/streams.cpp:721,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:722,1
    - Dst: pgp_transferable_key_t*::subkeys::front
      Src: /src/rnp/src/tests/streams.cpp:722,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:723,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:724,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/streams.cpp:724,1
    - Dst: pgp::Fingerprint::keyid
      Src: /src/rnp/src/tests/streams.cpp:724,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:725,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:728,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:728,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:729,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:729,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:730,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:730,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:731,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:731,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:732,1
    - Dst: pgp_transferable_key_t*::subkeys::size
      Src: /src/rnp/src/tests/streams.cpp:732,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:733,1
    - Dst: subkey::pub_data::empty
      Src: /src/rnp/src/tests/streams.cpp:733,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 236
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 735
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - pgp_source_t::close
    - dst_close
    - pgp_key_sequence_t::keys::front
    - subkey::pub_data::empty
    - assert_true
    - write_transferable_keys
    - assert_rnp_success
    - init_file_src
    - pgp_transferable_key_t*::subkeys::front
    - pgp_key_sequence_t::keys::size
    - pgp_transferable_key_t*::subkeys::empty
    - pgp::Fingerprint::keyid
    - assert_int_equal
    - pgp::Fingerprint::Fingerprint
    - cmp_keyid
    - process_pgp_keys
    - init_file_dest
    - cmp_keyfp
    - assert_false
    - pgp_transferable_key_t*::subkeys::size
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_stream_key_load)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:747,1
    - Dst: init_mem_src
      Src: /src/rnp/src/tests/streams.cpp:747,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:748,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:750,1
    - Dst: pgp_key_sequence_t::keys::empty
      Src: /src/rnp/src/tests/streams.cpp:750,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:752,1
    - Dst: pgp_key_sequence_t::keys::empty
      Src: /src/rnp/src/tests/streams.cpp:752,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:754,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:761,1
    - Dst: init_mem_src
      Src: /src/rnp/src/tests/streams.cpp:761,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:762,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:764,1
    - Dst: pgp_key_sequence_t::keys::empty
      Src: /src/rnp/src/tests/streams.cpp:764,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:766,1
    - Dst: pgp_key_sequence_t::keys::empty
      Src: /src/rnp/src/tests/streams.cpp:766,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:768,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 2
    argNames:
    - keydata
    - keylen
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 771
    functionName: buggy_key_load_single
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_t::close
    - assert_true
    - assert_rnp_success
    - pgp_key_sequence_t::keys::empty
    - assert_false
    - init_mem_src
    - process_pgp_keys
    linkageType: ''
    returnType: void
    signature: void buggy_key_load_single(const void *keydata, size_t keylen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:806,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:806,1
    - Dst: pgp_source_t::is_armored
      Src: /src/rnp/src/tests/streams.cpp:807,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:808,1
    - Dst: init_armored_src
      Src: /src/rnp/src/tests/streams.cpp:808,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:809,1
    - Dst: read_mem_src
      Src: /src/rnp/src/tests/streams.cpp:809,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:810,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:812,1
    - Dst: read_mem_src
      Src: /src/rnp/src/tests/streams.cpp:812,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:814,1
    - Dst: buggy_key_load_single
      Src: /src/rnp/src/tests/streams.cpp:815,1
    - Dst: mem_src_get_memory
      Src: /src/rnp/src/tests/streams.cpp:815,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:816,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 774
    functionDepth: 2
    functionLinenumber: 774
    functionLinenumberEnd: 818
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - buggy_key_load_single
    - pgp_source_t::close
    - mem_src_get_memory
    - init_armored_src
    - assert_rnp_success
    - pgp_source_t::is_armored
    - init_file_src
    - read_mem_src
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_stream_key_load_errors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:828,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:828,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:829,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:829,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/streams.cpp:831,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:831,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:832,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:832,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/streams.cpp:835,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:835,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:836,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:836,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:839,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:842,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:842,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:843,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:843,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:844,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:844,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/streams.cpp:845,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:845,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:847,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:847,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/streams.cpp:849,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:849,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:851,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:854,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:854,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:855,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:855,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:856,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:856,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:857,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:857,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:858,1
    - Dst: pgp_transferable_key_t*::subkeys::front
      Src: /src/rnp/src/tests/streams.cpp:858,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:859,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:859,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:860,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:863,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:863,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:864,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:864,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:865,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:865,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:866,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:866,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:867,1
    - Dst: pgp_transferable_key_t*::subkeys::front
      Src: /src/rnp/src/tests/streams.cpp:867,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:868,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:868,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:869,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:872,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:872,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:873,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:873,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:874,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:874,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:875,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:875,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:876,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:879,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:879,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:880,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:880,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:881,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:881,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:882,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:882,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:883,1
    - Dst: pgp_transferable_key_t*::subkeys::front
      Src: /src/rnp/src/tests/streams.cpp:883,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:884,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:884,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:885,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:888,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:888,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:889,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:889,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:890,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:890,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:891,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:891,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:892,1
    - Dst: pgp_transferable_key_t*::subkeys::front
      Src: /src/rnp/src/tests/streams.cpp:892,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:893,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:893,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:894,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:897,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:897,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:898,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:898,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:899,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:899,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:900,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:900,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:901,1
    - Dst: pgp_transferable_key_t*::subkeys::front
      Src: /src/rnp/src/tests/streams.cpp:901,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:902,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:902,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:903,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:906,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:906,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:907,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:907,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:908,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:908,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:909,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:909,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:910,1
    - Dst: pgp_transferable_key_t*::subkeys::front
      Src: /src/rnp/src/tests/streams.cpp:910,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:911,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:911,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:912,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 820
    functionDepth: 1
    functionLinenumber: 820
    functionLinenumberEnd: 913
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - pgp_key_sequence_t::keys::front
    - assert_rnp_failure
    - pgp_source_t::close
    - assert_rnp_success
    - init_file_src
    - pgp_transferable_key_t*::subkeys::front
    - process_pgp_keys
    - decrypt_secret_key
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_stream_key_decrypt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:925,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:925,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:926,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:926,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:927,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:929,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:929,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:932,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:932,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:937,1
    - Dst: encrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:937,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:940,1
    - Dst: encrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:940,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:943,1
    - Dst: init_mem_dest
      Src: /src/rnp/src/tests/streams.cpp:943,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:944,1
    - Dst: write_transferable_key
      Src: /src/rnp/src/tests/streams.cpp:944,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:946,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:948,1
    - Dst: init_mem_src
      Src: /src/rnp/src/tests/streams.cpp:948,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:949,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:949,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:950,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:951,1
    - Dst: pgp_key_sequence_t::keys::empty
      Src: /src/rnp/src/tests/streams.cpp:951,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:952,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:953,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:954,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:954,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:957,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:958,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:958,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:962,1
    - Dst: encrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:962,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:965,1
    - Dst: encrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:965,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:968,1
    - Dst: init_mem_dest
      Src: /src/rnp/src/tests/streams.cpp:968,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:969,1
    - Dst: write_transferable_key
      Src: /src/rnp/src/tests/streams.cpp:969,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:971,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:973,1
    - Dst: init_mem_src
      Src: /src/rnp/src/tests/streams.cpp:973,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:974,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:974,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:975,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:976,1
    - Dst: pgp_key_sequence_t::keys::empty
      Src: /src/rnp/src/tests/streams.cpp:976,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:977,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:978,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:979,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:979,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:982,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:983,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/streams.cpp:983,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 986
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 986
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - pgp_key_sequence_t::keys::front
    - encrypt_secret_key
    - pgp_source_t::close
    - assert_true
    - assert_int_equal
    - assert_rnp_success
    - dst_close
    - write_transferable_key
    - init_file_src
    - pgp_key_sequence_t::keys::empty
    - assert_false
    - init_mem_src
    - init_mem_dest
    - process_pgp_keys
    - decrypt_secret_key
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_stream_key_encrypt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/streams.cpp:996,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:997,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/streams.cpp:997,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:998,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:998,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:999,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:999,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:1000,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:1001,1
    - Dst: pgp_key_sequence_t::keys::size
      Src: /src/rnp/src/tests/streams.cpp:1001,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/streams.cpp:1002,1
    - Dst: auto::userids::front
      Src: /src/rnp/src/tests/streams.cpp:1003,1
    - Dst: auto::signatures::front
      Src: /src/rnp/src/tests/streams.cpp:1004,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:1005,1
    - Dst: auto::get_signer
      Src: /src/rnp/src/tests/streams.cpp:1005,1
    - Dst: signature_hash_certification
      Src: /src/rnp/src/tests/streams.cpp:1007,1
    - Dst: signature_validate
      Src: /src/rnp/src/tests/streams.cpp:1009,1
    - Dst: rnp::Key*::material
      Src: /src/rnp/src/tests/streams.cpp:1009,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:1010,1
    - Dst: auto::errors
      Src: /src/rnp/src/tests/streams.cpp:1010,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:1011,1
    - Dst: auto::errors
      Src: /src/rnp/src/tests/streams.cpp:1011,1
    - Dst: profile::add_rule
      Src: /src/rnp/src/tests/streams.cpp:1016,1
    - Dst: signature_hash_certification
      Src: /src/rnp/src/tests/streams.cpp:1017,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1018,1
    - Dst: signature_validate
      Src: /src/rnp/src/tests/streams.cpp:1019,1
    - Dst: rnp::Key*::material
      Src: /src/rnp/src/tests/streams.cpp:1019,1
    - Dst: signature_hash_certification
      Src: /src/rnp/src/tests/streams.cpp:1022,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1023,1
    - Dst: signature_validate
      Src: /src/rnp/src/tests/streams.cpp:1024,1
    - Dst: rnp::Key*::material
      Src: /src/rnp/src/tests/streams.cpp:1024,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1026,1
    - Dst: profile::del_rule
      Src: /src/rnp/src/tests/streams.cpp:1026,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/streams.cpp:1030,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1031,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/streams.cpp:1031,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1032,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:1032,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1033,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/streams.cpp:1033,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:1034,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:1041,1
    - Dst: auto::get_signer
      Src: /src/rnp/src/tests/streams.cpp:1041,1
    - Dst: rnp::SignatureInfo::validity::reset
      Src: /src/rnp/src/tests/streams.cpp:1044,1
    - Dst: rnp::Key*::validate_cert
      Src: /src/rnp/src/tests/streams.cpp:1045,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1046,1
    - Dst: rnp::SignatureInfo::validity::valid
      Src: /src/rnp/src/tests/streams.cpp:1046,1
    - Dst: signature_hash_certification
      Src: /src/rnp/src/tests/streams.cpp:1048,1
    - Dst: signature_validate
      Src: /src/rnp/src/tests/streams.cpp:1049,1
    - Dst: rnp::Key*::material
      Src: /src/rnp/src/tests/streams.cpp:1049,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1050,1
    - Dst: auto::errors
      Src: /src/rnp/src/tests/streams.cpp:1050,1
    - Dst: rnp::SignatureInfo::validity::reset
      Src: /src/rnp/src/tests/streams.cpp:1053,1
    - Dst: rnp::Key*::validate_cert
      Src: /src/rnp/src/tests/streams.cpp:1054,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1055,1
    - Dst: rnp::SignatureInfo::validity::valid
      Src: /src/rnp/src/tests/streams.cpp:1055,1
    - Dst: signature_hash_certification
      Src: /src/rnp/src/tests/streams.cpp:1056,1
    - Dst: signature_validate
      Src: /src/rnp/src/tests/streams.cpp:1057,1
    - Dst: rnp::Key*::material
      Src: /src/rnp/src/tests/streams.cpp:1057,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1058,1
    - Dst: auto::errors
      Src: /src/rnp/src/tests/streams.cpp:1058,1
    - Dst: signatures::front
      Src: /src/rnp/src/tests/streams.cpp:1064,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:1065,1
    - Dst: auto::get_signer
      Src: /src/rnp/src/tests/streams.cpp:1065,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/streams.cpp:1068,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1070,1
    - Dst: rnp::hex_encode
      Src: /src/rnp/src/tests/streams.cpp:1070,1
    - Dst: pgp::KeyID::data
      Src: /src/rnp/src/tests/streams.cpp:1070,1
    - Dst: pgp::KeyID::size
      Src: /src/rnp/src/tests/streams.cpp:1070,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/streams.cpp:1071,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/streams.cpp:1072,1
    - Dst: rnp::SignatureInfo::validity::reset
      Src: /src/rnp/src/tests/streams.cpp:1073,1
    - Dst: rnp::Key*::validate_binding
      Src: /src/rnp/src/tests/streams.cpp:1074,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1075,1
    - Dst: rnp::SignatureInfo::validity::valid
      Src: /src/rnp/src/tests/streams.cpp:1075,1
    - Dst: signature_hash_binding
      Src: /src/rnp/src/tests/streams.cpp:1077,1
    - Dst: rnp::SignatureInfo::validity::reset
      Src: /src/rnp/src/tests/streams.cpp:1078,1
    - Dst: rnp::Key*::validate_sig
      Src: /src/rnp/src/tests/streams.cpp:1079,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1080,1
    - Dst: rnp::SignatureInfo::validity::valid
      Src: /src/rnp/src/tests/streams.cpp:1080,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 988
    functionDepth: 1
    functionLinenumber: 988
    functionLinenumberEnd: 1085
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp::SignatureInfo::validity::valid
    - pgp_source_t::close
    - auto::userids::front
    - signature_hash_binding
    - pgp_key_sequence_t::keys::front
    - profile::add_rule
    - assert_true
    - assert_rnp_success
    - rnp::hex_encode
    - init_file_src
    - rnp::SignatureInfo::validity::reset
    - pgp_key_sequence_t::keys::size
    - profile::del_rule
    - pgp::KeyID::size
    - auto::errors
    - rnp::Key*::material
    - signature_validate
    - assert_int_equal
    - signatures::front
    - pgp::Fingerprint::Fingerprint
    - rnp::KeyStore::KeyStore
    - process_pgp_keys
    - pgp::KeyID::data
    - auto::signatures::front
    - auto::get_signer
    - rnp::Key*::validate_binding
    - auto::load
    - signature_hash_certification
    - rnp_tests_get_key_by_id
    - assert_false
    - rnp::Key*::validate_cert
    - rnp::Key*::validate_sig
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_stream_key_signatures)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/streams.cpp:1090,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/streams.cpp:1091,1
    - Dst: validate
      Src: /src/rnp/src/tests/streams.cpp:1093,1
    - Dst: valid
      Src: /src/rnp/src/tests/streams.cpp:1094,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - path
    - global_ctx
    argTypes:
    - char*
    - rnp::SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1098
      start: 1087
    functionDepth: 0
    functionLinenumber: 1087
    functionLinenumberEnd: 1098
    functionName: validate_key_sigs
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - validate
    - valid
    - auto::load
    - rnp::KeyStore::KeyStore
    linkageType: ''
    returnType: bool
    signature: bool validate_key_sigs(const char *path, rnp::SecurityContext &global_ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/streams.cpp:1103,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1104,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/streams.cpp:1104,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:1105,1
    - Dst: auto::key_count
      Src: /src/rnp/src/tests/streams.cpp:1105,1
    - Dst: auto::keys::front
      Src: /src/rnp/src/tests/streams.cpp:1106,1
    - Dst: rnp::Key::validate
      Src: /src/rnp/src/tests/streams.cpp:1107,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1109,1
    - Dst: rnp::Key::valid
      Src: /src/rnp/src/tests/streams.cpp:1109,1
    - Dst: profile::add_rule
      Src: /src/rnp/src/tests/streams.cpp:1114,1
    - Dst: rnp::Key::get_sig
      Src: /src/rnp/src/tests/streams.cpp:1116,1
    - Dst: reset
      Src: /src/rnp/src/tests/streams.cpp:1116,1
    - Dst: rnp::Key::revalidate
      Src: /src/rnp/src/tests/streams.cpp:1117,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1118,1
    - Dst: rnp::Key::valid
      Src: /src/rnp/src/tests/streams.cpp:1118,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1120,1
    - Dst: profile::del_rule
      Src: /src/rnp/src/tests/streams.cpp:1120,1
    - Dst: rnp::Key::get_sig
      Src: /src/rnp/src/tests/streams.cpp:1121,1
    - Dst: reset
      Src: /src/rnp/src/tests/streams.cpp:1121,1
    - Dst: rnp::Key::revalidate
      Src: /src/rnp/src/tests/streams.cpp:1122,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1123,1
    - Dst: rnp::Key::valid
      Src: /src/rnp/src/tests/streams.cpp:1123,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/streams.cpp:1127,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1128,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/streams.cpp:1128,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1129,1
    - Dst: auto::key_count
      Src: /src/rnp/src/tests/streams.cpp:1129,1
    - Dst: validate
      Src: /src/rnp/src/tests/streams.cpp:1132,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1135,1
    - Dst: valid
      Src: /src/rnp/src/tests/streams.cpp:1135,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1137,1
    - Dst: valid
      Src: /src/rnp/src/tests/streams.cpp:1137,1
    - Dst: validate_key_sigs
      Src: /src/rnp/src/tests/streams.cpp:1146,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/streams.cpp:1146,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1148,1
    - Dst: validate
      Src: /src/rnp/src/tests/streams.cpp:1148,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1149,1
    - Dst: validate
      Src: /src/rnp/src/tests/streams.cpp:1149,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1150,1
    - Dst: validate
      Src: /src/rnp/src/tests/streams.cpp:1150,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1151,1
    - Dst: validate
      Src: /src/rnp/src/tests/streams.cpp:1151,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1152,1
    - Dst: validate
      Src: /src/rnp/src/tests/streams.cpp:1152,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1153,1
    - Dst: validate
      Src: /src/rnp/src/tests/streams.cpp:1153,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1154,1
    - Dst: validate
      Src: /src/rnp/src/tests/streams.cpp:1154,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1155,1
    - Dst: validate
      Src: /src/rnp/src/tests/streams.cpp:1155,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1156,1
    - Dst: validate
      Src: /src/rnp/src/tests/streams.cpp:1156,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1157,1
    - Dst: validate
      Src: /src/rnp/src/tests/streams.cpp:1157,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1158,1
    - Dst: validate
      Src: /src/rnp/src/tests/streams.cpp:1158,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1159,1
    - Dst: validate
      Src: /src/rnp/src/tests/streams.cpp:1159,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1160,1
    - Dst: validate
      Src: /src/rnp/src/tests/streams.cpp:1160,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/streams.cpp:1160,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1161,1
    - Dst: validate
      Src: /src/rnp/src/tests/streams.cpp:1161,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/streams.cpp:1161,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1162,1
    - Dst: validate
      Src: /src/rnp/src/tests/streams.cpp:1162,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/streams.cpp:1162,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1163,1
    - Dst: validate
      Src: /src/rnp/src/tests/streams.cpp:1163,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/streams.cpp:1163,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1164,1
    - Dst: validate
      Src: /src/rnp/src/tests/streams.cpp:1164,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/streams.cpp:1164,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1165,1
    - Dst: validate
      Src: /src/rnp/src/tests/streams.cpp:1165,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/streams.cpp:1165,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1166,1
    - Dst: validate
      Src: /src/rnp/src/tests/streams.cpp:1166,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1167,1
    - Dst: validate
      Src: /src/rnp/src/tests/streams.cpp:1167,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 49
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1100
    functionDepth: 1
    functionLinenumber: 1100
    functionLinenumberEnd: 1168
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - auto::key_count
    - valid
    - auto::keys::front
    - validate
    - auto::c_str
    - profile::add_rule
    - assert_true
    - profile::del_rule
    - validate_key_sigs
    - assert_int_equal
    - rnp::KeyStore::KeyStore
    - rnp::Key::validate
    - auto::load
    - rnp::Key::valid
    - assert_false
    - rnp::Key::revalidate
    - brainpool_enabled
    - reset
    - rnp::Key::get_sig
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_stream_key_signature_validate)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/streams.cpp:1176,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/streams.cpp:1177,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/streams.cpp:1178,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/streams.cpp:1179,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1180,1
    - Dst: cli_rnp_t::init
      Src: /src/rnp/src/tests/streams.cpp:1180,1
    - Dst: cli_rnp_t::cfg
      Src: /src/rnp/src/tests/streams.cpp:1182,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/streams.cpp:1184,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/streams.cpp:1185,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/streams.cpp:1186,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1188,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/streams.cpp:1189,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/streams.cpp:1190,1
    - Dst: sm2_enabled
      Src: /src/rnp/src/tests/streams.cpp:1191,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1193,1
    - Dst: cli_rnp_process_file
      Src: /src/rnp/src/tests/streams.cpp:1193,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:1194,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:1194,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1197,1
    - Dst: cli_rnp_process_file
      Src: /src/rnp/src/tests/streams.cpp:1197,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:1198,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:1198,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1201,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/streams.cpp:1202,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1203,1
    - Dst: cli_rnp_process_file
      Src: /src/rnp/src/tests/streams.cpp:1203,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:1204,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:1204,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1206,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/streams.cpp:1207,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1208,1
    - Dst: cli_rnp_process_file
      Src: /src/rnp/src/tests/streams.cpp:1208,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:1209,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:1209,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1211,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/streams.cpp:1212,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1213,1
    - Dst: cli_rnp_process_file
      Src: /src/rnp/src/tests/streams.cpp:1213,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:1214,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:1214,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/streams.cpp:1216,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1217,1
    - Dst: cli_rnp_process_file
      Src: /src/rnp/src/tests/streams.cpp:1217,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:1218,1
    - Dst: file_size
      Src: /src/rnp/src/tests/streams.cpp:1218,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/streams.cpp:1221,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1170
    functionDepth: 1
    functionLinenumber: 1170
    functionLinenumberEnd: 1222
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - cli_rnp_t::init
    - sm2_enabled
    - assert_true
    - file_size
    - assert_int_equal
    - cli_rnp_t::cfg
    - assert_rnp_success
    - cli_rnp_process_file
    - rnp_cfg::set_bool
    - rnp_ffi_set_pass_provider
    - assert_false
    - cli_rnp_t::end
    - rnp_cfg::set_str
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_stream_verify_no_key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Source::Source
      Src: /src/rnp/src/tests/streams.cpp:1227,1
    - Dst: rnp::Dest::Dest
      Src: /src/rnp/src/tests/streams.cpp:1228,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:1230,1
    - Dst: rnp::Source::src
      Src: /src/rnp/src/tests/streams.cpp:1230,1
    - Dst: init_mem_dest
      Src: /src/rnp/src/tests/streams.cpp:1233,1
    - Dst: rnp::Dest::dst
      Src: /src/rnp/src/tests/streams.cpp:1233,1
    - Dst: rnp::Source::src
      Src: /src/rnp/src/tests/streams.cpp:1236,1
    - Dst: rnp::Dest::dst
      Src: /src/rnp/src/tests/streams.cpp:1236,1
    - Dst: rnp::DumpContextDst::set_dump_mpi
      Src: /src/rnp/src/tests/streams.cpp:1237,1
    - Dst: rnp::DumpContextDst::set_dump_grips
      Src: /src/rnp/src/tests/streams.cpp:1238,1
    - Dst: rnp::DumpContextDst::dump
      Src: /src/rnp/src/tests/streams.cpp:1240,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - file
    - mpi
    - grip
    argTypes:
    - char*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1244
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1244
    functionName: check_dump_file_dst
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - rnp::DumpContextDst::set_dump_grips
    - rnp::DumpContextDst::set_dump_mpi
    - rnp::Dest::dst
    - rnp::DumpContextDst::dump
    - init_file_src
    - rnp::Source::src
    - init_mem_dest
    - rnp::Source::Source
    - rnp::Dest::Dest
    linkageType: ''
    returnType: bool
    signature: bool check_dump_file_dst(const char *file, bool mpi, bool grip)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Source::Source
      Src: /src/rnp/src/tests/streams.cpp:1249,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:1250,1
    - Dst: rnp::Source::src
      Src: /src/rnp/src/tests/streams.cpp:1250,1
    - Dst: rnp::Source::src
      Src: /src/rnp/src/tests/streams.cpp:1255,1
    - Dst: rnp::DumpContextJson::set_dump_mpi
      Src: /src/rnp/src/tests/streams.cpp:1256,1
    - Dst: rnp::DumpContextJson::set_dump_grips
      Src: /src/rnp/src/tests/streams.cpp:1257,1
    - Dst: rnp::DumpContextJson::dump
      Src: /src/rnp/src/tests/streams.cpp:1259,1
    - Dst: nlohmann::ordered_json::is_array
      Src: /src/rnp/src/tests/streams.cpp:1262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - file
    - mpi
    - grip
    argTypes:
    - char*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1246
    functionDepth: 1
    functionLinenumber: 1246
    functionLinenumberEnd: 1267
    functionName: check_dump_file_json
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - nlohmann::ordered_json::is_array
    - rnp::DumpContextJson::set_dump_grips
    - init_file_src
    - rnp::DumpContextJson::set_dump_mpi
    - rnp::Source::src
    - rnp::Source::Source
    - rnp::DumpContextJson::dump
    linkageType: ''
    returnType: bool
    signature: bool check_dump_file_json(const char *file, bool mpi, bool grip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_dump_file_dst
      Src: /src/rnp/src/tests/streams.cpp:1272,1
    - Dst: check_dump_file_json
      Src: /src/rnp/src/tests/streams.cpp:1272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - file
    - mpi
    - grip
    argTypes:
    - char*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1273
      start: 1269
    functionDepth: 2
    functionLinenumber: 1269
    functionLinenumberEnd: 1273
    functionName: check_dump_file
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - check_dump_file_dst
    - check_dump_file_json
    linkageType: ''
    returnType: bool
    signature: bool check_dump_file(const char *file, bool mpi, bool grip)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/streams.cpp:1281,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/streams.cpp:1282,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/streams.cpp:1283,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/streams.cpp:1284,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/streams.cpp:1285,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1286,1
    - Dst: cli_rnp_t::init
      Src: /src/rnp/src/tests/streams.cpp:1286,1
    - Dst: cli_rnp_t::cfg
      Src: /src/rnp/src/tests/streams.cpp:1288,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/streams.cpp:1290,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/streams.cpp:1291,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1292,1
    - Dst: cli_rnp_process_file
      Src: /src/rnp/src/tests/streams.cpp:1292,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/streams.cpp:1295,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/streams.cpp:1298,1
    - Dst: rnp_y2k38_warning
      Src: /src/rnp/src/tests/streams.cpp:1301,1
    - Dst: rnp_ctime
      Src: /src/rnp/src/tests/streams.cpp:1304,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1305,1
    - Dst: std::search
      Src: /src/rnp/src/tests/streams.cpp:1306,1
    - Dst: auto::begin
      Src: /src/rnp/src/tests/streams.cpp:1306,1
    - Dst: auto::end
      Src: /src/rnp/src/tests/streams.cpp:1306,1
    - Dst: std::string::begin
      Src: /src/rnp/src/tests/streams.cpp:1306,1
    - Dst: std::string::end
      Src: /src/rnp/src/tests/streams.cpp:1306,1
    - Dst: auto::end
      Src: /src/rnp/src/tests/streams.cpp:1307,1
    - Dst: rnp_timeadd
      Src: /src/rnp/src/tests/streams.cpp:1308,1
    - Dst: rnp_y2k38_warning
      Src: /src/rnp/src/tests/streams.cpp:1310,1
    - Dst: rnp_ctime
      Src: /src/rnp/src/tests/streams.cpp:1313,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1314,1
    - Dst: std::search
      Src: /src/rnp/src/tests/streams.cpp:1315,1
    - Dst: auto::begin
      Src: /src/rnp/src/tests/streams.cpp:1315,1
    - Dst: auto::end
      Src: /src/rnp/src/tests/streams.cpp:1315,1
    - Dst: std::string::begin
      Src: /src/rnp/src/tests/streams.cpp:1315,1
    - Dst: std::string::end
      Src: /src/rnp/src/tests/streams.cpp:1315,1
    - Dst: auto::end
      Src: /src/rnp/src/tests/streams.cpp:1316,1
    - Dst: unlink
      Src: /src/rnp/src/tests/streams.cpp:1317,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1318
      start: 1275
    functionDepth: 1
    functionLinenumber: 1275
    functionLinenumberEnd: 1318
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - rnp_timeadd
    - auto::begin
    - cli_rnp_t::init
    - std::search
    - assert_true
    - unlink
    - cli_rnp_t::cfg
    - cli_rnp_process_file
    - file_to_str
    - rnp_y2k38_warning
    - rnp_ctime
    - rnp_cfg::set_bool
    - assert_false
    - std::string::begin
    - auto::end
    - std::string::end
    - cli_rnp_t::end
    - rnp_cfg::set_str
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_y2k38)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Source::Source
      Src: /src/rnp/src/tests/streams.cpp:1322,1
    - Dst: rnp::Dest::Dest
      Src: /src/rnp/src/tests/streams.cpp:1323,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1324,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:1324,1
    - Dst: rnp::Source::src
      Src: /src/rnp/src/tests/streams.cpp:1324,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1325,1
    - Dst: init_mem_dest
      Src: /src/rnp/src/tests/streams.cpp:1325,1
    - Dst: rnp::Dest::dst
      Src: /src/rnp/src/tests/streams.cpp:1325,1
    - Dst: rnp::Source::src
      Src: /src/rnp/src/tests/streams.cpp:1326,1
    - Dst: rnp::Dest::dst
      Src: /src/rnp/src/tests/streams.cpp:1326,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1327,1
    - Dst: rnp::DumpContextDst::dump
      Src: /src/rnp/src/tests/streams.cpp:1327,1
    - Dst: mem_dest_get_memory
      Src: /src/rnp/src/tests/streams.cpp:1328,1
    - Dst: rnp::Dest::dst
      Src: /src/rnp/src/tests/streams.cpp:1328,1
    - Dst: rnp::Dest::writeb
      Src: /src/rnp/src/tests/streams.cpp:1329,1
    - Dst: rnp_y2k38_warning
      Src: /src/rnp/src/tests/streams.cpp:1333,1
    - Dst: rnp_ctime
      Src: /src/rnp/src/tests/streams.cpp:1336,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1338,1
    - Dst: std::search
      Src: /src/rnp/src/tests/streams.cpp:1338,1
    - Dst: std::string::begin
      Src: /src/rnp/src/tests/streams.cpp:1338,1
    - Dst: std::string::end
      Src: /src/rnp/src/tests/streams.cpp:1338,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1320
    functionDepth: 1
    functionLinenumber: 1320
    functionLinenumberEnd: 1339
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - rnp::Dest::writeb
    - std::search
    - assert_true
    - rnp::Dest::dst
    - rnp::DumpContextDst::dump
    - assert_rnp_success
    - rnp_ctime
    - rnp_y2k38_warning
    - std::string::end
    - init_file_src
    - rnp::Source::src
    - init_mem_dest
    - mem_dest_get_memory
    - rnp::Source::Source
    - std::string::begin
    - rnp::Dest::Dest
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_stream_dumper_y2k38)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1343,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1343,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1344,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1344,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1345,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1345,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1346,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1346,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1347,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1347,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1348,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1348,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1349,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1349,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1350,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1350,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1351,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1351,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1352,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1352,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1353,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1353,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1354,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1354,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1355,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1355,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1356,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1356,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1357,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1357,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1358,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1358,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1359,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1359,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1360,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1360,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1361,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1361,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1362,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1362,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1363,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1363,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1364,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1364,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1365,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1365,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1366,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1366,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1367,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1367,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1368,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1368,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1369,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1369,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1370,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1370,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1371,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1371,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1372,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1372,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1373,1
    - Dst: check_dump_file
      Src: /src/rnp/src/tests/streams.cpp:1373,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1378,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:1378,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1379,1
    - Dst: init_mem_dest
      Src: /src/rnp/src/tests/streams.cpp:1379,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/streams.cpp:1381,1
    - Dst: rnp::DumpContextDst::dump
      Src: /src/rnp/src/tests/streams.cpp:1381,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:1382,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:1383,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1385,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:1385,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1386,1
    - Dst: init_mem_dest
      Src: /src/rnp/src/tests/streams.cpp:1386,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1388,1
    - Dst: rnp::DumpContextDst::dump
      Src: /src/rnp/src/tests/streams.cpp:1388,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:1389,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:1390,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1392,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:1392,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1393,1
    - Dst: init_mem_dest
      Src: /src/rnp/src/tests/streams.cpp:1393,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1395,1
    - Dst: rnp::DumpContextDst::dump
      Src: /src/rnp/src/tests/streams.cpp:1395,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:1396,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:1397,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1399,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:1399,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1400,1
    - Dst: init_mem_dest
      Src: /src/rnp/src/tests/streams.cpp:1400,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1402,1
    - Dst: rnp::DumpContextDst::dump
      Src: /src/rnp/src/tests/streams.cpp:1402,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:1403,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:1404,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1405
      start: 1341
    functionDepth: 3
    functionLinenumber: 1341
    functionLinenumberEnd: 1405
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - assert_rnp_failure
    - assert_true
    - pgp_source_t::close
    - rnp::DumpContextDst::dump
    - assert_rnp_success
    - dst_close
    - check_dump_file
    - init_file_src
    - init_mem_dest
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_stream_dumper)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bzip2_enabled
      Src: /src/rnp/src/tests/streams.cpp:1413,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1414,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:1414,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1415,1
    - Dst: init_null_dest
      Src: /src/rnp/src/tests/streams.cpp:1415,1
    - Dst: rnp::DumpContextDst::set_dump_mpi
      Src: /src/rnp/src/tests/streams.cpp:1417,1
    - Dst: rnp::DumpContextDst::set_dump_packets
      Src: /src/rnp/src/tests/streams.cpp:1418,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1419,1
    - Dst: rnp::DumpContextDst::dump
      Src: /src/rnp/src/tests/streams.cpp:1419,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:1420,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:1421,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1423,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:1423,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1424,1
    - Dst: init_null_dest
      Src: /src/rnp/src/tests/streams.cpp:1424,1
    - Dst: rnp::DumpContextDst::set_dump_mpi
      Src: /src/rnp/src/tests/streams.cpp:1426,1
    - Dst: rnp::DumpContextDst::set_dump_packets
      Src: /src/rnp/src/tests/streams.cpp:1427,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1428,1
    - Dst: rnp::DumpContextDst::dump
      Src: /src/rnp/src/tests/streams.cpp:1428,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:1429,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:1430,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1433,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:1433,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1434,1
    - Dst: init_null_dest
      Src: /src/rnp/src/tests/streams.cpp:1434,1
    - Dst: rnp::DumpContextDst::set_dump_mpi
      Src: /src/rnp/src/tests/streams.cpp:1436,1
    - Dst: rnp::DumpContextDst::set_dump_packets
      Src: /src/rnp/src/tests/streams.cpp:1437,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1438,1
    - Dst: rnp::DumpContextDst::dump
      Src: /src/rnp/src/tests/streams.cpp:1438,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:1439,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:1440,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1442,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:1442,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1443,1
    - Dst: init_null_dest
      Src: /src/rnp/src/tests/streams.cpp:1443,1
    - Dst: rnp::DumpContextDst::set_dump_mpi
      Src: /src/rnp/src/tests/streams.cpp:1445,1
    - Dst: rnp::DumpContextDst::set_dump_packets
      Src: /src/rnp/src/tests/streams.cpp:1446,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1447,1
    - Dst: rnp::DumpContextDst::dump
      Src: /src/rnp/src/tests/streams.cpp:1447,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:1448,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:1449,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1451,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:1451,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1452,1
    - Dst: init_null_dest
      Src: /src/rnp/src/tests/streams.cpp:1452,1
    - Dst: rnp::DumpContextDst::set_dump_mpi
      Src: /src/rnp/src/tests/streams.cpp:1454,1
    - Dst: rnp::DumpContextDst::set_dump_packets
      Src: /src/rnp/src/tests/streams.cpp:1455,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1456,1
    - Dst: rnp::DumpContextDst::dump
      Src: /src/rnp/src/tests/streams.cpp:1456,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:1457,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:1458,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1460,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:1460,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1461,1
    - Dst: init_null_dest
      Src: /src/rnp/src/tests/streams.cpp:1461,1
    - Dst: rnp::DumpContextDst::set_dump_mpi
      Src: /src/rnp/src/tests/streams.cpp:1463,1
    - Dst: rnp::DumpContextDst::set_dump_packets
      Src: /src/rnp/src/tests/streams.cpp:1464,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1465,1
    - Dst: rnp::DumpContextDst::dump
      Src: /src/rnp/src/tests/streams.cpp:1465,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:1466,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:1467,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1468
      start: 1407
    functionDepth: 1
    functionLinenumber: 1407
    functionLinenumberEnd: 1468
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - init_null_dest
    - pgp_source_t::close
    - bzip2_enabled
    - rnp::DumpContextDst::set_dump_mpi
    - rnp::DumpContextDst::set_dump_packets
    - rnp::DumpContextDst::dump
    - assert_rnp_success
    - dst_close
    - init_file_src
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_stream_z)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1478,1
    - Dst: init_mem_src
      Src: /src/rnp/src/tests/streams.cpp:1478,1
    - Dst: strlen
      Src: /src/rnp/src/tests/streams.cpp:1478,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1479,1
    - Dst: init_null_dest
      Src: /src/rnp/src/tests/streams.cpp:1479,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/streams.cpp:1480,1
    - Dst: rnp_dearmor_source
      Src: /src/rnp/src/tests/streams.cpp:1480,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:1481,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:1482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1483
      start: 1472
    functionDepth: 1
    functionLinenumber: 1472
    functionLinenumberEnd: 1483
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - init_null_dest
    - assert_rnp_failure
    - pgp_source_t::close
    - rnp_dearmor_source
    - assert_rnp_success
    - dst_close
    - strlen
    - init_mem_src
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_stream_814_dearmor_double_free)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/streams.cpp:1489,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1490,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/streams.cpp:1491,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1492,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/streams.cpp:1492,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:1493,1
    - Dst: auto::key_count
      Src: /src/rnp/src/tests/streams.cpp:1493,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:1494,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1496
      start: 1485
    functionDepth: 1
    functionLinenumber: 1485
    functionLinenumberEnd: 1496
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - auto::key_count
    - assert_true
    - pgp_source_t::close
    - assert_int_equal
    - auto::load
    - assert_rnp_success
    - init_file_src
    - rnp::KeyStore::KeyStore
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_stream_825_dearmor_blank_line)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: init_mem_src
      Src: /src/rnp/src/tests/streams.cpp:1508,1
    - Dst: init_null_dest
      Src: /src/rnp/src/tests/streams.cpp:1511,1
    - Dst: rnp_dearmor_source
      Src: /src/rnp/src/tests/streams.cpp:1514,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:1516,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:1517,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - str
    - len
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1519
      start: 1498
    functionDepth: 1
    functionLinenumber: 1498
    functionLinenumberEnd: 1519
    functionName: try_dearmor
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - init_null_dest
    - pgp_source_t::close
    - dst_close
    - init_mem_src
    - rnp_dearmor_source
    linkageType: ''
    returnType: bool
    signature: bool try_dearmor(const char *str, int len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1538,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1539,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1542,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1543,1
    - Dst: try_dearmor
      Src: /src/rnp/src/tests/streams.cpp:1543,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1546,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1547,1
    - Dst: try_dearmor
      Src: /src/rnp/src/tests/streams.cpp:1547,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1550,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1551,1
    - Dst: try_dearmor
      Src: /src/rnp/src/tests/streams.cpp:1551,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1554,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1555,1
    - Dst: try_dearmor
      Src: /src/rnp/src/tests/streams.cpp:1555,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1558,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1559,1
    - Dst: try_dearmor
      Src: /src/rnp/src/tests/streams.cpp:1559,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1562,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1563,1
    - Dst: try_dearmor
      Src: /src/rnp/src/tests/streams.cpp:1563,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1566,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1567,1
    - Dst: try_dearmor
      Src: /src/rnp/src/tests/streams.cpp:1567,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1568,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1569,1
    - Dst: try_dearmor
      Src: /src/rnp/src/tests/streams.cpp:1569,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1570,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1571,1
    - Dst: try_dearmor
      Src: /src/rnp/src/tests/streams.cpp:1571,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1574,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1575,1
    - Dst: try_dearmor
      Src: /src/rnp/src/tests/streams.cpp:1575,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1578,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1579,1
    - Dst: try_dearmor
      Src: /src/rnp/src/tests/streams.cpp:1579,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1580,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1581,1
    - Dst: try_dearmor
      Src: /src/rnp/src/tests/streams.cpp:1581,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1583,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1584,1
    - Dst: try_dearmor
      Src: /src/rnp/src/tests/streams.cpp:1584,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1586,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1587,1
    - Dst: try_dearmor
      Src: /src/rnp/src/tests/streams.cpp:1587,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1590,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1591,1
    - Dst: try_dearmor
      Src: /src/rnp/src/tests/streams.cpp:1591,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1592,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1593,1
    - Dst: try_dearmor
      Src: /src/rnp/src/tests/streams.cpp:1593,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1594,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1595,1
    - Dst: try_dearmor
      Src: /src/rnp/src/tests/streams.cpp:1595,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1600,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1601,1
    - Dst: try_dearmor
      Src: /src/rnp/src/tests/streams.cpp:1601,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1605,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1606,1
    - Dst: try_dearmor
      Src: /src/rnp/src/tests/streams.cpp:1606,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1607,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1608,1
    - Dst: try_dearmor
      Src: /src/rnp/src/tests/streams.cpp:1608,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1609,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1610,1
    - Dst: try_dearmor
      Src: /src/rnp/src/tests/streams.cpp:1610,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1611,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1612,1
    - Dst: try_dearmor
      Src: /src/rnp/src/tests/streams.cpp:1612,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/streams.cpp:1614,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1615,1
    - Dst: try_dearmor
      Src: /src/rnp/src/tests/streams.cpp:1615,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 51
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1616
      start: 1521
    functionDepth: 2
    functionLinenumber: 1521
    functionLinenumberEnd: 1616
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - assert_false
    - try_dearmor
    - snprintf
    - assert_true
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_stream_dearmor_edge_cases)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1625,1
    - Dst: init_mem_src
      Src: /src/rnp/src/tests/streams.cpp:1625,1
    - Dst: strlen
      Src: /src/rnp/src/tests/streams.cpp:1625,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1626,1
    - Dst: init_mem_dest
      Src: /src/rnp/src/tests/streams.cpp:1626,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1627,1
    - Dst: rnp_wrap_src
      Src: /src/rnp/src/tests/streams.cpp:1627,1
    - Dst: time
      Src: /src/rnp/src/tests/streams.cpp:1627,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:1628,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1629,1
    - Dst: init_mem_src
      Src: /src/rnp/src/tests/streams.cpp:1629,1
    - Dst: mem_dest_own_memory
      Src: /src/rnp/src/tests/streams.cpp:1629,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:1630,1
    - Dst: bzip2_enabled
      Src: /src/rnp/src/tests/streams.cpp:1633,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1636,1
    - Dst: init_mem_dest
      Src: /src/rnp/src/tests/streams.cpp:1636,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1637,1
    - Dst: rnp_compress_src
      Src: /src/rnp/src/tests/streams.cpp:1637,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:1638,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1639,1
    - Dst: init_mem_src
      Src: /src/rnp/src/tests/streams.cpp:1639,1
    - Dst: mem_dest_own_memory
      Src: /src/rnp/src/tests/streams.cpp:1639,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:1640,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1645,1
    - Dst: init_mem_dest
      Src: /src/rnp/src/tests/streams.cpp:1645,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1646,1
    - Dst: rnp_raw_encrypt_src
      Src: /src/rnp/src/tests/streams.cpp:1646,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:1647,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1648,1
    - Dst: init_mem_src
      Src: /src/rnp/src/tests/streams.cpp:1648,1
    - Dst: mem_dest_own_memory
      Src: /src/rnp/src/tests/streams.cpp:1648,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:1649,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1652,1
    - Dst: init_mem_dest
      Src: /src/rnp/src/tests/streams.cpp:1652,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1653,1
    - Dst: dst_write_src
      Src: /src/rnp/src/tests/streams.cpp:1653,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:1654,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 5
    argNames:
    - msg
    - pgpdst
    - compr
    - encr
    - global_ctx
    argTypes:
    - char*
    - pgp_dest_t
    - int
    - int
    - rnp::SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1655
      start: 1618
    functionDepth: 1
    functionLinenumber: 1618
    functionLinenumberEnd: 1655
    functionName: add_openpgp_layers
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - time
    - pgp_source_t::close
    - rnp_wrap_src
    - bzip2_enabled
    - mem_dest_own_memory
    - dst_write_src
    - assert_rnp_success
    - dst_close
    - rnp_compress_src
    - strlen
    - init_mem_src
    - init_mem_dest
    - rnp_raw_encrypt_src
    linkageType: ''
    returnType: void
    signature: "void add_openpgp_layers(\n  const char *msg, pgp_dest_t &pgpdst, int
      compr, int encr, rnp::SecurityContext &global_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_openpgp_layers
      Src: /src/rnp/src/tests/streams.cpp:1663,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1667,1
    - Dst: init_mem_src
      Src: /src/rnp/src/tests/streams.cpp:1667,1
    - Dst: mem_dest_get_memory
      Src: /src/rnp/src/tests/streams.cpp:1667,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1669,1
    - Dst: init_stdout_dest
      Src: /src/rnp/src/tests/streams.cpp:1669,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1670,1
    - Dst: rnp_armor_source
      Src: /src/rnp/src/tests/streams.cpp:1670,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:1671,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:1672,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/streams.cpp:1676,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1677,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/streams.cpp:1678,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1681,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/streams.cpp:1681,1
    - Dst: mem_dest_get_memory
      Src: /src/rnp/src/tests/streams.cpp:1682,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1684,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/streams.cpp:1684,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/streams.cpp:1685,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/streams.cpp:1685,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/streams.cpp:1686,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/streams.cpp:1687,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:1688,1
    - Dst: add_openpgp_layers
      Src: /src/rnp/src/tests/streams.cpp:1691,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1694,1
    - Dst: init_mem_src
      Src: /src/rnp/src/tests/streams.cpp:1694,1
    - Dst: mem_dest_get_memory
      Src: /src/rnp/src/tests/streams.cpp:1694,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1695,1
    - Dst: init_stdout_dest
      Src: /src/rnp/src/tests/streams.cpp:1695,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1696,1
    - Dst: rnp_armor_source
      Src: /src/rnp/src/tests/streams.cpp:1696,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:1697,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:1698,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1701,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/streams.cpp:1701,1
    - Dst: mem_dest_get_memory
      Src: /src/rnp/src/tests/streams.cpp:1702,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1703,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/streams.cpp:1703,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1704,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/streams.cpp:1704,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/streams.cpp:1705,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/streams.cpp:1709,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/streams.cpp:1709,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:1710,1
    - Dst: strlen
      Src: /src/rnp/src/tests/streams.cpp:1710,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:1711,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/streams.cpp:1711,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/streams.cpp:1713,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/streams.cpp:1714,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/streams.cpp:1716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1717
      start: 1657
    functionDepth: 2
    functionLinenumber: 1657
    functionLinenumberEnd: 1717
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_memory_get_buf
    - pgp_source_t::close
    - assert_rnp_failure
    - rnp_armor_source
    - dst_close
    - rnp_ffi_set_pass_provider
    - mem_dest_get_memory
    - strlen
    - init_mem_src
    - memcmp
    - assert_rnp_success
    - init_stdout_dest
    - rnp_output_to_memory
    - rnp_input_from_memory
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_decrypt
    - rnp_ffi_create
    - rnp_input_destroy
    - add_openpgp_layers
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_stream_deep_packet_nesting)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - buf
    - len
    - read
    argTypes:
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1727
      start: 1719
    functionDepth: 0
    functionLinenumber: 1719
    functionLinenumberEnd: 1727
    functionName: src_reader_generator
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool src_reader_generator(pgp_source_t *, void *buf, size_t len, size_t
      *read)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1734,1
    - Dst: src_reader_generator
      Src: /src/rnp/src/tests/streams.cpp:1734,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/streams.cpp:1735,1
    - Dst: init_src_common
      Src: /src/rnp/src/tests/streams.cpp:1737,1
    - Dst: memset
      Src: /src/rnp/src/tests/streams.cpp:1743,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1746,1
    - Dst: pgp_source_t::peek_eq
      Src: /src/rnp/src/tests/streams.cpp:1746,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1747,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/streams.cpp:1747,1
    - Dst: memset
      Src: /src/rnp/src/tests/streams.cpp:1750,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1753,1
    - Dst: pgp_source_t::peek_eq
      Src: /src/rnp/src/tests/streams.cpp:1753,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1754,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/streams.cpp:1754,1
    - Dst: memset
      Src: /src/rnp/src/tests/streams.cpp:1757,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1760,1
    - Dst: pgp_source_t::peek_eq
      Src: /src/rnp/src/tests/streams.cpp:1760,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1761,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/streams.cpp:1761,1
    - Dst: memset
      Src: /src/rnp/src/tests/streams.cpp:1766,1
    - Dst: memset
      Src: /src/rnp/src/tests/streams.cpp:1767,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1768,1
    - Dst: pgp_source_t::peek_eq
      Src: /src/rnp/src/tests/streams.cpp:1768,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1769,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/streams.cpp:1769,1
    - Dst: memset
      Src: /src/rnp/src/tests/streams.cpp:1774,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1775,1
    - Dst: pgp_source_t::peek_eq
      Src: /src/rnp/src/tests/streams.cpp:1775,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1776,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/streams.cpp:1776,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1782,1
    - Dst: pgp_source_t::peek_eq
      Src: /src/rnp/src/tests/streams.cpp:1782,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1783,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/streams.cpp:1783,1
    - Dst: memset
      Src: /src/rnp/src/tests/streams.cpp:1788,1
    - Dst: memset
      Src: /src/rnp/src/tests/streams.cpp:1789,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/streams.cpp:1790,1
    - Dst: pgp_source_t::peek_eq
      Src: /src/rnp/src/tests/streams.cpp:1790,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/streams.cpp:1791,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/streams.cpp:1791,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/streams.cpp:1793,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1794
      start: 1729
    functionDepth: 1
    functionLinenumber: 1729
    functionLinenumberEnd: 1794
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/streams.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_t::close
    - assert_true
    - assert_int_equal
    - memcmp
    - memset
    - assert_false
    - src_reader_generator
    - init_src_common
    - pgp_source_t::peek_eq
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_stream_cache)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_verify_detached.cpp:38,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_verify_detached.cpp:40,1
    - Dst: verify_detached_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_verify_detached.cpp:40,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_verify_detached.cpp:40,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_verify_detached.cpp:40,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_verify_detached.cpp:42,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_verify_detached.cpp:43,1
    - Dst: verify_detached_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_verify_detached.cpp:43,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_verify_detached.cpp:43,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_verify_detached.cpp:43,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_verify_detached.cpp:45,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_verify_detached.cpp:46,1
    - Dst: verify_detached_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_verify_detached.cpp:46,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_verify_detached.cpp:46,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_verify_detached.cpp:46,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_verify_detached.cpp:48,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_verify_detached.cpp:49,1
    - Dst: verify_detached_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_verify_detached.cpp:49,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_verify_detached.cpp:49,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_verify_detached.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 50
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/fuzz_verify_detached.cpp
    functionUses: 0
    functionsReached:
    - verify_detached_LLVMFuzzerTestOneInput
    - auto::size
    - auto::data
    - assert_int_equal
    - file_to_vec
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_fuzz_verify_detached)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: setup_cli_rnp_common
      Src: /src/rnp/src/tests/generatekey.cpp:52,1
    - Dst: cli_set_default_rsa_key_desc
      Src: /src/rnp/src/tests/generatekey.cpp:58,1
    - Dst: cli_rnp_t::cfg
      Src: /src/rnp/src/tests/generatekey.cpp:58,1
    - Dst: cli_rnp_generate_key
      Src: /src/rnp/src/tests/generatekey.cpp:59,1
    - Dst: cli_rnp_t::load_keyrings
      Src: /src/rnp/src/tests/generatekey.cpp:63,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/generatekey.cpp:66,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/generatekey.cpp:69,1
    - Dst: cli_rnp_t::keys_matching
      Src: /src/rnp/src/tests/generatekey.cpp:72,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/generatekey.cpp:75,1
    - Dst: close
      Src: /src/rnp/src/tests/generatekey.cpp:81,1
    - Dst: clear_key_handles
      Src: /src/rnp/src/tests/generatekey.cpp:83,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:84,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 38
    argCount: 4
    argNames:
    - keystore
    - userid
    - hash
    - home
    argTypes:
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 86
    functionName: generate_test_key
    functionSourceFile: /src/rnp/src/tests/generatekey.cpp
    functionUses: 0
    functionsReached:
    - clear_key_handles
    - std::vector::size
    - cli_rnp_generate_key
    - cli_rnp_t::cfg
    - close
    - setup_cli_rnp_common
    - cli_rnp_t::load_keyrings
    - cli_rnp_t::keys_matching
    - cli_set_default_rsa_key_desc
    - rnp_get_secret_key_count
    - rnp_get_public_key_count
    - cli_rnp_t::end
    linkageType: ''
    returnType: bool
    signature: bool generate_test_key(const char *keystore, const char *userid, const
      char *hash, const char *home)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sm2_enabled
      Src: /src/rnp/src/tests/generatekey.cpp:91,1
    - Dst: lowercase
      Src: /src/rnp/src/tests/generatekey.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - hash
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 95
    functionName: hash_supported
    functionSourceFile: /src/rnp/src/tests/generatekey.cpp
    functionUses: 0
    functionsReached:
    - lowercase
    - sm2_enabled
    linkageType: ''
    returnType: bool
    signature: bool hash_supported(const std::string &hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/generatekey.cpp:102,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/generatekey.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ffi
    - hash
    - action
    - time
    argTypes:
    - rnp_ffi_t
    - std::string
    - uint32_t
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 104
    functionName: hash_secure
    functionSourceFile: /src/rnp/src/tests/generatekey.cpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - rnp_get_security_rule
    linkageType: ''
    returnType: bool
    signature: bool hash_secure(rnp_ffi_t ffi, const std::string &hash, uint32_t action,
      uint64_t time)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::ofstream::close
      Src: /src/rnp/src/tests/generatekey.cpp:133,1
    - Dst: string
      Src: /src/rnp/src/tests/generatekey.cpp:136,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:138,1
    - Dst: generate_test_key
      Src: /src/rnp/src/tests/generatekey.cpp:139,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/generatekey.cpp:139,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:148,1
    - Dst: setup_cli_rnp_common
      Src: /src/rnp/src/tests/generatekey.cpp:148,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:150,1
    - Dst: cli_rnp_t::load_keyrings
      Src: /src/rnp/src/tests/generatekey.cpp:150,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:152,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/generatekey.cpp:152,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:153,1
    - Dst: cli_rnp_t::cfg
      Src: /src/rnp/src/tests/generatekey.cpp:156,1
    - Dst: rnp_cfg::load_defaults
      Src: /src/rnp/src/tests/generatekey.cpp:157,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/generatekey.cpp:158,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/generatekey.cpp:159,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/generatekey.cpp:160,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/tests/generatekey.cpp:161,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/generatekey.cpp:162,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/generatekey.cpp:163,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/generatekey.cpp:164,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/tests/generatekey.cpp:165,1
    - Dst: hash_supported
      Src: /src/rnp/src/tests/generatekey.cpp:168,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:169,1
    - Dst: cli_rnp_protect_file
      Src: /src/rnp/src/tests/generatekey.cpp:169,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:170,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:171,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/generatekey.cpp:171,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:174,1
    - Dst: cli_rnp_protect_file
      Src: /src/rnp/src/tests/generatekey.cpp:174,1
    - Dst: close
      Src: /src/rnp/src/tests/generatekey.cpp:176,1
    - Dst: rnp_cfg::clear
      Src: /src/rnp/src/tests/generatekey.cpp:181,1
    - Dst: rnp_cfg::load_defaults
      Src: /src/rnp/src/tests/generatekey.cpp:182,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/generatekey.cpp:183,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/generatekey.cpp:184,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/generatekey.cpp:185,1
    - Dst: hash_secure
      Src: /src/rnp/src/tests/generatekey.cpp:186,1
    - Dst: time
      Src: /src/rnp/src/tests/generatekey.cpp:187,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:188,1
    - Dst: cli_rnp_process_file
      Src: /src/rnp/src/tests/generatekey.cpp:188,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:189,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:190,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/generatekey.cpp:190,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:193,1
    - Dst: cli_rnp_process_file
      Src: /src/rnp/src/tests/generatekey.cpp:193,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/generatekey.cpp:196,1
    - Dst: strip_eol
      Src: /src/rnp/src/tests/generatekey.cpp:198,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:200,1
    - Dst: file_size
      Src: /src/rnp/src/tests/generatekey.cpp:207,1
    - Dst: std::fstream::seekg
      Src: /src/rnp/src/tests/generatekey.cpp:208,1
    - Dst: std::fstream::read
      Src: /src/rnp/src/tests/generatekey.cpp:210,1
    - Dst: std::fstream::seekg
      Src: /src/rnp/src/tests/generatekey.cpp:212,1
    - Dst: std::fstream::write
      Src: /src/rnp/src/tests/generatekey.cpp:213,1
    - Dst: std::fstream::close
      Src: /src/rnp/src/tests/generatekey.cpp:214,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:215,1
    - Dst: cli_rnp_process_file
      Src: /src/rnp/src/tests/generatekey.cpp:215,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:218,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:219,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/generatekey.cpp:219,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/generatekey.cpp:220,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:224,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/generatekey.cpp:224,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 66
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 225
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/generatekey.cpp
    functionUses: 0
    functionsReached:
    - cli_rnp_protect_file
    - rnp_unlink
    - std::fstream::seekg
    - rnp_cfg::set_int
    - assert_true
    - string
    - assert_rnp_success
    - file_to_str
    - rnp_cfg::clear
    - rnp_get_secret_key_count
    - rnp_cfg::set_str
    - hash_secure
    - rnp_cfg::add_str
    - file_size
    - assert_int_equal
    - std::string::c_str
    - cli_rnp_t::cfg
    - hash_supported
    - std::fstream::write
    - cli_rnp_t::load_keyrings
    - time
    - std::fstream::read
    - generate_test_key
    - rnp_cfg::load_defaults
    - std::fstream::close
    - cli_rnp_process_file
    - close
    - setup_cli_rnp_common
    - std::ofstream::close
    - rnp_cfg::set_bool
    - assert_false
    - strip_eol
    - cli_rnp_t::end
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, rnpkeys_generatekey_testSignature)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sm2_enabled
      Src: /src/rnp/src/tests/generatekey.cpp:230,1
    - Dst: lowercase
      Src: /src/rnp/src/tests/generatekey.cpp:230,1
    - Dst: twofish_enabled
      Src: /src/rnp/src/tests/generatekey.cpp:233,1
    - Dst: lowercase
      Src: /src/rnp/src/tests/generatekey.cpp:233,1
    - Dst: blowfish_enabled
      Src: /src/rnp/src/tests/generatekey.cpp:236,1
    - Dst: lowercase
      Src: /src/rnp/src/tests/generatekey.cpp:236,1
    - Dst: cast5_enabled
      Src: /src/rnp/src/tests/generatekey.cpp:239,1
    - Dst: lowercase
      Src: /src/rnp/src/tests/generatekey.cpp:239,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 14
    argCount: 1
    argNames:
    - cipher
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 243
    functionName: cipher_supported
    functionSourceFile: /src/rnp/src/tests/generatekey.cpp
    functionUses: 0
    functionsReached:
    - sm2_enabled
    - twofish_enabled
    - blowfish_enabled
    - lowercase
    - cast5_enabled
    linkageType: ''
    returnType: bool
    signature: bool cipher_supported(const std::string &cipher)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cast5_enabled
      Src: /src/rnp/src/tests/generatekey.cpp:249,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:250,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/generatekey.cpp:250,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:253,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/generatekey.cpp:253,1
    - Dst: idea_enabled
      Src: /src/rnp/src/tests/generatekey.cpp:255,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:256,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/generatekey.cpp:256,1
    - Dst: blowfish_enabled
      Src: /src/rnp/src/tests/generatekey.cpp:259,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:260,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/generatekey.cpp:260,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - rnp_ffi_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 263
    functionName: enable_insecure_ciphers
    functionSourceFile: /src/rnp/src/tests/generatekey.cpp
    functionUses: 0
    functionsReached:
    - cast5_enabled
    - idea_enabled
    - rnp_remove_security_rule
    - assert_rnp_success
    - blowfish_enabled
    linkageType: ''
    returnType: void
    signature: void enable_insecure_ciphers(rnp_ffi_t ffi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::ofstream::close
      Src: /src/rnp/src/tests/generatekey.cpp:280,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:282,1
    - Dst: generate_test_key
      Src: /src/rnp/src/tests/generatekey.cpp:282,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:286,1
    - Dst: setup_cli_rnp_common
      Src: /src/rnp/src/tests/generatekey.cpp:286,1
    - Dst: enable_insecure_ciphers
      Src: /src/rnp/src/tests/generatekey.cpp:287,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:289,1
    - Dst: cli_rnp_t::load_keyrings
      Src: /src/rnp/src/tests/generatekey.cpp:289,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:291,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/generatekey.cpp:291,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:292,1
    - Dst: cli_rnp_t::cfg
      Src: /src/rnp/src/tests/generatekey.cpp:294,1
    - Dst: rnp_cfg::load_defaults
      Src: /src/rnp/src/tests/generatekey.cpp:295,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/generatekey.cpp:296,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/generatekey.cpp:297,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/tests/generatekey.cpp:298,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/generatekey.cpp:299,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/generatekey.cpp:300,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/generatekey.cpp:301,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/tests/generatekey.cpp:302,1
    - Dst: cipher_supported
      Src: /src/rnp/src/tests/generatekey.cpp:304,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:305,1
    - Dst: cli_rnp_protect_file
      Src: /src/rnp/src/tests/generatekey.cpp:305,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:306,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:312,1
    - Dst: setup_cli_rnp_common
      Src: /src/rnp/src/tests/generatekey.cpp:312,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:314,1
    - Dst: cli_rnp_t::load_keyrings
      Src: /src/rnp/src/tests/generatekey.cpp:314,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:315,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/generatekey.cpp:315,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:316,1
    - Dst: cli_rnp_t::cfg
      Src: /src/rnp/src/tests/generatekey.cpp:318,1
    - Dst: rnp_cfg::load_defaults
      Src: /src/rnp/src/tests/generatekey.cpp:319,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/generatekey.cpp:320,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/generatekey.cpp:321,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/generatekey.cpp:322,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:323,1
    - Dst: cli_rnp_process_file
      Src: /src/rnp/src/tests/generatekey.cpp:323,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:324,1
    - Dst: close
      Src: /src/rnp/src/tests/generatekey.cpp:326,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/generatekey.cpp:330,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:331,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:332,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/generatekey.cpp:332,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:333,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/generatekey.cpp:333,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:336,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/generatekey.cpp:336,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 337
      start: 265
    functionDepth: 2
    functionLinenumber: 265
    functionLinenumberEnd: 337
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/generatekey.cpp
    functionUses: 0
    functionsReached:
    - cli_rnp_protect_file
    - rnp_unlink
    - rnp_cfg::set_int
    - assert_true
    - assert_rnp_success
    - file_to_str
    - rnp_get_secret_key_count
    - rnp_cfg::set_str
    - rnp_cfg::add_str
    - assert_int_equal
    - cli_rnp_t::cfg
    - cipher_supported
    - cli_rnp_t::load_keyrings
    - generate_test_key
    - rnp_cfg::load_defaults
    - cli_rnp_process_file
    - close
    - setup_cli_rnp_common
    - std::ofstream::close
    - rnp_cfg::set_bool
    - enable_insecure_ciphers
    - cli_rnp_t::end
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, rnpkeys_generatekey_testEncryption)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/generatekey.cpp:361,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/generatekey.cpp:362,1
    - Dst: printf
      Src: /src/rnp/src/tests/generatekey.cpp:364,1
    - Dst: hash_supported
      Src: /src/rnp/src/tests/generatekey.cpp:366,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:367,1
    - Dst: generate_test_key
      Src: /src/rnp/src/tests/generatekey.cpp:367,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:372,1
    - Dst: setup_cli_rnp_common
      Src: /src/rnp/src/tests/generatekey.cpp:372,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:374,1
    - Dst: cli_rnp_t::load_keyrings
      Src: /src/rnp/src/tests/generatekey.cpp:374,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:377,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/generatekey.cpp:377,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:378,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:380,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/generatekey.cpp:380,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:381,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:383,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/generatekey.cpp:383,1
    - Dst: hash_secure
      Src: /src/rnp/src/tests/generatekey.cpp:384,1
    - Dst: time
      Src: /src/rnp/src/tests/generatekey.cpp:384,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/generatekey.cpp:385,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/generatekey.cpp:387,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:388,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/generatekey.cpp:390,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/generatekey.cpp:392,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:393,1
    - Dst: delete_recursively
      Src: /src/rnp/src/tests/generatekey.cpp:394,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 339
    functionDepth: 2
    functionLinenumber: 339
    functionLinenumberEnd: 396
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/generatekey.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_key_is_valid
    - delete_recursively
    - ARRAY_SIZE
    - assert_true
    - assert_null
    - assert_rnp_success
    - rnp_key_handle_destroy
    - printf
    - rnp_get_secret_key_count
    - hash_secure
    - rnp_locate_key
    - hash_supported
    - time
    - cli_rnp_t::load_keyrings
    - rnp_get_public_key_count
    - generate_test_key
    - setup_cli_rnp_common
    - cli_rnp_t::end
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, rnpkeys_generatekey_verifySupportedHashAlg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/generatekey.cpp:415,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/generatekey.cpp:416,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:418,1
    - Dst: generate_test_key
      Src: /src/rnp/src/tests/generatekey.cpp:418,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:421,1
    - Dst: setup_cli_rnp_common
      Src: /src/rnp/src/tests/generatekey.cpp:421,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:423,1
    - Dst: cli_rnp_t::load_keyrings
      Src: /src/rnp/src/tests/generatekey.cpp:423,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:425,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/generatekey.cpp:425,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:426,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:428,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/generatekey.cpp:428,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:429,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:432,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/generatekey.cpp:432,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/generatekey.cpp:433,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/generatekey.cpp:434,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:435,1
    - Dst: delete_recursively
      Src: /src/rnp/src/tests/generatekey.cpp:436,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 438
      start: 398
    functionDepth: 2
    functionLinenumber: 398
    functionLinenumberEnd: 438
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/generatekey.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_locate_key
    - assert_true
    - generate_test_key
    - delete_recursively
    - assert_rnp_success
    - setup_cli_rnp_common
    - ARRAY_SIZE
    - rnp_key_handle_destroy
    - cli_rnp_t::load_keyrings
    - rnp_get_secret_key_count
    - rnp_get_public_key_count
    - cli_rnp_t::end
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, rnpkeys_generatekey_verifyUserIdOption)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:446,1
    - Dst: setup_cli_rnp_common
      Src: /src/rnp/src/tests/generatekey.cpp:446,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:449,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:449,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:450,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:450,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:453,1
    - Dst: generate_test_key
      Src: /src/rnp/src/tests/generatekey.cpp:453,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:456,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:456,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:457,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:457,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:460,1
    - Dst: cli_rnp_t::load_keyrings
      Src: /src/rnp/src/tests/generatekey.cpp:460,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:462,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/generatekey.cpp:462,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:463,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:465,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/generatekey.cpp:465,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:466,1
    - Dst: fmt
      Src: /src/rnp/src/tests/generatekey.cpp:469,1
    - Dst: getenv_logname
      Src: /src/rnp/src/tests/generatekey.cpp:469,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:471,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/generatekey.cpp:471,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/generatekey.cpp:471,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/generatekey.cpp:472,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/generatekey.cpp:473,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:474,1
    - Dst: path_mkdir
      Src: /src/rnp/src/tests/generatekey.cpp:479,1
    - Dst: path_mkdir
      Src: /src/rnp/src/tests/generatekey.cpp:480,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/generatekey.cpp:480,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:483,1
    - Dst: setup_cli_rnp_common
      Src: /src/rnp/src/tests/generatekey.cpp:483,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/generatekey.cpp:483,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:486,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:486,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/generatekey.cpp:486,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:487,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:487,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/generatekey.cpp:487,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:490,1
    - Dst: generate_test_key
      Src: /src/rnp/src/tests/generatekey.cpp:490,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/generatekey.cpp:490,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:493,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:493,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/generatekey.cpp:493,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:494,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:494,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/generatekey.cpp:494,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:497,1
    - Dst: cli_rnp_t::load_keyrings
      Src: /src/rnp/src/tests/generatekey.cpp:497,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:499,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/generatekey.cpp:499,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:500,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:502,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/generatekey.cpp:502,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:503,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:506,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/generatekey.cpp:506,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/generatekey.cpp:506,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/generatekey.cpp:507,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:508,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/generatekey.cpp:508,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/generatekey.cpp:509,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/generatekey.cpp:510,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 440
    functionDepth: 2
    functionLinenumber: 440
    functionLinenumberEnd: 512
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/generatekey.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - assert_true
    - assert_null
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_get_secret_key_count
    - path_rnp_file_exists
    - rnp_locate_key
    - fmt
    - assert_int_equal
    - std::string::c_str
    - cli_rnp_t::load_keyrings
    - rnp_get_public_key_count
    - path_mkdir
    - generate_test_key
    - setup_cli_rnp_common
    - getenv_logname
    - assert_false
    - cli_rnp_t::end
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, rnpkeys_generatekey_verifykeyHomeDirOption)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:521,1
    - Dst: setup_cli_rnp_common
      Src: /src/rnp/src/tests/generatekey.cpp:521,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:523,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:523,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:524,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:524,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:525,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:525,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:526,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:526,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:528,1
    - Dst: generate_test_key
      Src: /src/rnp/src/tests/generatekey.cpp:528,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:530,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:530,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:531,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:531,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:532,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:532,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:533,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:533,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:536,1
    - Dst: cli_rnp_t::load_keyrings
      Src: /src/rnp/src/tests/generatekey.cpp:536,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:538,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/generatekey.cpp:538,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:539,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:541,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/generatekey.cpp:541,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:542,1
    - Dst: fmt
      Src: /src/rnp/src/tests/generatekey.cpp:544,1
    - Dst: getenv_logname
      Src: /src/rnp/src/tests/generatekey.cpp:544,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:546,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/generatekey.cpp:546,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/generatekey.cpp:546,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/generatekey.cpp:547,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/generatekey.cpp:548,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:549,1
    - Dst: path_mkdir
      Src: /src/rnp/src/tests/generatekey.cpp:552,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:554,1
    - Dst: setup_cli_rnp_common
      Src: /src/rnp/src/tests/generatekey.cpp:554,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:556,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:556,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:557,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:557,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:558,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:558,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:559,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:559,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:562,1
    - Dst: generate_test_key
      Src: /src/rnp/src/tests/generatekey.cpp:562,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:564,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:564,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:565,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:565,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:566,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:566,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:567,1
    - Dst: path_rnp_file_exists
      Src: /src/rnp/src/tests/generatekey.cpp:567,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:569,1
    - Dst: cli_rnp_t::load_keyrings
      Src: /src/rnp/src/tests/generatekey.cpp:569,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:571,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/generatekey.cpp:571,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:572,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:574,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/generatekey.cpp:574,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:575,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:577,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/generatekey.cpp:577,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/generatekey.cpp:577,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/generatekey.cpp:578,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/generatekey.cpp:579,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/generatekey.cpp:579,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/generatekey.cpp:580,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/generatekey.cpp:581,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:582,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 514
    functionDepth: 2
    functionLinenumber: 514
    functionLinenumberEnd: 583
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/generatekey.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - assert_true
    - assert_null
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_get_secret_key_count
    - path_rnp_file_exists
    - rnp_locate_key
    - fmt
    - assert_int_equal
    - std::string::c_str
    - cli_rnp_t::load_keyrings
    - rnp_get_public_key_count
    - path_mkdir
    - generate_test_key
    - setup_cli_rnp_common
    - getenv_logname
    - assert_false
    - cli_rnp_t::end
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, rnpkeys_generatekey_verifykeyKBXHomeDirOption)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: path_mkdir
      Src: /src/rnp/src/tests/generatekey.cpp:588,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:591,1
    - Dst: generate_test_key
      Src: /src/rnp/src/tests/generatekey.cpp:591,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:594,1
    - Dst: generate_test_key
      Src: /src/rnp/src/tests/generatekey.cpp:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 585
    functionDepth: 2
    functionLinenumber: 585
    functionLinenumberEnd: 596
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/generatekey.cpp
    functionUses: 0
    functionsReached:
    - generate_test_key
    - assert_false
    - assert_true
    - path_mkdir
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, rnpkeys_generatekey_verifykeyHomeDirNoPermission)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/rnp/src/tests/generatekey.cpp:608,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/tests/generatekey.cpp:611,1
    - Dst: write_pass_to_pipe
      Src: /src/rnp/src/tests/generatekey.cpp:612,1
    - Dst: close
      Src: /src/rnp/src/tests/generatekey.cpp:613,1
    - Dst: rnpkeys_init
      Src: /src/rnp/src/tests/generatekey.cpp:614,1
    - Dst: close
      Src: /src/rnp/src/tests/generatekey.cpp:615,1
    - Dst: pipe
      Src: /src/rnp/src/tests/generatekey.cpp:620,1
    - Dst: strlen
      Src: /src/rnp/src/tests/generatekey.cpp:623,1
    - Dst: write
      Src: /src/rnp/src/tests/generatekey.cpp:625,1
    - Dst: close
      Src: /src/rnp/src/tests/generatekey.cpp:627,1
    - Dst: dup
      Src: /src/rnp/src/tests/generatekey.cpp:630,1
    - Dst: dup2
      Src: /src/rnp/src/tests/generatekey.cpp:631,1
    - Dst: clearerr
      Src: /src/rnp/src/tests/generatekey.cpp:638,1
    - Dst: rnp_cmd
      Src: /src/rnp/src/tests/generatekey.cpp:640,1
    - Dst: dup2
      Src: /src/rnp/src/tests/generatekey.cpp:642,1
    - Dst: fcntl
      Src: /src/rnp/src/tests/generatekey.cpp:656,1
    - Dst: rnp_cfg::copy
      Src: /src/rnp/src/tests/generatekey.cpp:661,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/tests/generatekey.cpp:661,1
    - Dst: close
      Src: /src/rnp/src/tests/generatekey.cpp:666,1
    - Dst: close
      Src: /src/rnp/src/tests/generatekey.cpp:669,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 54
    argCount: 3
    argNames:
    - ctx
    - ops
    - rsp
    argTypes:
    - cli_rnp_t*
    - rnp_cfg
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 598
    functionDepth: 1
    functionLinenumber: 598
    functionLinenumberEnd: 672
    functionName: ask_expert_details
    functionSourceFile: /src/rnp/src/tests/generatekey.cpp
    functionUses: 0
    functionsReached:
    - rnpkeys_init
    - write_pass_to_pipe
    - dup
    - rnp_cfg::copy
    - pipe
    - clearerr
    - fcntl
    - close
    - rnp_cmd
    - cli_rnp_t*::cfg
    - strlen
    - write
    - dup2
    - rnp_cfg::set_int
    linkageType: ''
    returnType: bool
    signature: bool ask_expert_details(cli_rnp_t *ctx, rnp_cfg &ops, const char *rsp)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/generatekey.cpp:693,1
    - Dst: rnp_key_get_alg
      Src: /src/rnp/src/tests/generatekey.cpp:696,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/generatekey.cpp:696,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/generatekey.cpp:699,1
    - Dst: rnp_key_get_curve
      Src: /src/rnp/src/tests/generatekey.cpp:702,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/generatekey.cpp:702,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/generatekey.cpp:705,1
    - Dst: rnp_key_get_bits
      Src: /src/rnp/src/tests/generatekey.cpp:707,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/generatekey.cpp:717,1
    - Dst: rnp_key_get_alg
      Src: /src/rnp/src/tests/generatekey.cpp:721,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/generatekey.cpp:721,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/generatekey.cpp:724,1
    - Dst: rnp_key_get_curve
      Src: /src/rnp/src/tests/generatekey.cpp:727,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/generatekey.cpp:727,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/generatekey.cpp:730,1
    - Dst: rnp_key_get_bits
      Src: /src/rnp/src/tests/generatekey.cpp:732,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/generatekey.cpp:736,1
    - Dst: rnp_signature_get_hash_alg
      Src: /src/rnp/src/tests/generatekey.cpp:739,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/generatekey.cpp:739,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/generatekey.cpp:745,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/generatekey.cpp:746,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/generatekey.cpp:747,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/generatekey.cpp:748,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 61
    argCount: 9
    argNames:
    - rnp
    - uid
    - primary_alg
    - sub_alg
    - primary_curve
    - sub_curve
    - bits
    - sub_bits
    - hash
    argTypes:
    - cli_rnp_t*
    - char*
    - char*
    - char*
    - char*
    - char*
    - int
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 750
    functionName: check_key_props
    functionSourceFile: /src/rnp/src/tests/generatekey.cpp
    functionUses: 0
    functionsReached:
    - rnp_locate_key
    - rnp_key_get_subkey_at
    - rnp_key_get_bits
    - rnp_buffer_destroy
    - rnp_key_get_curve
    - strcmp
    - rnp_key_handle_destroy
    - rnp_signature_get_hash_alg
    - rnp_key_get_alg
    - rnp_key_get_signature_at
    - rnp_signature_handle_destroy
    linkageType: ''
    returnType: bool
    signature: "bool check_key_props(cli_rnp_t * rnp,\n                const char
      *uid,\n                const char *primary_alg,\n                const char
      *sub_alg,\n                const char *primary_curve,\n                const
      char *sub_curve,\n                int         bits,\n                int         sub_bits,\n
      \               const char *hash)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::get_str
      Src: /src/rnp/src/tests/generatekey.cpp:761,1
    - Dst: rnp_cfg::get_str
      Src: /src/rnp/src/tests/generatekey.cpp:764,1
    - Dst: rnp_cfg::get_str
      Src: /src/rnp/src/tests/generatekey.cpp:767,1
    - Dst: rnp_cfg::get_str
      Src: /src/rnp/src/tests/generatekey.cpp:770,1
    - Dst: rnp_cfg::get_int
      Src: /src/rnp/src/tests/generatekey.cpp:773,1
    - Dst: rnp_cfg::get_int
      Src: /src/rnp/src/tests/generatekey.cpp:776,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 7
    argNames:
    - cfg
    - primary_alg
    - sub_alg
    - primary_curve
    - sub_curve
    - bits
    - sub_bits
    argTypes:
    - rnp_cfg
    - char*
    - char*
    - char*
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 780
    functionName: check_cfg_props
    functionSourceFile: /src/rnp/src/tests/generatekey.cpp
    functionUses: 0
    functionsReached:
    - rnp_cfg::get_int
    - rnp_cfg::get_str
    linkageType: ''
    returnType: bool
    signature: "bool check_cfg_props(const rnp_cfg &cfg,\n                const char
      *   primary_alg,\n                const char *   sub_alg,\n                const
      char *   primary_curve,\n                const char *   sub_curve,\n                int
      \           bits,\n                int            sub_bits)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/generatekey.cpp:787,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/tests/generatekey.cpp:788,1
    - Dst: rnp_cfg::unset
      Src: /src/rnp/src/tests/generatekey.cpp:791,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/tests/generatekey.cpp:792,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:793,1
    - Dst: ask_expert_details
      Src: /src/rnp/src/tests/generatekey.cpp:793,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:794,1
    - Dst: check_cfg_props
      Src: /src/rnp/src/tests/generatekey.cpp:794,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:795,1
    - Dst: check_cfg_props
      Src: /src/rnp/src/tests/generatekey.cpp:795,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:796,1
    - Dst: check_cfg_props
      Src: /src/rnp/src/tests/generatekey.cpp:796,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:797,1
    - Dst: check_cfg_props
      Src: /src/rnp/src/tests/generatekey.cpp:797,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:798,1
    - Dst: check_cfg_props
      Src: /src/rnp/src/tests/generatekey.cpp:798,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:799,1
    - Dst: check_cfg_props
      Src: /src/rnp/src/tests/generatekey.cpp:799,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:800,1
    - Dst: check_cfg_props
      Src: /src/rnp/src/tests/generatekey.cpp:800,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:801,1
    - Dst: check_key_props
      Src: /src/rnp/src/tests/generatekey.cpp:801,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:803,1
    - Dst: rnp_cfg::unset
      Src: /src/rnp/src/tests/generatekey.cpp:806,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/tests/generatekey.cpp:807,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:808,1
    - Dst: ask_expert_details
      Src: /src/rnp/src/tests/generatekey.cpp:808,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:809,1
    - Dst: check_cfg_props
      Src: /src/rnp/src/tests/generatekey.cpp:809,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:810,1
    - Dst: check_key_props
      Src: /src/rnp/src/tests/generatekey.cpp:810,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:812,1
    - Dst: check_key_props
      Src: /src/rnp/src/tests/generatekey.cpp:812,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:814,1
    - Dst: rnp_cfg::unset
      Src: /src/rnp/src/tests/generatekey.cpp:817,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/tests/generatekey.cpp:818,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:819,1
    - Dst: ask_expert_details
      Src: /src/rnp/src/tests/generatekey.cpp:819,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:820,1
    - Dst: check_cfg_props
      Src: /src/rnp/src/tests/generatekey.cpp:820,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:821,1
    - Dst: check_key_props
      Src: /src/rnp/src/tests/generatekey.cpp:821,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:823,1
    - Dst: rnp_cfg::unset
      Src: /src/rnp/src/tests/generatekey.cpp:826,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/tests/generatekey.cpp:827,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:828,1
    - Dst: ask_expert_details
      Src: /src/rnp/src/tests/generatekey.cpp:828,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/generatekey.cpp:829,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:830,1
    - Dst: check_cfg_props
      Src: /src/rnp/src/tests/generatekey.cpp:831,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:832,1
    - Dst: check_key_props
      Src: /src/rnp/src/tests/generatekey.cpp:832,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:843,1
    - Dst: check_cfg_props
      Src: /src/rnp/src/tests/generatekey.cpp:843,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:844,1
    - Dst: check_key_props
      Src: /src/rnp/src/tests/generatekey.cpp:844,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:854,1
    - Dst: rnp_cfg::unset
      Src: /src/rnp/src/tests/generatekey.cpp:857,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/tests/generatekey.cpp:858,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/generatekey.cpp:859,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:860,1
    - Dst: ask_expert_details
      Src: /src/rnp/src/tests/generatekey.cpp:860,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:861,1
    - Dst: check_cfg_props
      Src: /src/rnp/src/tests/generatekey.cpp:862,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:863,1
    - Dst: check_key_props
      Src: /src/rnp/src/tests/generatekey.cpp:863,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:873,1
    - Dst: ask_expert_details
      Src: /src/rnp/src/tests/generatekey.cpp:873,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:875,1
    - Dst: rnp_cfg::unset
      Src: /src/rnp/src/tests/generatekey.cpp:878,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/tests/generatekey.cpp:879,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/generatekey.cpp:880,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:881,1
    - Dst: ask_expert_details
      Src: /src/rnp/src/tests/generatekey.cpp:881,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:882,1
    - Dst: check_cfg_props
      Src: /src/rnp/src/tests/generatekey.cpp:883,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:884,1
    - Dst: check_key_props
      Src: /src/rnp/src/tests/generatekey.cpp:884,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:894,1
    - Dst: ask_expert_details
      Src: /src/rnp/src/tests/generatekey.cpp:894,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:896,1
    - Dst: rnp_cfg::unset
      Src: /src/rnp/src/tests/generatekey.cpp:899,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/tests/generatekey.cpp:900,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/generatekey.cpp:901,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:902,1
    - Dst: ask_expert_details
      Src: /src/rnp/src/tests/generatekey.cpp:902,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:903,1
    - Dst: check_cfg_props
      Src: /src/rnp/src/tests/generatekey.cpp:903,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:904,1
    - Dst: check_key_props
      Src: /src/rnp/src/tests/generatekey.cpp:904,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:914,1
    - Dst: ask_expert_details
      Src: /src/rnp/src/tests/generatekey.cpp:914,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:916,1
    - Dst: rnp_cfg::clear
      Src: /src/rnp/src/tests/generatekey.cpp:919,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/generatekey.cpp:920,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/tests/generatekey.cpp:921,1
    - Dst: rnp_cfg::unset
      Src: /src/rnp/src/tests/generatekey.cpp:922,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/tests/generatekey.cpp:923,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:924,1
    - Dst: ask_expert_details
      Src: /src/rnp/src/tests/generatekey.cpp:924,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:925,1
    - Dst: check_cfg_props
      Src: /src/rnp/src/tests/generatekey.cpp:925,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:926,1
    - Dst: check_key_props
      Src: /src/rnp/src/tests/generatekey.cpp:926,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:928,1
    - Dst: rnp_cfg::clear
      Src: /src/rnp/src/tests/generatekey.cpp:931,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/generatekey.cpp:932,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/tests/generatekey.cpp:933,1
    - Dst: rnp_cfg::unset
      Src: /src/rnp/src/tests/generatekey.cpp:934,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/tests/generatekey.cpp:935,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:936,1
    - Dst: ask_expert_details
      Src: /src/rnp/src/tests/generatekey.cpp:936,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:937,1
    - Dst: check_cfg_props
      Src: /src/rnp/src/tests/generatekey.cpp:937,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:938,1
    - Dst: check_key_props
      Src: /src/rnp/src/tests/generatekey.cpp:938,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:940,1
    - Dst: rnp_cfg::unset
      Src: /src/rnp/src/tests/generatekey.cpp:943,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/tests/generatekey.cpp:944,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:945,1
    - Dst: ask_expert_details
      Src: /src/rnp/src/tests/generatekey.cpp:945,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:946,1
    - Dst: check_cfg_props
      Src: /src/rnp/src/tests/generatekey.cpp:946,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:947,1
    - Dst: check_key_props
      Src: /src/rnp/src/tests/generatekey.cpp:947,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:949,1
    - Dst: rnp_cfg::clear
      Src: /src/rnp/src/tests/generatekey.cpp:952,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/generatekey.cpp:953,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/tests/generatekey.cpp:954,1
    - Dst: rnp_cfg::unset
      Src: /src/rnp/src/tests/generatekey.cpp:955,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/tests/generatekey.cpp:956,1
    - Dst: sm2_enabled
      Src: /src/rnp/src/tests/generatekey.cpp:957,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:958,1
    - Dst: ask_expert_details
      Src: /src/rnp/src/tests/generatekey.cpp:958,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:960,1
    - Dst: ask_expert_details
      Src: /src/rnp/src/tests/generatekey.cpp:960,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:961,1
    - Dst: check_cfg_props
      Src: /src/rnp/src/tests/generatekey.cpp:961,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:962,1
    - Dst: check_key_props
      Src: /src/rnp/src/tests/generatekey.cpp:962,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:965,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 106
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 782
    functionDepth: 2
    functionLinenumber: 782
    functionLinenumberEnd: 966
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/generatekey.cpp
    functionUses: 0
    functionsReached:
    - ask_expert_details
    - rnp_cfg::add_str
    - sm2_enabled
    - assert_true
    - rnp_cfg::unset
    - rnp_cfg::set_bool
    - assert_false
    - check_cfg_props
    - check_key_props
    - brainpool_enabled
    - rnp_cfg::clear
    - rnp_cfg::set_int
    - cli_rnp_t::end
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, rnpkeys_generatekey_testExpertMode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/generatekey.cpp:973,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/generatekey.cpp:974,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/generatekey.cpp:975,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/tests/generatekey.cpp:976,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/tests/generatekey.cpp:977,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:978,1
    - Dst: ask_expert_details
      Src: /src/rnp/src/tests/generatekey.cpp:978,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:979,1
    - Dst: check_cfg_props
      Src: /src/rnp/src/tests/generatekey.cpp:979,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:980,1
    - Dst: check_key_props
      Src: /src/rnp/src/tests/generatekey.cpp:980,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:989,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 968
    functionDepth: 2
    functionLinenumber: 968
    functionLinenumberEnd: 990
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/generatekey.cpp
    functionUses: 0
    functionsReached:
    - ask_expert_details
    - rnp_cfg::add_str
    - assert_true
    - rnp_cfg::set_bool
    - check_cfg_props
    - check_key_props
    - rnp_cfg::set_int
    - cli_rnp_t::end
    - rnp_cfg::set_str
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, generatekeyECDSA_explicitlySetSmallOutputDigest_DigestAlgAdjusted)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/generatekey.cpp:997,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/tests/generatekey.cpp:998,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/tests/generatekey.cpp:999,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/tests/generatekey.cpp:1000,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1001,1
    - Dst: ask_expert_details
      Src: /src/rnp/src/tests/generatekey.cpp:1001,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:1002,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1003
      start: 992
    functionDepth: 2
    functionLinenumber: 992
    functionLinenumberEnd: 1003
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/generatekey.cpp
    functionUses: 0
    functionsReached:
    - ask_expert_details
    - rnp_cfg::add_str
    - rnp_cfg::set_bool
    - assert_false
    - rnp_cfg::set_int
    - cli_rnp_t::end
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, generatekey_multipleUserIds_ShouldFail)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/generatekey.cpp:1010,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/generatekey.cpp:1011,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/tests/generatekey.cpp:1012,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/tests/generatekey.cpp:1013,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1014,1
    - Dst: ask_expert_details
      Src: /src/rnp/src/tests/generatekey.cpp:1014,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1015,1
    - Dst: check_cfg_props
      Src: /src/rnp/src/tests/generatekey.cpp:1015,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1016,1
    - Dst: check_key_props
      Src: /src/rnp/src/tests/generatekey.cpp:1016,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:1025,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1026
      start: 1005
    functionDepth: 2
    functionLinenumber: 1005
    functionLinenumberEnd: 1026
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/generatekey.cpp
    functionUses: 0
    functionsReached:
    - ask_expert_details
    - rnp_cfg::add_str
    - assert_true
    - rnp_cfg::set_bool
    - check_cfg_props
    - check_key_props
    - rnp_cfg::set_int
    - cli_rnp_t::end
    - rnp_cfg::set_str
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, generatekeyECDSA_explicitlySetBiggerThanNeededDigest_ShouldSucceed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/generatekey.cpp:1033,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/generatekey.cpp:1034,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/tests/generatekey.cpp:1035,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1038,1
    - Dst: ask_expert_details
      Src: /src/rnp/src/tests/generatekey.cpp:1038,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/generatekey.cpp:1039,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1028
    functionDepth: 2
    functionLinenumber: 1028
    functionLinenumberEnd: 1040
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/generatekey.cpp
    functionUses: 0
    functionsReached:
    - ask_expert_details
    - rnp_cfg::set_bool
    - assert_false
    - rnp_cfg::set_int
    - cli_rnp_t::end
    - rnp_cfg::set_str
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, generatekeyECDSA_explicitlySetUnknownDigest_ShouldFail)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/generatekey.cpp:1047,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/generatekey.cpp:1048,1
    - Dst: rnp::Key::Key
      Src: /src/rnp/src/tests/generatekey.cpp:1054,1
    - Dst: rnp::Key::Key
      Src: /src/rnp/src/tests/generatekey.cpp:1055,1
    - Dst: dynamic_cast<pgp::RSAKeyParams &>
      Src: /src/rnp/src/tests/generatekey.cpp:1062,1
    - Dst: rnp::KeygenParams::key_params
      Src: /src/rnp/src/tests/generatekey.cpp:1062,1
    - Dst: set_bits
      Src: /src/rnp/src/tests/generatekey.cpp:1063,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1069,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/generatekey.cpp:1069,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1072,1
    - Dst: auto::add_key
      Src: /src/rnp/src/tests/generatekey.cpp:1072,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1073,1
    - Dst: auto::add_key
      Src: /src/rnp/src/tests/generatekey.cpp:1073,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/generatekey.cpp:1075,1
    - Dst: rnp::Key::grip
      Src: /src/rnp/src/tests/generatekey.cpp:1075,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/generatekey.cpp:1076,1
    - Dst: rnp::Key::grip
      Src: /src/rnp/src/tests/generatekey.cpp:1076,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/generatekey.cpp:1077,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/generatekey.cpp:1078,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1079,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/generatekey.cpp:1079,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1080,1
    - Dst: rnp::Key*::validated
      Src: /src/rnp/src/tests/generatekey.cpp:1080,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1081,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/generatekey.cpp:1081,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1082,1
    - Dst: valid
      Src: /src/rnp/src/tests/generatekey.cpp:1082,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1083,1
    - Dst: validated
      Src: /src/rnp/src/tests/generatekey.cpp:1083,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1084,1
    - Dst: expired
      Src: /src/rnp/src/tests/generatekey.cpp:1084,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:1087,1
    - Dst: rnp::Key::rawpkt_count
      Src: /src/rnp/src/tests/generatekey.cpp:1087,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:1088,1
    - Dst: rnp::Key::rawpkt_count
      Src: /src/rnp/src/tests/generatekey.cpp:1088,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:1089,1
    - Dst: rnp::Key::sig_count
      Src: /src/rnp/src/tests/generatekey.cpp:1089,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:1090,1
    - Dst: rnp::Key::sig_count
      Src: /src/rnp/src/tests/generatekey.cpp:1090,1
    - Dst: rnp::Key::get_sig
      Src: /src/rnp/src/tests/generatekey.cpp:1091,1
    - Dst: rnp::Key::get_sig
      Src: /src/rnp/src/tests/generatekey.cpp:1092,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/generatekey.cpp:1094,1
    - Dst: pgp::pkt::Signature*::material_buf::size
      Src: /src/rnp/src/tests/generatekey.cpp:1094,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/generatekey.cpp:1095,1
    - Dst: pgp::pkt::Signature*::material_buf::size
      Src: /src/rnp/src/tests/generatekey.cpp:1095,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:1097,1
    - Dst: rnp::Key::get_sig
      Src: /src/rnp/src/tests/generatekey.cpp:1097,1
    - Dst: tag
      Src: /src/rnp/src/tests/generatekey.cpp:1097,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:1098,1
    - Dst: rnp::Key::get_sig
      Src: /src/rnp/src/tests/generatekey.cpp:1098,1
    - Dst: tag
      Src: /src/rnp/src/tests/generatekey.cpp:1098,1
    - Dst: rnp::Key::validate_cert
      Src: /src/rnp/src/tests/generatekey.cpp:1103,1
    - Dst: rnp::Key::pkt
      Src: /src/rnp/src/tests/generatekey.cpp:1103,1
    - Dst: rnp::Key::get_uid
      Src: /src/rnp/src/tests/generatekey.cpp:1103,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1104,1
    - Dst: rnp::SignatureInfo::validity::valid
      Src: /src/rnp/src/tests/generatekey.cpp:1104,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1105,1
    - Dst: pgp::pkt::Signature*::keyfp
      Src: /src/rnp/src/tests/generatekey.cpp:1105,1
    - Dst: rnp::Key::fp
      Src: /src/rnp/src/tests/generatekey.cpp:1105,1
    - Dst: pgp::pkt::Signature*::get_subpkt
      Src: /src/rnp/src/tests/generatekey.cpp:1107,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/generatekey.cpp:1108,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1109,1
    - Dst: auto::hashed
      Src: /src/rnp/src/tests/generatekey.cpp:1109,1
    - Dst: pgp::pkt::Signature*::get_subpkt
      Src: /src/rnp/src/tests/generatekey.cpp:1110,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/generatekey.cpp:1111,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1112,1
    - Dst: auto::hashed
      Src: /src/rnp/src/tests/generatekey.cpp:1112,1
    - Dst: assert_memory_equal
      Src: /src/rnp/src/tests/generatekey.cpp:1113,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/generatekey.cpp:1113,1
    - Dst: rnp::Key::keyid
      Src: /src/rnp/src/tests/generatekey.cpp:1113,1
    - Dst: pgp::pkt::Signature*::get_subpkt
      Src: /src/rnp/src/tests/generatekey.cpp:1114,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/generatekey.cpp:1115,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1116,1
    - Dst: auto::hashed
      Src: /src/rnp/src/tests/generatekey.cpp:1116,1
    - Dst: dynamic_cast<pgp::pkt::sigsub::CreationTime *>
      Src: /src/rnp/src/tests/generatekey.cpp:1117,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1118,1
    - Dst: auto::time
      Src: /src/rnp/src/tests/generatekey.cpp:1118,1
    - Dst: time
      Src: /src/rnp/src/tests/generatekey.cpp:1118,1
    - Dst: rnp::Key::validate_cert
      Src: /src/rnp/src/tests/generatekey.cpp:1121,1
    - Dst: rnp::Key::pkt
      Src: /src/rnp/src/tests/generatekey.cpp:1121,1
    - Dst: rnp::Key::get_uid
      Src: /src/rnp/src/tests/generatekey.cpp:1121,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1122,1
    - Dst: rnp::SignatureInfo::validity::valid
      Src: /src/rnp/src/tests/generatekey.cpp:1122,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1123,1
    - Dst: pgp::pkt::Signature*::keyfp
      Src: /src/rnp/src/tests/generatekey.cpp:1123,1
    - Dst: rnp::Key::fp
      Src: /src/rnp/src/tests/generatekey.cpp:1123,1
    - Dst: rnp::Key::validate_cert
      Src: /src/rnp/src/tests/generatekey.cpp:1129,1
    - Dst: rnp::Key::pkt
      Src: /src/rnp/src/tests/generatekey.cpp:1129,1
    - Dst: rnp::Key::get_uid
      Src: /src/rnp/src/tests/generatekey.cpp:1129,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1130,1
    - Dst: rnp::SignatureInfo::validity::valid
      Src: /src/rnp/src/tests/generatekey.cpp:1130,1
    - Dst: rnp::Key::validate_cert
      Src: /src/rnp/src/tests/generatekey.cpp:1131,1
    - Dst: rnp::Key::pkt
      Src: /src/rnp/src/tests/generatekey.cpp:1131,1
    - Dst: rnp::Key::get_uid
      Src: /src/rnp/src/tests/generatekey.cpp:1131,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1132,1
    - Dst: rnp::SignatureInfo::validity::valid
      Src: /src/rnp/src/tests/generatekey.cpp:1132,1
    - Dst: pgp_userid_pkt_t::uid::assign
      Src: /src/rnp/src/tests/generatekey.cpp:1140,1
    - Dst: strlen
      Src: /src/rnp/src/tests/generatekey.cpp:1140,1
    - Dst: rnp::Key::validate_cert
      Src: /src/rnp/src/tests/generatekey.cpp:1142,1
    - Dst: rnp::Key::pkt
      Src: /src/rnp/src/tests/generatekey.cpp:1142,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1143,1
    - Dst: rnp::SignatureInfo::validity::valid
      Src: /src/rnp/src/tests/generatekey.cpp:1143,1
    - Dst: rnp::Key::validate_cert
      Src: /src/rnp/src/tests/generatekey.cpp:1144,1
    - Dst: rnp::Key::pkt
      Src: /src/rnp/src/tests/generatekey.cpp:1144,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1145,1
    - Dst: rnp::SignatureInfo::validity::valid
      Src: /src/rnp/src/tests/generatekey.cpp:1145,1
    - Dst: rnp::Key*::validate
      Src: /src/rnp/src/tests/generatekey.cpp:1149,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1150,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/generatekey.cpp:1150,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1151,1
    - Dst: rnp::Key*::validated
      Src: /src/rnp/src/tests/generatekey.cpp:1151,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1152,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/generatekey.cpp:1152,1
    - Dst: validate
      Src: /src/rnp/src/tests/generatekey.cpp:1154,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1155,1
    - Dst: valid
      Src: /src/rnp/src/tests/generatekey.cpp:1155,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1156,1
    - Dst: validated
      Src: /src/rnp/src/tests/generatekey.cpp:1156,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1157,1
    - Dst: expired
      Src: /src/rnp/src/tests/generatekey.cpp:1157,1
    - Dst: rnp::Key*::validate
      Src: /src/rnp/src/tests/generatekey.cpp:1159,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1160,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/generatekey.cpp:1160,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1161,1
    - Dst: rnp::Key*::validated
      Src: /src/rnp/src/tests/generatekey.cpp:1161,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1162,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/generatekey.cpp:1162,1
    - Dst: validate
      Src: /src/rnp/src/tests/generatekey.cpp:1164,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1165,1
    - Dst: valid
      Src: /src/rnp/src/tests/generatekey.cpp:1165,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1166,1
    - Dst: validated
      Src: /src/rnp/src/tests/generatekey.cpp:1166,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1167,1
    - Dst: expired
      Src: /src/rnp/src/tests/generatekey.cpp:1167,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/generatekey.cpp:1169,1
    - Dst: rnp::Signature::validity::reset
      Src: /src/rnp/src/tests/generatekey.cpp:1171,1
    - Dst: rnp::Key*::validate
      Src: /src/rnp/src/tests/generatekey.cpp:1173,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1174,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/generatekey.cpp:1174,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1175,1
    - Dst: rnp::Key*::validated
      Src: /src/rnp/src/tests/generatekey.cpp:1175,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1176,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/generatekey.cpp:1176,1
    - Dst: rnp::Signature::validity::reset
      Src: /src/rnp/src/tests/generatekey.cpp:1179,1
    - Dst: rnp::Key*::validate
      Src: /src/rnp/src/tests/generatekey.cpp:1180,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1181,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/generatekey.cpp:1181,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1182,1
    - Dst: rnp::Key*::validated
      Src: /src/rnp/src/tests/generatekey.cpp:1182,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1183,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/generatekey.cpp:1183,1
    - Dst: rnp::Key::Key
      Src: /src/rnp/src/tests/generatekey.cpp:1188,1
    - Dst: rnp::Key::Key
      Src: /src/rnp/src/tests/generatekey.cpp:1189,1
    - Dst: dynamic_cast<pgp::RSAKeyParams &>
      Src: /src/rnp/src/tests/generatekey.cpp:1196,1
    - Dst: rnp::KeygenParams::key_params
      Src: /src/rnp/src/tests/generatekey.cpp:1196,1
    - Dst: set_bits
      Src: /src/rnp/src/tests/generatekey.cpp:1197,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1202,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/generatekey.cpp:1202,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1203,1
    - Dst: rnp::Key::valid
      Src: /src/rnp/src/tests/generatekey.cpp:1203,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1204,1
    - Dst: rnp::Key::validated
      Src: /src/rnp/src/tests/generatekey.cpp:1204,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1205,1
    - Dst: rnp::Key::expired
      Src: /src/rnp/src/tests/generatekey.cpp:1205,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1206,1
    - Dst: rnp::Key::valid
      Src: /src/rnp/src/tests/generatekey.cpp:1206,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1207,1
    - Dst: rnp::Key::validated
      Src: /src/rnp/src/tests/generatekey.cpp:1207,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1208,1
    - Dst: rnp::Key::expired
      Src: /src/rnp/src/tests/generatekey.cpp:1208,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:1211,1
    - Dst: rnp::Key::rawpkt_count
      Src: /src/rnp/src/tests/generatekey.cpp:1211,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:1212,1
    - Dst: rnp::Key::rawpkt_count
      Src: /src/rnp/src/tests/generatekey.cpp:1212,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:1213,1
    - Dst: rnp::Key::sig_count
      Src: /src/rnp/src/tests/generatekey.cpp:1213,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:1214,1
    - Dst: rnp::Key::sig_count
      Src: /src/rnp/src/tests/generatekey.cpp:1214,1
    - Dst: rnp::Key::get_sig
      Src: /src/rnp/src/tests/generatekey.cpp:1215,1
    - Dst: rnp::Key::get_sig
      Src: /src/rnp/src/tests/generatekey.cpp:1216,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/generatekey.cpp:1218,1
    - Dst: pgp::pkt::Signature*::material_buf::size
      Src: /src/rnp/src/tests/generatekey.cpp:1218,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/generatekey.cpp:1219,1
    - Dst: pgp::pkt::Signature*::material_buf::size
      Src: /src/rnp/src/tests/generatekey.cpp:1219,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:1221,1
    - Dst: rnp::Key::get_sig
      Src: /src/rnp/src/tests/generatekey.cpp:1221,1
    - Dst: tag
      Src: /src/rnp/src/tests/generatekey.cpp:1221,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/generatekey.cpp:1222,1
    - Dst: rnp::Key::get_sig
      Src: /src/rnp/src/tests/generatekey.cpp:1222,1
    - Dst: tag
      Src: /src/rnp/src/tests/generatekey.cpp:1222,1
    - Dst: rnp::Key*::validate_binding
      Src: /src/rnp/src/tests/generatekey.cpp:1225,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1226,1
    - Dst: rnp::SignatureInfo::validity::valid
      Src: /src/rnp/src/tests/generatekey.cpp:1226,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1227,1
    - Dst: pgp::pkt::Signature*::keyfp
      Src: /src/rnp/src/tests/generatekey.cpp:1227,1
    - Dst: rnp::Key*::fp
      Src: /src/rnp/src/tests/generatekey.cpp:1227,1
    - Dst: pgp::pkt::Signature*::get_subpkt
      Src: /src/rnp/src/tests/generatekey.cpp:1229,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/generatekey.cpp:1230,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1231,1
    - Dst: auto::hashed
      Src: /src/rnp/src/tests/generatekey.cpp:1231,1
    - Dst: pgp::pkt::Signature*::get_subpkt
      Src: /src/rnp/src/tests/generatekey.cpp:1232,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/generatekey.cpp:1233,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1234,1
    - Dst: auto::hashed
      Src: /src/rnp/src/tests/generatekey.cpp:1234,1
    - Dst: assert_memory_equal
      Src: /src/rnp/src/tests/generatekey.cpp:1235,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/generatekey.cpp:1236,1
    - Dst: rnp::Key*::keyid
      Src: /src/rnp/src/tests/generatekey.cpp:1236,1
    - Dst: pgp::pkt::Signature*::get_subpkt
      Src: /src/rnp/src/tests/generatekey.cpp:1237,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/generatekey.cpp:1238,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1239,1
    - Dst: auto::hashed
      Src: /src/rnp/src/tests/generatekey.cpp:1239,1
    - Dst: dynamic_cast<pgp::pkt::sigsub::CreationTime *>
      Src: /src/rnp/src/tests/generatekey.cpp:1240,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1241,1
    - Dst: auto::time
      Src: /src/rnp/src/tests/generatekey.cpp:1241,1
    - Dst: time
      Src: /src/rnp/src/tests/generatekey.cpp:1241,1
    - Dst: rnp::Key*::validate_binding
      Src: /src/rnp/src/tests/generatekey.cpp:1244,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1245,1
    - Dst: rnp::SignatureInfo::validity::valid
      Src: /src/rnp/src/tests/generatekey.cpp:1245,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1246,1
    - Dst: pgp::pkt::Signature*::keyfp
      Src: /src/rnp/src/tests/generatekey.cpp:1246,1
    - Dst: fp
      Src: /src/rnp/src/tests/generatekey.cpp:1246,1
    - Dst: rnp::Key*::validate_binding
      Src: /src/rnp/src/tests/generatekey.cpp:1252,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1253,1
    - Dst: rnp::SignatureInfo::validity::valid
      Src: /src/rnp/src/tests/generatekey.cpp:1253,1
    - Dst: rnp::Key*::validate_binding
      Src: /src/rnp/src/tests/generatekey.cpp:1254,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1255,1
    - Dst: rnp::SignatureInfo::validity::valid
      Src: /src/rnp/src/tests/generatekey.cpp:1255,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1261,1
    - Dst: auto::add_key
      Src: /src/rnp/src/tests/generatekey.cpp:1261,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1262,1
    - Dst: auto::add_key
      Src: /src/rnp/src/tests/generatekey.cpp:1262,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/generatekey.cpp:1264,1
    - Dst: rnp::Key::grip
      Src: /src/rnp/src/tests/generatekey.cpp:1264,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/generatekey.cpp:1265,1
    - Dst: rnp::Key::grip
      Src: /src/rnp/src/tests/generatekey.cpp:1265,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/generatekey.cpp:1266,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/generatekey.cpp:1267,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1268,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/generatekey.cpp:1268,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1269,1
    - Dst: rnp::Key*::validated
      Src: /src/rnp/src/tests/generatekey.cpp:1269,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1270,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/generatekey.cpp:1270,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1271,1
    - Dst: valid
      Src: /src/rnp/src/tests/generatekey.cpp:1271,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1272,1
    - Dst: validated
      Src: /src/rnp/src/tests/generatekey.cpp:1272,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1273,1
    - Dst: expired
      Src: /src/rnp/src/tests/generatekey.cpp:1273,1
    - Dst: rnp::Key*::validate
      Src: /src/rnp/src/tests/generatekey.cpp:1276,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1277,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/generatekey.cpp:1277,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1278,1
    - Dst: rnp::Key*::validated
      Src: /src/rnp/src/tests/generatekey.cpp:1278,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1279,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/generatekey.cpp:1279,1
    - Dst: validate
      Src: /src/rnp/src/tests/generatekey.cpp:1280,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1281,1
    - Dst: valid
      Src: /src/rnp/src/tests/generatekey.cpp:1281,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/generatekey.cpp:1282,1
    - Dst: validated
      Src: /src/rnp/src/tests/generatekey.cpp:1282,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/generatekey.cpp:1283,1
    - Dst: expired
      Src: /src/rnp/src/tests/generatekey.cpp:1283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 154
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1288
      start: 1045
    functionDepth: 1
    functionLinenumber: 1045
    functionLinenumberEnd: 1288
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/generatekey.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp::SignatureInfo::validity::valid
    - rnp::Key*::keyid
    - expired
    - rnp::Key::fp
    - rnp::Key::grip
    - auto::add_key
    - set_bits
    - rnp::KeygenParams::generate
    - validated
    - rnp::Key::sig_count
    - valid
    - rnp::Key::validate_cert
    - rnp::Key*::validated
    - strlen
    - rnp::Key*::get_sig
    - assert_int_not_equal
    - validate
    - assert_true
    - rnp::Key::pkt
    - fp
    - rnp::Key::rawpkt_count
    - auto::hashed
    - rnp::Key::keyid
    - tag
    - dynamic_cast<pgp::RSAKeyParams &>
    - rnp::Signature::validity::reset
    - rnp::Key*::validate
    - rnp::Key::validated
    - pgp::pkt::Signature*::get_subpkt
    - assert_int_equal
    - pgp::pkt::Signature*::keyfp
    - rnp::KeygenParams::key_params
    - dynamic_cast<pgp::pkt::sigsub::CreationTime *>
    - rnp::KeyStore::KeyStore
    - time
    - auto::time
    - pgp::pkt::Signature*::material_buf::size
    - rnp::Key::Key
    - rnp::Key*::valid
    - assert_memory_equal
    - rnp_tests_get_key_by_grip
    - pgp_userid_pkt_t::uid::assign
    - rnp::Key*::fp
    - auto::data
    - rnp::Key*::validate_binding
    - rnp::Key::valid
    - rnp::Key::get_uid
    - rnp::Key*::expired
    - assert_false
    - rnp::Key::expired
    - rnp::Key::get_sig
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_generated_key_sigs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:57,1
    - Dst: rnp_get_default_homedir
      Src: /src/rnp/src/tests/ffi.cpp:57,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:59,1
    - Dst: rnp_get_default_homedir
      Src: /src/rnp/src/tests/ffi.cpp:59,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:60,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:61,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:65,1
    - Dst: rnp_detect_homedir_info
      Src: /src/rnp/src/tests/ffi.cpp:66,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:67,1
    - Dst: rnp_detect_homedir_info
      Src: /src/rnp/src/tests/ffi.cpp:68,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:69,1
    - Dst: rnp_detect_homedir_info
      Src: /src/rnp/src/tests/ffi.cpp:70,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:71,1
    - Dst: rnp_detect_homedir_info
      Src: /src/rnp/src/tests/ffi.cpp:72,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:73,1
    - Dst: rnp_detect_homedir_info
      Src: /src/rnp/src/tests/ffi.cpp:74,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:76,1
    - Dst: rnp_detect_homedir_info
      Src: /src/rnp/src/tests/ffi.cpp:76,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:79,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:80,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:82,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:83,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:84,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:85,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:86,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:87,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:90,1
    - Dst: rnp_detect_homedir_info
      Src: /src/rnp/src/tests/ffi.cpp:90,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:93,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:94,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:96,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:97,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:98,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:99,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:100,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:101,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:104,1
    - Dst: rnp_detect_homedir_info
      Src: /src/rnp/src/tests/ffi.cpp:104,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:107,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:108,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:110,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:111,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:113,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:113,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:114,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:114,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:115,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:115,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:116,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:116,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:117,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:117,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:119,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:119,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:121,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi.cpp:121,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:123,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:125,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:127,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:129,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:133,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:133,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:134,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:135,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:135,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:136,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:138,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:142,1
    - Dst: rnp_detect_homedir_info
      Src: /src/rnp/src/tests/ffi.cpp:142,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:145,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:146,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:148,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:148,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:150,1
    - Dst: load_keys_kbx_g10
      Src: /src/rnp/src/tests/ffi.cpp:150,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:152,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:154,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:156,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:158,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:161,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:161,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:162,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:163,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:163,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:164,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:167,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:169,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:170,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:172,1
    - Dst: rnp_key_get_grip
      Src: /src/rnp/src/tests/ffi.cpp:172,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:173,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:174,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:175,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:177,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:180,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:182,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:183,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:185,1
    - Dst: rnp_key_get_grip
      Src: /src/rnp/src/tests/ffi.cpp:185,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:186,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:187,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:188,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:190,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:190,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 194
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_locate_key
    - rnp_key_get_grip
    - rnp_detect_homedir_info
    - assert_rnp_failure
    - assert_true
    - assert_int_equal
    - rnp_buffer_destroy
    - rnp_get_default_homedir
    - assert_string_equal
    - assert_rnp_success
    - rnp_ffi_destroy
    - load_keys_gpg
    - rnp_key_handle_destroy
    - rnp_ffi_create
    - rnp_get_secret_key_count
    - load_keys_kbx_g10
    - rnp_get_public_key_count
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_homedir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/ffi.cpp:201,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:202,1
    - Dst: rnp_detect_key_format
      Src: /src/rnp/src/tests/ffi.cpp:202,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/ffi.cpp:202,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:203,1
    - Dst: rnp_detect_key_format
      Src: /src/rnp/src/tests/ffi.cpp:203,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/ffi.cpp:203,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:204,1
    - Dst: rnp_detect_key_format
      Src: /src/rnp/src/tests/ffi.cpp:204,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/ffi.cpp:204,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/ffi.cpp:204,1
    - Dst: free
      Src: /src/rnp/src/tests/ffi.cpp:205,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/ffi.cpp:209,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:210,1
    - Dst: rnp_detect_key_format
      Src: /src/rnp/src/tests/ffi.cpp:210,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/ffi.cpp:210,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/ffi.cpp:210,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:211,1
    - Dst: free
      Src: /src/rnp/src/tests/ffi.cpp:212,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/ffi.cpp:216,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:217,1
    - Dst: rnp_detect_key_format
      Src: /src/rnp/src/tests/ffi.cpp:217,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/ffi.cpp:217,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/ffi.cpp:217,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:218,1
    - Dst: free
      Src: /src/rnp/src/tests/ffi.cpp:219,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/ffi.cpp:223,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:224,1
    - Dst: rnp_detect_key_format
      Src: /src/rnp/src/tests/ffi.cpp:224,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/ffi.cpp:224,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/ffi.cpp:224,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:225,1
    - Dst: free
      Src: /src/rnp/src/tests/ffi.cpp:226,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/ffi.cpp:230,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:231,1
    - Dst: rnp_detect_key_format
      Src: /src/rnp/src/tests/ffi.cpp:231,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/ffi.cpp:231,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/ffi.cpp:231,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:232,1
    - Dst: free
      Src: /src/rnp/src/tests/ffi.cpp:233,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/ffi.cpp:237,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:239,1
    - Dst: rnp_detect_key_format
      Src: /src/rnp/src/tests/ffi.cpp:239,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/ffi.cpp:239,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/ffi.cpp:239,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:240,1
    - Dst: free
      Src: /src/rnp/src/tests/ffi.cpp:241,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:245,1
    - Dst: rnp_detect_key_format
      Src: /src/rnp/src/tests/ffi.cpp:245,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 247
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_rnp_failure
    - auto::size
    - auto::data
    - rnp_detect_key_format
    - assert_string_equal
    - assert_null
    - assert_rnp_success
    - free
    - file_to_vec
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_detect_key_format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:257,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:257,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:259,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi.cpp:259,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:261,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi.cpp:261,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:263,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:263,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:264,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:265,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:265,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:266,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:268,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:273,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:273,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:275,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi.cpp:275,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:277,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:277,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:278,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:279,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:279,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:280,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:282,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:287,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:287,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:289,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi.cpp:289,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:291,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi.cpp:291,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:293,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:293,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:294,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:295,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:295,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:296,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:298,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:303,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:303,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:305,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi.cpp:305,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:307,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:307,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:308,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:309,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:309,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:310,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:312,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:314,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/ffi.cpp:318,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/ffi.cpp:319,1
    - Dst: auto::reserve
      Src: /src/rnp/src/tests/ffi.cpp:321,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/ffi.cpp:321,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/ffi.cpp:321,1
    - Dst: auto::insert
      Src: /src/rnp/src/tests/ffi.cpp:322,1
    - Dst: auto::end
      Src: /src/rnp/src/tests/ffi.cpp:322,1
    - Dst: auto::begin
      Src: /src/rnp/src/tests/ffi.cpp:322,1
    - Dst: auto::end
      Src: /src/rnp/src/tests/ffi.cpp:322,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:326,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:326,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:328,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi.cpp:328,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/ffi.cpp:328,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/ffi.cpp:328,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:329,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:331,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/ffi.cpp:331,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:332,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/ffi.cpp:332,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:333,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/ffi.cpp:333,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:334,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/ffi.cpp:334,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:335,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/ffi.cpp:335,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:336,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/ffi.cpp:336,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:337,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:340,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi.cpp:340,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/ffi.cpp:340,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/ffi.cpp:340,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:341,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:342,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/ffi.cpp:342,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:343,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:346,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:346,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:347,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:349,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:351,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 353
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - assert_rnp_failure
    - auto::reserve
    - auto::end
    - rnp_load_keys
    - auto::begin
    - assert_true
    - assert_rnp_success
    - rnp_get_secret_key_count
    - rnp_input_from_memory
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_ffi_create
    - auto::insert
    - rnp_get_public_key_count
    - rnp_input_destroy
    - auto::size
    - auto::data
    - load_keys_gpg
    - file_to_vec
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_load_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi.cpp:362,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:364,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:364,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:365,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:366,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:366,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:367,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:369,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi.cpp:369,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:370,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:370,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:371,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:372,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:372,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:373,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:375,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi.cpp:375,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:376,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:376,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:377,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:378,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:378,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:379,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:381,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi.cpp:381,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:382,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi.cpp:382,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:383,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:383,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:384,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:385,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:385,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:386,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:388,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi.cpp:388,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:389,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:389,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:390,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:391,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:391,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:392,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:393,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi.cpp:393,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:394,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:394,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:395,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:396,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:396,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:397,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:399,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi.cpp:399,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:401,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi.cpp:401,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:403,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 405
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - test_ffi_init
    - assert_rnp_failure
    - assert_true
    - assert_int_equal
    - rnp_ffi_destroy
    - assert_rnp_success
    - load_keys_gpg
    - rnp_unload_keys
    - rnp_get_secret_key_count
    - rnp_get_public_key_count
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_clear_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi.cpp:411,1
    - Dst: make_temp_dir
      Src: /src/rnp/src/tests/ffi.cpp:412,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/tests/ffi.cpp:414,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:415,1
    - Dst: rnp::path::exists
      Src: /src/rnp/src/tests/ffi.cpp:415,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:417,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi.cpp:417,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi.cpp:417,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:418,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/tests/ffi.cpp:418,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:419,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/tests/ffi.cpp:419,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:420,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/tests/ffi.cpp:420,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:421,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/tests/ffi.cpp:421,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:422,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/tests/ffi.cpp:422,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:423,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/tests/ffi.cpp:423,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:424,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/tests/ffi.cpp:424,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:425,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:425,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:427,1
    - Dst: rnp::path::exists
      Src: /src/rnp/src/tests/ffi.cpp:427,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/tests/ffi.cpp:429,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:430,1
    - Dst: rnp::path::exists
      Src: /src/rnp/src/tests/ffi.cpp:430,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:431,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi.cpp:431,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi.cpp:431,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:432,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/tests/ffi.cpp:432,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:433,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:433,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:435,1
    - Dst: rnp::path::exists
      Src: /src/rnp/src/tests/ffi.cpp:435,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/tests/ffi.cpp:437,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:438,1
    - Dst: rnp::path::exists
      Src: /src/rnp/src/tests/ffi.cpp:438,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:439,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi.cpp:439,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi.cpp:439,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:440,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/tests/ffi.cpp:442,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:444,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:444,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:446,1
    - Dst: rnp::path::exists
      Src: /src/rnp/src/tests/ffi.cpp:446,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:448,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:451,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:451,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:453,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi.cpp:453,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:456,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:456,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:457,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:459,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:459,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:460,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:462,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:465,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:465,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:468,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:468,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi.cpp:468,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:469,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:470,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/ffi.cpp:472,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:473,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:478,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:478,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:479,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:481,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:481,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:482,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:484,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:488,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:488,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:490,1
    - Dst: load_keys_kbx_g10
      Src: /src/rnp/src/tests/ffi.cpp:490,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/tests/ffi.cpp:493,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:494,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi.cpp:494,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi.cpp:494,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:495,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/tests/ffi.cpp:495,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:496,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:496,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:498,1
    - Dst: rnp::path::exists
      Src: /src/rnp/src/tests/ffi.cpp:498,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/tests/ffi.cpp:500,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:501,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi.cpp:501,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi.cpp:501,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:502,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/tests/ffi.cpp:502,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:503,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:503,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/tests/ffi.cpp:506,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:507,1
    - Dst: rnp::path::exists
      Src: /src/rnp/src/tests/ffi.cpp:507,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:508,1
    - Dst: RNP_MKDIR
      Src: /src/rnp/src/tests/ffi.cpp:508,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi.cpp:508,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:509,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi.cpp:509,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi.cpp:509,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:510,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/tests/ffi.cpp:510,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:511,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:511,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:513,1
    - Dst: rnp::path::exists
      Src: /src/rnp/src/tests/ffi.cpp:513,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:515,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:518,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:518,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:520,1
    - Dst: load_keys_kbx_g10
      Src: /src/rnp/src/tests/ffi.cpp:520,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:523,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:523,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:524,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:526,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:526,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:527,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:529,1
    - Dst: clean_temp_dir
      Src: /src/rnp/src/tests/ffi.cpp:532,1
    - Dst: free
      Src: /src/rnp/src/tests/ffi.cpp:533,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 85
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 534
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_to_path
    - assert_non_null
    - assert_rnp_failure
    - rnp_load_keys
    - free
    - auto::c_str
    - make_temp_dir
    - rnp_input_from_path
    - assert_true
    - assert_rnp_success
    - rnp_get_secret_key_count
    - test_ffi_init
    - rnp::path::exists
    - rnp::path::append
    - assert_int_equal
    - rnp_ffi_destroy
    - RNP_MKDIR
    - rnp_ffi_create
    - load_keys_kbx_g10
    - rnp_get_public_key_count
    - rnp_input_destroy
    - clean_temp_dir
    - rnp_save_keys
    - load_keys_gpg
    - assert_false
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_save_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi.cpp:544,1
    - Dst: make_temp_dir
      Src: /src/rnp/src/tests/ffi.cpp:545,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/tests/ffi.cpp:547,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:548,1
    - Dst: rnp::path::exists
      Src: /src/rnp/src/tests/ffi.cpp:548,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:550,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi.cpp:550,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi.cpp:550,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:551,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/tests/ffi.cpp:551,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:553,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:553,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:555,1
    - Dst: rnp::path::exists
      Src: /src/rnp/src/tests/ffi.cpp:555,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:557,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:560,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:560,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:563,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:563,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi.cpp:563,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:564,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:565,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/ffi.cpp:566,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:567,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:572,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:572,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:573,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:575,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:575,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:576,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:578,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:582,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:582,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:584,1
    - Dst: load_keys_kbx_g10
      Src: /src/rnp/src/tests/ffi.cpp:584,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/tests/ffi.cpp:587,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:588,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi.cpp:588,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi.cpp:588,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:589,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/tests/ffi.cpp:589,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:590,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:590,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:592,1
    - Dst: rnp::path::exists
      Src: /src/rnp/src/tests/ffi.cpp:592,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/tests/ffi.cpp:594,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:595,1
    - Dst: rnp::path::exists
      Src: /src/rnp/src/tests/ffi.cpp:595,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:596,1
    - Dst: RNP_MKDIR
      Src: /src/rnp/src/tests/ffi.cpp:596,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi.cpp:596,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:597,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi.cpp:597,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi.cpp:597,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:598,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/tests/ffi.cpp:598,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:599,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:599,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:601,1
    - Dst: rnp::path::exists
      Src: /src/rnp/src/tests/ffi.cpp:601,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:603,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:606,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:606,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:608,1
    - Dst: load_keys_kbx_g10
      Src: /src/rnp/src/tests/ffi.cpp:608,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:611,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:611,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:612,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:614,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:614,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:615,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:617,1
    - Dst: clean_temp_dir
      Src: /src/rnp/src/tests/ffi.cpp:620,1
    - Dst: free
      Src: /src/rnp/src/tests/ffi.cpp:621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 536
    functionDepth: 1
    functionLinenumber: 536
    functionLinenumberEnd: 622
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_to_path
    - assert_non_null
    - rnp_load_keys
    - free
    - auto::c_str
    - make_temp_dir
    - rnp_input_from_path
    - assert_true
    - assert_rnp_success
    - rnp_get_secret_key_count
    - test_ffi_init
    - rnp::path::exists
    - rnp::path::append
    - assert_int_equal
    - rnp_ffi_destroy
    - RNP_MKDIR
    - rnp_ffi_create
    - load_keys_kbx_g10
    - rnp_get_public_key_count
    - rnp_input_destroy
    - clean_temp_dir
    - rnp_save_keys
    - assert_false
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_load_save_keys_to_utf8_path)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find
      Src: /src/rnp/src/tests/ffi.cpp:631,1
    - Dst: std::set<std::string>::find
      Src: /src/rnp/src/tests/ffi.cpp:640,1
    - Dst: std::string::substr
      Src: /src/rnp/src/tests/ffi.cpp:640,1
    - Dst: std::set<std::string>::end
      Src: /src/rnp/src/tests/ffi.cpp:640,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - str
    - lines_to_skip
    argTypes:
    - std::string
    - std::set<std::string>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 624
    functionDepth: 1
    functionLinenumber: 624
    functionLinenumberEnd: 646
    functionName: get_longest_line_length
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - std::set<std::string>::find
    - std::set<std::string>::end
    - std::string::find
    - std::string::substr
    linkageType: ''
    returnType: size_t
    signature: size_t get_longest_line_length(const std::string &str, const std::set<std::string>
      lines_to_skip)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:662,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:662,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:663,1
    - Dst: rnp_ffi_set_key_provider
      Src: /src/rnp/src/tests/ffi.cpp:663,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi.cpp:666,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:669,1
    - Dst: rnp_generate_key_json
      Src: /src/rnp/src/tests/ffi.cpp:669,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi.cpp:669,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:670,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:671,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:675,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:675,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:676,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:677,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:677,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:678,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:681,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:681,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:682,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:684,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi.cpp:684,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:685,1
    - Dst: sm2_enabled
      Src: /src/rnp/src/tests/ffi.cpp:688,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:689,1
    - Dst: rnp_key_protect
      Src: /src/rnp/src/tests/ffi.cpp:689,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:690,1
    - Dst: rnp_key_protect
      Src: /src/rnp/src/tests/ffi.cpp:691,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:693,1
    - Dst: rnp_key_protect
      Src: /src/rnp/src/tests/ffi.cpp:693,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:695,1
    - Dst: rnp_key_lock
      Src: /src/rnp/src/tests/ffi.cpp:695,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:698,1
    - Dst: rnp_key_add_uid
      Src: /src/rnp/src/tests/ffi.cpp:698,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:699,1
    - Dst: rnp_key_add_uid
      Src: /src/rnp/src/tests/ffi.cpp:699,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:702,1
    - Dst: rnp_key_add_uid
      Src: /src/rnp/src/tests/ffi.cpp:704,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:707,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi.cpp:708,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:710,1
    - Dst: rnp_key_add_uid
      Src: /src/rnp/src/tests/ffi.cpp:710,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:712,1
    - Dst: rnp_key_add_uid
      Src: /src/rnp/src/tests/ffi.cpp:713,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:716,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi.cpp:716,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:717,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:719,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi.cpp:719,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:720,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi.cpp:720,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:721,1
    - Dst: rnp_signature_get_hash_alg
      Src: /src/rnp/src/tests/ffi.cpp:721,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:722,1
    - Dst: strcasecmp
      Src: /src/rnp/src/tests/ffi.cpp:722,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:723,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:725,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:725,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:726,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:726,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:728,1
    - Dst: rnp_key_add_uid
      Src: /src/rnp/src/tests/ffi.cpp:729,1
    - Dst: rnp_key_add_uid
      Src: /src/rnp/src/tests/ffi.cpp:733,1
    - Dst: ripemd160_enabled
      Src: /src/rnp/src/tests/ffi.cpp:734,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:735,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:738,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:741,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi.cpp:741,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:742,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:745,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:745,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:746,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:748,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:749,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:750,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 751
      start: 648
    functionDepth: 1
    functionLinenumber: 648
    functionLinenumberEnd: 751
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - assert_rnp_failure
    - rnp_key_get_uid_handle_at
    - strcasecmp
    - rnp_ffi_set_pass_provider
    - rnp_key_protect
    - auto::c_str
    - assert_true
    - assert_rnp_success
    - file_to_str
    - rnp_key_handle_destroy
    - rnp_uid_get_signature_at
    - rnp_get_secret_key_count
    - rnp_key_add_uid
    - rnp_key_lock
    - rnp_locate_key
    - rnp_generate_key_json
    - sm2_enabled
    - rnp_uid_handle_destroy
    - rnp_ffi_set_key_provider
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_ffi_create
    - rnp_get_public_key_count
    - rnp_signature_handle_destroy
    - ripemd160_enabled
    - rnp_key_get_uid_count
    - rnp_buffer_destroy
    - rnp_signature_get_hash_alg
    - rnp_key_is_locked
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_add_userid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: str_to_file
      Src: /src/rnp/src/tests/ffi.cpp:759,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:761,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:761,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:762,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:763,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi.cpp:763,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:764,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - rnp_input_t*
    - rnp_output_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 753
    functionDepth: 1
    functionLinenumber: 753
    functionLinenumberEnd: 765
    functionName: test_ffi_init_sign_file_input
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_output_to_path
    - rnp_input_from_path
    - assert_rnp_success
    - str_to_file
    linkageType: ''
    returnType: void
    signature: void test_ffi_init_sign_file_input(rnp_input_t *input, rnp_output_t
      *output)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:772,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi.cpp:773,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi.cpp:773,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:774,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:776,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:776,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:777,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - rnp_input_t*
    - rnp_output_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 767
    functionDepth: 1
    functionLinenumber: 767
    functionLinenumberEnd: 779
    functionName: test_ffi_init_sign_memory_input
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_output_to_memory
    - rnp_input_from_memory
    - assert_rnp_success
    - strlen
    linkageType: ''
    returnType: void
    signature: void test_ffi_init_sign_memory_input(rnp_input_t *input, rnp_output_t
      *output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:785,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:785,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:786,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:787,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi.cpp:787,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - input
    - output
    argTypes:
    - rnp_input_t*
    - rnp_output_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 789
    functionName: test_ffi_init_verify_file_input
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_input_from_path
    - rnp_output_to_path
    - assert_rnp_success
    linkageType: ''
    returnType: void
    signature: void test_ffi_init_verify_file_input(rnp_input_t *input, rnp_output_t
      *output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:794,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:794,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:795,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:796,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:796,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:797,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - input
    - signature
    argTypes:
    - rnp_input_t*
    - rnp_input_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 798
      start: 791
    functionDepth: 1
    functionLinenumber: 791
    functionLinenumberEnd: 798
    functionName: test_ffi_init_verify_detached_file_input
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_input_from_path
    - assert_rnp_success
    linkageType: ''
    returnType: void
    signature: void test_ffi_init_verify_detached_file_input(rnp_input_t *input, rnp_input_t
      *signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:807,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi.cpp:807,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:808,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:809,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:809,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - input
    - output
    - signed_buf
    - signed_len
    argTypes:
    - rnp_input_t*
    - rnp_output_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 800
    functionDepth: 1
    functionLinenumber: 800
    functionLinenumberEnd: 811
    functionName: test_ffi_init_verify_memory_input
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_output_to_memory
    - rnp_input_from_memory
    - assert_rnp_success
    linkageType: ''
    returnType: void
    signature: "void test_ffi_init_verify_memory_input(rnp_input_t * input,\n                                  rnp_output_t
      *output,\n                                  uint8_t *     signed_buf,\n                                  size_t
      \       signed_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:824,1
    - Dst: rnp_op_sign_set_armor
      Src: /src/rnp/src/tests/ffi.cpp:824,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:825,1
    - Dst: rnp_op_sign_set_armor
      Src: /src/rnp/src/tests/ffi.cpp:825,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:826,1
    - Dst: rnp_op_sign_set_hash
      Src: /src/rnp/src/tests/ffi.cpp:826,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:827,1
    - Dst: rnp_op_sign_set_creation_time
      Src: /src/rnp/src/tests/ffi.cpp:827,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:828,1
    - Dst: rnp_op_sign_set_creation_time
      Src: /src/rnp/src/tests/ffi.cpp:828,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:829,1
    - Dst: rnp_op_sign_set_expiration_time
      Src: /src/rnp/src/tests/ffi.cpp:829,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:830,1
    - Dst: rnp_op_sign_set_expiration_time
      Src: /src/rnp/src/tests/ffi.cpp:830,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:833,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi.cpp:834,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:837,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:837,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:838,1
    - Dst: rnp_op_sign_add_signature
      Src: /src/rnp/src/tests/ffi.cpp:838,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:839,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:839,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:842,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:842,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:843,1
    - Dst: rnp_op_sign_add_signature
      Src: /src/rnp/src/tests/ffi.cpp:843,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:844,1
    - Dst: rnp_op_sign_signature_set_creation_time
      Src: /src/rnp/src/tests/ffi.cpp:844,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:845,1
    - Dst: rnp_op_sign_signature_set_expiration_time
      Src: /src/rnp/src/tests/ffi.cpp:845,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:846,1
    - Dst: rnp_op_sign_signature_set_hash
      Src: /src/rnp/src/tests/ffi.cpp:846,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:847,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 2
    argNames:
    - ffi
    - op
    argTypes:
    - rnp_ffi_t*
    - rnp_op_sign_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 848
    functionName: test_ffi_setup_signatures
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_op_sign_set_creation_time
    - rnp_locate_key
    - assert_rnp_failure
    - rnp_op_sign_set_armor
    - assert_rnp_success
    - rnp_op_sign_set_expiration_time
    - rnp_ffi_set_pass_provider
    - rnp_op_sign_set_hash
    - rnp_key_handle_destroy
    - rnp_op_sign_signature_set_expiration_time
    - rnp_op_sign_signature_set_creation_time
    - rnp_op_sign_add_signature
    - rnp_op_sign_signature_set_hash
    linkageType: ''
    returnType: void
    signature: void test_ffi_setup_signatures(rnp_ffi_t *ffi, rnp_op_sign_t *op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:863,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:863,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:864,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:866,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi.cpp:866,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:867,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi.cpp:867,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:868,1
    - Dst: rnp_op_verify_signature_get_times
      Src: /src/rnp/src/tests/ffi.cpp:868,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:869,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:870,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:871,1
    - Dst: rnp_op_verify_signature_get_hash
      Src: /src/rnp/src/tests/ffi.cpp:871,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:872,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:873,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:875,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi.cpp:875,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:876,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi.cpp:876,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:877,1
    - Dst: rnp_op_verify_signature_get_times
      Src: /src/rnp/src/tests/ffi.cpp:877,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:878,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:879,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:880,1
    - Dst: rnp_op_verify_signature_get_hash
      Src: /src/rnp/src/tests/ffi.cpp:880,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:881,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:882,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 1
    argNames:
    - verify
    argTypes:
    - rnp_op_verify_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 883
    functionName: test_ffi_check_signatures
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_op_verify_signature_get_hash
    - assert_int_equal
    - assert_string_equal
    - rnp_op_verify_signature_get_times
    - rnp_buffer_destroy
    - assert_rnp_success
    - rnp_op_verify_get_signature_at
    - rnp_op_verify_get_signature_count
    - rnp_op_verify_signature_get_status
    linkageType: ''
    returnType: void
    signature: void test_ffi_check_signatures(rnp_op_verify_t *verify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi.cpp:898,1
    - Dst: test_ffi_init_sign_memory_input
      Src: /src/rnp/src/tests/ffi.cpp:900,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:902,1
    - Dst: rnp_op_sign_create
      Src: /src/rnp/src/tests/ffi.cpp:902,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:903,1
    - Dst: rnp_op_sign_create
      Src: /src/rnp/src/tests/ffi.cpp:903,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:904,1
    - Dst: rnp_op_sign_create
      Src: /src/rnp/src/tests/ffi.cpp:904,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:905,1
    - Dst: rnp_op_sign_create
      Src: /src/rnp/src/tests/ffi.cpp:905,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:906,1
    - Dst: rnp_op_sign_create
      Src: /src/rnp/src/tests/ffi.cpp:906,1
    - Dst: test_ffi_setup_signatures
      Src: /src/rnp/src/tests/ffi.cpp:908,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:910,1
    - Dst: rnp_op_sign_execute
      Src: /src/rnp/src/tests/ffi.cpp:910,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:911,1
    - Dst: rnp_op_sign_execute
      Src: /src/rnp/src/tests/ffi.cpp:911,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:913,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:913,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:914,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:914,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:915,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:915,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:916,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:916,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:917,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:918,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:921,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:921,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:923,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:923,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:925,1
    - Dst: rnp_op_sign_destroy
      Src: /src/rnp/src/tests/ffi.cpp:925,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:930,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/ffi.cpp:930,1
    - Dst: test_ffi_init_verify_memory_input
      Src: /src/rnp/src/tests/ffi.cpp:932,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:934,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:934,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:935,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:935,1
    - Dst: test_ffi_check_signatures
      Src: /src/rnp/src/tests/ffi.cpp:937,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:939,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:939,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:940,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:941,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:943,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:943,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:944,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:944,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:946,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:946,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:948,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:948,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:949,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 951
      start: 885
    functionDepth: 2
    functionLinenumber: 885
    functionLinenumberEnd: 951
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_op_sign_destroy
    - rnp_output_memory_get_buf
    - assert_rnp_failure
    - test_ffi_init_sign_memory_input
    - rnp_op_verify_execute
    - assert_true
    - memcmp
    - assert_rnp_success
    - rnp_op_verify_destroy
    - rnp_op_sign_create
    - test_ffi_init
    - test_ffi_setup_signatures
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_op_verify_create
    - test_ffi_init_verify_memory_input
    - test_ffi_check_signatures
    - rnp_input_destroy
    - rnp_buffer_destroy
    - rnp_op_sign_execute
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_signatures_memory)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi.cpp:962,1
    - Dst: test_ffi_init_sign_file_input
      Src: /src/rnp/src/tests/ffi.cpp:964,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:966,1
    - Dst: rnp_op_sign_create
      Src: /src/rnp/src/tests/ffi.cpp:966,1
    - Dst: test_ffi_setup_signatures
      Src: /src/rnp/src/tests/ffi.cpp:968,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:970,1
    - Dst: rnp_op_sign_execute
      Src: /src/rnp/src/tests/ffi.cpp:970,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:972,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/tests/ffi.cpp:972,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:975,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:975,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:977,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:977,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:979,1
    - Dst: rnp_op_sign_destroy
      Src: /src/rnp/src/tests/ffi.cpp:979,1
    - Dst: test_ffi_init_verify_file_input
      Src: /src/rnp/src/tests/ffi.cpp:985,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:987,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:987,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:988,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:988,1
    - Dst: test_ffi_check_signatures
      Src: /src/rnp/src/tests/ffi.cpp:990,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:992,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:992,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:993,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:993,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:995,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:995,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:997,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:997,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:999,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/ffi.cpp:999,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/ffi.cpp:999,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 953
    functionDepth: 2
    functionLinenumber: 953
    functionLinenumberEnd: 1000
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_op_sign_destroy
    - test_ffi_init
    - test_ffi_init_verify_file_input
    - test_ffi_setup_signatures
    - assert_true
    - rnp_ffi_destroy
    - rnp_op_verify_create
    - test_ffi_check_signatures
    - assert_rnp_success
    - rnp_op_verify_destroy
    - rnp_file_exists
    - rnp_op_sign_create
    - test_ffi_init_sign_file_input
    - file_to_vec
    - rnp_op_sign_execute
    - rnp_op_verify_execute
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_signatures)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi.cpp:1014,1
    - Dst: test_ffi_init_sign_memory_input
      Src: /src/rnp/src/tests/ffi.cpp:1016,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1018,1
    - Dst: rnp_op_sign_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:1018,1
    - Dst: test_ffi_setup_signatures
      Src: /src/rnp/src/tests/ffi.cpp:1020,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1022,1
    - Dst: rnp_op_sign_execute
      Src: /src/rnp/src/tests/ffi.cpp:1022,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1023,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:1023,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1024,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1025,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1028,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1028,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1030,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1030,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1032,1
    - Dst: rnp_op_sign_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1032,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1037,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/ffi.cpp:1037,1
    - Dst: test_ffi_init_sign_memory_input
      Src: /src/rnp/src/tests/ffi.cpp:1039,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1040,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi.cpp:1040,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1041,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1043,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:1043,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1044,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:1044,1
    - Dst: test_ffi_check_signatures
      Src: /src/rnp/src/tests/ffi.cpp:1046,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1048,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1049,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1049,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1050,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1050,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1052,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1052,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1054,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 1002
    functionDepth: 2
    functionLinenumber: 1002
    functionLinenumberEnd: 1055
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_op_sign_destroy
    - rnp_output_memory_get_buf
    - test_ffi_init_sign_memory_input
    - rnp_op_verify_execute
    - assert_true
    - memcmp
    - rnp_op_verify_detached_create
    - assert_rnp_success
    - rnp_op_verify_destroy
    - test_ffi_init
    - rnp_input_from_memory
    - test_ffi_setup_signatures
    - assert_int_equal
    - rnp_ffi_destroy
    - test_ffi_check_signatures
    - rnp_input_destroy
    - rnp_op_sign_detached_create
    - rnp_buffer_destroy
    - rnp_op_sign_execute
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_signatures_detached_memory)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi.cpp:1067,1
    - Dst: test_ffi_init_sign_file_input
      Src: /src/rnp/src/tests/ffi.cpp:1069,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1071,1
    - Dst: rnp_op_sign_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:1071,1
    - Dst: test_ffi_setup_signatures
      Src: /src/rnp/src/tests/ffi.cpp:1073,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1075,1
    - Dst: rnp_op_sign_execute
      Src: /src/rnp/src/tests/ffi.cpp:1075,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1077,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/tests/ffi.cpp:1077,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1080,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1080,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1082,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1082,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1084,1
    - Dst: rnp_op_sign_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1084,1
    - Dst: test_ffi_init_verify_detached_file_input
      Src: /src/rnp/src/tests/ffi.cpp:1090,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1092,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:1092,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1093,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:1093,1
    - Dst: test_ffi_check_signatures
      Src: /src/rnp/src/tests/ffi.cpp:1095,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1097,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1097,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1098,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1098,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1100,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1100,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1102,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1057
    functionDepth: 2
    functionLinenumber: 1057
    functionLinenumberEnd: 1103
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_op_sign_destroy
    - test_ffi_init
    - rnp_op_sign_detached_create
    - test_ffi_setup_signatures
    - assert_true
    - rnp_ffi_destroy
    - rnp_op_verify_detached_create
    - test_ffi_check_signatures
    - assert_rnp_success
    - rnp_op_verify_destroy
    - rnp_file_exists
    - test_ffi_init_sign_file_input
    - rnp_op_sign_execute
    - rnp_op_verify_execute
    - rnp_output_destroy
    - test_ffi_init_verify_detached_file_input
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_signatures_detached)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1113,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:1113,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi.cpp:1114,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1115,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1115,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1116,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1117,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1119,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:1119,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1120,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:1120,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1124,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:1124,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1125,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1127,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi.cpp:1127,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1128,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi.cpp:1128,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1130,1
    - Dst: rnp_op_verify_signature_get_handle
      Src: /src/rnp/src/tests/ffi.cpp:1130,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1131,1
    - Dst: rnp_op_verify_signature_get_handle
      Src: /src/rnp/src/tests/ffi.cpp:1131,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1132,1
    - Dst: rnp_op_verify_signature_get_handle
      Src: /src/rnp/src/tests/ffi.cpp:1132,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1133,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1136,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi.cpp:1136,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:1137,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1138,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1140,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi.cpp:1140,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1142,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1142,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1143,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1143,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1144,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1144,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1147,1
    - Dst: rnp_signature_get_alg
      Src: /src/rnp/src/tests/ffi.cpp:1147,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1148,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:1149,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1150,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1153,1
    - Dst: rnp_signature_get_keyid
      Src: /src/rnp/src/tests/ffi.cpp:1153,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1154,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:1155,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1156,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1159,1
    - Dst: rnp_signature_get_creation
      Src: /src/rnp/src/tests/ffi.cpp:1159,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1160,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1162,1
    - Dst: rnp_signature_get_hash_alg
      Src: /src/rnp/src/tests/ffi.cpp:1162,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1163,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:1164,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1165,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1168,1
    - Dst: rnp_signature_packet_to_json
      Src: /src/rnp/src/tests/ffi.cpp:1168,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi.cpp:1169,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1170,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1171,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi.cpp:1171,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1172,1
    - Dst: nlohmann::ordered_json::is_array
      Src: /src/rnp/src/tests/ffi.cpp:1172,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1173,1
    - Dst: nlohmann::ordered_json::size
      Src: /src/rnp/src/tests/ffi.cpp:1173,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi.cpp:1175,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:1177,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1177,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:1178,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1178,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1179,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1179,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1180,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1180,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1181,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1181,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1182,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1182,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1183,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1183,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1184,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1184,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1185,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1185,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1186,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1186,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1188,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi.cpp:1188,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1189,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi.cpp:1189,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1190,1
    - Dst: nlohmann::ordered_json::is_array
      Src: /src/rnp/src/tests/ffi.cpp:1190,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1191,1
    - Dst: nlohmann::ordered_json::size
      Src: /src/rnp/src/tests/ffi.cpp:1191,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi.cpp:1193,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1194,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1194,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1195,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1195,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1196,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1196,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1197,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1197,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1198,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1198,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1199,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1200,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi.cpp:1202,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1203,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1203,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1204,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1204,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1205,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1205,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1206,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1206,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1207,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1207,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1208,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1208,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi.cpp:1210,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1211,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1211,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1212,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1212,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1213,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1213,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1214,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1214,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1215,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1215,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1216,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1216,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1218,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1220,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1220,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1221,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1222,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1224,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:1224,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1225,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:1225,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1228,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:1228,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1229,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1231,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi.cpp:1231,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1232,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi.cpp:1232,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1233,1
    - Dst: rnp_op_verify_signature_get_handle
      Src: /src/rnp/src/tests/ffi.cpp:1233,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1234,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1236,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi.cpp:1236,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:1237,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1238,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1240,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi.cpp:1240,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1242,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1242,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1243,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1243,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1244,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1244,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1246,1
    - Dst: rnp_signature_get_alg
      Src: /src/rnp/src/tests/ffi.cpp:1246,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1247,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:1248,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1249,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1251,1
    - Dst: rnp_signature_get_keyid
      Src: /src/rnp/src/tests/ffi.cpp:1251,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1252,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:1253,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1254,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1256,1
    - Dst: rnp_signature_get_creation
      Src: /src/rnp/src/tests/ffi.cpp:1256,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1257,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1259,1
    - Dst: rnp_signature_get_hash_alg
      Src: /src/rnp/src/tests/ffi.cpp:1259,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1260,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:1261,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1262,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1264,1
    - Dst: rnp_signature_packet_to_json
      Src: /src/rnp/src/tests/ffi.cpp:1264,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi.cpp:1265,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1266,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1267,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi.cpp:1267,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1268,1
    - Dst: nlohmann::ordered_json::is_array
      Src: /src/rnp/src/tests/ffi.cpp:1268,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1269,1
    - Dst: nlohmann::ordered_json::size
      Src: /src/rnp/src/tests/ffi.cpp:1269,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi.cpp:1271,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:1273,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1273,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:1274,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1274,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1275,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1275,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1276,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1276,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1277,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1278,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1279,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1279,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1280,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1280,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1281,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1281,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1282,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1282,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1283,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1283,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1285,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi.cpp:1285,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1286,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi.cpp:1286,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1287,1
    - Dst: nlohmann::ordered_json::is_array
      Src: /src/rnp/src/tests/ffi.cpp:1287,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1288,1
    - Dst: nlohmann::ordered_json::size
      Src: /src/rnp/src/tests/ffi.cpp:1288,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi.cpp:1290,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1291,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1291,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1292,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1292,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1293,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1293,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1294,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1294,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1295,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1295,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1296,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1297,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi.cpp:1299,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1300,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1300,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1301,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1301,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1302,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1302,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1303,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1303,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1304,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1304,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1305,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1305,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi.cpp:1307,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1308,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1308,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1309,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1309,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1310,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1310,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1311,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1311,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1312,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1312,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1313,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1313,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1315,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1318,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1318,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1319,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1320,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1322,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:1322,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1323,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:1323,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1326,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:1326,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1327,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1329,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi.cpp:1329,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1330,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi.cpp:1330,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1331,1
    - Dst: rnp_op_verify_signature_get_handle
      Src: /src/rnp/src/tests/ffi.cpp:1331,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1332,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1334,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi.cpp:1334,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:1335,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1336,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1338,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi.cpp:1338,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1340,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1340,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1341,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1341,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1342,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1342,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1344,1
    - Dst: rnp_signature_get_alg
      Src: /src/rnp/src/tests/ffi.cpp:1344,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1345,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:1346,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1347,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1349,1
    - Dst: rnp_signature_get_keyid
      Src: /src/rnp/src/tests/ffi.cpp:1349,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1350,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:1351,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1352,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1354,1
    - Dst: rnp_signature_get_creation
      Src: /src/rnp/src/tests/ffi.cpp:1354,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1355,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1357,1
    - Dst: rnp_signature_get_hash_alg
      Src: /src/rnp/src/tests/ffi.cpp:1357,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1358,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:1359,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1360,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1362,1
    - Dst: rnp_signature_packet_to_json
      Src: /src/rnp/src/tests/ffi.cpp:1362,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi.cpp:1363,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1364,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1365,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi.cpp:1365,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1366,1
    - Dst: nlohmann::ordered_json::is_array
      Src: /src/rnp/src/tests/ffi.cpp:1366,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1367,1
    - Dst: nlohmann::ordered_json::size
      Src: /src/rnp/src/tests/ffi.cpp:1367,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi.cpp:1369,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:1371,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1371,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:1372,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1372,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1373,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1373,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1374,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1374,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1375,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1375,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1376,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1376,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1377,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1377,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1378,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1378,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1379,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1379,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1380,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1380,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1382,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi.cpp:1382,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1383,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi.cpp:1383,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1384,1
    - Dst: nlohmann::ordered_json::is_array
      Src: /src/rnp/src/tests/ffi.cpp:1384,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1385,1
    - Dst: nlohmann::ordered_json::size
      Src: /src/rnp/src/tests/ffi.cpp:1385,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi.cpp:1387,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1388,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1388,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1389,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1389,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1390,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1390,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1391,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1391,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1392,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1392,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1393,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1393,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi.cpp:1395,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1396,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1396,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1397,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1397,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1398,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1398,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1399,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1399,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1400,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1400,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1401,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1401,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi.cpp:1403,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1404,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1404,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1405,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1405,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1406,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1406,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1407,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1407,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1408,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1408,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1409,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1409,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi.cpp:1411,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1412,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1412,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1413,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1413,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1414,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1414,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1415,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1415,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1416,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1416,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1417,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1417,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1418,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1418,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1419,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1419,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi.cpp:1421,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1422,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1422,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1423,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1423,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1424,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1424,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1425,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1425,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1426,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1426,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1427,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1428,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi.cpp:1430,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1431,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1431,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1432,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1432,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1433,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1433,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1434,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1434,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1435,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1435,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1437,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi.cpp:1437,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1438,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1438,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1439,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1439,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1440,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1440,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1441,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1441,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1442,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1442,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1443,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1443,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1444,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1444,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1445,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1445,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi.cpp:1447,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1448,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1448,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1449,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1449,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1450,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:1450,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1451,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1451,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1452,1
    - Dst: check_json_field_bool
      Src: /src/rnp/src/tests/ffi.cpp:1452,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1453,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:1454,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1456,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1459,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 267
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1105
    functionDepth: 1
    functionLinenumber: 1105
    functionLinenumberEnd: 1460
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_signature_packet_to_json
    - nlohmann::ordered_json::is_array
    - assert_rnp_failure
    - assert_string_equal
    - nlohmann::ordered_json::size
    - rnp_signature_get_alg
    - check_json_field_bool
    - rnp_op_verify_get_signature_at
    - rnp_op_verify_execute
    - rnp_input_from_path
    - rnp_op_verify_signature_get_handle
    - assert_true
    - rnp_op_verify_detached_create
    - assert_rnp_success
    - rnp_op_verify_destroy
    - rnp_signature_get_creation
    - pgp::pkt::Signature::parse
    - rnp_signature_get_keyid
    - check_json_field_int
    - rnp_signature_is_valid
    - rnp_signature_get_type
    - assert_int_equal
    - rnp_ffi_destroy
    - nlohmann::ordered_json::contains
    - nlohmann::ordered_json::is_null
    - rnp_ffi_create
    - rnp_op_verify_get_signature_count
    - rnp_signature_handle_destroy
    - rnp_input_destroy
    - nlohmann::ordered_json::at
    - rnp_buffer_destroy
    - load_keys_gpg
    - assert_false
    - rnp_signature_get_hash_alg
    - check_json_field_str
    - rnp_op_verify_signature_get_status
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_signatures_dump)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1467,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:1467,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1469,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi.cpp:1469,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1474,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:1474,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1475,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:1475,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1476,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:1476,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1477,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:1477,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1478,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:1478,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1479,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:1479,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1480,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:1481,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1482,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:1483,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1484,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:1484,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1485,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:1485,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1486,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1487,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/ffi.cpp:1498,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1501,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:1501,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1502,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1503,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1508,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:1508,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1509,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1514,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:1514,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:1515,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/ffi.cpp:1523,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1526,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:1526,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1527,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1528,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1533,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:1533,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:1534,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/ffi.cpp:1547,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1550,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:1550,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1551,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1552,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1557,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:1557,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1558,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1563,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:1563,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:1565,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/ffi.cpp:1578,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1581,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:1581,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1582,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1583,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1588,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:1588,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1589,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1594,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:1595,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:1596,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1601,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1602
      start: 1462
    functionDepth: 1
    functionLinenumber: 1462
    functionLinenumberEnd: 1602
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_locate_key
    - assert_rnp_failure
    - assert_true
    - rnp_ffi_destroy
    - assert_null
    - assert_rnp_success
    - load_keys_gpg
    - ARRAY_SIZE
    - rnp_key_handle_destroy
    - rnp_ffi_create
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_locate_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1618,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:1618,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1619,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi.cpp:1620,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1623,1
    - Dst: load_keys_kbx_g10
      Src: /src/rnp/src/tests/ffi.cpp:1623,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1627,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:1627,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1628,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1631,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi.cpp:1631,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi.cpp:1631,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1632,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1634,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1634,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1635,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1637,1
    - Dst: rnp_op_sign_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:1637,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1638,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1641,1
    - Dst: rnp_op_sign_add_signature
      Src: /src/rnp/src/tests/ffi.cpp:1641,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1642,1
    - Dst: rnp_op_sign_add_signature
      Src: /src/rnp/src/tests/ffi.cpp:1642,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1644,1
    - Dst: rnp_op_sign_execute
      Src: /src/rnp/src/tests/ffi.cpp:1644,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1646,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:1646,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1647,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/ffi.cpp:1648,1
    - Dst: rnp_op_sign_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1650,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1652,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1654,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1659,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi.cpp:1659,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi.cpp:1659,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1660,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1662,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi.cpp:1662,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1663,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1665,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:1665,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1666,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1668,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:1668,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1670,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1672,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1674,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1679,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi.cpp:1679,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi.cpp:1679,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1680,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1683,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi.cpp:1683,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1684,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1686,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:1686,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:1687,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1689,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:1689,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1691,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1693,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1695,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1699,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1700,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1604
    functionDepth: 1
    functionLinenumber: 1604
    functionLinenumberEnd: 1702
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_op_sign_destroy
    - rnp_output_memory_get_buf
    - assert_rnp_failure
    - rnp_ffi_set_pass_provider
    - strlen
    - rnp_op_verify_execute
    - assert_int_not_equal
    - assert_true
    - rnp_op_verify_detached_create
    - assert_rnp_success
    - rnp_op_verify_destroy
    - rnp_key_handle_destroy
    - rnp_op_sign_add_signature
    - rnp_output_to_memory
    - rnp_locate_key
    - rnp_input_from_memory
    - rnp_ffi_destroy
    - rnp_ffi_create
    - load_keys_kbx_g10
    - rnp_input_destroy
    - rnp_op_sign_detached_create
    - rnp_buffer_destroy
    - rnp_op_sign_execute
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_signatures_detached_memory_g10)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::clear
      Src: /src/rnp/src/tests/ffi.cpp:1710,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1717,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi.cpp:1718,1
    - Dst: std::string::data
      Src: /src/rnp/src/tests/ffi.cpp:1718,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/ffi.cpp:1718,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1719,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1719,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1721,1
    - Dst: rnp_enarmor
      Src: /src/rnp/src/tests/ffi.cpp:1721,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:1723,1
    - Dst: string
      Src: /src/rnp/src/tests/ffi.cpp:1724,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1725,1
    - Dst: starts_with
      Src: /src/rnp/src/tests/ffi.cpp:1725,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1726,1
    - Dst: ends_with
      Src: /src/rnp/src/tests/ffi.cpp:1726,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1728,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1729,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1737,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi.cpp:1738,1
    - Dst: std::string::data
      Src: /src/rnp/src/tests/ffi.cpp:1738,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/ffi.cpp:1738,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1739,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1739,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1741,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:1741,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1743,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:1743,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1745,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1747,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1748,1
    - Dst: std::string::clear
      Src: /src/rnp/src/tests/ffi.cpp:1752,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1760,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1760,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1761,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1761,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1763,1
    - Dst: rnp_enarmor
      Src: /src/rnp/src/tests/ffi.cpp:1763,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:1765,1
    - Dst: string
      Src: /src/rnp/src/tests/ffi.cpp:1766,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1767,1
    - Dst: starts_with
      Src: /src/rnp/src/tests/ffi.cpp:1767,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1768,1
    - Dst: ends_with
      Src: /src/rnp/src/tests/ffi.cpp:1768,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1770,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1771,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1780,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi.cpp:1781,1
    - Dst: std::string::data
      Src: /src/rnp/src/tests/ffi.cpp:1781,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/ffi.cpp:1781,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1782,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1782,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1784,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:1784,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1786,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:1786,1
    - Dst: std::ifstream::tellg
      Src: /src/rnp/src/tests/ffi.cpp:1789,1
    - Dst: std::ifstream::seekg
      Src: /src/rnp/src/tests/ffi.cpp:1790,1
    - Dst: std::ifstream::read
      Src: /src/rnp/src/tests/ffi.cpp:1791,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/ffi.cpp:1791,1
    - Dst: std::ifstream::close
      Src: /src/rnp/src/tests/ffi.cpp:1792,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:1793,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1795,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1796,1
    - Dst: std::ifstream::tellg
      Src: /src/rnp/src/tests/ffi.cpp:1802,1
    - Dst: std::ifstream::seekg
      Src: /src/rnp/src/tests/ffi.cpp:1803,1
    - Dst: std::ifstream::read
      Src: /src/rnp/src/tests/ffi.cpp:1804,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/ffi.cpp:1804,1
    - Dst: std::ifstream::close
      Src: /src/rnp/src/tests/ffi.cpp:1805,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/ffi.cpp:1806,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1810,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi.cpp:1811,1
    - Dst: std::string::data
      Src: /src/rnp/src/tests/ffi.cpp:1811,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1812,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1812,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1813,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:1813,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1815,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1816,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 53
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1819
      start: 1704
    functionDepth: 1
    functionLinenumber: 1704
    functionLinenumberEnd: 1819
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_memory_get_buf
    - assert_rnp_failure
    - ends_with
    - rnp_input_from_path
    - assert_true
    - string
    - starts_with
    - assert_rnp_success
    - rnp_dearmor
    - std::ifstream::close
    - std::string::clear
    - rnp_output_to_memory
    - std::ifstream::tellg
    - rnp_input_from_memory
    - std::ifstream::seekg
    - std::string::data
    - std::string::size
    - rnp_input_destroy
    - rnp_enarmor
    - std::ifstream::read
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_enarmor_dearmor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1826,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1827,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1828,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1828,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1829,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:1829,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1832,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:1832,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1833,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1834,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1835,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1837,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1838,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1839,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1839,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1840,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:1840,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1843,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:1843,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1844,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1845,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1846,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1848,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1848,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1850,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1850,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1851,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:1851,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1852,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1853,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1857,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1858,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1859,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1859,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1860,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:1860,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1863,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:1863,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1864,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1865,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1866,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1868,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1869,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1870,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1870,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1871,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:1871,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1874,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:1874,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1875,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1876,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1877,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1879,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1880,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1881,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1881,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1882,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:1882,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1885,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:1885,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1886,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1887,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1888,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1890,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1891,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1892,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1892,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1893,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:1893,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1896,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:1896,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1897,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1898,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1899,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1901,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1902,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1903,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1903,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1904,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:1904,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1907,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:1907,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1908,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1909,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1910,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1912,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1913,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1914,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1914,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1915,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:1915,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1918,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:1918,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1919,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1920,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1921,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1924,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1925,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1926,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1926,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1927,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:1927,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1930,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:1930,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1931,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1932,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1933,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1935,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1936,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1937,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1937,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1938,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:1938,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1941,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:1941,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1942,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1943,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1944,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1947,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1948,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1949,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1949,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1950,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:1950,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1953,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:1953,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:1954,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1955,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1956,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1959,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1960,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1961,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1961,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1962,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:1962,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1963,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1964,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1966,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1967,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1968,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1968,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1969,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:1969,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1970,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1971,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1973,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1974,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1975,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1975,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1976,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:1976,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1977,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1978,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1980,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1981,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1982,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1982,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1983,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:1983,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1984,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1985,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1988,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1989,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1990,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1990,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1991,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:1991,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1992,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:1993,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1996,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:1997,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:1998,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:1998,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:1999,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:1999,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2000,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2001,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2004,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:2005,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2006,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:2006,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:2007,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:2007,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2008,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2009,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 138
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2010
      start: 1821
    functionDepth: 1
    functionLinenumber: 1821
    functionLinenumberEnd: 2010
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_to_memory
    - rnp_output_memory_get_buf
    - rnp_input_from_path
    - assert_rnp_failure
    - assert_int_equal
    - assert_rnp_success
    - rnp_dearmor
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_dearmor_edge_cases)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2022,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:2022,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2023,1
    - Dst: rnp_output_to_armor
      Src: /src/rnp/src/tests/ffi.cpp:2023,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:2025,1
    - Dst: rnp_output_armor_set_line_length
      Src: /src/rnp/src/tests/ffi.cpp:2025,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:2027,1
    - Dst: rnp_output_armor_set_line_length
      Src: /src/rnp/src/tests/ffi.cpp:2027,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:2029,1
    - Dst: rnp_output_armor_set_line_length
      Src: /src/rnp/src/tests/ffi.cpp:2029,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2030,1
    - Dst: rnp_output_armor_set_line_length
      Src: /src/rnp/src/tests/ffi.cpp:2030,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2031,1
    - Dst: rnp_output_armor_set_line_length
      Src: /src/rnp/src/tests/ffi.cpp:2031,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:2033,1
    - Dst: rnp_output_armor_set_line_length
      Src: /src/rnp/src/tests/ffi.cpp:2033,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2034,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2034,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2035,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2035,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2045,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi.cpp:2046,1
    - Dst: std::string::data
      Src: /src/rnp/src/tests/ffi.cpp:2046,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/ffi.cpp:2046,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2047,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:2047,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2048,1
    - Dst: rnp_output_to_armor
      Src: /src/rnp/src/tests/ffi.cpp:2048,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2049,1
    - Dst: rnp_output_armor_set_line_length
      Src: /src/rnp/src/tests/ffi.cpp:2049,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2050,1
    - Dst: rnp_output_pipe
      Src: /src/rnp/src/tests/ffi.cpp:2050,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2051,1
    - Dst: rnp_output_finish
      Src: /src/rnp/src/tests/ffi.cpp:2051,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2052,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:2052,1
    - Dst: string
      Src: /src/rnp/src/tests/ffi.cpp:2053,1
    - Dst: get_longest_line_length
      Src: /src/rnp/src/tests/ffi.cpp:2054,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2055,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2056,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2057,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2057,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2058,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2058,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2059,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2059,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2062,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi.cpp:2063,1
    - Dst: std::string::data
      Src: /src/rnp/src/tests/ffi.cpp:2063,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/ffi.cpp:2063,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2064,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:2064,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2066,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:2066,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2068,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:2068,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2070,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2072,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2072,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2073,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2073,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 36
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2075
      start: 2012
    functionDepth: 2
    functionLinenumber: 2012
    functionLinenumberEnd: 2075
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_to_memory
    - rnp_output_armor_set_line_length
    - rnp_output_finish
    - rnp_input_from_memory
    - rnp_output_memory_get_buf
    - assert_rnp_failure
    - get_longest_line_length
    - assert_true
    - rnp_output_to_armor
    - string
    - assert_int_equal
    - assert_rnp_success
    - rnp_dearmor
    - std::string::data
    - std::string::size
    - rnp_output_pipe
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_customized_enarmor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_version
      Src: /src/rnp/src/tests/ffi.cpp:2079,1
    - Dst: rnp_version_major
      Src: /src/rnp/src/tests/ffi.cpp:2080,1
    - Dst: rnp_version_minor
      Src: /src/rnp/src/tests/ffi.cpp:2081,1
    - Dst: rnp_version_patch
      Src: /src/rnp/src/tests/ffi.cpp:2082,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:2085,1
    - Dst: fmt
      Src: /src/rnp/src/tests/ffi.cpp:2085,1
    - Dst: rnp_version_string
      Src: /src/rnp/src/tests/ffi.cpp:2085,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2088,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi.cpp:2088,1
    - Dst: rnp_version_string_full
      Src: /src/rnp/src/tests/ffi.cpp:2088,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi.cpp:2088,1
    - Dst: rnp_version_string
      Src: /src/rnp/src/tests/ffi.cpp:2088,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2091,1
    - Dst: rnp_version_for
      Src: /src/rnp/src/tests/ffi.cpp:2091,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2094,1
    - Dst: rnp_version_for
      Src: /src/rnp/src/tests/ffi.cpp:2094,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2095,1
    - Dst: rnp_version_for
      Src: /src/rnp/src/tests/ffi.cpp:2095,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2096,1
    - Dst: rnp_version_for
      Src: /src/rnp/src/tests/ffi.cpp:2096,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2099,1
    - Dst: rnp_version_major
      Src: /src/rnp/src/tests/ffi.cpp:2099,1
    - Dst: rnp_version_for
      Src: /src/rnp/src/tests/ffi.cpp:2099,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2100,1
    - Dst: rnp_version_minor
      Src: /src/rnp/src/tests/ffi.cpp:2100,1
    - Dst: rnp_version_for
      Src: /src/rnp/src/tests/ffi.cpp:2100,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2101,1
    - Dst: rnp_version_patch
      Src: /src/rnp/src/tests/ffi.cpp:2101,1
    - Dst: rnp_version_for
      Src: /src/rnp/src/tests/ffi.cpp:2101,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2104,1
    - Dst: rnp_version_for
      Src: /src/rnp/src/tests/ffi.cpp:2104,1
    - Dst: rnp_version_for
      Src: /src/rnp/src/tests/ffi.cpp:2104,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2105,1
    - Dst: rnp_version_for
      Src: /src/rnp/src/tests/ffi.cpp:2105,1
    - Dst: rnp_version_for
      Src: /src/rnp/src/tests/ffi.cpp:2105,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2106,1
    - Dst: rnp_version_for
      Src: /src/rnp/src/tests/ffi.cpp:2106,1
    - Dst: rnp_version_for
      Src: /src/rnp/src/tests/ffi.cpp:2106,1
    - Dst: rnp_version_commit_timestamp
      Src: /src/rnp/src/tests/ffi.cpp:2109,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2111
      start: 2077
    functionDepth: 1
    functionLinenumber: 2077
    functionLinenumberEnd: 2111
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - fmt
    - rnp_version_commit_timestamp
    - rnp_version_major
    - assert_true
    - rnp_version_string_full
    - rnp_version_minor
    - assert_string_equal
    - assert_int_equal
    - rnp_version_string
    - rnp_version_for
    - strlen
    - rnp_version_patch
    - rnp_version
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2115,1
    - Dst: rnp_backend_string
      Src: /src/rnp/src/tests/ffi.cpp:2115,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2116,1
    - Dst: rnp_backend_version
      Src: /src/rnp/src/tests/ffi.cpp:2116,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2118,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi.cpp:2118,1
    - Dst: rnp_backend_string
      Src: /src/rnp/src/tests/ffi.cpp:2118,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi.cpp:2118,1
    - Dst: rnp_backend_string
      Src: /src/rnp/src/tests/ffi.cpp:2118,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2119,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi.cpp:2119,1
    - Dst: rnp_backend_version
      Src: /src/rnp/src/tests/ffi.cpp:2119,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi.cpp:2119,1
    - Dst: rnp_backend_version
      Src: /src/rnp/src/tests/ffi.cpp:2119,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2120
      start: 2113
    functionDepth: 1
    functionLinenumber: 2113
    functionLinenumberEnd: 2120
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - assert_true
    - strlen
    - rnp_backend_version
    - rnp_backend_string
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_backend_version)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi.cpp:2143,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2150,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:2150,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2151,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2155,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:2155,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2156,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2157,1
    - Dst: rnp_output_to_armor
      Src: /src/rnp/src/tests/ffi.cpp:2157,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2158,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2159,1
    - Dst: rnp_output_armor_set_line_length
      Src: /src/rnp/src/tests/ffi.cpp:2159,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2162,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi.cpp:2162,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2163,1
    - Dst: rnp_output_finish
      Src: /src/rnp/src/tests/ffi.cpp:2163,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2166,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:2166,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2167,1
    - Dst: string
      Src: /src/rnp/src/tests/ffi.cpp:2168,1
    - Dst: get_longest_line_length
      Src: /src/rnp/src/tests/ffi.cpp:2169,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2170,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2171,1
    - Dst: check_loaded_keys
      Src: /src/rnp/src/tests/ffi.cpp:2174,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2177,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2178,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2179,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2186,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:2186,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2187,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2191,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:2191,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2192,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2193,1
    - Dst: rnp_output_to_armor
      Src: /src/rnp/src/tests/ffi.cpp:2193,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2194,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2195,1
    - Dst: rnp_output_armor_set_line_length
      Src: /src/rnp/src/tests/ffi.cpp:2195,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2198,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi.cpp:2198,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2199,1
    - Dst: rnp_output_finish
      Src: /src/rnp/src/tests/ffi.cpp:2199,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2203,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:2203,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2204,1
    - Dst: string
      Src: /src/rnp/src/tests/ffi.cpp:2205,1
    - Dst: get_longest_line_length
      Src: /src/rnp/src/tests/ffi.cpp:2206,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2207,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2208,1
    - Dst: check_loaded_keys
      Src: /src/rnp/src/tests/ffi.cpp:2211,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2214,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2215,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2216,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2223,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:2223,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2224,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2228,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:2228,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2229,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2230,1
    - Dst: rnp_output_to_armor
      Src: /src/rnp/src/tests/ffi.cpp:2230,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2231,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2232,1
    - Dst: rnp_output_armor_set_line_length
      Src: /src/rnp/src/tests/ffi.cpp:2232,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2235,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi.cpp:2235,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2236,1
    - Dst: rnp_output_finish
      Src: /src/rnp/src/tests/ffi.cpp:2236,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2240,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:2240,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2241,1
    - Dst: string
      Src: /src/rnp/src/tests/ffi.cpp:2242,1
    - Dst: get_longest_line_length
      Src: /src/rnp/src/tests/ffi.cpp:2243,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2244,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2245,1
    - Dst: check_loaded_keys
      Src: /src/rnp/src/tests/ffi.cpp:2248,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2257,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2258,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2259,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2266,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:2266,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2267,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2271,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:2271,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2272,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2273,1
    - Dst: rnp_output_to_armor
      Src: /src/rnp/src/tests/ffi.cpp:2273,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2274,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2275,1
    - Dst: rnp_output_armor_set_line_length
      Src: /src/rnp/src/tests/ffi.cpp:2275,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2278,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi.cpp:2278,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2279,1
    - Dst: rnp_output_finish
      Src: /src/rnp/src/tests/ffi.cpp:2279,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2283,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:2283,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2284,1
    - Dst: string
      Src: /src/rnp/src/tests/ffi.cpp:2285,1
    - Dst: get_longest_line_length
      Src: /src/rnp/src/tests/ffi.cpp:2286,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2287,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2288,1
    - Dst: check_loaded_keys
      Src: /src/rnp/src/tests/ffi.cpp:2291,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2300,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2301,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2302,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 89
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2307
      start: 2130
    functionDepth: 2
    functionLinenumber: 2130
    functionLinenumberEnd: 2307
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - test_ffi_init
    - rnp_locate_key
    - rnp_output_to_memory
    - rnp_output_armor_set_line_length
    - rnp_output_finish
    - rnp_output_memory_get_buf
    - get_longest_line_length
    - assert_true
    - check_loaded_keys
    - rnp_output_to_armor
    - string
    - assert_int_equal
    - rnp_key_export
    - assert_rnp_success
    - rnp_ffi_destroy
    - rnp_key_handle_destroy
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_export_customized_enarmor)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi.cpp:2317,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2320,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:2320,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2321,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2324,1
    - Dst: rnp_key_packets_to_json
      Src: /src/rnp/src/tests/ffi.cpp:2324,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2326,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi.cpp:2327,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2328,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi.cpp:2328,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2329,1
    - Dst: nlohmann::ordered_json::is_array
      Src: /src/rnp/src/tests/ffi.cpp:2329,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2331,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2334,1
    - Dst: rnp_key_packets_to_json
      Src: /src/rnp/src/tests/ffi.cpp:2334,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2336,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi.cpp:2337,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2338,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi.cpp:2338,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2339,1
    - Dst: nlohmann::ordered_json::is_array
      Src: /src/rnp/src/tests/ffi.cpp:2339,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2341,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2344,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2346
      start: 2309
    functionDepth: 1
    functionLinenumber: 2309
    functionLinenumberEnd: 2346
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - test_ffi_init
    - rnp_locate_key
    - nlohmann::ordered_json::is_array
    - rnp_key_packets_to_json
    - assert_true
    - rnp_buffer_destroy
    - rnp_ffi_destroy
    - assert_rnp_success
    - pgp::pkt::Signature::parse
    - nlohmann::ordered_json::is_null
    - rnp_key_handle_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_dump)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2351,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:2351,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2355,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:2356,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2358,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:2358,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2359,1
    - Dst: rnp_dump_packets_to_output
      Src: /src/rnp/src/tests/ffi.cpp:2359,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2360,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2363,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:2363,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2365,1
    - Dst: std::string::find
      Src: /src/rnp/src/tests/ffi.cpp:2366,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2368,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2370,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:2371,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2373,1
    - Dst: rnp_dump_packets_to_json
      Src: /src/rnp/src/tests/ffi.cpp:2373,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2374,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2376,1
    - Dst: std::string::find
      Src: /src/rnp/src/tests/ffi.cpp:2376,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2378,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2381,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:2382,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2383,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:2383,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2384,1
    - Dst: rnp_dump_packets_to_output
      Src: /src/rnp/src/tests/ffi.cpp:2384,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2385,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2386,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:2386,1
    - Dst: string
      Src: /src/rnp/src/tests/ffi.cpp:2387,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2388,1
    - Dst: std::string::find
      Src: /src/rnp/src/tests/ffi.cpp:2388,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2390,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2392,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:2393,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2394,1
    - Dst: rnp_dump_packets_to_json
      Src: /src/rnp/src/tests/ffi.cpp:2394,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2395,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2397,1
    - Dst: std::string::find
      Src: /src/rnp/src/tests/ffi.cpp:2397,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2398,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2401,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:2402,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2403,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:2403,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2404,1
    - Dst: rnp_dump_packets_to_output
      Src: /src/rnp/src/tests/ffi.cpp:2404,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2405,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2406,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:2406,1
    - Dst: string
      Src: /src/rnp/src/tests/ffi.cpp:2407,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2408,1
    - Dst: std::string::find
      Src: /src/rnp/src/tests/ffi.cpp:2408,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2410,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2412,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:2413,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2414,1
    - Dst: rnp_dump_packets_to_json
      Src: /src/rnp/src/tests/ffi.cpp:2414,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2415,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2417,1
    - Dst: std::string::find
      Src: /src/rnp/src/tests/ffi.cpp:2417,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2418,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2420,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2421
      start: 2348
    functionDepth: 1
    functionLinenumber: 2348
    functionLinenumberEnd: 2421
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_to_memory
    - rnp_output_memory_get_buf
    - rnp_input_from_path
    - std::string::find
    - assert_true
    - rnp_buffer_destroy
    - string
    - rnp_ffi_destroy
    - assert_rnp_success
    - rnp_dump_packets_to_output
    - rnp_ffi_create
    - rnp_dump_packets_to_json
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_dump_edge_cases)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2431,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:2431,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2434,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:2434,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2436,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:2436,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2437,1
    - Dst: rnp_dump_packets_to_output
      Src: /src/rnp/src/tests/ffi.cpp:2437,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2438,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2442,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:2442,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2444,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2447,1
    - Dst: std::string::find
      Src: /src/rnp/src/tests/ffi.cpp:2447,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2448,1
    - Dst: std::string::find
      Src: /src/rnp/src/tests/ffi.cpp:2448,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2452,1
    - Dst: std::string::find
      Src: /src/rnp/src/tests/ffi.cpp:2452,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2453,1
    - Dst: std::string::find
      Src: /src/rnp/src/tests/ffi.cpp:2453,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2457,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:2457,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2459,1
    - Dst: rnp_dump_packets_to_json
      Src: /src/rnp/src/tests/ffi.cpp:2459,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2460,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2462,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2463,1
    - Dst: std::string::find
      Src: /src/rnp/src/tests/ffi.cpp:2463,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2464,1
    - Dst: std::string::find
      Src: /src/rnp/src/tests/ffi.cpp:2464,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2467
      start: 2423
    functionDepth: 1
    functionLinenumber: 2423
    functionLinenumberEnd: 2467
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_to_memory
    - rnp_output_memory_get_buf
    - rnp_input_from_path
    - std::string::find
    - assert_true
    - rnp_buffer_destroy
    - rnp_ffi_destroy
    - assert_rnp_success
    - rnp_dump_packets_to_output
    - rnp_ffi_create
    - rnp_dump_packets_to_json
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_dump_multiple_armored_messages)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2478,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:2478,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2483,1
    - Dst: rnp_op_generate_create
      Src: /src/rnp/src/tests/ffi.cpp:2483,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2484,1
    - Dst: rnp_op_generate_set_bits
      Src: /src/rnp/src/tests/ffi.cpp:2484,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2486,1
    - Dst: rnp_op_generate_set_userid
      Src: /src/rnp/src/tests/ffi.cpp:2486,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2488,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi.cpp:2488,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2490,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi.cpp:2490,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2491,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2492,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2492,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2496,1
    - Dst: rnp_key_packets_to_json
      Src: /src/rnp/src/tests/ffi.cpp:2496,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2498,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:2501,1
    - Dst: strchr
      Src: /src/rnp/src/tests/ffi.cpp:2501,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi.cpp:2504,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2505,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi.cpp:2505,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2506,1
    - Dst: nlohmann::ordered_json::is_array
      Src: /src/rnp/src/tests/ffi.cpp:2506,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2508,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2511,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2513,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2514
      start: 2469
    functionDepth: 1
    functionLinenumber: 2469
    functionLinenumberEnd: 2514
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_op_generate_execute
    - nlohmann::ordered_json::is_array
    - rnp_op_generate_set_userid
    - rnp_op_generate_set_bits
    - assert_true
    - rnp_op_generate_get_key
    - assert_null
    - assert_rnp_success
    - pgp::pkt::Signature::parse
    - rnp_key_handle_destroy
    - rnp_ffi_destroy
    - nlohmann::ordered_json::is_null
    - rnp_ffi_create
    - rnp_op_generate_create
    - rnp_key_packets_to_json
    - rnp_buffer_destroy
    - rnp_op_generate_destroy
    - strchr
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_userid_dump_has_no_special_chars)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2524,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:2524,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2527,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:2527,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:2530,1
    - Dst: rnp_dump_packets_to_json
      Src: /src/rnp/src/tests/ffi.cpp:2530,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:2531,1
    - Dst: rnp_dump_packets_to_json
      Src: /src/rnp/src/tests/ffi.cpp:2531,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:2532,1
    - Dst: rnp_dump_packets_to_json
      Src: /src/rnp/src/tests/ffi.cpp:2532,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2534,1
    - Dst: rnp_dump_packets_to_json
      Src: /src/rnp/src/tests/ffi.cpp:2534,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2536,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2538,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi.cpp:2541,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2542,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi.cpp:2542,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2543,1
    - Dst: nlohmann::ordered_json::is_array
      Src: /src/rnp/src/tests/ffi.cpp:2543,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2545,1
    - Dst: nlohmann::ordered_json::size
      Src: /src/rnp/src/tests/ffi.cpp:2545,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2547,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2551,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:2551,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2552,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:2552,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:2555,1
    - Dst: rnp_dump_packets_to_output
      Src: /src/rnp/src/tests/ffi.cpp:2555,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:2556,1
    - Dst: rnp_dump_packets_to_output
      Src: /src/rnp/src/tests/ffi.cpp:2556,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:2557,1
    - Dst: rnp_dump_packets_to_output
      Src: /src/rnp/src/tests/ffi.cpp:2557,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2559,1
    - Dst: rnp_dump_packets_to_output
      Src: /src/rnp/src/tests/ffi.cpp:2560,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2564,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:2564,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2566,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2567,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2568,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2571,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:2571,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2572,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:2572,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2573,1
    - Dst: rnp_dump_packets_to_output
      Src: /src/rnp/src/tests/ffi.cpp:2574,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2575,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:2575,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2577,1
    - Dst: strstr
      Src: /src/rnp/src/tests/ffi.cpp:2577,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2578,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2579,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2582,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:2582,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2583,1
    - Dst: rnp_dump_packets_to_json
      Src: /src/rnp/src/tests/ffi.cpp:2583,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2585,1
    - Dst: strstr
      Src: /src/rnp/src/tests/ffi.cpp:2585,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2586,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2587,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2590,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:2591,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2592,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:2592,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2593,1
    - Dst: rnp_dump_packets_to_output
      Src: /src/rnp/src/tests/ffi.cpp:2594,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2595,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:2595,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2597,1
    - Dst: strstr
      Src: /src/rnp/src/tests/ffi.cpp:2597,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2598,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2599,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2602,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:2603,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2604,1
    - Dst: rnp_dump_packets_to_json
      Src: /src/rnp/src/tests/ffi.cpp:2604,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2606,1
    - Dst: strstr
      Src: /src/rnp/src/tests/ffi.cpp:2606,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2607,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2608,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2611,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2612
      start: 2516
    functionDepth: 1
    functionLinenumber: 2516
    functionLinenumberEnd: 2612
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_output_memory_get_buf
    - nlohmann::ordered_json::is_array
    - assert_rnp_failure
    - nlohmann::ordered_json::size
    - rnp_dump_packets_to_output
    - rnp_dump_packets_to_json
    - rnp_input_from_path
    - assert_true
    - assert_rnp_success
    - pgp::pkt::Signature::parse
    - rnp_output_to_memory
    - assert_int_equal
    - rnp_ffi_destroy
    - nlohmann::ordered_json::is_null
    - rnp_ffi_create
    - rnp_input_destroy
    - rnp_buffer_destroy
    - strstr
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_pkt_dump)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2620,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:2620,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2621,1
    - Dst: rnp_dump_packets_to_json
      Src: /src/rnp/src/tests/ffi.cpp:2621,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2622,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi.cpp:2624,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2625,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2626,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi.cpp:2626,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2627,1
    - Dst: nlohmann::ordered_json::is_array
      Src: /src/rnp/src/tests/ffi.cpp:2627,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi.cpp:2628,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2629,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi.cpp:2629,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2630,1
    - Dst: nlohmann::ordered_json::is_object
      Src: /src/rnp/src/tests/ffi.cpp:2630,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2633,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi.cpp:2634,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2635,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi.cpp:2635,1
    - Dst: nlohmann::ordered_json::get_ref
      Src: /src/rnp/src/tests/ffi.cpp:2636,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2637,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:2638,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2641,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi.cpp:2642,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2643,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi.cpp:2643,1
    - Dst: nlohmann::ordered_json::get_ref
      Src: /src/rnp/src/tests/ffi.cpp:2644,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2645,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:2646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2648
      start: 2614
    functionDepth: 1
    functionLinenumber: 2614
    functionLinenumberEnd: 2648
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - nlohmann::ordered_json::at
    - rnp_input_from_path
    - nlohmann::ordered_json::is_array
    - nlohmann::ordered_json::get_ref
    - assert_true
    - rnp_buffer_destroy
    - assert_string_equal
    - nlohmann::ordered_json::is_object
    - assert_rnp_success
    - pgp::pkt::Signature::parse
    - nlohmann::ordered_json::contains
    - nlohmann::ordered_json::is_null
    - rnp_dump_packets_to_json
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_rsa_v3_dump)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2655,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:2655,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2656,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi.cpp:2656,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2659,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:2659,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2660,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2662,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi.cpp:2662,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2663,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2665,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/tests/ffi.cpp:2665,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:2666,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2667,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2669,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/tests/ffi.cpp:2669,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:2670,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2671,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2672,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2672,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2674,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2675
      start: 2650
    functionDepth: 1
    functionLinenumber: 2650
    functionLinenumberEnd: 2675
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_key_get_uid_count
    - rnp_locate_key
    - assert_true
    - assert_int_equal
    - assert_string_equal
    - rnp_buffer_destroy
    - rnp_ffi_destroy
    - assert_rnp_success
    - load_keys_gpg
    - rnp_key_get_uid_at
    - rnp_key_handle_destroy
    - rnp_ffi_create
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_load_userattr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2681,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:2681,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2683,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi.cpp:2683,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2686,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:2686,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2687,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2689,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi.cpp:2689,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2690,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2692,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/tests/ffi.cpp:2692,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:2693,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2694,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2696,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi.cpp:2696,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2697,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:2699,1
    - Dst: rnp_uid_is_revoked
      Src: /src/rnp/src/tests/ffi.cpp:2699,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:2700,1
    - Dst: rnp_uid_is_revoked
      Src: /src/rnp/src/tests/ffi.cpp:2700,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2701,1
    - Dst: rnp_uid_is_revoked
      Src: /src/rnp/src/tests/ffi.cpp:2701,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:2702,1
    - Dst: reinterpret_cast<rnp_signature_handle_t>
      Src: /src/rnp/src/tests/ffi.cpp:2704,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:2705,1
    - Dst: rnp_uid_get_revocation_signature
      Src: /src/rnp/src/tests/ffi.cpp:2705,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:2706,1
    - Dst: rnp_uid_get_revocation_signature
      Src: /src/rnp/src/tests/ffi.cpp:2706,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2707,1
    - Dst: rnp_uid_get_revocation_signature
      Src: /src/rnp/src/tests/ffi.cpp:2707,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:2708,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2709,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2709,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2711,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/tests/ffi.cpp:2711,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:2712,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2713,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2714,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi.cpp:2714,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2715,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2716,1
    - Dst: rnp_uid_is_revoked
      Src: /src/rnp/src/tests/ffi.cpp:2716,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2717,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2718,1
    - Dst: rnp_uid_get_revocation_signature
      Src: /src/rnp/src/tests/ffi.cpp:2718,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2719,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2721,1
    - Dst: rnp_signature_get_creation
      Src: /src/rnp/src/tests/ffi.cpp:2721,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2722,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2723,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2723,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2724,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2724,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2725,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2725,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2728,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi.cpp:2728,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2729,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi.cpp:2729,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2731,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:2731,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2732,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/ffi.cpp:2732,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:2733,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:2734,1
    - Dst: rnp_key_get_revocation_signature
      Src: /src/rnp/src/tests/ffi.cpp:2734,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:2735,1
    - Dst: rnp_key_get_revocation_signature
      Src: /src/rnp/src/tests/ffi.cpp:2735,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2736,1
    - Dst: rnp_key_get_revocation_signature
      Src: /src/rnp/src/tests/ffi.cpp:2736,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:2737,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2739,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi.cpp:2739,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2740,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2742,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi.cpp:2742,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2743,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2744,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2744,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2746,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:2746,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2747,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/ffi.cpp:2747,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2748,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2750,1
    - Dst: rnp_key_get_revocation_reason
      Src: /src/rnp/src/tests/ffi.cpp:2750,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:2751,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2752,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2753,1
    - Dst: rnp_key_is_superseded
      Src: /src/rnp/src/tests/ffi.cpp:2753,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:2754,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2755,1
    - Dst: rnp_key_is_compromised
      Src: /src/rnp/src/tests/ffi.cpp:2755,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2756,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2757,1
    - Dst: rnp_key_is_retired
      Src: /src/rnp/src/tests/ffi.cpp:2757,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:2758,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2759,1
    - Dst: rnp_key_get_revocation_signature
      Src: /src/rnp/src/tests/ffi.cpp:2759,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2760,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2761,1
    - Dst: rnp_signature_get_creation
      Src: /src/rnp/src/tests/ffi.cpp:2761,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2762,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2763,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2763,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2764,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi.cpp:2764,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:2765,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2766,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi.cpp:2766,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2767,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2768,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2768,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2771,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi.cpp:2771,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2772,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi.cpp:2772,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2774,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:2774,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2775,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/ffi.cpp:2775,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2776,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2778,1
    - Dst: rnp_key_get_revocation_reason
      Src: /src/rnp/src/tests/ffi.cpp:2778,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:2779,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2780,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2781,1
    - Dst: rnp_key_is_superseded
      Src: /src/rnp/src/tests/ffi.cpp:2781,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2782,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2783,1
    - Dst: rnp_key_is_compromised
      Src: /src/rnp/src/tests/ffi.cpp:2783,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:2784,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2785,1
    - Dst: rnp_key_is_retired
      Src: /src/rnp/src/tests/ffi.cpp:2785,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:2786,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2787,1
    - Dst: rnp_key_get_revocation_signature
      Src: /src/rnp/src/tests/ffi.cpp:2787,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:2788,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2789,1
    - Dst: rnp_signature_get_creation
      Src: /src/rnp/src/tests/ffi.cpp:2789,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2790,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2791,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2791,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2792,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi.cpp:2792,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:2793,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2794,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi.cpp:2794,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2795,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2797,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi.cpp:2797,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2798,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2799,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2799,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2802,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 99
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2803
      start: 2677
    functionDepth: 1
    functionLinenumber: 2677
    functionLinenumberEnd: 2803
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - assert_rnp_failure
    - rnp_key_get_uid_handle_at
    - rnp_key_is_valid
    - assert_string_equal
    - rnp_key_valid_till
    - assert_true
    - assert_null
    - assert_rnp_success
    - rnp_signature_get_creation
    - rnp_key_handle_destroy
    - rnp_key_is_revoked
    - rnp_key_is_retired
    - rnp_locate_key
    - rnp_uid_get_revocation_signature
    - rnp_uid_handle_destroy
    - assert_int_equal
    - rnp_key_is_superseded
    - rnp_ffi_destroy
    - rnp_key_is_compromised
    - rnp_ffi_create
    - rnp_key_valid_till64
    - reinterpret_cast<rnp_signature_handle_t>
    - rnp_signature_handle_destroy
    - rnp_key_get_uid_count
    - rnp_uid_is_revoked
    - rnp_buffer_destroy
    - rnp_key_get_revocation_signature
    - load_keys_gpg
    - rnp_key_get_uid_at
    - assert_false
    - rnp_key_get_revocation_reason
    - rnp_unload_keys
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_revocations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2810,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:2810,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2812,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi.cpp:2812,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2813,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi.cpp:2813,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2817,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:2817,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2818,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:2818,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2822,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi.cpp:2822,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2823,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi.cpp:2823,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2825,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2825,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2826,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/tests/ffi.cpp:2826,1
    - Dst: file_size
      Src: /src/rnp/src/tests/ffi.cpp:2827,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2828,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi.cpp:2828,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2829,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi.cpp:2829,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2831,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2831,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2832,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/tests/ffi.cpp:2832,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2833,1
    - Dst: file_size
      Src: /src/rnp/src/tests/ffi.cpp:2833,1
    - Dst: file_size
      Src: /src/rnp/src/tests/ffi.cpp:2834,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:2836,1
    - Dst: rnp_output_to_file
      Src: /src/rnp/src/tests/ffi.cpp:2836,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:2837,1
    - Dst: rnp_output_to_file
      Src: /src/rnp/src/tests/ffi.cpp:2837,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:2838,1
    - Dst: rnp_output_to_file
      Src: /src/rnp/src/tests/ffi.cpp:2838,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:2840,1
    - Dst: rnp_output_to_file
      Src: /src/rnp/src/tests/ffi.cpp:2840,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2842,1
    - Dst: rnp_output_to_file
      Src: /src/rnp/src/tests/ffi.cpp:2842,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2843,1
    - Dst: file_size
      Src: /src/rnp/src/tests/ffi.cpp:2843,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2844,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi.cpp:2845,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:2846,1
    - Dst: rnp_output_finish
      Src: /src/rnp/src/tests/ffi.cpp:2846,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2847,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2847,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2849,1
    - Dst: rnp_output_to_file
      Src: /src/rnp/src/tests/ffi.cpp:2849,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2851,1
    - Dst: file_size
      Src: /src/rnp/src/tests/ffi.cpp:2851,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2852,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi.cpp:2853,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2854,1
    - Dst: rnp_output_finish
      Src: /src/rnp/src/tests/ffi.cpp:2854,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2855,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2855,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2856,1
    - Dst: file_size
      Src: /src/rnp/src/tests/ffi.cpp:2856,1
    - Dst: file_size
      Src: /src/rnp/src/tests/ffi.cpp:2857,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2859,1
    - Dst: rnp_output_to_file
      Src: /src/rnp/src/tests/ffi.cpp:2859,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2860,1
    - Dst: file_size
      Src: /src/rnp/src/tests/ffi.cpp:2860,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2861,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi.cpp:2862,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2863,1
    - Dst: rnp_output_finish
      Src: /src/rnp/src/tests/ffi.cpp:2863,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2864,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2864,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2865,1
    - Dst: file_size
      Src: /src/rnp/src/tests/ffi.cpp:2865,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2866,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/ffi.cpp:2866,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2868,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2868,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2869,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2869,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2871
      start: 2807
    functionDepth: 1
    functionLinenumber: 2807
    functionLinenumberEnd: 2871
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_to_path
    - rnp_locate_key
    - rnp_output_finish
    - rnp_output_to_file
    - assert_rnp_failure
    - assert_true
    - file_size
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_key_export
    - assert_rnp_success
    - rnp_unlink
    - load_keys_gpg
    - rnp_file_exists
    - rnp_key_handle_destroy
    - rnp_ffi_create
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_file_output)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2876,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:2876,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2878,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi.cpp:2878,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2881,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:2881,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:2884,1
    - Dst: rnp_output_to_stdout
      Src: /src/rnp/src/tests/ffi.cpp:2884,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2885,1
    - Dst: rnp_output_to_stdout
      Src: /src/rnp/src/tests/ffi.cpp:2885,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2886,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi.cpp:2886,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2888,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2888,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:2889,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2889,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2890,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2891
      start: 2873
    functionDepth: 1
    functionLinenumber: 2873
    functionLinenumberEnd: 2891
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_locate_key
    - assert_rnp_failure
    - assert_true
    - rnp_ffi_destroy
    - rnp_key_export
    - assert_rnp_success
    - load_keys_gpg
    - rnp_output_to_stdout
    - rnp_key_handle_destroy
    - rnp_ffi_create
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_stdout_output)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/tests/ffi.cpp:2900,1
    - Dst: std::invalid_argument
      Src: /src/rnp/src/tests/ffi.cpp:2901,1
    - Dst: std::vector::reserve
      Src: /src/rnp/src/tests/ffi.cpp:2905,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/tests/ffi.cpp:2905,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/tests/ffi.cpp:2906,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/tests/ffi.cpp:2908,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/tests/ffi.cpp:2909,1
    - Dst: std::vector::end
      Src: /src/rnp/src/tests/ffi.cpp:2909,1
    - Dst: std::vector<uint8_t>::begin
      Src: /src/rnp/src/tests/ffi.cpp:2909,1
    - Dst: std::vector<uint8_t>::end
      Src: /src/rnp/src/tests/ffi.cpp:2909,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - src
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2911
      start: 2896
    functionDepth: 1
    functionLinenumber: 2896
    functionLinenumberEnd: 2911
    functionName: shrink_len_2_to_1
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - std::vector::reserve
    - std::vector::insert
    - std::vector<uint8_t>::end
    - std::invalid_argument
    - std::vector::end
    - std::vector<uint8_t>::begin
    - std::vector::push_back
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> shrink_len_2_to_1(const std::vector<uint8_t> &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/tests/ffi.cpp:2919,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2923
      start: 2916
    functionDepth: 0
    functionLinenumber: 2916
    functionLinenumberEnd: 2923
    functionName: fake_len_EEEE
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> fake_len_EEEE(const std::vector<uint8_t> &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: shrink_len_2_to_1
      Src: /src/rnp/src/tests/ffi.cpp:2931,1
    - Dst: std::vector::erase
      Src: /src/rnp/src/tests/ffi.cpp:2934,1
    - Dst: std::vector::begin
      Src: /src/rnp/src/tests/ffi.cpp:2934,1
    - Dst: std::vector::begin
      Src: /src/rnp/src/tests/ffi.cpp:2934,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2937
      start: 2928
    functionDepth: 2
    functionLinenumber: 2928
    functionLinenumberEnd: 2937
    functionName: fake_len_0
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - shrink_len_2_to_1
    - std::vector::erase
    - std::vector::begin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> fake_len_0(const std::vector<uint8_t> &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/tests/ffi.cpp:2945,1
    - Dst: std::vector::reserve
      Src: /src/rnp/src/tests/ffi.cpp:2946,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/tests/ffi.cpp:2946,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/tests/ffi.cpp:2947,1
    - Dst: std::vector::end
      Src: /src/rnp/src/tests/ffi.cpp:2947,1
    - Dst: std::vector<uint8_t>::begin
      Src: /src/rnp/src/tests/ffi.cpp:2947,1
    - Dst: std::vector<uint8_t>::begin
      Src: /src/rnp/src/tests/ffi.cpp:2947,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/tests/ffi.cpp:2950,1
    - Dst: std::vector::begin
      Src: /src/rnp/src/tests/ffi.cpp:2950,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/tests/ffi.cpp:2951,1
    - Dst: std::vector::end
      Src: /src/rnp/src/tests/ffi.cpp:2951,1
    - Dst: std::vector<uint8_t>::begin
      Src: /src/rnp/src/tests/ffi.cpp:2951,1
    - Dst: std::vector<uint8_t>::end
      Src: /src/rnp/src/tests/ffi.cpp:2951,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - src
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2953
      start: 2942
    functionDepth: 1
    functionLinenumber: 2942
    functionLinenumberEnd: 2953
    functionName: extend_len_2_to_4
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - std::vector<uint8_t>
    - std::vector::reserve
    - std::vector::insert
    - std::vector<uint8_t>::end
    - std::vector::end
    - std::vector<uint8_t>::begin
    - std::vector::begin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> extend_len_2_to_4(const std::vector<uint8_t> &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:2959,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi.cpp:2960,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/tests/ffi.cpp:2960,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:2961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - keyring
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2963
      start: 2955
    functionDepth: 1
    functionLinenumber: 2955
    functionLinenumberEnd: 2963
    functionName: import_public_keys_from_vector
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_ffi_create
    - std::vector<uint8_t>::size
    - rnp_ffi_destroy
    - import_pub_keys
    linkageType: ''
    returnType: bool
    signature: bool import_public_keys_from_vector(std::vector<uint8_t> keyring)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/ffi.cpp:2967,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2971,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/ffi.cpp:2971,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2975,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2976,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2978,1
    - Dst: import_public_keys_from_vector
      Src: /src/rnp/src/tests/ffi.cpp:2978,1
    - Dst: shrink_len_2_to_1
      Src: /src/rnp/src/tests/ffi.cpp:2981,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2982,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/ffi.cpp:2982,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/ffi.cpp:2982,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2983,1
    - Dst: import_public_keys_from_vector
      Src: /src/rnp/src/tests/ffi.cpp:2983,1
    - Dst: fake_len_0
      Src: /src/rnp/src/tests/ffi.cpp:2987,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:2988,1
    - Dst: import_public_keys_from_vector
      Src: /src/rnp/src/tests/ffi.cpp:2988,1
    - Dst: fake_len_EEEE
      Src: /src/rnp/src/tests/ffi.cpp:2992,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2993,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/ffi.cpp:2993,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/ffi.cpp:2993,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:2994,1
    - Dst: import_public_keys_from_vector
      Src: /src/rnp/src/tests/ffi.cpp:2994,1
    - Dst: extend_len_2_to_4
      Src: /src/rnp/src/tests/ffi.cpp:2997,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:2998,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/ffi.cpp:2998,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/ffi.cpp:2998,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:2999,1
    - Dst: import_public_keys_from_vector
      Src: /src/rnp/src/tests/ffi.cpp:2999,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:3005,1
    - Dst: import_public_keys_from_vector
      Src: /src/rnp/src/tests/ffi.cpp:3005,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3007
      start: 2965
    functionDepth: 3
    functionLinenumber: 2965
    functionLinenumberEnd: 3007
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - std::vector::size
    - assert_true
    - shrink_len_2_to_1
    - assert_int_equal
    - import_public_keys_from_vector
    - fake_len_0
    - fake_len_EEEE
    - extend_len_2_to_4
    - assert_false
    - file_to_vec
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_import_keys_check_pktlen)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3012,1
    - Dst: rnp_calculate_iterations
      Src: /src/rnp/src/tests/ffi.cpp:3012,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3013,1
    - Dst: rnp_calculate_iterations
      Src: /src/rnp/src/tests/ffi.cpp:3013,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3014,1
    - Dst: rnp_calculate_iterations
      Src: /src/rnp/src/tests/ffi.cpp:3014,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3015,1
    - Dst: rnp_calculate_iterations
      Src: /src/rnp/src/tests/ffi.cpp:3015,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3017
      start: 3009
    functionDepth: 1
    functionLinenumber: 3009
    functionLinenumberEnd: 3017
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_calculate_iterations
    - assert_rnp_success
    - assert_rnp_failure
    - assert_true
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_calculate_iterations)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi.cpp:3024,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi.cpp:3025,1
    - Dst: nlohmann::ordered_json::is_array
      Src: /src/rnp/src/tests/ffi.cpp:3029,1
    - Dst: nlohmann::ordered_json::size
      Src: /src/rnp/src/tests/ffi.cpp:3032,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/tests/ffi.cpp:3034,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi.cpp:3038,1
    - Dst: nlohmann::ordered_json::get_ref
      Src: /src/rnp/src/tests/ffi.cpp:3039,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3041,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 3
    argNames:
    - type
    - json
    - count
    argTypes:
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3050
      start: 3019
    functionDepth: 1
    functionLinenumber: 3019
    functionLinenumberEnd: 3050
    functionName: check_features
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - nlohmann::ordered_json::at
    - nlohmann::ordered_json::is_array
    - nlohmann::ordered_json::get_ref
    - nlohmann::ordered_json::size
    - rnp_supports_feature
    - pgp::pkt::Signature::parse
    - nlohmann::ordered_json::is_null
    linkageType: ''
    returnType: bool
    signature: bool check_features(const char *type, const char *json, size_t count)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3056,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/ffi.cpp:3056,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3057,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/ffi.cpp:3057,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3058,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/ffi.cpp:3058,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3059,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/ffi.cpp:3059,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3061,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/ffi.cpp:3061,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:3062,1
    - Dst: sm2_enabled
      Src: /src/rnp/src/tests/ffi.cpp:3063,1
    - Dst: twofish_enabled
      Src: /src/rnp/src/tests/ffi.cpp:3064,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/ffi.cpp:3065,1
    - Dst: idea_enabled
      Src: /src/rnp/src/tests/ffi.cpp:3066,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3067,1
    - Dst: check_features
      Src: /src/rnp/src/tests/ffi.cpp:3068,1
    - Dst: blowfish_enabled
      Src: /src/rnp/src/tests/ffi.cpp:3070,1
    - Dst: cast5_enabled
      Src: /src/rnp/src/tests/ffi.cpp:3070,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3071,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3073,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3073,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3074,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3074,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3075,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3075,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3076,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3076,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3077,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3077,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3078,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3079,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3079,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3080,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3081,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3081,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:3082,1
    - Dst: cast5_enabled
      Src: /src/rnp/src/tests/ffi.cpp:3082,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3083,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3083,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:3084,1
    - Dst: blowfish_enabled
      Src: /src/rnp/src/tests/ffi.cpp:3084,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3085,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3085,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3086,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3087,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3087,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3088,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3089,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3089,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3090,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3091,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3091,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3092,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3093,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3093,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3094,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3095,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3095,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3096,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3097,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3097,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3098,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3099,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3099,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3100,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3101,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3101,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3102,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3103,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3103,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3104,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3105,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3105,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3106,1
    - Dst: cast5_enabled
      Src: /src/rnp/src/tests/ffi.cpp:3106,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3107,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3107,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3108,1
    - Dst: blowfish_enabled
      Src: /src/rnp/src/tests/ffi.cpp:3108,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3109,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3109,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3110,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3111,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3111,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3112,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3113,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3113,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3114,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3115,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3115,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3116,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3117,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3117,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3118,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3119,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3119,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3120,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3121,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3121,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3122,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3123,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3123,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3124,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3125,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3125,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:3126,1
    - Dst: aead_eax_enabled
      Src: /src/rnp/src/tests/ffi.cpp:3128,1
    - Dst: aead_ocb_enabled
      Src: /src/rnp/src/tests/ffi.cpp:3129,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3130,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/ffi.cpp:3130,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:3131,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3132,1
    - Dst: check_features
      Src: /src/rnp/src/tests/ffi.cpp:3132,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3133,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3134,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3134,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3135,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3136,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3136,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3137,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3138,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3138,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3139,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3140,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3140,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:3141,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3143,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/ffi.cpp:3143,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:3144,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3145,1
    - Dst: check_features
      Src: /src/rnp/src/tests/ffi.cpp:3145,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3146,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3147,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3147,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3148,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3149,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3149,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:3150,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3152,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/ffi.cpp:3152,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:3153,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3165,1
    - Dst: check_features
      Src: /src/rnp/src/tests/ffi.cpp:3165,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3167,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3168,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3168,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3169,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3170,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3170,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3171,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3172,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3172,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3173,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3174,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3174,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3175,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3176,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3176,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3177,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3178,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3178,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3179,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3180,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3180,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3181,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3182,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3182,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3183,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3184,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3184,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3185,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3186,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3186,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3187,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3188,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3188,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3189,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3190,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3190,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3191,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3192,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3192,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3193,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3194,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3194,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3195,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3196,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3196,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:3197,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3199,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/ffi.cpp:3199,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:3200,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3201,1
    - Dst: check_features
      Src: /src/rnp/src/tests/ffi.cpp:3202,1
    - Dst: ripemd160_enabled
      Src: /src/rnp/src/tests/ffi.cpp:3202,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3203,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3204,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3204,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3205,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3206,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3206,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3207,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3208,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3208,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3209,1
    - Dst: ripemd160_enabled
      Src: /src/rnp/src/tests/ffi.cpp:3209,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3210,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3210,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3211,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3212,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3212,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3213,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3214,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3214,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3215,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3216,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3216,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3217,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3218,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3218,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3219,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3220,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3220,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3221,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3222,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3222,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3223,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3224,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3224,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3225,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3226,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3226,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3227,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3228,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3228,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3229,1
    - Dst: ripemd160_enabled
      Src: /src/rnp/src/tests/ffi.cpp:3229,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3230,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3230,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3231,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3232,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3232,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3233,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3234,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3234,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3235,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3236,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3236,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3237,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3238,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3238,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3239,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3240,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3240,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3241,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3242,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3242,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3243,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3244,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3244,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:3245,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3246,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3246,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:3247,1
    - Dst: bzip2_enabled
      Src: /src/rnp/src/tests/ffi.cpp:3249,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3250,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/ffi.cpp:3250,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:3251,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3252,1
    - Dst: check_features
      Src: /src/rnp/src/tests/ffi.cpp:3252,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3253,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3254,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3254,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3255,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3256,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3256,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3257,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3258,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3258,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3259,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3260,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3260,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3261,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3262,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3262,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:3263,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3265,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/ffi.cpp:3265,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:3266,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3271,1
    - Dst: check_features
      Src: /src/rnp/src/tests/ffi.cpp:3271,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3273,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3274,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3274,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3275,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3276,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3276,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3277,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3278,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3278,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3279,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3280,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3280,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3281,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3282,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3282,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3283,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3284,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3284,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3285,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3286,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3286,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3287,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3288,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3288,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3289,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3290,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3290,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3291,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3292,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3292,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3293,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3294,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/ffi.cpp:3294,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:3295,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 209
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3296
      start: 3052
    functionDepth: 2
    functionLinenumber: 3052
    functionLinenumberEnd: 3296
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - assert_rnp_failure
    - idea_enabled
    - check_features
    - assert_true
    - bzip2_enabled
    - aead_ocb_enabled
    - assert_rnp_success
    - cast5_enabled
    - sm2_enabled
    - assert_int_equal
    - rnp_supports_feature
    - blowfish_enabled
    - ripemd160_enabled
    - twofish_enabled
    - rnp_buffer_destroy
    - rnp_supported_features
    - brainpool_enabled
    - assert_false
    - aead_eax_enabled
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_supported_features)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3305,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:3305,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3306,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi.cpp:3306,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3309,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:3309,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:3310,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3312,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:3312,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3314,1
    - Dst: rnp_output_to_armor
      Src: /src/rnp/src/tests/ffi.cpp:3314,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:3315,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3316,1
    - Dst: rnp_output_to_armor
      Src: /src/rnp/src/tests/ffi.cpp:3316,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:3317,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3318,1
    - Dst: rnp_output_to_armor
      Src: /src/rnp/src/tests/ffi.cpp:3318,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:3319,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3321,1
    - Dst: rnp_output_to_armor
      Src: /src/rnp/src/tests/ffi.cpp:3321,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3322,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi.cpp:3322,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3323,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3323,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3327,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:3327,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:3328,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3330,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi.cpp:3330,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:3331,1
    - Dst: strncmp
      Src: /src/rnp/src/tests/ffi.cpp:3331,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi.cpp:3331,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3332,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi.cpp:3332,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3334,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:3334,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3335,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/tests/ffi.cpp:3335,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3336,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3337,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3339,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3340,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3342
      start: 3298
    functionDepth: 1
    functionLinenumber: 3298
    functionLinenumberEnd: 3342
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_output_memory_get_buf
    - strncmp
    - assert_rnp_failure
    - strlen
    - assert_true
    - assert_null
    - assert_rnp_success
    - rnp_dearmor
    - rnp_key_handle_destroy
    - rnp_output_to_memory
    - rnp_locate_key
    - rnp_input_from_memory
    - rnp_output_to_armor
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_ffi_create
    - rnp_input_destroy
    - rnp_key_export
    - load_keys_gpg
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_output_to_armor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3348,1
    - Dst: rnp_guess_contents
      Src: /src/rnp/src/tests/ffi.cpp:3348,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3350,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3351,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3352,1
    - Dst: rnp_guess_contents
      Src: /src/rnp/src/tests/ffi.cpp:3352,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:3353,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/ffi.cpp:3353,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3354,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3355,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3357,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3357,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3358,1
    - Dst: rnp_guess_contents
      Src: /src/rnp/src/tests/ffi.cpp:3358,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3359,1
    - Dst: rnp_guess_contents
      Src: /src/rnp/src/tests/ffi.cpp:3359,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:3360,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3361,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3362,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3364,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3365,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3366,1
    - Dst: rnp_guess_contents
      Src: /src/rnp/src/tests/ffi.cpp:3366,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:3367,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3368,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3369,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3371,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3371,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3372,1
    - Dst: rnp_guess_contents
      Src: /src/rnp/src/tests/ffi.cpp:3372,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:3373,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3374,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3375,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3377,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3377,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3378,1
    - Dst: rnp_guess_contents
      Src: /src/rnp/src/tests/ffi.cpp:3378,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:3379,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3380,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3381,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3383,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3383,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3384,1
    - Dst: rnp_guess_contents
      Src: /src/rnp/src/tests/ffi.cpp:3384,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:3385,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3386,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3387,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3389,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3390,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3391,1
    - Dst: rnp_guess_contents
      Src: /src/rnp/src/tests/ffi.cpp:3391,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:3392,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3393,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3394,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3396,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3396,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3397,1
    - Dst: rnp_guess_contents
      Src: /src/rnp/src/tests/ffi.cpp:3397,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:3398,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3399,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3400,1
    - Dst: bzip2_enabled
      Src: /src/rnp/src/tests/ffi.cpp:3402,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3403,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3403,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3404,1
    - Dst: rnp_guess_contents
      Src: /src/rnp/src/tests/ffi.cpp:3404,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:3405,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3406,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3407,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3410,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3411,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3412,1
    - Dst: rnp_guess_contents
      Src: /src/rnp/src/tests/ffi.cpp:3412,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:3413,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3414,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3415,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3417,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3418,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3419,1
    - Dst: rnp_guess_contents
      Src: /src/rnp/src/tests/ffi.cpp:3419,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:3420,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3421,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3422,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3424,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3425,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3426,1
    - Dst: rnp_guess_contents
      Src: /src/rnp/src/tests/ffi.cpp:3426,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:3427,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3428,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3429,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3431,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3431,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3432,1
    - Dst: rnp_guess_contents
      Src: /src/rnp/src/tests/ffi.cpp:3432,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:3433,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3434,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3435,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3437,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3437,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3438,1
    - Dst: rnp_guess_contents
      Src: /src/rnp/src/tests/ffi.cpp:3438,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:3439,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3440,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3441,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3443,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3444,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3445,1
    - Dst: rnp_guess_contents
      Src: /src/rnp/src/tests/ffi.cpp:3445,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:3446,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3447,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3448,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3451,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi.cpp:3451,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi.cpp:3451,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3452,1
    - Dst: rnp_guess_contents
      Src: /src/rnp/src/tests/ffi.cpp:3452,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:3453,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3454,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3455,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3458,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi.cpp:3458,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi.cpp:3458,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3459,1
    - Dst: rnp_guess_contents
      Src: /src/rnp/src/tests/ffi.cpp:3459,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:3460,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3461,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3462,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 90
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3463
      start: 3344
    functionDepth: 1
    functionLinenumber: 3344
    functionLinenumberEnd: 3463
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_input_from_path
    - rnp_input_from_memory
    - assert_rnp_failure
    - bzip2_enabled
    - assert_int_equal
    - rnp_buffer_destroy
    - assert_string_equal
    - assert_rnp_success
    - rnp_guess_contents
    - strcmp
    - strlen
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_rnp_guess_contents)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi.cpp:3475,1
    - Dst: test_ffi_init_sign_memory_input
      Src: /src/rnp/src/tests/ffi.cpp:3477,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3479,1
    - Dst: rnp_op_sign_create
      Src: /src/rnp/src/tests/ffi.cpp:3479,1
    - Dst: test_ffi_setup_signatures
      Src: /src/rnp/src/tests/ffi.cpp:3481,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3483,1
    - Dst: rnp_op_sign_set_file_name
      Src: /src/rnp/src/tests/ffi.cpp:3483,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3484,1
    - Dst: rnp_op_sign_set_file_name
      Src: /src/rnp/src/tests/ffi.cpp:3484,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3485,1
    - Dst: rnp_op_sign_set_file_name
      Src: /src/rnp/src/tests/ffi.cpp:3485,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3486,1
    - Dst: rnp_op_sign_set_file_name
      Src: /src/rnp/src/tests/ffi.cpp:3486,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3487,1
    - Dst: rnp_op_sign_set_file_mtime
      Src: /src/rnp/src/tests/ffi.cpp:3487,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3488,1
    - Dst: rnp_op_sign_set_file_mtime
      Src: /src/rnp/src/tests/ffi.cpp:3488,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3490,1
    - Dst: rnp_op_sign_execute
      Src: /src/rnp/src/tests/ffi.cpp:3490,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3492,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:3492,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:3493,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3494,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3497,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3497,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3499,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3499,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3501,1
    - Dst: rnp_op_sign_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3501,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3505,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi.cpp:3505,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3507,1
    - Dst: rnp_dump_packets_to_json
      Src: /src/rnp/src/tests/ffi.cpp:3507,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:3508,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3512,1
    - Dst: std::string::find
      Src: /src/rnp/src/tests/ffi.cpp:3512,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3513,1
    - Dst: std::string::find
      Src: /src/rnp/src/tests/ffi.cpp:3513,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3516,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3516,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3517,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3518,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3519,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3520
      start: 3465
    functionDepth: 2
    functionLinenumber: 3465
    functionLinenumberEnd: 3520
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_op_sign_destroy
    - rnp_output_memory_get_buf
    - assert_rnp_failure
    - test_ffi_init_sign_memory_input
    - rnp_dump_packets_to_json
    - std::string::find
    - assert_true
    - assert_rnp_success
    - rnp_op_sign_create
    - test_ffi_init
    - rnp_input_from_memory
    - test_ffi_setup_signatures
    - rnp_ffi_destroy
    - rnp_op_sign_set_file_mtime
    - rnp_input_destroy
    - rnp_buffer_destroy
    - rnp_op_sign_execute
    - rnp_output_destroy
    - rnp_op_sign_set_file_name
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_literal_filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi.cpp:3532,1
    - Dst: test_ffi_init_sign_memory_input
      Src: /src/rnp/src/tests/ffi.cpp:3534,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3536,1
    - Dst: rnp_op_sign_create
      Src: /src/rnp/src/tests/ffi.cpp:3536,1
    - Dst: test_ffi_setup_signatures
      Src: /src/rnp/src/tests/ffi.cpp:3538,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3540,1
    - Dst: rnp_op_sign_set_hash
      Src: /src/rnp/src/tests/ffi.cpp:3540,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3541,1
    - Dst: rnp_op_sign_set_hash
      Src: /src/rnp/src/tests/ffi.cpp:3541,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3542,1
    - Dst: rnp_op_sign_set_hash
      Src: /src/rnp/src/tests/ffi.cpp:3542,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3543,1
    - Dst: rnp_op_sign_set_hash
      Src: /src/rnp/src/tests/ffi.cpp:3543,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3545,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi.cpp:3546,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:3547,1
    - Dst: rnp_op_sign_execute
      Src: /src/rnp/src/tests/ffi.cpp:3547,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3548,1
    - Dst: rnp_op_sign_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3548,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3550,1
    - Dst: rnp_op_sign_create
      Src: /src/rnp/src/tests/ffi.cpp:3550,1
    - Dst: test_ffi_setup_signatures
      Src: /src/rnp/src/tests/ffi.cpp:3552,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3553,1
    - Dst: rnp_op_sign_execute
      Src: /src/rnp/src/tests/ffi.cpp:3553,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3555,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:3555,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:3556,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3557,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3560,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3560,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3561,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3561,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3562,1
    - Dst: rnp_op_sign_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3562,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3564,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3566
      start: 3522
    functionDepth: 2
    functionLinenumber: 3522
    functionLinenumberEnd: 3566
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_op_sign_destroy
    - test_ffi_init
    - assert_non_null
    - rnp_output_memory_get_buf
    - test_ffi_setup_signatures
    - assert_rnp_failure
    - assert_true
    - assert_int_equal
    - test_ffi_init_sign_memory_input
    - rnp_buffer_destroy
    - rnp_ffi_destroy
    - assert_rnp_success
    - rnp_op_sign_create
    - rnp_ffi_set_pass_provider
    - rnp_op_sign_set_hash
    - rnp_op_sign_execute
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_op_set_hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi.cpp:3578,1
    - Dst: test_ffi_init_sign_memory_input
      Src: /src/rnp/src/tests/ffi.cpp:3580,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3582,1
    - Dst: rnp_op_sign_create
      Src: /src/rnp/src/tests/ffi.cpp:3582,1
    - Dst: test_ffi_setup_signatures
      Src: /src/rnp/src/tests/ffi.cpp:3584,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3586,1
    - Dst: rnp_op_sign_set_compression
      Src: /src/rnp/src/tests/ffi.cpp:3586,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3587,1
    - Dst: rnp_op_sign_set_compression
      Src: /src/rnp/src/tests/ffi.cpp:3587,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3588,1
    - Dst: rnp_op_sign_set_compression
      Src: /src/rnp/src/tests/ffi.cpp:3588,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3589,1
    - Dst: rnp_op_sign_set_compression
      Src: /src/rnp/src/tests/ffi.cpp:3589,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3591,1
    - Dst: rnp_op_sign_execute
      Src: /src/rnp/src/tests/ffi.cpp:3591,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3593,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:3593,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:3594,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3595,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3598,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3598,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3599,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3599,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3600,1
    - Dst: rnp_op_sign_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3600,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3602,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3604
      start: 3568
    functionDepth: 2
    functionLinenumber: 3568
    functionLinenumberEnd: 3604
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - test_ffi_init
    - rnp_op_sign_destroy
    - rnp_output_memory_get_buf
    - rnp_op_sign_set_compression
    - test_ffi_setup_signatures
    - assert_rnp_failure
    - assert_true
    - test_ffi_init_sign_memory_input
    - rnp_buffer_destroy
    - rnp_ffi_destroy
    - assert_rnp_success
    - rnp_op_sign_create
    - rnp_op_sign_execute
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_op_set_compression)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi.cpp:3615,1
    - Dst: str_to_file
      Src: /src/rnp/src/tests/ffi.cpp:3618,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3620,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3620,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:3621,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3622,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi.cpp:3622,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:3623,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3625,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi.cpp:3625,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3627,1
    - Dst: rnp_op_encrypt_set_aead
      Src: /src/rnp/src/tests/ffi.cpp:3627,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3628,1
    - Dst: rnp_op_encrypt_set_aead
      Src: /src/rnp/src/tests/ffi.cpp:3628,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3629,1
    - Dst: rnp_op_encrypt_set_aead
      Src: /src/rnp/src/tests/ffi.cpp:3629,1
    - Dst: aead_ocb_enabled
      Src: /src/rnp/src/tests/ffi.cpp:3630,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3631,1
    - Dst: rnp_op_encrypt_set_aead
      Src: /src/rnp/src/tests/ffi.cpp:3631,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3633,1
    - Dst: rnp_op_encrypt_set_aead
      Src: /src/rnp/src/tests/ffi.cpp:3633,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3635,1
    - Dst: rnp_op_encrypt_set_aead_bits
      Src: /src/rnp/src/tests/ffi.cpp:3635,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3636,1
    - Dst: rnp_op_encrypt_set_aead_bits
      Src: /src/rnp/src/tests/ffi.cpp:3636,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3637,1
    - Dst: rnp_op_encrypt_set_aead_bits
      Src: /src/rnp/src/tests/ffi.cpp:3637,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3638,1
    - Dst: rnp_op_encrypt_set_aead_bits
      Src: /src/rnp/src/tests/ffi.cpp:3638,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3639,1
    - Dst: rnp_op_encrypt_set_aead_bits
      Src: /src/rnp/src/tests/ffi.cpp:3639,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3641,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi.cpp:3641,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3643,1
    - Dst: rnp_op_encrypt_set_compression
      Src: /src/rnp/src/tests/ffi.cpp:3643,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3644,1
    - Dst: rnp_op_encrypt_set_compression
      Src: /src/rnp/src/tests/ffi.cpp:3644,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3645,1
    - Dst: rnp_op_encrypt_set_compression
      Src: /src/rnp/src/tests/ffi.cpp:3645,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3646,1
    - Dst: rnp_op_encrypt_set_compression
      Src: /src/rnp/src/tests/ffi.cpp:3646,1
    - Dst: bzip2_enabled
      Src: /src/rnp/src/tests/ffi.cpp:3647,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3648,1
    - Dst: rnp_op_encrypt_set_compression
      Src: /src/rnp/src/tests/ffi.cpp:3648,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3650,1
    - Dst: rnp_op_encrypt_set_compression
      Src: /src/rnp/src/tests/ffi.cpp:3650,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3653,1
    - Dst: rnp_op_encrypt_set_file_name
      Src: /src/rnp/src/tests/ffi.cpp:3653,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3654,1
    - Dst: rnp_op_encrypt_set_file_name
      Src: /src/rnp/src/tests/ffi.cpp:3654,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3655,1
    - Dst: rnp_op_encrypt_set_file_name
      Src: /src/rnp/src/tests/ffi.cpp:3655,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3656,1
    - Dst: rnp_op_encrypt_set_file_mtime
      Src: /src/rnp/src/tests/ffi.cpp:3656,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3657,1
    - Dst: rnp_op_encrypt_set_file_mtime
      Src: /src/rnp/src/tests/ffi.cpp:3657,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3659,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/ffi.cpp:3659,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3661,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/tests/ffi.cpp:3661,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3663,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3663,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3665,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3665,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3667,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3667,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3671,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3671,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:3672,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3674,1
    - Dst: rnp_dump_packets_to_json
      Src: /src/rnp/src/tests/ffi.cpp:3674,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3675,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3675,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi.cpp:3677,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3678,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3679,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi.cpp:3679,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3680,1
    - Dst: nlohmann::ordered_json::is_array
      Src: /src/rnp/src/tests/ffi.cpp:3680,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi.cpp:3682,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3683,1
    - Dst: check_json_pkt_type
      Src: /src/rnp/src/tests/ffi.cpp:3683,1
    - Dst: aead_ocb_enabled
      Src: /src/rnp/src/tests/ffi.cpp:3684,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3686,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:3686,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3687,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:3687,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3689,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:3689,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3690,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:3690,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi.cpp:3693,1
    - Dst: aead_ocb_enabled
      Src: /src/rnp/src/tests/ffi.cpp:3694,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3695,1
    - Dst: check_json_pkt_type
      Src: /src/rnp/src/tests/ffi.cpp:3695,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3697,1
    - Dst: check_json_pkt_type
      Src: /src/rnp/src/tests/ffi.cpp:3697,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3698,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:3698,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3699,1
    - Dst: check_json_field_str
      Src: /src/rnp/src/tests/ffi.cpp:3699,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3700,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/ffi.cpp:3700,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3705,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3705,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:3706,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3707,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi.cpp:3707,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:3708,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3709,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi.cpp:3710,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3711,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi.cpp:3711,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3713,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3715,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:3718,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi.cpp:3718,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/ffi.cpp:3719,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3722,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3723
      start: 3606
    functionDepth: 1
    functionLinenumber: 3606
    functionLinenumberEnd: 3723
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_output_to_path
    - nlohmann::ordered_json::is_array
    - assert_rnp_failure
    - rnp_op_encrypt_set_aead
    - check_json_pkt_type
    - assert_string_equal
    - rnp_unlink
    - rnp_op_encrypt_add_password
    - rnp_file_exists
    - rnp_ffi_set_pass_provider
    - rnp_dump_packets_to_json
    - rnp_input_from_path
    - assert_true
    - rnp_op_encrypt_create
    - bzip2_enabled
    - rnp_op_encrypt_set_file_mtime
    - aead_ocb_enabled
    - assert_rnp_success
    - file_to_str
    - pgp::pkt::Signature::parse
    - rnp_op_encrypt_set_compression
    - check_json_field_int
    - test_ffi_init
    - rnp_op_encrypt_set_file_name
    - rnp_op_encrypt_execute
    - rnp_decrypt
    - rnp_ffi_destroy
    - str_to_file
    - rnp_op_encrypt_set_aead_bits
    - nlohmann::ordered_json::is_null
    - rnp_input_destroy
    - nlohmann::ordered_json::at
    - rnp_buffer_destroy
    - rnp_op_encrypt_destroy
    - rnp_output_destroy
    - check_json_field_str
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_aead_params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi.cpp:3732,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3734,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3735,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3736,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:3736,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3738,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:3738,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3739,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:3739,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3740,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3741,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3742,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3743,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3744
      start: 3725
    functionDepth: 1
    functionLinenumber: 3725
    functionLinenumberEnd: 3744
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - test_ffi_init
    - rnp_input_from_path
    - assert_rnp_failure
    - rnp_input_destroy
    - rnp_ffi_destroy
    - rnp_op_verify_create
    - assert_rnp_success
    - rnp_op_verify_destroy
    - rnp_output_to_null
    - rnp_output_destroy
    - rnp_op_verify_execute
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_detached_verify_input)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi.cpp:3749,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3752,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3752,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3754,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3755,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3757,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:3757,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3758,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:3758,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3759,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3760,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3761,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3763,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3763,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3764,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3765,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3766,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:3766,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3767,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:3767,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3768,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3769,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3770,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3772,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3772,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3774,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:3774,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3775,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:3775,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3776,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:3776,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3777,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3778,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3779,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3781,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3782
      start: 3746
    functionDepth: 1
    functionLinenumber: 3746
    functionLinenumberEnd: 3782
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - test_ffi_init
    - rnp_input_from_path
    - assert_rnp_failure
    - rnp_output_to_null
    - rnp_ffi_destroy
    - rnp_op_verify_detached_create
    - rnp_op_verify_create
    - assert_rnp_success
    - rnp_op_verify_destroy
    - rnp_op_verify_execute
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_detached_cleartext_signed_input)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi.cpp:3788,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi.cpp:3791,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - op
    - idx
    - status
    argTypes:
    - rnp_op_verify_t
    - size_t
    - rnp_result_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3792
      start: 3784
    functionDepth: 0
    functionLinenumber: 3784
    functionLinenumberEnd: 3792
    functionName: check_signature
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_op_verify_get_signature_at
    - rnp_op_verify_signature_get_status
    linkageType: ''
    returnType: bool
    signature: bool check_signature(rnp_op_verify_t op, size_t idx, rnp_result_t status)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi.cpp:3801,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3804,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3804,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3805,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:3805,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3807,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:3807,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3808,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:3808,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3809,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:3809,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3810,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:3810,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3811,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:3811,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3812,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:3812,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3813,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:3813,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3815,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:3815,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3816,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:3816,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:3817,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3818,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:3818,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3819,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3820,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3821,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3825,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3826,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3827,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:3827,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3828,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:3828,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:3829,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:3829,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3830,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:3830,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:3831,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3832,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:3832,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3833,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3834,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3835,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3839,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3840,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3841,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:3841,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3842,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:3842,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3843,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:3843,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3844,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:3844,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:3845,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3846,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:3846,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3847,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3848,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3849,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3853,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3854,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3855,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:3855,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3856,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:3856,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:3857,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:3857,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3858,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:3858,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:3859,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3860,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:3860,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3861,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3862,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3863,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3867,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3868,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3869,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:3869,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3870,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:3870,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3871,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:3871,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3872,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:3872,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:3873,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3874,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3875,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3876,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3881,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3881,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3882,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3882,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3883,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:3883,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3884,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:3884,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3885,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:3885,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3886,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:3886,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3887,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:3887,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3888,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:3888,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3889,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:3889,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:3890,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3891,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:3891,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3892,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3893,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3894,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3899,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3899,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3900,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3900,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3901,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:3901,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3902,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:3902,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3903,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:3903,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:3904,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3905,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:3905,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3906,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3907,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3908,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3912,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3912,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3913,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3913,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3914,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:3914,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3915,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:3915,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3916,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:3916,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:3917,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3918,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:3918,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3920,1
    - Dst: rnp_op_verify_get_format
      Src: /src/rnp/src/tests/ffi.cpp:3920,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3921,1
    - Dst: rnp_op_verify_get_format
      Src: /src/rnp/src/tests/ffi.cpp:3921,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3922,1
    - Dst: rnp_op_verify_get_format
      Src: /src/rnp/src/tests/ffi.cpp:3922,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:3923,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3924,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3925,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3926,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3931,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3932,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3933,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3934,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3935,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:3935,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3936,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:3936,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3937,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:3937,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:3938,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3939,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:3939,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3940,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3941,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3942,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3947,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3948,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3949,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3950,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3951,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:3951,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3952,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:3952,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3953,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:3953,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:3954,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3955,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:3955,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3956,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3957,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3958,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3962,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3963,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3964,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:3964,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3965,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:3965,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3966,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:3966,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3967,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:3967,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:3968,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:3969,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:3969,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3971,1
    - Dst: rnp_op_verify_get_format
      Src: /src/rnp/src/tests/ffi.cpp:3971,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3972,1
    - Dst: rnp_op_verify_get_format
      Src: /src/rnp/src/tests/ffi.cpp:3972,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3973,1
    - Dst: rnp_op_verify_get_format
      Src: /src/rnp/src/tests/ffi.cpp:3973,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:3974,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3975,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3976,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3977,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3981,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3981,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3982,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3982,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3983,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:3983,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:3984,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:3984,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3985,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:3985,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:3986,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3987,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3988,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:3989,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3993,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3993,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3994,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:3995,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3996,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:3996,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3997,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:3997,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:3998,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:3998,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:3999,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4000,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4001,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4002,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4006,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4007,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4008,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4008,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4009,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi.cpp:4010,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4011,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4011,1
    - Dst: aead_eax_enabled
      Src: /src/rnp/src/tests/ffi.cpp:4012,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4013,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4013,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4015,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4015,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4017,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:4017,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4018,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4019,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4020,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4021,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4025,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4026,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4027,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4027,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4028,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4028,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4029,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4029,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4030,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:4030,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4031,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4032,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:4032,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4033,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4034,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4035,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4039,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4040,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4041,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4041,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4042,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4042,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4043,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4043,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4044,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:4044,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4045,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4046,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:4046,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4047,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4048,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4049,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4053,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4053,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4055,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4055,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4056,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4056,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4057,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4057,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4058,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:4058,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4059,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4060,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4061,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4062,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4066,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4067,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4068,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4068,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4069,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4069,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4070,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4070,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4071,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:4071,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4072,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4073,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:4073,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4074,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4075,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4076,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4080,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4081,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4082,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4082,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4083,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4083,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4084,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4084,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4085,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:4085,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4086,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4087,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4088,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4089,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4092,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4093,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4094,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4094,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4096,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4096,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4097,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4097,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4099,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:4099,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4100,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4101,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:4101,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4102,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4103,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4104,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4107,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4108,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4109,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4109,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4111,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4111,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4112,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4112,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4114,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:4114,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4115,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4116,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:4116,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4117,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4118,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4119,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4122,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4123,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4124,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4124,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4126,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4126,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4127,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4127,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4128,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4129,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4130,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4134,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4134,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4135,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4135,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4136,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4136,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4137,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4137,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4138,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:4138,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4139,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4140,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:4140,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4141,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4142,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4143,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4147,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4148,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4149,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4149,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4150,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4150,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4151,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4151,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4152,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:4152,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4153,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4154,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:4154,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4155,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4156,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4157,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4161,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4162,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4163,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4163,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4165,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4165,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4166,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4166,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4167,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4168,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4169,1
    - Dst: profile::add_rule
      Src: /src/rnp/src/tests/ffi.cpp:4175,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4177,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4177,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4178,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4178,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4179,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:4179,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4180,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4180,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4181,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:4181,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4182,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4183,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:4183,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4184,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4185,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4186,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4190,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4190,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4191,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4191,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4192,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi.cpp:4192,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4193,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4193,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4194,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:4194,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4195,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4196,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:4196,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4197,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4198,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4199,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4203,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4203,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4204,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4204,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4205,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4205,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4206,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4206,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4207,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:4207,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4208,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4209,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:4209,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4210,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4211,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4212,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4215,1
    - Dst: profile::del_rule
      Src: /src/rnp/src/tests/ffi.cpp:4215,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4218,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi.cpp:4218,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi.cpp:4219,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4221,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:4221,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4223,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi.cpp:4223,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4224,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4225,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4225,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4226,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4227,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4228,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4228,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4230,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4230,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4231,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4231,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4233,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:4233,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4234,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4235,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:4235,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4236,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4237,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4238,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4241,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi.cpp:4241,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi.cpp:4242,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4244,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:4244,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4246,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi.cpp:4246,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4247,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4248,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4248,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4249,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4250,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4251,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4251,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4253,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4253,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4254,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4254,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4256,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:4256,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4257,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4258,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:4258,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4259,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4260,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4261,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4264,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi.cpp:4264,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4265,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi.cpp:4265,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4266,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4267,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4268,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4268,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4270,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4270,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4271,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4271,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4273,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:4273,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4274,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4275,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:4275,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4276,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4277,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4278,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4281,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi.cpp:4281,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4282,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4283,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4284,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4284,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4285,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4285,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4286,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4286,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4288,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:4288,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4289,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4290,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:4290,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4291,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4292,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4293,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4296,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4297,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4298,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4298,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4300,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4300,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4301,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4301,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4303,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:4303,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4304,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4305,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:4305,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4306,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4307,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4308,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4311,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4312,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4313,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4313,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4315,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4315,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4316,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4316,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4318,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:4318,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4319,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4320,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:4320,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4321,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4322,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4323,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4326,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4327,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4328,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4328,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4329,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4329,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4330,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4330,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4332,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:4332,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4333,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4334,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:4334,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4335,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4336,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4337,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4340,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4341,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4342,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4342,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4343,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4343,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4344,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4344,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4346,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:4346,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4347,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4348,1
    - Dst: check_signature
      Src: /src/rnp/src/tests/ffi.cpp:4348,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4349,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4350,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4351,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4354,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi.cpp:4354,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi.cpp:4355,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4356,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4357,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4358,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4358,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4360,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4360,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4361,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4361,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4363,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:4363,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4364,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4366,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi.cpp:4366,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4367,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi.cpp:4367,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4369,1
    - Dst: rnp_op_verify_signature_get_handle
      Src: /src/rnp/src/tests/ffi.cpp:4369,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4371,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi.cpp:4371,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4372,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4373,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4374,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi.cpp:4374,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4376,1
    - Dst: rnp_signature_error_count
      Src: /src/rnp/src/tests/ffi.cpp:4376,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4377,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4379,1
    - Dst: rnp_signature_error_at
      Src: /src/rnp/src/tests/ffi.cpp:4379,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4380,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4381,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi.cpp:4381,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4383,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4384,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4385,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4386,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 467
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4389
      start: 3794
    functionDepth: 1
    functionLinenumber: 3794
    functionLinenumberEnd: 4389
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_rnp_failure
    - assert_string_equal
    - rnp_ffi_set_pass_provider
    - rnp_op_verify_get_signature_at
    - rnp_op_verify_get_format
    - rnp_op_verify_execute
    - rnp_input_from_path
    - profile::add_rule
    - rnp_op_verify_signature_get_handle
    - assert_true
    - import_all_keys
    - rnp_op_verify_detached_create
    - assert_rnp_success
    - rnp_op_verify_destroy
    - rnp_key_handle_destroy
    - rnp_signature_is_valid
    - check_signature
    - profile::del_rule
    - rnp_signature_get_type
    - test_ffi_init
    - rnp_locate_key
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_op_verify_create
    - import_pub_keys
    - rnp_key_valid_till64
    - rnp_op_verify_get_signature_count
    - rnp_signature_handle_destroy
    - rnp_input_destroy
    - rnp_buffer_destroy
    - load_keys_gpg
    - rnp_signature_error_count
    - rnp_signature_error_at
    - rnp_unload_keys
    - aead_eax_enabled
    - rnp_output_to_null
    - rnp_output_destroy
    - rnp_op_verify_signature_get_status
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_op_verify_sig_count)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi.cpp:4398,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4399,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi.cpp:4400,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4403,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4403,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4404,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4404,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4406,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4406,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4407,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4407,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4411,1
    - Dst: rnp_op_verify_get_protection_info
      Src: /src/rnp/src/tests/ffi.cpp:4411,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4412,1
    - Dst: rnp_op_verify_get_protection_info
      Src: /src/rnp/src/tests/ffi.cpp:4412,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4413,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4414,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4415,1
    - Dst: rnp_op_verify_get_protection_info
      Src: /src/rnp/src/tests/ffi.cpp:4415,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4416,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4417,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4419,1
    - Dst: rnp_op_verify_get_protection_info
      Src: /src/rnp/src/tests/ffi.cpp:4419,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:4420,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4421,1
    - Dst: rnp_op_verify_get_protection_info
      Src: /src/rnp/src/tests/ffi.cpp:4421,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4422,1
    - Dst: rnp_op_verify_get_protection_info
      Src: /src/rnp/src/tests/ffi.cpp:4422,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4423,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4424,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:4425,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4426,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4427,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4428,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4429,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4430,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4433,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4434,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4435,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4435,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4436,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4436,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4437,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4437,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4441,1
    - Dst: rnp_op_verify_get_protection_info
      Src: /src/rnp/src/tests/ffi.cpp:4441,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4442,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4443,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:4444,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4445,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4446,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4447,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4448,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4449,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4452,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4452,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4453,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4453,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4454,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4454,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4455,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4455,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4459,1
    - Dst: rnp_op_verify_get_protection_info
      Src: /src/rnp/src/tests/ffi.cpp:4459,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4460,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4461,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4462,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4463,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4464,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4465,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4466,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4467,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4470,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4471,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4472,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4472,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4473,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4473,1
    - Dst: aead_ocb_enabled
      Src: /src/rnp/src/tests/ffi.cpp:4474,1
    - Dst: aead_ocb_aes_only
      Src: /src/rnp/src/tests/ffi.cpp:4474,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4475,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4475,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4477,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4477,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4482,1
    - Dst: rnp_op_verify_get_protection_info
      Src: /src/rnp/src/tests/ffi.cpp:4482,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4483,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4484,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4485,1
    - Dst: aead_ocb_enabled
      Src: /src/rnp/src/tests/ffi.cpp:4485,1
    - Dst: aead_ocb_aes_only
      Src: /src/rnp/src/tests/ffi.cpp:4485,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4486,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4487,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4488,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4489,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4490,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4493,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4494,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4495,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4495,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4496,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4496,1
    - Dst: aead_ocb_enabled
      Src: /src/rnp/src/tests/ffi.cpp:4497,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4498,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4498,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4500,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4500,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4505,1
    - Dst: rnp_op_verify_get_protection_info
      Src: /src/rnp/src/tests/ffi.cpp:4505,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4506,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4507,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4508,1
    - Dst: aead_ocb_enabled
      Src: /src/rnp/src/tests/ffi.cpp:4508,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4509,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4510,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4511,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4512,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4513,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4516,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4517,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4518,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4518,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4519,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4519,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4520,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4520,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4524,1
    - Dst: rnp_op_verify_get_protection_info
      Src: /src/rnp/src/tests/ffi.cpp:4524,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4525,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4526,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:4527,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4528,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4529,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4530,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4531,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4532,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4535,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4536,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4537,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4537,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4538,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4538,1
    - Dst: aead_eax_enabled
      Src: /src/rnp/src/tests/ffi.cpp:4539,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4540,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4540,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4542,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4542,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4547,1
    - Dst: rnp_op_verify_get_protection_info
      Src: /src/rnp/src/tests/ffi.cpp:4547,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4548,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4549,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4550,1
    - Dst: aead_eax_enabled
      Src: /src/rnp/src/tests/ffi.cpp:4550,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4551,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4552,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4553,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4554,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4555,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4558,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4559,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4560,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4560,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4561,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4561,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4562,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4562,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4566,1
    - Dst: rnp_op_verify_get_protection_info
      Src: /src/rnp/src/tests/ffi.cpp:4566,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4567,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4568,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:4569,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4570,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4571,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4572,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4573,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4574,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4576,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 152
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4577
      start: 4391
    functionDepth: 1
    functionLinenumber: 4391
    functionLinenumberEnd: 4577
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_rnp_failure
    - assert_string_equal
    - rnp_op_verify_get_protection_info
    - rnp_ffi_set_pass_provider
    - rnp_op_verify_execute
    - rnp_input_from_path
    - assert_true
    - aead_ocb_enabled
    - assert_rnp_success
    - rnp_op_verify_destroy
    - test_ffi_init
    - rnp_ffi_destroy
    - rnp_op_verify_create
    - rnp_input_destroy
    - aead_ocb_aes_only
    - rnp_buffer_destroy
    - assert_false
    - aead_eax_enabled
    - rnp_output_to_null
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_op_verify_get_protection_info)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi.cpp:4591,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/ffi.cpp:4596,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi.cpp:4599,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4600,1
    - Dst: memcpy
      Src: /src/rnp/src/tests/ffi.cpp:4605,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 6
    argNames:
    - ffi
    - app_ctx
    - key
    - pgp_context
    - buf
    - buf_len
    argTypes:
    - rnp_ffi_t
    - void*
    - rnp_key_handle_t
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4607
      start: 4579
    functionDepth: 1
    functionLinenumber: 4579
    functionLinenumberEnd: 4607
    functionName: getpasscb_for_key
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - rnp_buffer_destroy
    - strcmp
    - strlen
    - rnp_key_get_keyid
    linkageType: ''
    returnType: bool
    signature: "bool getpasscb_for_key(rnp_ffi_t        ffi,\n                  void
      *           app_ctx,\n                  rnp_key_handle_t key,\n                  const
      char *     pgp_context,\n                  char *           buf,\n                  size_t
      \          buf_len)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi.cpp:4616,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4617,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi.cpp:4618,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4621,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4621,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4622,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4622,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4624,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4624,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4625,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4625,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4629,1
    - Dst: rnp_op_verify_get_file_info
      Src: /src/rnp/src/tests/ffi.cpp:4629,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4630,1
    - Dst: rnp_op_verify_get_file_info
      Src: /src/rnp/src/tests/ffi.cpp:4630,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4631,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4632,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4633,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4635,1
    - Dst: rnp_op_verify_get_file_info
      Src: /src/rnp/src/tests/ffi.cpp:4635,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4636,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4637,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4639,1
    - Dst: rnp_op_verify_get_file_info
      Src: /src/rnp/src/tests/ffi.cpp:4639,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4640,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4642,1
    - Dst: rnp_op_verify_get_recipient_count
      Src: /src/rnp/src/tests/ffi.cpp:4642,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4644,1
    - Dst: rnp_op_verify_get_recipient_count
      Src: /src/rnp/src/tests/ffi.cpp:4644,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4645,1
    - Dst: rnp_op_verify_get_recipient_count
      Src: /src/rnp/src/tests/ffi.cpp:4645,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4646,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4649,1
    - Dst: rnp_op_verify_get_recipient_at
      Src: /src/rnp/src/tests/ffi.cpp:4649,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4650,1
    - Dst: rnp_op_verify_get_recipient_at
      Src: /src/rnp/src/tests/ffi.cpp:4650,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4651,1
    - Dst: rnp_op_verify_get_recipient_at
      Src: /src/rnp/src/tests/ffi.cpp:4651,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4652,1
    - Dst: rnp_op_verify_get_recipient_at
      Src: /src/rnp/src/tests/ffi.cpp:4652,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4654,1
    - Dst: rnp_op_verify_get_used_recipient
      Src: /src/rnp/src/tests/ffi.cpp:4654,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4655,1
    - Dst: rnp_op_verify_get_used_recipient
      Src: /src/rnp/src/tests/ffi.cpp:4655,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4656,1
    - Dst: rnp_op_verify_get_used_recipient
      Src: /src/rnp/src/tests/ffi.cpp:4656,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:4657,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4659,1
    - Dst: rnp_op_verify_get_symenc_count
      Src: /src/rnp/src/tests/ffi.cpp:4659,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4661,1
    - Dst: rnp_op_verify_get_symenc_count
      Src: /src/rnp/src/tests/ffi.cpp:4661,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4662,1
    - Dst: rnp_op_verify_get_symenc_count
      Src: /src/rnp/src/tests/ffi.cpp:4662,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4663,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4666,1
    - Dst: rnp_op_verify_get_symenc_at
      Src: /src/rnp/src/tests/ffi.cpp:4666,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4667,1
    - Dst: rnp_op_verify_get_symenc_at
      Src: /src/rnp/src/tests/ffi.cpp:4667,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4668,1
    - Dst: rnp_op_verify_get_symenc_at
      Src: /src/rnp/src/tests/ffi.cpp:4668,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4669,1
    - Dst: rnp_op_verify_get_symenc_at
      Src: /src/rnp/src/tests/ffi.cpp:4669,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4671,1
    - Dst: rnp_op_verify_get_used_symenc
      Src: /src/rnp/src/tests/ffi.cpp:4671,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4672,1
    - Dst: rnp_op_verify_get_used_symenc
      Src: /src/rnp/src/tests/ffi.cpp:4672,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4673,1
    - Dst: rnp_op_verify_get_used_symenc
      Src: /src/rnp/src/tests/ffi.cpp:4673,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:4674,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4675,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4676,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4677,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4680,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4681,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4682,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4682,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4683,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4683,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4684,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4684,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4685,1
    - Dst: rnp_op_verify_get_recipient_count
      Src: /src/rnp/src/tests/ffi.cpp:4685,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4686,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4687,1
    - Dst: rnp_op_verify_get_recipient_at
      Src: /src/rnp/src/tests/ffi.cpp:4687,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4688,1
    - Dst: rnp_op_verify_get_recipient_at
      Src: /src/rnp/src/tests/ffi.cpp:4688,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:4689,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4691,1
    - Dst: rnp_recipient_get_alg
      Src: /src/rnp/src/tests/ffi.cpp:4691,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4692,1
    - Dst: rnp_recipient_get_alg
      Src: /src/rnp/src/tests/ffi.cpp:4692,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4693,1
    - Dst: rnp_recipient_get_alg
      Src: /src/rnp/src/tests/ffi.cpp:4693,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4694,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4695,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4697,1
    - Dst: rnp_recipient_get_keyid
      Src: /src/rnp/src/tests/ffi.cpp:4697,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4698,1
    - Dst: rnp_recipient_get_keyid
      Src: /src/rnp/src/tests/ffi.cpp:4698,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4699,1
    - Dst: rnp_recipient_get_keyid
      Src: /src/rnp/src/tests/ffi.cpp:4699,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4700,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4701,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4703,1
    - Dst: rnp_op_verify_get_used_recipient
      Src: /src/rnp/src/tests/ffi.cpp:4703,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:4704,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4706,1
    - Dst: rnp_recipient_get_alg
      Src: /src/rnp/src/tests/ffi.cpp:4706,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4707,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4708,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4710,1
    - Dst: rnp_recipient_get_keyid
      Src: /src/rnp/src/tests/ffi.cpp:4710,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4711,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4712,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4713,1
    - Dst: rnp_op_verify_get_symenc_count
      Src: /src/rnp/src/tests/ffi.cpp:4713,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4714,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4715,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4716,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4717,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4720,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4721,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4722,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4722,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4723,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4723,1
    - Dst: aead_ocb_enabled
      Src: /src/rnp/src/tests/ffi.cpp:4724,1
    - Dst: aead_ocb_aes_only
      Src: /src/rnp/src/tests/ffi.cpp:4724,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4725,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4725,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4727,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4727,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4730,1
    - Dst: rnp_op_verify_get_recipient_count
      Src: /src/rnp/src/tests/ffi.cpp:4730,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4731,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4732,1
    - Dst: rnp_op_verify_get_symenc_count
      Src: /src/rnp/src/tests/ffi.cpp:4732,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4733,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4734,1
    - Dst: rnp_op_verify_get_symenc_at
      Src: /src/rnp/src/tests/ffi.cpp:4734,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4735,1
    - Dst: rnp_op_verify_get_symenc_at
      Src: /src/rnp/src/tests/ffi.cpp:4735,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:4736,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4738,1
    - Dst: rnp_symenc_get_cipher
      Src: /src/rnp/src/tests/ffi.cpp:4738,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4739,1
    - Dst: rnp_symenc_get_cipher
      Src: /src/rnp/src/tests/ffi.cpp:4739,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4740,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4741,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4743,1
    - Dst: rnp_symenc_get_aead_alg
      Src: /src/rnp/src/tests/ffi.cpp:4743,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4744,1
    - Dst: rnp_symenc_get_aead_alg
      Src: /src/rnp/src/tests/ffi.cpp:4744,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4745,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4746,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4748,1
    - Dst: rnp_symenc_get_hash_alg
      Src: /src/rnp/src/tests/ffi.cpp:4748,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4749,1
    - Dst: rnp_symenc_get_hash_alg
      Src: /src/rnp/src/tests/ffi.cpp:4749,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4750,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4751,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4753,1
    - Dst: rnp_symenc_get_s2k_type
      Src: /src/rnp/src/tests/ffi.cpp:4753,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4754,1
    - Dst: rnp_symenc_get_s2k_type
      Src: /src/rnp/src/tests/ffi.cpp:4754,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4755,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4756,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4758,1
    - Dst: rnp_symenc_get_s2k_iterations
      Src: /src/rnp/src/tests/ffi.cpp:4758,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4759,1
    - Dst: rnp_symenc_get_s2k_iterations
      Src: /src/rnp/src/tests/ffi.cpp:4759,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4760,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4761,1
    - Dst: rnp_op_verify_get_used_symenc
      Src: /src/rnp/src/tests/ffi.cpp:4761,1
    - Dst: aead_ocb_enabled
      Src: /src/rnp/src/tests/ffi.cpp:4762,1
    - Dst: aead_ocb_aes_only
      Src: /src/rnp/src/tests/ffi.cpp:4762,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:4763,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:4765,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4767,1
    - Dst: rnp_symenc_get_cipher
      Src: /src/rnp/src/tests/ffi.cpp:4767,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4768,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4769,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4771,1
    - Dst: rnp_symenc_get_aead_alg
      Src: /src/rnp/src/tests/ffi.cpp:4771,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4772,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4773,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4775,1
    - Dst: rnp_symenc_get_hash_alg
      Src: /src/rnp/src/tests/ffi.cpp:4775,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4776,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4777,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4779,1
    - Dst: rnp_symenc_get_s2k_type
      Src: /src/rnp/src/tests/ffi.cpp:4779,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4780,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4781,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4783,1
    - Dst: rnp_symenc_get_s2k_iterations
      Src: /src/rnp/src/tests/ffi.cpp:4783,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4784,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4786,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4787,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4788,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4791,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4792,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4793,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4793,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4794,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4794,1
    - Dst: aead_ocb_enabled
      Src: /src/rnp/src/tests/ffi.cpp:4795,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4796,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4796,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4798,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4798,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4801,1
    - Dst: rnp_op_verify_get_recipient_count
      Src: /src/rnp/src/tests/ffi.cpp:4801,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4802,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4803,1
    - Dst: rnp_op_verify_get_symenc_count
      Src: /src/rnp/src/tests/ffi.cpp:4803,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4804,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4805,1
    - Dst: rnp_op_verify_get_symenc_at
      Src: /src/rnp/src/tests/ffi.cpp:4805,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:4806,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4808,1
    - Dst: rnp_symenc_get_cipher
      Src: /src/rnp/src/tests/ffi.cpp:4808,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4809,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4810,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4812,1
    - Dst: rnp_symenc_get_aead_alg
      Src: /src/rnp/src/tests/ffi.cpp:4812,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4813,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4814,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4815,1
    - Dst: rnp_op_verify_get_used_symenc
      Src: /src/rnp/src/tests/ffi.cpp:4815,1
    - Dst: aead_ocb_enabled
      Src: /src/rnp/src/tests/ffi.cpp:4816,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:4817,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:4819,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4821,1
    - Dst: rnp_symenc_get_cipher
      Src: /src/rnp/src/tests/ffi.cpp:4821,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4822,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4823,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4825,1
    - Dst: rnp_symenc_get_aead_alg
      Src: /src/rnp/src/tests/ffi.cpp:4825,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4826,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4827,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4829,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4830,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4831,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4835,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4836,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4837,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4837,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4838,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4838,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4839,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4839,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4841,1
    - Dst: rnp_op_verify_get_recipient_count
      Src: /src/rnp/src/tests/ffi.cpp:4841,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4842,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4843,1
    - Dst: rnp_op_verify_get_recipient_at
      Src: /src/rnp/src/tests/ffi.cpp:4843,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:4844,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4846,1
    - Dst: rnp_recipient_get_alg
      Src: /src/rnp/src/tests/ffi.cpp:4846,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4847,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4848,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4850,1
    - Dst: rnp_recipient_get_keyid
      Src: /src/rnp/src/tests/ffi.cpp:4850,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4851,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4852,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4854,1
    - Dst: rnp_op_verify_get_used_recipient
      Src: /src/rnp/src/tests/ffi.cpp:4854,1
    - Dst: aead_eax_enabled
      Src: /src/rnp/src/tests/ffi.cpp:4855,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:4856,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:4858,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4859,1
    - Dst: rnp_recipient_get_alg
      Src: /src/rnp/src/tests/ffi.cpp:4859,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4860,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4861,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4862,1
    - Dst: rnp_recipient_get_keyid
      Src: /src/rnp/src/tests/ffi.cpp:4862,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4863,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4864,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4865,1
    - Dst: rnp_op_verify_get_used_recipient
      Src: /src/rnp/src/tests/ffi.cpp:4865,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:4866,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4868,1
    - Dst: rnp_recipient_get_alg
      Src: /src/rnp/src/tests/ffi.cpp:4868,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4869,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4870,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4872,1
    - Dst: rnp_recipient_get_keyid
      Src: /src/rnp/src/tests/ffi.cpp:4872,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4873,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4874,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4876,1
    - Dst: rnp_op_verify_get_used_recipient
      Src: /src/rnp/src/tests/ffi.cpp:4876,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:4877,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4878,1
    - Dst: rnp_recipient_get_alg
      Src: /src/rnp/src/tests/ffi.cpp:4878,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4879,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4880,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4881,1
    - Dst: rnp_recipient_get_keyid
      Src: /src/rnp/src/tests/ffi.cpp:4881,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4882,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4883,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4887,1
    - Dst: rnp_op_verify_get_symenc_count
      Src: /src/rnp/src/tests/ffi.cpp:4887,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4888,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4889,1
    - Dst: rnp_op_verify_get_symenc_at
      Src: /src/rnp/src/tests/ffi.cpp:4889,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:4890,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4892,1
    - Dst: rnp_symenc_get_cipher
      Src: /src/rnp/src/tests/ffi.cpp:4892,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4893,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4894,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4896,1
    - Dst: rnp_symenc_get_aead_alg
      Src: /src/rnp/src/tests/ffi.cpp:4896,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4897,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4898,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4900,1
    - Dst: rnp_symenc_get_hash_alg
      Src: /src/rnp/src/tests/ffi.cpp:4900,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4901,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4902,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4904,1
    - Dst: rnp_symenc_get_s2k_type
      Src: /src/rnp/src/tests/ffi.cpp:4904,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4905,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4906,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4908,1
    - Dst: rnp_symenc_get_s2k_iterations
      Src: /src/rnp/src/tests/ffi.cpp:4908,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4909,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4910,1
    - Dst: rnp_op_verify_get_used_symenc
      Src: /src/rnp/src/tests/ffi.cpp:4910,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:4911,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4912,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4913,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4914,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4917,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi.cpp:4917,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4918,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4919,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4920,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4920,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4921,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4921,1
    - Dst: aead_eax_enabled
      Src: /src/rnp/src/tests/ffi.cpp:4922,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4923,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4923,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4925,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4925,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4928,1
    - Dst: rnp_op_verify_get_recipient_count
      Src: /src/rnp/src/tests/ffi.cpp:4928,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4929,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4930,1
    - Dst: rnp_op_verify_get_used_recipient
      Src: /src/rnp/src/tests/ffi.cpp:4930,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:4931,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4933,1
    - Dst: rnp_op_verify_get_symenc_count
      Src: /src/rnp/src/tests/ffi.cpp:4933,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4934,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4935,1
    - Dst: rnp_op_verify_get_symenc_at
      Src: /src/rnp/src/tests/ffi.cpp:4935,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:4936,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4937,1
    - Dst: rnp_op_verify_get_used_symenc
      Src: /src/rnp/src/tests/ffi.cpp:4937,1
    - Dst: aead_eax_enabled
      Src: /src/rnp/src/tests/ffi.cpp:4938,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:4939,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:4941,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4943,1
    - Dst: rnp_symenc_get_cipher
      Src: /src/rnp/src/tests/ffi.cpp:4943,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4944,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4945,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4947,1
    - Dst: rnp_symenc_get_aead_alg
      Src: /src/rnp/src/tests/ffi.cpp:4947,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4948,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4949,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4951,1
    - Dst: rnp_symenc_get_hash_alg
      Src: /src/rnp/src/tests/ffi.cpp:4951,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4952,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4953,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4955,1
    - Dst: rnp_symenc_get_s2k_type
      Src: /src/rnp/src/tests/ffi.cpp:4955,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4956,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4957,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4959,1
    - Dst: rnp_symenc_get_s2k_iterations
      Src: /src/rnp/src/tests/ffi.cpp:4959,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4960,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4962,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4963,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4964,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4967,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi.cpp:4968,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:4969,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi.cpp:4969,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4970,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:4971,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4972,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:4972,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4973,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:4973,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:4974,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:4974,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4976,1
    - Dst: rnp_op_verify_get_recipient_count
      Src: /src/rnp/src/tests/ffi.cpp:4976,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4977,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4978,1
    - Dst: rnp_op_verify_get_recipient_at
      Src: /src/rnp/src/tests/ffi.cpp:4978,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4979,1
    - Dst: rnp_recipient_get_keyid
      Src: /src/rnp/src/tests/ffi.cpp:4979,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4980,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4981,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4982,1
    - Dst: rnp_op_verify_get_recipient_at
      Src: /src/rnp/src/tests/ffi.cpp:4982,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4983,1
    - Dst: rnp_recipient_get_keyid
      Src: /src/rnp/src/tests/ffi.cpp:4983,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4984,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4985,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4986,1
    - Dst: rnp_op_verify_get_recipient_at
      Src: /src/rnp/src/tests/ffi.cpp:4986,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4987,1
    - Dst: rnp_recipient_get_keyid
      Src: /src/rnp/src/tests/ffi.cpp:4987,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:4988,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:4989,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4990,1
    - Dst: rnp_op_verify_get_used_recipient
      Src: /src/rnp/src/tests/ffi.cpp:4990,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:4991,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4993,1
    - Dst: rnp_op_verify_get_symenc_count
      Src: /src/rnp/src/tests/ffi.cpp:4993,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4994,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4995,1
    - Dst: rnp_op_verify_get_symenc_at
      Src: /src/rnp/src/tests/ffi.cpp:4995,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4996,1
    - Dst: rnp_symenc_get_s2k_iterations
      Src: /src/rnp/src/tests/ffi.cpp:4996,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:4997,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4998,1
    - Dst: rnp_op_verify_get_symenc_at
      Src: /src/rnp/src/tests/ffi.cpp:4998,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:4999,1
    - Dst: rnp_symenc_get_s2k_iterations
      Src: /src/rnp/src/tests/ffi.cpp:4999,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5000,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5001,1
    - Dst: rnp_op_verify_get_used_symenc
      Src: /src/rnp/src/tests/ffi.cpp:5001,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:5002,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5003,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5004,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5005,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5007,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi.cpp:5008,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5009,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5010,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5011,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:5011,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5012,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:5012,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5013,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:5013,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5014,1
    - Dst: rnp_op_verify_get_used_symenc
      Src: /src/rnp/src/tests/ffi.cpp:5014,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5015,1
    - Dst: rnp_symenc_get_s2k_iterations
      Src: /src/rnp/src/tests/ffi.cpp:5015,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5016,1
    - Dst: rnp_op_verify_get_used_recipient
      Src: /src/rnp/src/tests/ffi.cpp:5016,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:5017,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5018,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5019,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5020,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5021,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5023,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi.cpp:5024,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5025,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5026,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5027,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:5027,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5028,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:5028,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5029,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:5029,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5030,1
    - Dst: rnp_op_verify_get_used_symenc
      Src: /src/rnp/src/tests/ffi.cpp:5030,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:5031,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5032,1
    - Dst: rnp_op_verify_get_used_recipient
      Src: /src/rnp/src/tests/ffi.cpp:5032,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5033,1
    - Dst: rnp_recipient_get_keyid
      Src: /src/rnp/src/tests/ffi.cpp:5033,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:5034,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5035,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5036,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5037,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5038,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5040,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 375
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5041
      start: 4609
    functionDepth: 1
    functionLinenumber: 4609
    functionLinenumberEnd: 5041
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_symenc_get_s2k_iterations
    - assert_rnp_failure
    - assert_string_equal
    - rnp_op_verify_get_file_info
    - rnp_ffi_set_pass_provider
    - rnp_op_verify_execute
    - rnp_op_verify_get_used_symenc
    - rnp_input_from_path
    - assert_true
    - rnp_symenc_get_aead_alg
    - assert_null
    - aead_ocb_enabled
    - assert_rnp_success
    - rnp_op_verify_destroy
    - rnp_symenc_get_hash_alg
    - rnp_op_verify_get_recipient_at
    - rnp_op_verify_get_symenc_count
    - rnp_op_verify_get_recipient_count
    - rnp_recipient_get_alg
    - test_ffi_init
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_op_verify_create
    - rnp_op_verify_get_used_recipient
    - rnp_symenc_get_cipher
    - rnp_recipient_get_keyid
    - rnp_input_destroy
    - aead_ocb_aes_only
    - rnp_buffer_destroy
    - rnp_op_verify_get_symenc_at
    - rnp_unload_keys
    - rnp_symenc_get_s2k_type
    - import_sec_keys
    - aead_eax_enabled
    - rnp_output_to_null
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_op_verify_recipients_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5048,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:5048,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5049,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi.cpp:5049,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5051,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:5051,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5054,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi.cpp:5054,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5055,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5056,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi.cpp:5056,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5057,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi.cpp:5057,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:5058,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5060,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5060,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5061,1
    - Dst: rnp_import_signatures
      Src: /src/rnp/src/tests/ffi.cpp:5061,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5062,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5062,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5064,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi.cpp:5064,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:5065,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5067,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi.cpp:5067,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5069,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi.cpp:5069,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:5070,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5073,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:5073,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5074,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi.cpp:5074,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5075,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi.cpp:5075,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:5076,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5077,1
    - Dst: rnp_key_revoke
      Src: /src/rnp/src/tests/ffi.cpp:5077,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5078,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi.cpp:5078,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:5079,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5080,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5080,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5081,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5081,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5082,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5083
      start: 5043
    functionDepth: 1
    functionLinenumber: 5043
    functionLinenumberEnd: 5083
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_locate_key
    - rnp_input_from_path
    - assert_true
    - rnp_ffi_destroy
    - assert_rnp_success
    - assert_false
    - rnp_key_unlock
    - import_sec_keys
    - rnp_import_signatures
    - rnp_ffi_create
    - rnp_key_handle_destroy
    - rnp_key_is_locked
    - rnp_key_revoke
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_secret_sig_import)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ffi
    - app_ctx
    - key
    - pgp_context
    - buf
    - buf_len
    argTypes:
    - rnp_ffi_t
    - void*
    - rnp_key_handle_t
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5094
      start: 5085
    functionDepth: 0
    functionLinenumber: 5085
    functionLinenumberEnd: 5094
    functionName: getpasscb_fail
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool getpasscb_fail(rnp_ffi_t        ffi,\n               void *           app_ctx,\n
      \              rnp_key_handle_t key,\n               const char *     pgp_context,\n
      \              char *           buf,\n               size_t           buf_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/rnp/src/tests/ffi.cpp:5104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - ffi
    - app_ctx
    - key
    - pgp_context
    - buf
    - buf_len
    argTypes:
    - rnp_ffi_t
    - void*
    - rnp_key_handle_t
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5106
      start: 5096
    functionDepth: 0
    functionLinenumber: 5096
    functionLinenumberEnd: 5106
    functionName: getpasscb_context
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - strncpy
    linkageType: ''
    returnType: bool
    signature: "bool getpasscb_context(rnp_ffi_t        ffi,\n                  void
      *           app_ctx,\n                  rnp_key_handle_t key,\n                  const
      char *     pgp_context,\n                  char *           buf,\n                  size_t
      \          buf_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi.cpp:5120,1
    - Dst: strncpy
      Src: /src/rnp/src/tests/ffi.cpp:5123,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5124,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - ffi
    - app_ctx
    - key
    - pgp_context
    - buf
    - buf_len
    argTypes:
    - rnp_ffi_t
    - void*
    - rnp_key_handle_t
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5126
      start: 5108
    functionDepth: 1
    functionLinenumber: 5108
    functionLinenumberEnd: 5126
    functionName: getpasscb_keyid
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_buffer_destroy
    - strncpy
    - rnp_key_get_keyid
    linkageType: ''
    returnType: bool
    signature: "bool getpasscb_keyid(rnp_ffi_t        ffi,\n                void *
      \          app_ctx,\n                rnp_key_handle_t key,\n                const
      char *     pgp_context,\n                char *           buf,\n                size_t
      \          buf_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5131,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:5131,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5134,1
    - Dst: rnp_request_password
      Src: /src/rnp/src/tests/ffi.cpp:5134,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi.cpp:5135,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5136,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi.cpp:5137,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5138,1
    - Dst: rnp_request_password
      Src: /src/rnp/src/tests/ffi.cpp:5138,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5139,1
    - Dst: rnp_request_password
      Src: /src/rnp/src/tests/ffi.cpp:5139,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5141,1
    - Dst: rnp_request_password
      Src: /src/rnp/src/tests/ffi.cpp:5141,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:5142,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5143,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5145,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi.cpp:5145,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5146,1
    - Dst: rnp_request_password
      Src: /src/rnp/src/tests/ffi.cpp:5146,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5148,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi.cpp:5148,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5149,1
    - Dst: rnp_request_password
      Src: /src/rnp/src/tests/ffi.cpp:5149,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:5150,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5151,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5153,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi.cpp:5153,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5155,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:5155,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:5156,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5157,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi.cpp:5157,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5158,1
    - Dst: rnp_request_password
      Src: /src/rnp/src/tests/ffi.cpp:5158,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:5159,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5160,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5161,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5161,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5162,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5163
      start: 5128
    functionDepth: 1
    functionLinenumber: 5128
    functionLinenumberEnd: 5163
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_locate_key
    - assert_rnp_failure
    - assert_true
    - assert_string_equal
    - assert_null
    - rnp_buffer_destroy
    - assert_rnp_success
    - rnp_ffi_destroy
    - rnp_ffi_set_pass_provider
    - rnp_key_handle_destroy
    - rnp_request_password
    - import_sec_keys
    - rnp_ffi_create
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_rnp_request_password)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi.cpp:5170,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5171,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi.cpp:5172,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5175,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5175,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5177,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:5177,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5179,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:5179,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5180,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:5180,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5183,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:5183,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5184,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5186,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi.cpp:5186,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5187,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi.cpp:5187,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5189,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5189,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5190,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5190,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5192,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5192,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5193,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:5193,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5194,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:5194,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5197,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:5197,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5198,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5199,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi.cpp:5199,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5200,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi.cpp:5200,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5202,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5202,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5203,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5203,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5206,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5207,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5208,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:5208,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5209,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:5209,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5211,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5211,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5212,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5212,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5215,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5216,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5217,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:5217,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5218,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:5218,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5220,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5220,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5221,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5221,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5223,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5223,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5224,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5225
      start: 5165
    functionDepth: 1
    functionLinenumber: 5165
    functionLinenumberEnd: 5225
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_destroy
    - test_ffi_init
    - rnp_input_from_path
    - rnp_input_destroy
    - assert_rnp_failure
    - assert_int_equal
    - rnp_op_verify_signature_get_status
    - rnp_op_verify_create
    - rnp_ffi_destroy
    - assert_rnp_success
    - rnp_op_verify_destroy
    - rnp_ffi_set_pass_provider
    - rnp_op_verify_get_signature_at
    - rnp_output_to_null
    - rnp_op_verify_get_signature_count
    - rnp_op_verify_execute
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_mdc_8k_boundary)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi.cpp:5234,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5238,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5239,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5240,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:5240,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5241,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi.cpp:5242,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5243,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:5243,1
    - Dst: aead_eax_enabled
      Src: /src/rnp/src/tests/ffi.cpp:5244,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5245,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:5245,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5247,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:5247,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5249,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5250,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5251,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5254,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5255,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5256,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:5256,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5257,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi.cpp:5258,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5259,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:5259,1
    - Dst: aead_eax_enabled
      Src: /src/rnp/src/tests/ffi.cpp:5260,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5261,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:5261,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5263,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:5263,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5265,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5266,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5267,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5270,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5271,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5272,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:5272,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5273,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi.cpp:5274,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5275,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:5275,1
    - Dst: aead_eax_enabled
      Src: /src/rnp/src/tests/ffi.cpp:5276,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5277,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:5277,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5279,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:5279,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5281,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5282,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5283,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5286,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5287,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5288,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:5288,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5289,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi.cpp:5290,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5291,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:5291,1
    - Dst: aead_eax_enabled
      Src: /src/rnp/src/tests/ffi.cpp:5292,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5293,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:5293,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5295,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:5295,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5297,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5298,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5299,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5302,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5303,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5304,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:5304,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5305,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi.cpp:5306,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5307,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:5307,1
    - Dst: aead_eax_enabled
      Src: /src/rnp/src/tests/ffi.cpp:5308,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5309,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:5309,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5311,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:5311,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5313,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5314,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5315,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5317,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 63
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5318
      start: 5227
    functionDepth: 1
    functionLinenumber: 5227
    functionLinenumberEnd: 5318
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - test_ffi_init
    - rnp_input_from_path
    - assert_rnp_failure
    - rnp_input_destroy
    - rnp_ffi_destroy
    - rnp_op_verify_create
    - assert_rnp_success
    - rnp_op_verify_destroy
    - rnp_ffi_set_pass_provider
    - aead_eax_enabled
    - rnp_output_to_null
    - rnp_output_destroy
    - rnp_op_verify_execute
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_decrypt_wrong_mpi_bits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi.cpp:5326,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5330,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5331,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5332,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:5332,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5333,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi.cpp:5334,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5335,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:5335,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5336,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:5336,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5337,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5338,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5339,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5343,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5343,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5344,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:5344,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5345,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:5345,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5346,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:5346,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5347,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5348,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5349,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5351,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5351,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5352,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:5352,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5353,1
    - Dst: rnp_dump_packets_to_output
      Src: /src/rnp/src/tests/ffi.cpp:5353,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5354,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5355,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5357,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5357,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5359,1
    - Dst: rnp_dump_packets_to_json
      Src: /src/rnp/src/tests/ffi.cpp:5359,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:5360,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5361,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5362,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5365,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5366,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5367,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:5367,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5368,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:5368,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5369,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:5369,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5370,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5371,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5372,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5375,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5376,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5377,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:5377,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5378,1
    - Dst: rnp_dump_packets_to_output
      Src: /src/rnp/src/tests/ffi.cpp:5378,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5379,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5380,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5382,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5383,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5385,1
    - Dst: rnp_dump_packets_to_json
      Src: /src/rnp/src/tests/ffi.cpp:5385,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:5386,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5387,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5388,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5391,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5392,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5393,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi.cpp:5393,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5394,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:5394,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5395,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:5395,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5396,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5397,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5398,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5400,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5401,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5402,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:5402,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5403,1
    - Dst: rnp_dump_packets_to_output
      Src: /src/rnp/src/tests/ffi.cpp:5403,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5404,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5405,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5407,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5408,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5410,1
    - Dst: rnp_dump_packets_to_json
      Src: /src/rnp/src/tests/ffi.cpp:5410,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:5411,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5412,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5413,1
    - Dst: bzip2_enabled
      Src: /src/rnp/src/tests/ffi.cpp:5416,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5417,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5418,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5419,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:5419,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5420,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:5420,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5421,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:5421,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5422,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5423,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5426,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:5426,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5427,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5428,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/ffi.cpp:5428,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5429,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5432,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5433,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5434,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:5434,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5435,1
    - Dst: rnp_dump_packets_to_output
      Src: /src/rnp/src/tests/ffi.cpp:5435,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5436,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5437,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5439,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5440,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5442,1
    - Dst: rnp_dump_packets_to_json
      Src: /src/rnp/src/tests/ffi.cpp:5442,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:5443,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5444,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5445,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5447,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5448
      start: 5320
    functionDepth: 1
    functionLinenumber: 5320
    functionLinenumberEnd: 5448
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_output_memory_get_buf
    - assert_rnp_failure
    - rnp_ffi_set_pass_provider
    - rnp_dump_packets_to_output
    - rnp_dump_packets_to_json
    - rnp_op_verify_execute
    - rnp_input_from_path
    - bzip2_enabled
    - memcmp
    - assert_rnp_success
    - rnp_op_verify_destroy
    - test_ffi_init
    - rnp_output_to_memory
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_op_verify_create
    - rnp_input_destroy
    - rnp_buffer_destroy
    - rnp_output_to_null
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_decrypt_edge_cases)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi.cpp:5453,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5459,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:5459,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5460,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:5460,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5461,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:5461,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5462,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:5462,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5465,1
    - Dst: rnp_key_remove
      Src: /src/rnp/src/tests/ffi.cpp:5465,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5466,1
    - Dst: rnp_key_remove
      Src: /src/rnp/src/tests/ffi.cpp:5466,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5469,1
    - Dst: rnp_key_have_public
      Src: /src/rnp/src/tests/ffi.cpp:5469,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5470,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5472,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi.cpp:5472,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5473,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5474,1
    - Dst: rnp_key_remove
      Src: /src/rnp/src/tests/ffi.cpp:5474,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5476,1
    - Dst: rnp_key_have_public
      Src: /src/rnp/src/tests/ffi.cpp:5476,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:5477,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5479,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi.cpp:5479,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5480,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5481,1
    - Dst: rnp_key_remove
      Src: /src/rnp/src/tests/ffi.cpp:5481,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5482,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5484,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:5484,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:5485,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5487,1
    - Dst: rnp_key_have_public
      Src: /src/rnp/src/tests/ffi.cpp:5487,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:5488,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5490,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi.cpp:5490,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5491,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5494,1
    - Dst: rnp_key_have_public
      Src: /src/rnp/src/tests/ffi.cpp:5494,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5495,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5497,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi.cpp:5497,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5498,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5499,1
    - Dst: rnp_key_remove
      Src: /src/rnp/src/tests/ffi.cpp:5499,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5501,1
    - Dst: rnp_key_have_public
      Src: /src/rnp/src/tests/ffi.cpp:5501,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5502,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5504,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi.cpp:5504,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:5505,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5506,1
    - Dst: rnp_key_remove
      Src: /src/rnp/src/tests/ffi.cpp:5506,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5507,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5508,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:5508,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:5509,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5512,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:5512,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5513,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5515,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:5515,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5516,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5519,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi.cpp:5519,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5520,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5522,1
    - Dst: rnp_key_remove
      Src: /src/rnp/src/tests/ffi.cpp:5522,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5523,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi.cpp:5523,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5524,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5526,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:5526,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5527,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5528,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:5528,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5529,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5531,1
    - Dst: rnp_key_remove
      Src: /src/rnp/src/tests/ffi.cpp:5531,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5532,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi.cpp:5532,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5533,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5534,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:5534,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5535,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5537,1
    - Dst: rnp_key_remove
      Src: /src/rnp/src/tests/ffi.cpp:5537,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5538,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:5538,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5539,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5540,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:5540,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5541,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5543,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5545,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:5545,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5547,1
    - Dst: rnp_key_have_public
      Src: /src/rnp/src/tests/ffi.cpp:5547,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5548,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5550,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi.cpp:5550,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5551,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5553,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5554,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5555,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5556,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5559,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi.cpp:5559,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5560,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi.cpp:5560,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5562,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:5562,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5563,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5564,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:5564,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5565,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5568,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:5568,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5569,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:5569,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5571,1
    - Dst: rnp_key_remove
      Src: /src/rnp/src/tests/ffi.cpp:5572,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5573,1
    - Dst: rnp_key_remove
      Src: /src/rnp/src/tests/ffi.cpp:5573,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5574,1
    - Dst: rnp_key_remove
      Src: /src/rnp/src/tests/ffi.cpp:5574,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5576,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:5576,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5577,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5578,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:5578,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5579,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5581,1
    - Dst: rnp_key_remove
      Src: /src/rnp/src/tests/ffi.cpp:5581,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5582,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:5582,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5583,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5584,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:5584,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5585,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5587,1
    - Dst: rnp_key_remove
      Src: /src/rnp/src/tests/ffi.cpp:5587,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5588,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:5588,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5589,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5590,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:5590,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5591,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5593,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5594,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5597,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:5597,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5598,1
    - Dst: rnp_key_remove
      Src: /src/rnp/src/tests/ffi.cpp:5598,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5600,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi.cpp:5600,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5601,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5602,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi.cpp:5602,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5603,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5604,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 118
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5607
      start: 5450
    functionDepth: 1
    functionLinenumber: 5450
    functionLinenumberEnd: 5607
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - test_ffi_init
    - rnp_locate_key
    - rnp_key_remove
    - assert_rnp_failure
    - assert_true
    - rnp_key_have_secret
    - assert_int_equal
    - rnp_ffi_destroy
    - assert_rnp_success
    - rnp_key_have_public
    - rnp_key_get_subkey_count
    - assert_false
    - rnp_key_handle_destroy
    - import_sec_keys
    - import_pub_keys
    - rnp_get_secret_key_count
    - rnp_get_public_key_count
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_remove)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5616,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:5616,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5619,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5619,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5620,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:5620,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5621,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi.cpp:5621,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:5624,1
    - Dst: std::string::assign
      Src: /src/rnp/src/tests/ffi.cpp:5626,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5627,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi.cpp:5627,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5628,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5629,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5632,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi.cpp:5632,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5633,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:5633,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5635,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi.cpp:5635,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5636,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi.cpp:5636,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi.cpp:5637,1
    - Dst: std::string::assign
      Src: /src/rnp/src/tests/ffi.cpp:5638,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5639,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi.cpp:5639,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5643,1
    - Dst: rnp_op_verify_get_protection_info
      Src: /src/rnp/src/tests/ffi.cpp:5643,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:5644,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:5645,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:5646,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5647,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5648,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5650,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi.cpp:5650,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5651,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5653,1
    - Dst: rnp_op_verify_get_recipient_count
      Src: /src/rnp/src/tests/ffi.cpp:5653,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5654,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5656,1
    - Dst: rnp_op_verify_get_symenc_count
      Src: /src/rnp/src/tests/ffi.cpp:5656,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5657,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5658,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5659,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5660,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5663
      start: 5609
    functionDepth: 1
    functionLinenumber: 5609
    functionLinenumberEnd: 5663
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_memory_get_buf
    - assert_string_equal
    - rnp_op_verify_get_protection_info
    - std::string::assign
    - rnp_op_verify_execute
    - rnp_input_from_path
    - assert_true
    - assert_rnp_success
    - file_to_str
    - rnp_op_verify_destroy
    - rnp_op_verify_get_symenc_count
    - rnp_op_verify_get_recipient_count
    - rnp_output_to_memory
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_decrypt
    - rnp_op_verify_create
    - rnp_ffi_create
    - rnp_op_verify_get_signature_count
    - rnp_input_destroy
    - rnp_buffer_destroy
    - assert_false
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_literal_packet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::bad_alloc
      Src: /src/rnp/src/tests/ffi.cpp:5677,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5680,1
    - Dst: rnp_input_from_callback
      Src: /src/rnp/src/tests/ffi.cpp:5680,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5681,1
    - Dst: rnp_input_from_callback
      Src: /src/rnp/src/tests/ffi.cpp:5681,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5682,1
    - Dst: rnp_input_from_callback
      Src: /src/rnp/src/tests/ffi.cpp:5682,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5683,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:5683,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5684,1
    - Dst: rnp_output_pipe
      Src: /src/rnp/src/tests/ffi.cpp:5684,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5685,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5686,1
    - Dst: std::runtime_error
      Src: /src/rnp/src/tests/ffi.cpp:5692,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5695,1
    - Dst: rnp_input_from_callback
      Src: /src/rnp/src/tests/ffi.cpp:5695,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5696,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:5696,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5697,1
    - Dst: rnp_output_pipe
      Src: /src/rnp/src/tests/ffi.cpp:5697,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5698,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5699,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5708,1
    - Dst: rnp_input_from_callback
      Src: /src/rnp/src/tests/ffi.cpp:5708,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5709,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi.cpp:5709,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5710,1
    - Dst: rnp_output_pipe
      Src: /src/rnp/src/tests/ffi.cpp:5710,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5711,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5712,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5714
      start: 5669
    functionDepth: 1
    functionLinenumber: 5669
    functionLinenumberEnd: 5714
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_destroy
    - rnp_output_to_memory
    - std::runtime_error
    - rnp_input_from_callback
    - assert_rnp_failure
    - assert_int_equal
    - std::bad_alloc
    - assert_rnp_success
    - rnp_output_pipe
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_exception)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi.cpp:5719,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5722,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:5722,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5724,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:5724,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5726,1
    - Dst: rnp_key_unprotect
      Src: /src/rnp/src/tests/ffi.cpp:5726,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5727,1
    - Dst: rnp_key_unprotect
      Src: /src/rnp/src/tests/ffi.cpp:5727,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5730,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi.cpp:5730,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:5731,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5733,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi.cpp:5733,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi.cpp:5734,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5736,1
    - Dst: rnp_key_protect
      Src: /src/rnp/src/tests/ffi.cpp:5736,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5737,1
    - Dst: rnp_key_protect
      Src: /src/rnp/src/tests/ffi.cpp:5737,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5739,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi.cpp:5739,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5740,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5742,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi.cpp:5742,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5743,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5745,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5746,1
    - Dst: reload_keyrings
      Src: /src/rnp/src/tests/ffi.cpp:5748,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5750,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:5750,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5751,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:5751,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5754,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi.cpp:5754,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5755,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5757,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi.cpp:5757,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5758,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5761,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi.cpp:5761,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:5762,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5763,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5765,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi.cpp:5765,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:5766,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5767,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5769,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi.cpp:5769,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:5770,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5771,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5773,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi.cpp:5773,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:5774,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5775,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5777,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi.cpp:5777,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5778,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi.cpp:5778,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5780,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi.cpp:5780,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5781,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi.cpp:5781,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5784,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi.cpp:5784,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5785,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5787,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi.cpp:5787,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5788,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5790,1
    - Dst: rnp_key_protect
      Src: /src/rnp/src/tests/ffi.cpp:5790,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5791,1
    - Dst: rnp_key_protect
      Src: /src/rnp/src/tests/ffi.cpp:5791,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5793,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi.cpp:5793,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5794,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5796,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi.cpp:5796,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5797,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5799,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5800,1
    - Dst: reload_keyrings
      Src: /src/rnp/src/tests/ffi.cpp:5802,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5804,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:5804,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5805,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:5805,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5808,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi.cpp:5808,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5809,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5811,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi.cpp:5811,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5812,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5815,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi.cpp:5815,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:5816,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5817,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5819,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi.cpp:5819,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:5820,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5821,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5823,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/tests/ffi.cpp:5823,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5824,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5826,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi.cpp:5826,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:5827,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5828,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5830,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi.cpp:5830,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:5831,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5832,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5834,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/tests/ffi.cpp:5834,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5835,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5837,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi.cpp:5837,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5838,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi.cpp:5838,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5840,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi.cpp:5840,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5841,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi.cpp:5841,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5843,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5844,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 101
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5847
      start: 5716
    functionDepth: 1
    functionLinenumber: 5716
    functionLinenumberEnd: 5847
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - test_ffi_init
    - rnp_locate_key
    - rnp_key_get_protection_iterations
    - rnp_key_get_protection_hash
    - assert_rnp_failure
    - assert_true
    - rnp_key_get_protection_cipher
    - rnp_key_unprotect
    - assert_string_equal
    - rnp_buffer_destroy
    - assert_rnp_success
    - rnp_key_is_protected
    - rnp_ffi_destroy
    - assert_false
    - rnp_key_handle_destroy
    - rnp_key_unlock
    - rnp_key_protect
    - reload_keyrings
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_protection_change)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5852,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:5852,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5853,1
    - Dst: rnp_ffi_set_log_fd
      Src: /src/rnp/src/tests/ffi.cpp:5853,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5854,1
    - Dst: rnp_ffi_set_log_fd
      Src: /src/rnp/src/tests/ffi.cpp:5854,1
    - Dst: rnp_open
      Src: /src/rnp/src/tests/ffi.cpp:5855,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5856,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5857,1
    - Dst: rnp_ffi_set_log_fd
      Src: /src/rnp/src/tests/ffi.cpp:5857,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5860,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi.cpp:5861,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi.cpp:5861,1
    - Dst: getenv
      Src: /src/rnp/src/tests/ffi.cpp:5863,1
    - Dst: strdup
      Src: /src/rnp/src/tests/ffi.cpp:5864,1
    - Dst: getenv
      Src: /src/rnp/src/tests/ffi.cpp:5864,1
    - Dst: setenv
      Src: /src/rnp/src/tests/ffi.cpp:5866,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5867,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/ffi.cpp:5867,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5868,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5868,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:5869,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5871,1
    - Dst: setenv
      Src: /src/rnp/src/tests/ffi.cpp:5871,1
    - Dst: free
      Src: /src/rnp/src/tests/ffi.cpp:5872,1
    - Dst: unsetenv
      Src: /src/rnp/src/tests/ffi.cpp:5874,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5877,1
    - Dst: fcntl
      Src: /src/rnp/src/tests/ffi.cpp:5877,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5878,1
    - Dst: rnp_open
      Src: /src/rnp/src/tests/ffi.cpp:5881,1
    - Dst: read
      Src: /src/rnp/src/tests/ffi.cpp:5882,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:5883,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi.cpp:5884,1
    - Dst: strstr
      Src: /src/rnp/src/tests/ffi.cpp:5884,1
    - Dst: close
      Src: /src/rnp/src/tests/ffi.cpp:5885,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5886
      start: 5849
    functionDepth: 1
    functionLinenumber: 5849
    functionLinenumberEnd: 5886
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - assert_rnp_failure
    - rnp_ffi_set_log_fd
    - strlen
    - setenv
    - free
    - rnp_load_keys
    - assert_true
    - assert_rnp_success
    - rnp_input_from_memory
    - assert_int_equal
    - rnp_ffi_destroy
    - fcntl
    - strdup
    - rnp_ffi_create
    - rnp_input_destroy
    - rnp_open
    - getenv
    - read
    - close
    - strstr
    - unsetenv
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_set_log_fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:5891,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5896,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:5897,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5898,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:5898,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5899,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:5900,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5901,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:5902,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5903,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:5904,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5907,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:5908,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5909,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5910,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5913,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:5914,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5915,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5916,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5917,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:5917,1
    - Dst: time
      Src: /src/rnp/src/tests/ffi.cpp:5918,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5919,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5920,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5921,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:5921,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5923,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5924,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5925,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5927,1
    - Dst: rnp_add_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:5927,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5929,1
    - Dst: rnp_add_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:5929,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5931,1
    - Dst: rnp_add_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:5932,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5933,1
    - Dst: rnp_add_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:5933,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5935,1
    - Dst: rnp_add_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:5935,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5941,1
    - Dst: rnp_add_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:5942,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5943,1
    - Dst: rnp_add_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:5943,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5949,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:5949,1
    - Dst: time
      Src: /src/rnp/src/tests/ffi.cpp:5950,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5951,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5952,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5953,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5956,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:5956,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:5963,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:5963,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5970,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:5970,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5977,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5979,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:5979,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5986,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5988,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:5988,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5990,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:5992,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:5992,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:5999,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:6000,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:6000,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6007,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:6008,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:6008,1
    - Dst: time
      Src: /src/rnp/src/tests/ffi.cpp:6009,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6010,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6011,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6012,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:6014,1
    - Dst: rnp_add_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:6014,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:6021,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:6021,1
    - Dst: time
      Src: /src/rnp/src/tests/ffi.cpp:6022,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6023,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6024,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6025,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:6027,1
    - Dst: rnp_add_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:6027,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:6034,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:6034,1
    - Dst: time
      Src: /src/rnp/src/tests/ffi.cpp:6035,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6036,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6037,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6038,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:6040,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:6040,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6047,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:6048,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:6048,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6055,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:6058,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:6058,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:6059,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:6059,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6065,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:6066,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:6067,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:6070,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:6071,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6072,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:6074,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:6075,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6076,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:6077,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:6078,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:6080,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:6080,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6082,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:6083,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:6083,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6085,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:6086,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:6087,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:6091,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:6092,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6093,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6094,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6095,1
    - Dst: time
      Src: /src/rnp/src/tests/ffi.cpp:6098,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:6101,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:6102,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6105,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6106,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6107,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:6109,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:6109,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6111,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6112,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:6114,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:6114,1
    - Dst: time
      Src: /src/rnp/src/tests/ffi.cpp:6115,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6116,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6117,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6118,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:6120,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:6121,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6125,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6126,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6127,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:6129,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:6129,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6131,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6132,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6133,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:6135,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi.cpp:6135,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6137,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6138,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi.cpp:6139,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:6141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 127
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6142
      start: 5888
    functionDepth: 1
    functionLinenumber: 5888
    functionLinenumberEnd: 6142
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - assert_rnp_failure
    - assert_int_equal
    - rnp_remove_security_rule
    - rnp_ffi_destroy
    - assert_rnp_success
    - rnp_add_security_rule
    - time
    - rnp_ffi_create
    - rnp_get_security_rule
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_security_profile)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_result_to_string
      Src: /src/rnp/src/tests/ffi.cpp:6150,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:6151,1
    - Dst: rnp_result_to_string
      Src: /src/rnp/src/tests/ffi.cpp:6153,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:6154,1
    - Dst: rnp_result_to_string
      Src: /src/rnp/src/tests/ffi.cpp:6169,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/ffi.cpp:6171,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/ffi.cpp:6171,1
    - Dst: std::set::find
      Src: /src/rnp/src/tests/ffi.cpp:6173,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi.cpp:6176,1
    - Dst: std::set::end
      Src: /src/rnp/src/tests/ffi.cpp:6176,1
    - Dst: std::set::insert
      Src: /src/rnp/src/tests/ffi.cpp:6178,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi.cpp:6247,1
    - Dst: rnp_result_to_string
      Src: /src/rnp/src/tests/ffi.cpp:6247,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6249
      start: 6144
    functionDepth: 1
    functionLinenumber: 6144
    functionLinenumberEnd: 6249
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_result_to_string
    - assert_true
    - std::set::find
    - assert_string_equal
    - strcmp
    - std::set::insert
    - std::set::end
    - assert_int_not_equal
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_result_to_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi.cpp:6254,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi.cpp:6254,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:6256,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:6256,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi.cpp:6257,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi.cpp:6257,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi.cpp:6258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6259
      start: 6251
    functionDepth: 1
    functionLinenumber: 6251
    functionLinenumberEnd: 6259
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi.cpp
    functionUses: 0
    functionsReached:
    - rnp_locate_key
    - assert_rnp_failure
    - rnp_ffi_destroy
    - assert_rnp_success
    - rnp_ffi_create
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_wrong_hex_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_sigimport.cpp:38,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_sigimport.cpp:39,1
    - Dst: sigimport_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_sigimport.cpp:39,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_sigimport.cpp:39,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_sigimport.cpp:39,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 40
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/fuzz_sigimport.cpp
    functionUses: 0
    functionsReached:
    - sigimport_LLVMFuzzerTestOneInput
    - auto::size
    - auto::data
    - assert_int_equal
    - file_to_vec
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_fuzz_sigimport)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::UserPrefs::UserPrefs
      Src: /src/rnp/src/tests/key-prefs.cpp:35,1
    - Dst: rnp::UserPrefs::UserPrefs
      Src: /src/rnp/src/tests/key-prefs.cpp:36,1
    - Dst: rnp::UserPrefs::add_symm_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:39,1
    - Dst: rnp::UserPrefs::add_symm_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:40,1
    - Dst: rnp::UserPrefs::add_symm_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:41,1
    - Dst: rnp::UserPrefs::add_symm_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:42,1
    - Dst: rnp::UserPrefs::add_symm_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:43,1
    - Dst: rnp::UserPrefs::add_symm_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:44,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:45,1
    - Dst: rnp::UserPrefs::symm_algs::size
      Src: /src/rnp/src/tests/key-prefs.cpp:45,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:46,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:47,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:48,1
    - Dst: rnp::UserPrefs::add_symm_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:49,1
    - Dst: rnp::UserPrefs::add_symm_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:50,1
    - Dst: rnp::UserPrefs::add_symm_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:51,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:53,1
    - Dst: rnp::UserPrefs::symm_algs::size
      Src: /src/rnp/src/tests/key-prefs.cpp:53,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:54,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:55,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:56,1
    - Dst: rnp::UserPrefs::add_hash_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:58,1
    - Dst: rnp::UserPrefs::add_hash_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:59,1
    - Dst: rnp::UserPrefs::add_hash_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:60,1
    - Dst: rnp::UserPrefs::add_hash_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:61,1
    - Dst: rnp::UserPrefs::add_hash_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:62,1
    - Dst: rnp::UserPrefs::add_hash_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:63,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:64,1
    - Dst: rnp::UserPrefs::hash_algs::size
      Src: /src/rnp/src/tests/key-prefs.cpp:64,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:65,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:66,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:67,1
    - Dst: rnp::UserPrefs::add_hash_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:68,1
    - Dst: rnp::UserPrefs::add_hash_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:69,1
    - Dst: rnp::UserPrefs::add_hash_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:70,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:72,1
    - Dst: rnp::UserPrefs::hash_algs::size
      Src: /src/rnp/src/tests/key-prefs.cpp:72,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:73,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:74,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:75,1
    - Dst: rnp::UserPrefs::add_z_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:77,1
    - Dst: rnp::UserPrefs::add_z_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:78,1
    - Dst: rnp::UserPrefs::add_z_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:79,1
    - Dst: rnp::UserPrefs::add_z_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:80,1
    - Dst: rnp::UserPrefs::add_z_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:81,1
    - Dst: rnp::UserPrefs::add_z_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:82,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:83,1
    - Dst: rnp::UserPrefs::z_algs::size
      Src: /src/rnp/src/tests/key-prefs.cpp:83,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:84,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:85,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:86,1
    - Dst: rnp::UserPrefs::add_z_alg
      Src: /src/rnp/src/tests/key-prefs.cpp:87,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:89,1
    - Dst: rnp::UserPrefs::z_algs::size
      Src: /src/rnp/src/tests/key-prefs.cpp:89,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:90,1
    - Dst: rnp::UserPrefs::add_ks_pref
      Src: /src/rnp/src/tests/key-prefs.cpp:92,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:93,1
    - Dst: rnp::UserPrefs::ks_prefs::size
      Src: /src/rnp/src/tests/key-prefs.cpp:93,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:94,1
    - Dst: rnp::UserPrefs::add_ks_pref
      Src: /src/rnp/src/tests/key-prefs.cpp:95,1
    - Dst: rnp::UserPrefs::add_ks_pref
      Src: /src/rnp/src/tests/key-prefs.cpp:96,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:98,1
    - Dst: rnp::UserPrefs::ks_prefs::size
      Src: /src/rnp/src/tests/key-prefs.cpp:98,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:99,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-prefs.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 61
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 103
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/key-prefs.cpp
    functionUses: 0
    functionsReached:
    - rnp::UserPrefs::UserPrefs
    - rnp::UserPrefs::hash_algs::size
    - assert_int_equal
    - rnp::UserPrefs::add_hash_alg
    - rnp::UserPrefs::symm_algs::size
    - rnp::UserPrefs::add_ks_pref
    - rnp::UserPrefs::add_symm_alg
    - rnp::UserPrefs::ks_prefs::size
    - rnp::UserPrefs::add_z_alg
    - rnp::UserPrefs::z_algs::size
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_key_prefs)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:49,1
    - Dst: ec_key_t::generate_ecdh_kem_key_pair
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:50,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:53,1
    - Dst: ecdh_kem_key_t::pub::encapsulate
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:54,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:55,1
    - Dst: ecdh_kem_key_t::priv::decapsulate
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:56,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:59,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:59,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:59,1
    - Dst: assert_memory_equal
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:60,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:60,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:60,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:60,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:63,1
    - Dst: assert_throw
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:65,1
    - Dst: ecdh_kem_key_t::priv::decapsulate
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 69
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached:
    - assert_memory_equal
    - ec_key_t::generate_ecdh_kem_key_pair
    - assert_int_equal
    - assert_rnp_success
    - assert_throw
    - ecdh_kem_key_t::pub::encapsulate
    - ecdh_kem_key_t::priv::decapsulate
    - std::vector::size
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ecdh_kem)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:87,1
    - Dst: ec_key_t::generate_exdsa_key_pair
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:88,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:92,1
    - Dst: exdsa_key_t::priv::sign
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:93,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:93,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:93,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:94,1
    - Dst: exdsa_key_t::pub::verify
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:94,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:94,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:94,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:97,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:98,1
    - Dst: exdsa_key_t::pub::verify
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:98,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:98,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:98,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:101,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:102,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:103,1
    - Dst: exdsa_key_t::pub::verify
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:103,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:103,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/exdsa_ecdhkem.cpp:103,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 105
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached:
    - assert_rnp_failure
    - ec_key_t::generate_exdsa_key_pair
    - exdsa_key_t::pub::verify
    - assert_rnp_success
    - exdsa_key_t::priv::sign
    - std::vector::size
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_exdsa)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-store-search.cpp:40,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/key-store-search.cpp:53,1
    - Dst: rnp::Key::Key
      Src: /src/rnp/src/tests/key-store-search.cpp:55,1
    - Dst: rnp::Key::pkt
      Src: /src/rnp/src/tests/key-store-search.cpp:57,1
    - Dst: rnp::Key::pkt
      Src: /src/rnp/src/tests/key-store-search.cpp:58,1
    - Dst: rnp::Key::pkt
      Src: /src/rnp/src/tests/key-store-search.cpp:59,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:62,1
    - Dst: rnp::hex_decode
      Src: /src/rnp/src/tests/key-store-search.cpp:62,1
    - Dst: rnp::Key::keyid
      Src: /src/rnp/src/tests/key-store-search.cpp:63,1
    - Dst: rnp::Key::keyid
      Src: /src/rnp/src/tests/key-store-search.cpp:63,1
    - Dst: rnp::Key::grip
      Src: /src/rnp/src/tests/key-store-search.cpp:65,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:66,1
    - Dst: rnp::hex_decode
      Src: /src/rnp/src/tests/key-store-search.cpp:66,1
    - Dst: pgp::KeyGrip::data
      Src: /src/rnp/src/tests/key-store-search.cpp:66,1
    - Dst: pgp::KeyGrip::size
      Src: /src/rnp/src/tests/key-store-search.cpp:66,1
    - Dst: rnp::Key::fp
      Src: /src/rnp/src/tests/key-store-search.cpp:69,1
    - Dst: vec
      Src: /src/rnp/src/tests/key-store-search.cpp:70,1
    - Dst: std::vector::resize
      Src: /src/rnp/src/tests/key-store-search.cpp:71,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:72,1
    - Dst: rnp::hex_decode
      Src: /src/rnp/src/tests/key-store-search.cpp:72,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/key-store-search.cpp:72,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/key-store-search.cpp:72,1
    - Dst: pgp_transferable_userid_t::uid::uid::assign
      Src: /src/rnp/src/tests/key-store-search.cpp:79,1
    - Dst: strlen
      Src: /src/rnp/src/tests/key-store-search.cpp:79,1
    - Dst: rnp::Key::add_uid
      Src: /src/rnp/src/tests/key-store-search.cpp:80,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:83,1
    - Dst: auto::add_key
      Src: /src/rnp/src/tests/key-store-search.cpp:83,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/key-store-search.cpp:88,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-store-search.cpp:91,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-store-search.cpp:92,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:94,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/key-store-search.cpp:94,1
    - Dst: rnp::Key*::keyid
      Src: /src/rnp/src/tests/key-store-search.cpp:94,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-store-search.cpp:96,1
    - Dst: std::set::count
      Src: /src/rnp/src/tests/key-store-search.cpp:96,1
    - Dst: std::set::insert
      Src: /src/rnp/src/tests/key-store-search.cpp:98,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-store-search.cpp:100,1
    - Dst: std::set::size
      Src: /src/rnp/src/tests/key-store-search.cpp:100,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/key-store-search.cpp:103,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-store-search.cpp:106,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:109,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/key-store-search.cpp:109,1
    - Dst: rnp::Key*::keyid
      Src: /src/rnp/src/tests/key-store-search.cpp:109,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-store-search.cpp:111,1
    - Dst: std::set::count
      Src: /src/rnp/src/tests/key-store-search.cpp:111,1
    - Dst: std::set::insert
      Src: /src/rnp/src/tests/key-store-search.cpp:113,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-store-search.cpp:115,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-store-search.cpp:118,1
    - Dst: std::set::size
      Src: /src/rnp/src/tests/key-store-search.cpp:118,1
    - Dst: rnp::Key*::uid_count
      Src: /src/rnp/src/tests/key-store-search.cpp:123,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/key-store-search.cpp:124,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/key-store-search.cpp:127,1
    - Dst: rnp_tests_key_search
      Src: /src/rnp/src/tests/key-store-search.cpp:131,1
    - Dst: rnp::Key*::uid_count
      Src: /src/rnp/src/tests/key-store-search.cpp:135,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/key-store-search.cpp:136,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:140,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-store-search.cpp:142,1
    - Dst: std::set::count
      Src: /src/rnp/src/tests/key-store-search.cpp:142,1
    - Dst: std::set::insert
      Src: /src/rnp/src/tests/key-store-search.cpp:144,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-store-search.cpp:145,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-store-search.cpp:148,1
    - Dst: std::set::size
      Src: /src/rnp/src/tests/key-store-search.cpp:148,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 60
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 154
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/key-store-search.cpp
    functionUses: 0
    functionsReached:
    - std::set::count
    - rnp::Key*::keyid
    - rnp::Key::add_uid
    - rnp::Key::fp
    - rnp::Key::grip
    - rnp_tests_key_search
    - auto::add_key
    - ARRAY_SIZE
    - strlen
    - pgp_transferable_userid_t::uid::uid::assign
    - vec
    - assert_true
    - rnp::Key::pkt
    - std::set::size
    - rnp::Key*::uid_count
    - rnp::Key::keyid
    - std::vector::resize
    - assert_int_equal
    - rnp::Key*::get_uid
    - cmp_keyid
    - rnp::KeyStore::KeyStore
    - std::vector::size
    - std::vector::data
    - rnp::Key::Key
    - rnp::hex_decode
    - pgp::KeyGrip::size
    - rnp_tests_get_key_by_id
    - std::set::insert
    - pgp::KeyGrip::data
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_key_store_search)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-store-search.cpp:166,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:167,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-store-search.cpp:167,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-store-search.cpp:170,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:172,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-store-search.cpp:172,1
    - Dst: rnp_tests_get_key_by_fpr
      Src: /src/rnp/src/tests/key-store-search.cpp:181,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-store-search.cpp:182,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-store-search.cpp:183,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:184,1
    - Dst: rnp_tests_get_key_by_fpr
      Src: /src/rnp/src/tests/key-store-search.cpp:185,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-store-search.cpp:186,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:187,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-store-search.cpp:188,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:189,1
    - Dst: rnp_tests_get_key_by_fpr
      Src: /src/rnp/src/tests/key-store-search.cpp:191,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-store-search.cpp:192,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:193,1
    - Dst: rnp_tests_get_key_by_fpr
      Src: /src/rnp/src/tests/key-store-search.cpp:194,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:195,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:196,1
    - Dst: rnp_tests_key_search
      Src: /src/rnp/src/tests/key-store-search.cpp:197,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:198,1
    - Dst: rnp_tests_get_key_by_fpr
      Src: /src/rnp/src/tests/key-store-search.cpp:201,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:202,1
    - Dst: rnp_tests_get_key_by_fpr
      Src: /src/rnp/src/tests/key-store-search.cpp:203,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:204,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-store-search.cpp:205,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:206,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-store-search.cpp:207,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:208,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-store-search.cpp:209,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:210,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-store-search.cpp:211,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/key-store-search.cpp:212,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-store-search.cpp:213,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/key-store-search.cpp:214,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-store-search.cpp:215,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:216,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-store-search.cpp:217,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:218,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-store-search.cpp:219,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-store-search.cpp:220,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-store-search.cpp:221,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/key-store-search.cpp:222,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/key-store-search.cpp:224,1
    - Dst: rnp_tests_get_key_by_fpr
      Src: /src/rnp/src/tests/key-store-search.cpp:224,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/key-store-search.cpp:225,1
    - Dst: rnp_tests_get_key_by_fpr
      Src: /src/rnp/src/tests/key-store-search.cpp:225,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/key-store-search.cpp:226,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-store-search.cpp:226,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/key-store-search.cpp:227,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-store-search.cpp:227,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/key-store-search.cpp:228,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-store-search.cpp:228,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/key-store-search.cpp:229,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-store-search.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 234
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/key-store-search.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_tests_get_key_by_fpr
    - assert_true
    - rnp_tests_key_search
    - auto::load
    - assert_null
    - rnp_tests_get_key_by_id
    - rnp::KeyStore::KeyStore
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_key_store_search_by_name)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi-enc.cpp:58,1
    - Dst: memcpy
      Src: /src/rnp/src/tests/ffi-enc.cpp:62,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - ffi
    - app_ctx
    - key
    - pgp_context
    - buf
    - buf_len
    argTypes:
    - rnp_ffi_t
    - void*
    - rnp_key_handle_t
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 65
    functionName: getpasscb_once
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - strlen
    linkageType: ''
    returnType: bool
    signature: "bool getpasscb_once(rnp_ffi_t        ffi,\n               void *           app_ctx,\n
      \              rnp_key_handle_t key,\n               const char *     pgp_context,\n
      \              char *           buf,\n               size_t           buf_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/rnp/src/tests/ffi-enc.cpp:76,1
    - Dst: strncpy
      Src: /src/rnp/src/tests/ffi-enc.cpp:78,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 6
    argNames:
    - ffi
    - app_ctx
    - key
    - pgp_context
    - buf
    - buf_len
    argTypes:
    - rnp_ffi_t
    - void*
    - rnp_key_handle_t
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 80
    functionName: getpasscb_inc
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - strncpy
    - std::string::c_str
    - to_string
    linkageType: ''
    returnType: bool
    signature: "bool getpasscb_inc(rnp_ffi_t        ffi,\n              void *           app_ctx,\n
      \             rnp_key_handle_t key,\n              const char *     pgp_context,\n
      \             char *           buf,\n              size_t           buf_len)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/rnp/src/tests/ffi-enc.cpp:104,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/ffi-enc.cpp:104,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/ffi-enc.cpp:107,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/ffi-enc.cpp:107,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/ffi-enc.cpp:110,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/ffi-enc.cpp:112,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:121,1
    - Dst: rnp_detect_key_format
      Src: /src/rnp/src/tests/ffi-enc.cpp:122,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:123,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:126,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:127,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:128,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:129,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/ffi-enc.cpp:129,1
    - Dst: free
      Src: /src/rnp/src/tests/ffi-enc.cpp:130,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:131,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:131,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 32
    argCount: 5
    argNames:
    - ffi
    - app_ctx
    - identifier_type
    - identifier
    - secret
    argTypes:
    - rnp_ffi_t
    - void*
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 134
    functionName: tbl_getkeycb
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_input_from_memory
    - rnp_detect_key_format
    - assert_rnp_success
    - strcmp
    - rnp_load_keys
    - free
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: "void tbl_getkeycb(rnp_ffi_t   ffi,\n             void *      app_ctx,\n
      \            const char *identifier_type,\n             const char *identifier,\n
      \            bool        secret)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const uint8_t *>
      Src: /src/rnp/src/tests/ffi-enc.cpp:143,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/rnp/src/tests/ffi-enc.cpp:144,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/ffi-enc.cpp:147,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 4
    argNames:
    - haystack
    - haystacklen
    - needle
    - needlelen
    argTypes:
    - void*
    - size_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 152
    functionName: portable_memmem
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const uint8_t *>
    - memcmp
    linkageType: ''
    returnType: void
    signature: 'void *

      portable_memmem(const void *haystack, size_t haystacklen, const void *needle,
      size_t needlelen)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:163,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:163,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:166,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-enc.cpp:167,1
    - Dst: str_to_file
      Src: /src/rnp/src/tests/ffi-enc.cpp:170,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:173,1
    - Dst: rnp_input_from_stdin
      Src: /src/rnp/src/tests/ffi-enc.cpp:173,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:174,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:174,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:175,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:175,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:176,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:176,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:177,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:178,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:178,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:179,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:180,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:180,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:181,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:181,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:184,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:184,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:185,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:186,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:186,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:187,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:189,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:189,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:190,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:190,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:191,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:191,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:192,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:192,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:193,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:193,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:195,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:195,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:196,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:196,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:197,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:197,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:198,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:198,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:199,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:199,1
    - Dst: blowfish_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:202,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:203,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi-enc.cpp:203,1
    - Dst: cast5_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:206,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:207,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi-enc.cpp:207,1
    - Dst: sm2_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:212,1
    - Dst: twofish_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:212,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:213,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:213,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:214,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:215,1
    - Dst: blowfish_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:216,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:217,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:217,1
    - Dst: sm2_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:218,1
    - Dst: twofish_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:218,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:219,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:219,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:220,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:221,1
    - Dst: sm2_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:222,1
    - Dst: twofish_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:222,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:223,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:223,1
    - Dst: blowfish_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:224,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:225,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:225,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:227,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:227,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:230,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:230,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:231,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:231,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:232,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:232,1
    - Dst: cast5_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:233,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:234,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:234,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:236,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:236,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:237,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:237,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:240,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:240,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:241,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:241,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:244,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/tests/ffi-enc.cpp:244,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:247,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:247,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:249,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:249,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:251,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:251,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:257,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:257,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:258,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:259,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:259,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:260,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:261,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:261,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:262,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:262,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:263,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:263,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:265,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:267,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:271,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:271,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:272,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:273,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:273,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:274,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:276,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:276,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:277,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:277,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:279,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:281,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:285,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:285,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:286,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:287,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:287,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:288,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:289,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:290,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:291,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:291,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:292,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:292,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:293,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:293,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:294,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:294,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:296,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:298,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:301,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:301,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:302,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:305,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:305,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:306,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:307,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:307,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:308,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:309,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:310,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:311,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:311,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:313,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:315,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:318,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:318,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:320,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 115
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 321
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_to_path
    - assert_non_null
    - assert_rnp_failure
    - assert_string_equal
    - rnp_op_encrypt_add_password
    - rnp_file_exists
    - rnp_ffi_set_pass_provider
    - rnp_input_from_stdin
    - rnp_input_from_path
    - assert_true
    - rnp_op_encrypt_create
    - assert_null
    - rnp_op_encrypt_set_cipher
    - assert_rnp_success
    - file_to_str
    - cast5_enabled
    - sm2_enabled
    - rnp_op_encrypt_execute
    - rnp_decrypt
    - rnp_ffi_destroy
    - str_to_file
    - blowfish_enabled
    - rnp_ffi_create
    - rnp_input_destroy
    - unlink
    - rnp_remove_security_rule
    - twofish_enabled
    - load_keys_gpg
    - rnp_op_encrypt_destroy
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_encrypt_pass)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:332,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:332,1
    - Dst: str_to_file
      Src: /src/rnp/src/tests/ffi-enc.cpp:334,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:336,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:336,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:337,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:337,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:339,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:339,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:341,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:341,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:342,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:342,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:345,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:345,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:346,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:346,1
    - Dst: sm2_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:348,1
    - Dst: twofish_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:348,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:349,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:349,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:350,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:350,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:351,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:351,1
    - Dst: sm2_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:352,1
    - Dst: twofish_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:352,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:353,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:353,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:354,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:354,1
    - Dst: sm2_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:355,1
    - Dst: twofish_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:355,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:356,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:356,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:357,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:357,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:359,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:359,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:362,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:362,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:364,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:364,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:366,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/tests/ffi-enc.cpp:366,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:369,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:369,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:371,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:371,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:373,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:373,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:377,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:377,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:378,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:378,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:379,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:380,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:381,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:381,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:382,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:384,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:386,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:386,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:387,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:390,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:390,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:391,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:391,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:393,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:393,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:394,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:394,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:395,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:396,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:397,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:397,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:398,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:400,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 323
    functionDepth: 1
    functionLinenumber: 323
    functionLinenumberEnd: 401
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_to_path
    - assert_rnp_failure
    - assert_string_equal
    - rnp_op_encrypt_add_password
    - rnp_file_exists
    - rnp_ffi_set_pass_provider
    - rnp_input_from_path
    - assert_true
    - rnp_op_encrypt_create
    - rnp_op_encrypt_set_cipher
    - assert_rnp_success
    - file_to_str
    - sm2_enabled
    - rnp_op_encrypt_execute
    - rnp_decrypt
    - rnp_ffi_destroy
    - str_to_file
    - rnp_ffi_create
    - rnp_input_destroy
    - unlink
    - twofish_enabled
    - rnp_op_encrypt_destroy
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_encrypt_pass_provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:407,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:407,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:411,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:412,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi-enc.cpp:412,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:413,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:413,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi-enc.cpp:413,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:414,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:414,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:415,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:415,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:416,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:417,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi-enc.cpp:417,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:419,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:419,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:422,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:422,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:424,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:424,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:425,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:425,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:426,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:426,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:428,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:428,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:429,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/tests/ffi-enc.cpp:429,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:431,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:431,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:432,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:432,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:433,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:433,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:435,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:435,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:436,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:436,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:437,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:438,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:440,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:440,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:441,1
    - Dst: rnp_op_verify_set_flags
      Src: /src/rnp/src/tests/ffi-enc.cpp:441,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:442,1
    - Dst: rnp_op_verify_set_flags
      Src: /src/rnp/src/tests/ffi-enc.cpp:442,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:443,1
    - Dst: rnp_op_verify_set_flags
      Src: /src/rnp/src/tests/ffi-enc.cpp:443,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:444,1
    - Dst: rnp_op_verify_set_flags
      Src: /src/rnp/src/tests/ffi-enc.cpp:444,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:445,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:445,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:446,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:447,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:448,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:448,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:453,1
    - Dst: rnp_op_verify_get_protection_info
      Src: /src/rnp/src/tests/ffi-enc.cpp:453,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:454,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:455,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:456,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:457,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:458,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:461,1
    - Dst: rnp_op_verify_get_symenc_count
      Src: /src/rnp/src/tests/ffi-enc.cpp:461,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:462,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:465,1
    - Dst: rnp_op_verify_get_symenc_at
      Src: /src/rnp/src/tests/ffi-enc.cpp:465,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:467,1
    - Dst: rnp_symenc_get_aead_alg
      Src: /src/rnp/src/tests/ffi-enc.cpp:467,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:468,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:469,1
    - Dst: rnp_symenc_get_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:469,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:470,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:471,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:472,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:474,1
    - Dst: rnp_op_verify_get_symenc_at
      Src: /src/rnp/src/tests/ffi-enc.cpp:474,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:475,1
    - Dst: rnp_symenc_get_aead_alg
      Src: /src/rnp/src/tests/ffi-enc.cpp:475,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:476,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:477,1
    - Dst: rnp_symenc_get_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:477,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:478,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:479,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:480,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:481,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:482,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:483,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:486,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:487,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi-enc.cpp:487,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:488,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:488,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:490,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:490,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:492,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:492,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:493,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:493,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:494,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:494,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:495,1
    - Dst: rnp_op_encrypt_set_aead
      Src: /src/rnp/src/tests/ffi-enc.cpp:495,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:497,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:497,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:498,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/tests/ffi-enc.cpp:498,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:500,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:500,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:501,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:501,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:502,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:502,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:504,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:504,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:505,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:505,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:506,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:507,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:508,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:508,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:509,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:509,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:510,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:511,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:512,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:512,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:514,1
    - Dst: rnp_op_verify_get_protection_info
      Src: /src/rnp/src/tests/ffi-enc.cpp:514,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:515,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:516,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:517,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:518,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:519,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:521,1
    - Dst: rnp_op_verify_get_symenc_count
      Src: /src/rnp/src/tests/ffi-enc.cpp:521,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:522,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:524,1
    - Dst: rnp_op_verify_get_symenc_at
      Src: /src/rnp/src/tests/ffi-enc.cpp:524,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:525,1
    - Dst: rnp_symenc_get_aead_alg
      Src: /src/rnp/src/tests/ffi-enc.cpp:525,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:526,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:527,1
    - Dst: rnp_symenc_get_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:527,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:528,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:529,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:530,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:532,1
    - Dst: rnp_op_verify_get_symenc_at
      Src: /src/rnp/src/tests/ffi-enc.cpp:532,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:533,1
    - Dst: rnp_symenc_get_aead_alg
      Src: /src/rnp/src/tests/ffi-enc.cpp:533,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:534,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:535,1
    - Dst: rnp_symenc_get_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:535,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:536,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:537,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:538,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:539,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:540,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:541,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 100
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 403
    functionDepth: 1
    functionLinenumber: 403
    functionLinenumberEnd: 544
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_to_path
    - assert_rnp_failure
    - rnp_op_encrypt_set_aead
    - assert_string_equal
    - rnp_op_encrypt_add_password
    - rnp_file_exists
    - rnp_op_verify_get_protection_info
    - rnp_ffi_set_pass_provider
    - strlen
    - rnp_op_verify_execute
    - rnp_input_from_path
    - assert_true
    - rnp_op_encrypt_create
    - rnp_op_verify_set_flags
    - rnp_symenc_get_aead_alg
    - rnp_op_encrypt_set_cipher
    - assert_rnp_success
    - file_to_str
    - rnp_op_verify_destroy
    - rnp_op_verify_get_symenc_count
    - rnp_input_from_memory
    - assert_int_equal
    - rnp_op_encrypt_execute
    - rnp_op_verify_create
    - rnp_ffi_destroy
    - rnp_symenc_get_cipher
    - rnp_ffi_create
    - rnp_input_destroy
    - unlink
    - rnp_buffer_destroy
    - rnp_op_verify_get_symenc_at
    - rnp_op_encrypt_destroy
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_encrypt_set_cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:550,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:550,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:554,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:555,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi-enc.cpp:555,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:557,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:557,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:560,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:560,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:561,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:561,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:563,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:563,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:564,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/tests/ffi-enc.cpp:564,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:566,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:566,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:567,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:567,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:568,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:568,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:570,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:570,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:571,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:571,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:572,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:573,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:574,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:575,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:576,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:576,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:577,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:578,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 546
    functionDepth: 1
    functionLinenumber: 546
    functionLinenumberEnd: 581
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_to_path
    - assert_string_equal
    - rnp_op_encrypt_add_password
    - rnp_file_exists
    - rnp_ffi_set_pass_provider
    - strlen
    - rnp_input_from_path
    - assert_true
    - rnp_op_encrypt_create
    - assert_rnp_success
    - file_to_str
    - rnp_input_from_memory
    - rnp_op_encrypt_execute
    - rnp_ffi_destroy
    - rnp_ffi_create
    - rnp_input_destroy
    - unlink
    - rnp_op_encrypt_destroy
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_encrypt_empty_buffer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:587,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:587,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:590,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:590,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:591,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:591,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:593,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:593,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:596,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:596,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:597,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:597,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:599,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:599,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:600,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/tests/ffi-enc.cpp:600,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:602,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:602,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:603,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:603,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:604,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:604,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:606,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:606,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:607,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:607,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:608,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:609,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:610,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:611,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:612,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:612,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:613,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:614,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 617
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_to_path
    - assert_rnp_failure
    - assert_string_equal
    - rnp_op_encrypt_add_password
    - rnp_file_exists
    - rnp_ffi_set_pass_provider
    - rnp_input_from_path
    - assert_true
    - rnp_op_encrypt_create
    - assert_rnp_success
    - file_to_str
    - rnp_input_from_memory
    - rnp_op_encrypt_execute
    - rnp_ffi_destroy
    - rnp_ffi_create
    - rnp_input_destroy
    - unlink
    - rnp_op_encrypt_destroy
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_encrypt_null_buffer)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:628,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:628,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:631,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-enc.cpp:632,1
    - Dst: str_to_file
      Src: /src/rnp/src/tests/ffi-enc.cpp:635,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:637,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:637,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:638,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:639,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:639,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:640,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:642,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:642,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:645,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:645,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:646,1
    - Dst: rnp_op_encrypt_add_recipient
      Src: /src/rnp/src/tests/ffi-enc.cpp:646,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:647,1
    - Dst: rnp_op_encrypt_add_recipient
      Src: /src/rnp/src/tests/ffi-enc.cpp:647,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:648,1
    - Dst: rnp_op_encrypt_add_recipient
      Src: /src/rnp/src/tests/ffi-enc.cpp:648,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:649,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:651,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:651,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:652,1
    - Dst: rnp_op_encrypt_add_recipient
      Src: /src/rnp/src/tests/ffi-enc.cpp:652,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:653,1
    - Dst: cast5_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:656,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:657,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi-enc.cpp:657,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:659,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:659,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:661,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi-enc.cpp:661,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:663,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:663,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:664,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:664,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:667,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:667,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:670,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/tests/ffi-enc.cpp:670,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:673,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:673,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:675,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:675,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:677,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:677,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:683,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:683,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:684,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:685,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:685,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:686,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:687,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:687,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:688,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:688,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:690,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:692,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:696,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:696,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:697,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:698,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:698,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:699,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:701,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:701,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:702,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:702,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:704,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:706,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:710,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:710,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:711,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:712,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:712,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:713,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:714,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:715,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:716,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:716,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:718,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:720,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:723,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:723,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:725,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 726
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_output_to_path
    - assert_rnp_failure
    - assert_string_equal
    - rnp_file_exists
    - rnp_ffi_set_pass_provider
    - rnp_input_from_path
    - rnp_op_encrypt_add_recipient
    - assert_true
    - rnp_op_encrypt_create
    - rnp_op_encrypt_set_cipher
    - assert_rnp_success
    - file_to_str
    - rnp_key_handle_destroy
    - cast5_enabled
    - rnp_locate_key
    - rnp_op_encrypt_execute
    - rnp_decrypt
    - rnp_ffi_destroy
    - str_to_file
    - rnp_ffi_create
    - rnp_input_destroy
    - rnp_remove_security_rule
    - load_keys_gpg
    - rnp_op_encrypt_destroy
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_encrypt_pk)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:737,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:737,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:739,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:740,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi-enc.cpp:740,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:741,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:741,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:743,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:743,1
    - Dst: cast5_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:749,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:750,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi-enc.cpp:750,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:757,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:758,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:761,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi-enc.cpp:761,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:768,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:769,1
    - Dst: idea_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:770,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:771,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi-enc.cpp:771,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:778,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:779,1
    - Dst: blowfish_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:781,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:782,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi-enc.cpp:782,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:789,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:790,1
    - Dst: rnp_ffi_t::context::set_time
      Src: /src/rnp/src/tests/ffi-enc.cpp:793,1
    - Dst: cast5_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:795,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:796,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:796,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:798,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:798,1
    - Dst: idea_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:799,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:800,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:800,1
    - Dst: blowfish_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:802,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:803,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:803,1
    - Dst: rnp_ffi_t::context::set_time
      Src: /src/rnp/src/tests/ffi-enc.cpp:806,1
    - Dst: cast5_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:808,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:809,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:809,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:811,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:811,1
    - Dst: idea_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:812,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:813,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:813,1
    - Dst: blowfish_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:815,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:816,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:816,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:820,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:820,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:822,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:825,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:825,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:827,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:827,1
    - Dst: rnp_ffi_t::context::set_time
      Src: /src/rnp/src/tests/ffi-enc.cpp:829,1
    - Dst: cast5_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:831,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:832,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:832,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:834,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:834,1
    - Dst: idea_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:835,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:836,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:836,1
    - Dst: blowfish_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:838,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:839,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:839,1
    - Dst: cast5_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:843,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:845,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi-enc.cpp:845,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:847,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:850,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi-enc.cpp:850,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:852,1
    - Dst: idea_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:853,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:855,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi-enc.cpp:855,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:857,1
    - Dst: blowfish_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:859,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:861,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi-enc.cpp:861,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:863,1
    - Dst: cast5_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:866,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:867,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:867,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:869,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:869,1
    - Dst: idea_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:870,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:871,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:871,1
    - Dst: blowfish_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:873,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:874,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:874,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:878,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:878,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:880,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:880,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:882,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:882,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:884,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 96
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 728
    functionDepth: 1
    functionLinenumber: 728
    functionLinenumberEnd: 885
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_to_path
    - assert_rnp_failure
    - idea_enabled
    - strlen
    - rnp_op_encrypt_create
    - rnp_op_encrypt_set_cipher
    - assert_rnp_success
    - cast5_enabled
    - rnp_input_from_memory
    - assert_int_equal
    - rnp_ffi_destroy
    - blowfish_enabled
    - rnp_ffi_create
    - rnp_ffi_t::context::set_time
    - rnp_get_security_rule
    - rnp_input_destroy
    - rnp_remove_security_rule
    - rnp_op_encrypt_destroy
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_select_deprecated_ciphers)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::invalid_argument
      Src: /src/rnp/src/tests/ffi-enc.cpp:896,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi-enc.cpp:899,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/ffi-enc.cpp:900,1
    - Dst: std::invalid_argument
      Src: /src/rnp/src/tests/ffi-enc.cpp:901,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:903,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 6
    argNames:
    - ffi
    - app_ctx
    - key
    - pgp_context
    - buf
    - buf_len
    argTypes:
    - rnp_ffi_t
    - void*
    - rnp_key_handle_t
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 905
    functionName: first_key_password_provider
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - std::invalid_argument
    - rnp_buffer_destroy
    - rnp_key_get_keyid
    linkageType: ''
    returnType: bool
    signature: "bool first_key_password_provider(rnp_ffi_t        ffi,\n                            void
      *           app_ctx,\n                            rnp_key_handle_t key,\n                            const
      char *     pgp_context,\n                            char *           buf,\n
      \                           size_t           buf_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:916,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:916,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:919,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-enc.cpp:920,1
    - Dst: str_to_file
      Src: /src/rnp/src/tests/ffi-enc.cpp:923,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:925,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:925,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:926,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:926,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:928,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:928,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:931,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:931,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:932,1
    - Dst: rnp_op_encrypt_add_recipient
      Src: /src/rnp/src/tests/ffi-enc.cpp:932,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:933,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:934,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:934,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:935,1
    - Dst: rnp_op_encrypt_add_recipient
      Src: /src/rnp/src/tests/ffi-enc.cpp:935,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:936,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:938,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:938,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:941,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/tests/ffi-enc.cpp:941,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:944,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:944,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:945,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:945,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:946,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:946,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:949,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:949,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:950,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:950,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:951,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:951,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:953,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:953,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:954,1
    - Dst: rnp_key_get_default_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:954,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:955,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:956,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-enc.cpp:956,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:957,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:957,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:958,1
    - Dst: rnp_key_lock
      Src: /src/rnp/src/tests/ffi-enc.cpp:958,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:959,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:960,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:962,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:963,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:964,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:964,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:965,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:965,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:968,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:968,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:969,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:969,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:970,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:970,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:971,1
    - Dst: rnp_key_get_default_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:971,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:972,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:973,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-enc.cpp:973,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:974,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:974,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:975,1
    - Dst: rnp_key_lock
      Src: /src/rnp/src/tests/ffi-enc.cpp:975,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:976,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:977,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:979,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:980,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:981,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:981,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:982,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:982,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:985,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:985,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:986,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:986,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:987,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:987,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:988,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:988,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:989,1
    - Dst: rnp_key_get_default_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:989,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:990,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:991,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-enc.cpp:991,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:992,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:992,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:993,1
    - Dst: rnp_key_lock
      Src: /src/rnp/src/tests/ffi-enc.cpp:993,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:994,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:995,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:997,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:998,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:999,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:999,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1000,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:1000,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1003,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:1003,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1004,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1004,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1005,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1005,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1006,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:1006,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1007,1
    - Dst: rnp_key_get_default_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:1007,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1008,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1009,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-enc.cpp:1009,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1010,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:1010,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1011,1
    - Dst: rnp_key_lock
      Src: /src/rnp/src/tests/ffi-enc.cpp:1011,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1012,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1013,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1015,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1016,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1017,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:1017,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1018,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:1018,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1021,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1022
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 1022
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_to_path
    - assert_non_null
    - assert_string_equal
    - rnp_file_exists
    - rnp_ffi_set_pass_provider
    - rnp_key_get_default_key
    - rnp_input_from_path
    - rnp_op_encrypt_add_recipient
    - assert_true
    - rnp_op_encrypt_create
    - assert_rnp_success
    - file_to_str
    - rnp_key_handle_destroy
    - rnp_key_lock
    - rnp_locate_key
    - assert_int_equal
    - rnp_op_encrypt_execute
    - rnp_decrypt
    - rnp_ffi_destroy
    - str_to_file
    - rnp_key_unlock
    - rnp_ffi_create
    - rnp_input_destroy
    - unlink
    - load_keys_gpg
    - rnp_op_encrypt_destroy
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_decrypt_pk_unlocked)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1045,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1045,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1046,1
    - Dst: rnp_generate_key_ex
      Src: /src/rnp/src/tests/ffi-enc.cpp:1046,1
    - Dst: first::c_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:1047,1
    - Dst: second::c_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:1048,1
    - Dst: str_to_file
      Src: /src/rnp/src/tests/ffi-enc.cpp:1057,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1058,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1058,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1059,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1060,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1060,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1061,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1062,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1062,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1063,1
    - Dst: rnp_op_encrypt_add_recipient
      Src: /src/rnp/src/tests/ffi-enc.cpp:1063,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1064,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:1064,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1065,1
    - Dst: rnp_op_encrypt_add_signature
      Src: /src/rnp/src/tests/ffi-enc.cpp:1065,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1066,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:1066,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:1067,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/tests/ffi-enc.cpp:1067,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1068,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1068,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1070,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1070,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1073,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1073,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1074,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1075,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1075,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1076,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1077,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:1077,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1079,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1079,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1080,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1080,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1081,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1081,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1082,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1082,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1083,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1083,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1085
      start: 1026
    functionDepth: 1
    functionLinenumber: 1026
    functionLinenumberEnd: 1085
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_output_to_path
    - rnp_file_exists
    - rnp_input_from_path
    - rnp_op_encrypt_add_recipient
    - assert_true
    - rnp_op_encrypt_create
    - rnp_op_encrypt_set_cipher
    - assert_rnp_success
    - second::c_str
    - rnp_key_handle_destroy
    - rnp_op_encrypt_add_signature
    - first::c_str
    - rnp_op_encrypt_execute
    - rnp_decrypt
    - rnp_ffi_destroy
    - str_to_file
    - rnp_generate_key_ex
    - rnp_ffi_create
    - rnp_input_destroy
    - rnp_op_encrypt_destroy
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_pqc_gen_enc_sign)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1096,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1096,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1097,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:1098,1
    - Dst: aead_eax_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:1100,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1101,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1101,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1102,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1102,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1103,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1103,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1104,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:1104,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1105,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:1105,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1106,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:1106,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1107,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1108,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1109,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1112,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1112,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1113,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1113,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1114,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1114,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1115,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:1115,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1116,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:1116,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1117,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:1117,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1118,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1119,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1120,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1123
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1123
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_to_path
    - rnp_input_from_path
    - unlink
    - assert_int_equal
    - assert_string_equal
    - rnp_op_verify_create
    - rnp_ffi_destroy
    - assert_rnp_success
    - file_to_str
    - rnp_op_verify_destroy
    - rnp_ffi_set_pass_provider
    - rnp_ffi_create
    - aead_eax_enabled
    - rnp_op_verify_execute
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_decrypt_v6_skesk_test_vectors)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1134,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1134,1
    - Dst: aead_eax_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:1138,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/tests/ffi-enc.cpp:1139,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1144,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1144,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1145,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:1145,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi-enc.cpp:1146,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1147,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1147,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1148,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:1149,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1150,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:1150,1
    - Dst: c_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:1150,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1151,1
    - Dst: rnp_op_encrypt_set_aead
      Src: /src/rnp/src/tests/ffi-enc.cpp:1151,1
    - Dst: c_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:1151,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1152,1
    - Dst: rnp_op_encrypt_enable_skesk_v6
      Src: /src/rnp/src/tests/ffi-enc.cpp:1152,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1153,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:1153,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1154,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1155,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1156,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1158,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:1158,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1161,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1161,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1162,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1162,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1163,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1163,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1164,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:1164,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1165,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:1165,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1166,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1167,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1168,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1170,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:1170,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1171,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:1171,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1174,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1125
    functionDepth: 1
    functionLinenumber: 1125
    functionLinenumberEnd: 1175
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_to_path
    - rnp_op_encrypt_enable_skesk_v6
    - rnp_op_encrypt_set_aead
    - assert_string_equal
    - rnp_op_encrypt_add_password
    - rnp_ffi_set_pass_provider
    - strlen
    - rnp_op_verify_execute
    - rnp_input_from_path
    - rnp_op_encrypt_create
    - rnp_op_encrypt_set_cipher
    - assert_rnp_success
    - file_to_str
    - rnp_op_verify_destroy
    - rnp_input_from_memory
    - assert_int_equal
    - rnp_op_encrypt_execute
    - rnp_op_verify_create
    - rnp_ffi_destroy
    - rnp_ffi_create
    - rnp_input_destroy
    - std::vector::push_back
    - unlink
    - c_str
    - rnp_op_encrypt_destroy
    - aead_eax_enabled
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_v6_skesk_enc_dec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1185,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1185,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:1186,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-enc.cpp:1186,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1188,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1188,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1189,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1190,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1190,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1191,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:1191,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1194,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1195,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1179
    functionDepth: 1
    functionLinenumber: 1179
    functionLinenumberEnd: 1197
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_input_from_path
    - import_all_keys
    - assert_true
    - rnp_ffi_destroy
    - rnp_decrypt
    - assert_rnp_success
    - rnp_ffi_create
    - rnp_output_to_null
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_decrypt_v6_pkesk_test_vector)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GTEST_SKIP
      Src: /src/rnp/src/tests/ffi-enc.cpp:1207,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1213,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1213,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:1214,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-enc.cpp:1215,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1219,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:1219,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1220,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-enc.cpp:1220,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1222,1
    - Dst: rnp_key_protect
      Src: /src/rnp/src/tests/ffi-enc.cpp:1222,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1223,1
    - Dst: rnp_key_lock
      Src: /src/rnp/src/tests/ffi-enc.cpp:1223,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1224,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-enc.cpp:1224,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1225,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-enc.cpp:1225,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1226,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1229,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:1229,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1231,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1231,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1232,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1233,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1233,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1234,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:1234,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1235,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:1235,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1236,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:1236,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1239,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1240,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1241,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1202
    functionDepth: 1
    functionLinenumber: 1202
    functionLinenumberEnd: 1242
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_output_to_path
    - assert_rnp_failure
    - assert_string_equal
    - rnp_ffi_set_pass_provider
    - rnp_key_protect
    - rnp_input_from_path
    - import_all_keys
    - assert_true
    - assert_rnp_success
    - file_to_str
    - GTEST_SKIP
    - rnp_key_handle_destroy
    - rnp_key_lock
    - rnp_locate_key
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_decrypt
    - rnp_key_unlock
    - rnp_ffi_create
    - rnp_input_destroy
    - unlink
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_argon2_locked_seckey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: GTEST_SKIP
      Src: /src/rnp/src/tests/ffi-enc.cpp:1249,1
    - Dst: size
      Src: /src/rnp/src/tests/ffi-enc.cpp:1260,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1266,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1266,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1269,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1269,1
    - Dst: std::vector::at
      Src: /src/rnp/src/tests/ffi-enc.cpp:1269,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1270,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1270,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1271,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:1272,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1273,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1273,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1274,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:1274,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1275,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:1275,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1276,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:1276,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1282,1
    - Dst: rnp_op_verify_get_protection_info
      Src: /src/rnp/src/tests/ffi-enc.cpp:1282,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1283,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1284,1
    - Dst: std::vector::at
      Src: /src/rnp/src/tests/ffi-enc.cpp:1284,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:1285,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1286,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1287,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1290,1
    - Dst: rnp_op_verify_get_symenc_count
      Src: /src/rnp/src/tests/ffi-enc.cpp:1290,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1291,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1294,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1295,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1296,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1299
      start: 1244
    functionDepth: 1
    functionLinenumber: 1244
    functionLinenumberEnd: 1299
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_to_path
    - assert_string_equal
    - rnp_op_verify_get_protection_info
    - rnp_ffi_set_pass_provider
    - rnp_op_verify_execute
    - size
    - rnp_input_from_path
    - assert_true
    - assert_rnp_success
    - file_to_str
    - rnp_op_verify_destroy
    - GTEST_SKIP
    - std::vector::at
    - rnp_op_verify_get_symenc_count
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_op_verify_create
    - rnp_ffi_create
    - rnp_input_destroy
    - unlink
    - rnp_buffer_destroy
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_decrypt_argon2_skesk)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1310,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1310,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:1311,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-enc.cpp:1311,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1313,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1314,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1315,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1316,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1316,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1317,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1317,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1318,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:1318,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1321,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:1322,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1324,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:1324,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1327,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1328,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1329,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1303
    functionDepth: 1
    functionLinenumber: 1303
    functionLinenumberEnd: 1331
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_output_to_path
    - rnp_input_from_path
    - import_all_keys
    - assert_true
    - unlink
    - assert_int_equal
    - assert_string_equal
    - rnp_op_verify_create
    - rnp_ffi_destroy
    - assert_rnp_success
    - file_to_str
    - rnp_op_verify_destroy
    - rnp_ffi_create
    - rnp_op_verify_execute
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_verify_v2_seipd_test_vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1343,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1343,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:1344,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-enc.cpp:1344,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1346,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1347,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1348,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1349,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1349,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1350,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1350,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1351,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:1351,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1360,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1361,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1362,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1363,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1364
      start: 1336
    functionDepth: 1
    functionLinenumber: 1336
    functionLinenumberEnd: 1364
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_output_to_path
    - rnp_input_from_path
    - import_all_keys
    - assert_true
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_op_verify_create
    - assert_rnp_success
    - rnp_op_verify_destroy
    - rnp_ffi_create
    - rnp_op_verify_execute
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_verify_v2_seipd_cleartext_test_vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1386,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1386,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:1388,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-enc.cpp:1388,1
    - Dst: first::c_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:1388,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1390,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1390,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1391,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1391,1
    - Dst: second::c_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:1391,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1392,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1393,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:1393,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1394,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:1394,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1395,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:1395,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1396,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1397,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1366
    functionDepth: 1
    functionLinenumber: 1366
    functionLinenumberEnd: 1400
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_to_path
    - assert_non_null
    - first::c_str
    - rnp_input_from_path
    - import_all_keys
    - assert_true
    - unlink
    - assert_int_equal
    - assert_string_equal
    - rnp_decrypt
    - rnp_ffi_destroy
    - assert_rnp_success
    - file_to_str
    - second::c_str
    - rnp_ffi_create
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_decrypt_pqc_pkesk_test_vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1410,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1410,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1413,1
    - Dst: rnp_op_generate_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1413,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1414,1
    - Dst: rnp_op_generate_set_hash
      Src: /src/rnp/src/tests/ffi-enc.cpp:1414,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1415,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:1415,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1417,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:1417,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1418,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1419,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1419,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1421,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1421,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1422,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:1422,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1423,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1425,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1425,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1426,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-enc.cpp:1426,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1427,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:1427,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1428,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1432,1
    - Dst: rnp_op_generate_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1432,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1433,1
    - Dst: rnp_op_generate_set_hash
      Src: /src/rnp/src/tests/ffi-enc.cpp:1433,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1434,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:1434,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1435,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:1435,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1436,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1437,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1437,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1439,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1439,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1440,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-enc.cpp:1440,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1441,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:1441,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1442,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1444,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1444,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1445,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:1445,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1446,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1450,1
    - Dst: rnp_key_get_default_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:1451,1
    - Dst: assert
      Src: /src/rnp/src/tests/ffi-enc.cpp:1453,1
    - Dst: rnp_key_handle_t::pub::alg
      Src: /src/rnp/src/tests/ffi-enc.cpp:1453,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1454,1
    - Dst: rnp_key_get_default_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:1455,1
    - Dst: assert
      Src: /src/rnp/src/tests/ffi-enc.cpp:1457,1
    - Dst: rnp_key_handle_t::pub::alg
      Src: /src/rnp/src/tests/ffi-enc.cpp:1457,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1460,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1461,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1462,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1463,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1464,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (defkey2->pub->alg() == PGP_PKA_KYBER768_X25519)
      pos:
        line_end: 1456
        line_start: 1456
        source_file: /src/rnp/src/tests/ffi-enc.cpp
    - condition: (defkey1->pub->alg() == PGP_PKA_KYBER768_X25519)
      pos:
        line_end: 1452
        line_start: 1452
        source_file: /src/rnp/src/tests/ffi-enc.cpp
    constantsTouched: []
    func_position:
      end: 1465
      start: 1402
    functionDepth: 1
    functionLinenumber: 1402
    functionLinenumberEnd: 1465
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_op_generate_execute
    - rnp_op_generate_create
    - rnp_op_generate_get_key
    - rnp_ffi_destroy
    - assert_rnp_success
    - rnp_op_generate_set_curve
    - rnp_op_generate_destroy
    - assert
    - rnp_key_handle_destroy
    - rnp_key_handle_t::pub::alg
    - rnp_op_generate_subkey_create
    - rnp_ffi_create
    - rnp_op_generate_set_hash
    - rnp_key_get_default_key
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_pqc_default_enc_subkey)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1476,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1476,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:1478,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-enc.cpp:1478,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/tests/ffi-enc.cpp:1484,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/tests/ffi-enc.cpp:1489,1
    - Dst: std::vector::end
      Src: /src/rnp/src/tests/ffi-enc.cpp:1489,1
    - Dst: std::vector::begin
      Src: /src/rnp/src/tests/ffi-enc.cpp:1489,1
    - Dst: std::vector::end
      Src: /src/rnp/src/tests/ffi-enc.cpp:1489,1
    - Dst: aead_eax_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:1492,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/tests/ffi-enc.cpp:1493,1
    - Dst: find
      Src: /src/rnp/src/tests/ffi-enc.cpp:1501,1
    - Dst: find
      Src: /src/rnp/src/tests/ffi-enc.cpp:1511,1
    - Dst: fopen
      Src: /src/rnp/src/tests/ffi-enc.cpp:1516,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1517,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1518,1
    - Dst: fwrite
      Src: /src/rnp/src/tests/ffi-enc.cpp:1518,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi-enc.cpp:1518,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1519,1
    - Dst: fclose
      Src: /src/rnp/src/tests/ffi-enc.cpp:1519,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1522,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1522,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1523,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1524,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1524,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1525,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1527,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1527,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1530,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:1530,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1531,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1533,1
    - Dst: rnp_op_encrypt_add_recipient
      Src: /src/rnp/src/tests/ffi-enc.cpp:1533,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1534,1
    - Dst: rnp_op_encrypt_add_recipient
      Src: /src/rnp/src/tests/ffi-enc.cpp:1534,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1536,1
    - Dst: rnp_op_encrypt_enable_pkesk_v6
      Src: /src/rnp/src/tests/ffi-enc.cpp:1536,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1538,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1545,1
    - Dst: rnp_op_encrypt_set_aead
      Src: /src/rnp/src/tests/ffi-enc.cpp:1545,1
    - Dst: c_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:1545,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1547,1
    - Dst: rnp_op_encrypt_set_aead
      Src: /src/rnp/src/tests/ffi-enc.cpp:1547,1
    - Dst: c_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:1547,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1549,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:1549,1
    - Dst: c_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:1549,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1553,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:1553,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1555,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:1555,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1557,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1559,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1561,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:1567,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/tests/ffi-enc.cpp:1567,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1570,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1570,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1572,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1572,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1574,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1574,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1578,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1578,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1579,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1580,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1580,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1581,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1582,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:1582,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1583,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:1583,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1585,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1587,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1590,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 68
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1591
      start: 1467
    functionDepth: 1
    functionLinenumber: 1467
    functionLinenumberEnd: 1591
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_output_to_path
    - assert_rnp_failure
    - rnp_op_encrypt_set_aead
    - rnp_file_exists
    - rnp_ffi_set_pass_provider
    - strlen
    - std::vector::begin
    - rnp_input_from_path
    - rnp_op_encrypt_add_recipient
    - std::vector::insert
    - import_all_keys
    - assert_true
    - rnp_op_encrypt_create
    - rnp_op_encrypt_set_cipher
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_op_encrypt_enable_pkesk_v6
    - rnp_locate_key
    - fopen
    - assert_int_equal
    - fclose
    - rnp_op_encrypt_execute
    - rnp_decrypt
    - rnp_ffi_destroy
    - std::vector::end
    - rnp_ffi_create
    - std::vector::push_back
    - rnp_input_destroy
    - fwrite
    - find
    - c_str
    - rnp_op_encrypt_destroy
    - aead_eax_enabled
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_encrypt_pk_with_v6_key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1608,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1608,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1609,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:1611,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-enc.cpp:1612,1
    - Dst: str_to_file
      Src: /src/rnp/src/tests/ffi-enc.cpp:1614,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1616,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1616,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1617,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1618,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1618,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1619,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1621,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1621,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1624,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:1624,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1625,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1626,1
    - Dst: rnp_op_encrypt_add_recipient
      Src: /src/rnp/src/tests/ffi-enc.cpp:1626,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1628,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1628,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1631,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:1631,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1632,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1633,1
    - Dst: rnp_op_encrypt_add_recipient
      Src: /src/rnp/src/tests/ffi-enc.cpp:1633,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1635,1
    - Dst: rnp_get_secret_key_data
      Src: /src/rnp/src/tests/ffi-enc.cpp:1635,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1636,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1637,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1637,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1641,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:1641,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1642,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1643,1
    - Dst: rnp_get_secret_key_data
      Src: /src/rnp/src/tests/ffi-enc.cpp:1643,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1644,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1646,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1646,1
    - Dst: cast5_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:1649,1
    - Dst: cast5_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:1650,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1651,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi-enc.cpp:1651,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1654,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:1654,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1656,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:1656,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1657,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:1657,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1660,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:1660,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:1662,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/tests/ffi-enc.cpp:1662,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1664,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1664,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1666,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1666,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1668,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1668,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1670,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1670,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1674,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1674,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1677,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:1678,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1679,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1680,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/ffi-enc.cpp:1680,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1681,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1685,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1685,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1686,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1687,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1687,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1688,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1689,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:1689,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1691,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1693,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1701,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:1702,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1703,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1703,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1704,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1705,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1705,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1706,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1707,1
    - Dst: rnp_ffi_set_key_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:1707,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1708,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:1708,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1710,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1712,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1715,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:1715,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1717,1
    - Dst: free
      Src: /src/rnp/src/tests/ffi-enc.cpp:1718,1
    - Dst: free
      Src: /src/rnp/src/tests/ffi-enc.cpp:1719,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 78
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1720
      start: 1594
    functionDepth: 1
    functionLinenumber: 1594
    functionLinenumberEnd: 1720
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_output_to_path
    - assert_rnp_failure
    - assert_string_equal
    - rnp_file_exists
    - rnp_ffi_set_pass_provider
    - rnp_load_keys
    - free
    - rnp_input_from_path
    - rnp_op_encrypt_add_recipient
    - assert_true
    - rnp_op_encrypt_create
    - rnp_op_encrypt_set_cipher
    - assert_rnp_success
    - file_to_str
    - rnp_key_handle_destroy
    - cast5_enabled
    - rnp_locate_key
    - rnp_input_from_memory
    - rnp_ffi_set_key_provider
    - assert_int_equal
    - rnp_op_encrypt_execute
    - rnp_ffi_destroy
    - rnp_decrypt
    - str_to_file
    - rnp_ffi_create
    - rnp_get_secret_key_data
    - rnp_input_destroy
    - rnp_remove_security_rule
    - load_keys_gpg
    - rnp_op_encrypt_destroy
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_encrypt_pk_key_provider)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1737,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1737,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:1740,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-enc.cpp:1741,1
    - Dst: str_to_file
      Src: /src/rnp/src/tests/ffi-enc.cpp:1744,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1746,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1746,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1747,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1748,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1748,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1749,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1751,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1751,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1753,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:1753,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1754,1
    - Dst: rnp_op_encrypt_add_recipient
      Src: /src/rnp/src/tests/ffi-enc.cpp:1754,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1755,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1757,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:1757,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1758,1
    - Dst: rnp_op_encrypt_add_recipient
      Src: /src/rnp/src/tests/ffi-enc.cpp:1758,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1759,1
    - Dst: cast5_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:1762,1
    - Dst: cast5_enabled
      Src: /src/rnp/src/tests/ffi-enc.cpp:1763,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1764,1
    - Dst: rnp_remove_security_rule
      Src: /src/rnp/src/tests/ffi-enc.cpp:1764,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1767,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:1767,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1769,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:1769,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1770,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/tests/ffi-enc.cpp:1770,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1773,1
    - Dst: rnp_op_encrypt_set_armor
      Src: /src/rnp/src/tests/ffi-enc.cpp:1773,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1774,1
    - Dst: rnp_op_encrypt_set_armor
      Src: /src/rnp/src/tests/ffi-enc.cpp:1774,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1776,1
    - Dst: rnp_op_encrypt_set_hash
      Src: /src/rnp/src/tests/ffi-enc.cpp:1776,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1777,1
    - Dst: rnp_op_encrypt_set_hash
      Src: /src/rnp/src/tests/ffi-enc.cpp:1777,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1778,1
    - Dst: rnp_op_encrypt_set_hash
      Src: /src/rnp/src/tests/ffi-enc.cpp:1778,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1779,1
    - Dst: rnp_op_encrypt_set_hash
      Src: /src/rnp/src/tests/ffi-enc.cpp:1779,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1780,1
    - Dst: rnp_op_encrypt_set_creation_time
      Src: /src/rnp/src/tests/ffi-enc.cpp:1780,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1781,1
    - Dst: rnp_op_encrypt_set_creation_time
      Src: /src/rnp/src/tests/ffi-enc.cpp:1781,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1782,1
    - Dst: rnp_op_encrypt_set_expiration_time
      Src: /src/rnp/src/tests/ffi-enc.cpp:1782,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1783,1
    - Dst: rnp_op_encrypt_set_expiration_time
      Src: /src/rnp/src/tests/ffi-enc.cpp:1783,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1784,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:1784,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1785,1
    - Dst: rnp_op_encrypt_add_signature
      Src: /src/rnp/src/tests/ffi-enc.cpp:1785,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1786,1
    - Dst: rnp_op_encrypt_add_signature
      Src: /src/rnp/src/tests/ffi-enc.cpp:1786,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1787,1
    - Dst: rnp_op_encrypt_add_signature
      Src: /src/rnp/src/tests/ffi-enc.cpp:1787,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1788,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:1791,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-enc.cpp:1791,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1792,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:1792,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1793,1
    - Dst: rnp_op_encrypt_add_signature
      Src: /src/rnp/src/tests/ffi-enc.cpp:1793,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1794,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:1797,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-enc.cpp:1798,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1799,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:1799,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1800,1
    - Dst: rnp_op_encrypt_add_signature
      Src: /src/rnp/src/tests/ffi-enc.cpp:1800,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1801,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1804,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:1804,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1805,1
    - Dst: rnp_op_encrypt_add_signature
      Src: /src/rnp/src/tests/ffi-enc.cpp:1805,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1806,1
    - Dst: rnp_op_sign_signature_set_creation_time
      Src: /src/rnp/src/tests/ffi-enc.cpp:1806,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1807,1
    - Dst: rnp_op_sign_signature_set_creation_time
      Src: /src/rnp/src/tests/ffi-enc.cpp:1807,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1808,1
    - Dst: rnp_op_sign_signature_set_expiration_time
      Src: /src/rnp/src/tests/ffi-enc.cpp:1808,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1809,1
    - Dst: rnp_op_sign_signature_set_expiration_time
      Src: /src/rnp/src/tests/ffi-enc.cpp:1809,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1810,1
    - Dst: rnp_op_sign_signature_set_hash
      Src: /src/rnp/src/tests/ffi-enc.cpp:1810,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1811,1
    - Dst: rnp_op_sign_signature_set_hash
      Src: /src/rnp/src/tests/ffi-enc.cpp:1811,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1812,1
    - Dst: rnp_op_sign_signature_set_hash
      Src: /src/rnp/src/tests/ffi-enc.cpp:1812,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1813,1
    - Dst: rnp_op_sign_signature_set_hash
      Src: /src/rnp/src/tests/ffi-enc.cpp:1813,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1814,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1817,1
    - Dst: rnp_op_encrypt_set_hash
      Src: /src/rnp/src/tests/ffi-enc.cpp:1817,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1818,1
    - Dst: rnp_op_encrypt_set_creation_time
      Src: /src/rnp/src/tests/ffi-enc.cpp:1818,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1819,1
    - Dst: rnp_op_encrypt_set_expiration_time
      Src: /src/rnp/src/tests/ffi-enc.cpp:1819,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1821,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:1822,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1823,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:1823,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:1826,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/tests/ffi-enc.cpp:1826,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1830,1
    - Dst: rnp_identifier_iterator_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1830,1
    - Dst: rnp_identifier_iterator_next
      Src: /src/rnp/src/tests/ffi-enc.cpp:1832,1
    - Dst: SCOPED_TRACE
      Src: /src/rnp/src/tests/ffi-enc.cpp:1836,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1838,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:1838,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1840,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-enc.cpp:1840,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1843,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-enc.cpp:1843,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:1844,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1846,1
    - Dst: rnp_identifier_iterator_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1848,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1851,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1851,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1853,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1853,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1855,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1855,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1861,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1861,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1862,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1863,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1863,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1864,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1865,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:1865,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1866,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:1866,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1868,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1870,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1874,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1874,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1875,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1876,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1876,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1877,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1879,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:1879,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1880,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:1880,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1882,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1884,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1888,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1888,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1889,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1890,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1890,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1891,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1892,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:1893,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1894,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:1894,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1896,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1898,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1901,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:1901,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1904,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1904,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1905,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1906,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:1906,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1907,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1908,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:1909,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1911,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1911,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1912,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:1912,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1920,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi-enc.cpp:1920,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1921,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1922,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi-enc.cpp:1922,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1923,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi-enc.cpp:1923,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1924,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi-enc.cpp:1924,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1926,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi-enc.cpp:1926,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1927,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi-enc.cpp:1927,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1928,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi-enc.cpp:1928,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1929,1
    - Dst: rnp_op_verify_signature_get_times
      Src: /src/rnp/src/tests/ffi-enc.cpp:1929,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1930,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1931,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1932,1
    - Dst: rnp_op_verify_signature_get_hash
      Src: /src/rnp/src/tests/ffi-enc.cpp:1932,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1933,1
    - Dst: rnp_op_verify_signature_get_hash
      Src: /src/rnp/src/tests/ffi-enc.cpp:1933,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1934,1
    - Dst: rnp_op_verify_signature_get_hash
      Src: /src/rnp/src/tests/ffi-enc.cpp:1934,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1935,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1936,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1939,1
    - Dst: rnp_op_verify_signature_get_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:1939,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:1940,1
    - Dst: rnp_op_verify_signature_get_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:1940,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1941,1
    - Dst: rnp_op_verify_signature_get_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:1941,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:1942,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1943,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1945,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi-enc.cpp:1945,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1946,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi-enc.cpp:1946,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1947,1
    - Dst: rnp_op_verify_signature_get_times
      Src: /src/rnp/src/tests/ffi-enc.cpp:1947,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1948,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1949,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1950,1
    - Dst: rnp_op_verify_signature_get_hash
      Src: /src/rnp/src/tests/ffi-enc.cpp:1950,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1951,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1952,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1955,1
    - Dst: rnp_identifier_iterator_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1955,1
    - Dst: rnp_identifier_iterator_next
      Src: /src/rnp/src/tests/ffi-enc.cpp:1956,1
    - Dst: SCOPED_TRACE
      Src: /src/rnp/src/tests/ffi-enc.cpp:1960,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1962,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:1962,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1964,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-enc.cpp:1964,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1967,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-enc.cpp:1967,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:1968,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1970,1
    - Dst: rnp_identifier_iterator_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1972,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1974,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1975,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1977,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:1980,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:1980,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:1982,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 183
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1983
      start: 1722
    functionDepth: 1
    functionLinenumber: 1722
    functionLinenumberEnd: 1983
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_output_to_path
    - assert_rnp_failure
    - assert_string_equal
    - rnp_op_verify_signature_get_times
    - rnp_op_verify_signature_get_key
    - rnp_file_exists
    - rnp_ffi_set_pass_provider
    - rnp_op_verify_get_signature_at
    - rnp_op_encrypt_set_creation_time
    - rnp_op_sign_signature_set_creation_time
    - rnp_op_verify_execute
    - rnp_op_encrypt_set_hash
    - rnp_input_from_path
    - rnp_op_encrypt_add_recipient
    - assert_true
    - rnp_op_encrypt_create
    - rnp_op_verify_signature_get_status
    - rnp_op_encrypt_set_cipher
    - assert_rnp_success
    - file_to_str
    - rnp_op_verify_destroy
    - rnp_key_handle_destroy
    - cast5_enabled
    - SCOPED_TRACE
    - rnp_op_encrypt_add_signature
    - rnp_locate_key
    - rnp_identifier_iterator_create
    - rnp_identifier_iterator_next
    - assert_int_equal
    - rnp_op_encrypt_execute
    - rnp_decrypt
    - rnp_op_verify_create
    - rnp_ffi_destroy
    - str_to_file
    - rnp_op_encrypt_set_armor
    - rnp_op_sign_signature_set_expiration_time
    - import_pub_keys
    - rnp_ffi_create
    - rnp_op_sign_signature_set_hash
    - rnp_op_verify_get_signature_count
    - rnp_input_destroy
    - rnp_output_destroy
    - rnp_key_have_secret
    - rnp_op_verify_signature_get_hash
    - rnp_remove_security_rule
    - rnp_buffer_destroy
    - rnp_op_encrypt_set_expiration_time
    - load_keys_gpg
    - rnp_op_encrypt_destroy
    - rnp_key_is_locked
    - rnp_identifier_iterator_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_encrypt_and_sign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1994,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:1994,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:1995,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:1996,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:1999,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-enc.cpp:1999,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2001,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:2002,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi-enc.cpp:2002,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:2003,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:2003,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2004,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:2004,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2006,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2006,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2008,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:2008,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2009,1
    - Dst: rnp_op_encrypt_add_recipient
      Src: /src/rnp/src/tests/ffi-enc.cpp:2009,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2010,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2011,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:2011,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2015,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-enc.cpp:2015,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:2016,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2017,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2018,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2019,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:2021,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-enc.cpp:2021,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2022,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:2022,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2023,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2024,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:2024,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2027,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2027,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2028,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:2028,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2032,1
    - Dst: rnp_op_verify_get_recipient_count
      Src: /src/rnp/src/tests/ffi-enc.cpp:2032,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:2033,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2035,1
    - Dst: rnp_op_verify_get_recipient_at
      Src: /src/rnp/src/tests/ffi-enc.cpp:2035,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:2036,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2038,1
    - Dst: rnp_recipient_get_keyid
      Src: /src/rnp/src/tests/ffi-enc.cpp:2038,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:2039,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:2040,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2041,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2043,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2044,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2045,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2048,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-enc.cpp:2048,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:2049,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-enc.cpp:2049,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2050,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:2051,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi-enc.cpp:2051,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2052,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:2052,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2054,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2054,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2056,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:2056,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2057,1
    - Dst: rnp_op_encrypt_add_recipient
      Src: /src/rnp/src/tests/ffi-enc.cpp:2057,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2058,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2059,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:2059,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2063,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-enc.cpp:2063,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:2064,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2065,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2066,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2067,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:2069,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-enc.cpp:2069,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2070,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:2070,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2071,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2072,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:2072,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2075,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2075,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2076,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:2076,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2080,1
    - Dst: rnp_op_verify_get_recipient_count
      Src: /src/rnp/src/tests/ffi-enc.cpp:2080,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:2081,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2083,1
    - Dst: rnp_op_verify_get_recipient_at
      Src: /src/rnp/src/tests/ffi-enc.cpp:2083,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:2084,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2086,1
    - Dst: rnp_recipient_get_keyid
      Src: /src/rnp/src/tests/ffi-enc.cpp:2086,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:2087,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:2088,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2089,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2091,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2092,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2093,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2096,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-enc.cpp:2096,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:2097,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-enc.cpp:2097,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2099,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:2100,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi-enc.cpp:2100,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2101,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:2101,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2103,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2103,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2105,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:2105,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:2106,1
    - Dst: rnp_op_encrypt_add_recipient
      Src: /src/rnp/src/tests/ffi-enc.cpp:2106,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2107,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:2108,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:2108,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2109,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2110,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2111,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2113,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 86
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2114
      start: 1985
    functionDepth: 1
    functionLinenumber: 1985
    functionLinenumberEnd: 2114
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_output_memory_get_buf
    - assert_rnp_failure
    - assert_string_equal
    - rnp_ffi_set_pass_provider
    - strlen
    - rnp_op_verify_execute
    - rnp_op_encrypt_add_recipient
    - assert_true
    - rnp_op_encrypt_create
    - assert_rnp_success
    - rnp_op_verify_destroy
    - rnp_op_verify_get_recipient_at
    - rnp_key_handle_destroy
    - rnp_op_verify_get_recipient_count
    - rnp_output_to_memory
    - rnp_locate_key
    - rnp_input_from_memory
    - assert_int_equal
    - rnp_op_encrypt_execute
    - rnp_op_verify_create
    - rnp_ffi_destroy
    - rnp_ffi_create
    - rnp_recipient_get_keyid
    - rnp_input_destroy
    - rnp_buffer_destroy
    - load_keys_gpg
    - rnp_unload_keys
    - rnp_op_encrypt_destroy
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_encrypt_pk_subkey_selection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2121,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2121,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:2122,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-enc.cpp:2122,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2124,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:2124,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2126,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:2126,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2127,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:2127,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2130,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-enc.cpp:2130,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:2131,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:2132,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/ffi-enc.cpp:2132,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2133,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2133,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2134,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2134,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2136
      start: 2116
    functionDepth: 1
    functionLinenumber: 2116
    functionLinenumberEnd: 2136
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_to_memory
    - rnp_output_memory_get_buf
    - rnp_input_from_path
    - import_all_keys
    - assert_true
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_decrypt
    - memcmp
    - assert_rnp_success
    - rnp_ffi_create
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_decrypt_small_rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2142,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2142,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:2143,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-enc.cpp:2144,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2146,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:2146,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:2147,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2149,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-enc.cpp:2149,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2150,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2152,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:2153,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2155,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:2155,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:2156,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:2156,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2157,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2157,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2158,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2158,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2159,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2161,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2161,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2162,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:2163,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:2164,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-enc.cpp:2165,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2166,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:2166,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:2167,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2168,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-enc.cpp:2168,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2169,1
    - Dst: rnp_key_lock
      Src: /src/rnp/src/tests/ffi-enc.cpp:2169,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2170,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2171,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:2172,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2173,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:2173,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:2174,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:2174,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2175,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2175,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2176,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2176,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2178
      start: 2138
    functionDepth: 1
    functionLinenumber: 2138
    functionLinenumberEnd: 2178
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_key_lock
    - rnp_locate_key
    - rnp_input_from_path
    - assert_rnp_failure
    - import_all_keys
    - assert_true
    - rnp_ffi_destroy
    - rnp_decrypt
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_key_unlock
    - rnp_ffi_set_pass_provider
    - rnp_ffi_create
    - rnp_output_to_null
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_decrypt_small_eg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2188,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2188,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:2189,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-enc.cpp:2189,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2190,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:2191,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2197,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:2198,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2200,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:2200,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2203,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2203,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2204,1
    - Dst: rnp_op_verify_set_flags
      Src: /src/rnp/src/tests/ffi-enc.cpp:2204,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2205,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:2205,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2212,1
    - Dst: rnp_op_verify_get_used_recipient
      Src: /src/rnp/src/tests/ffi-enc.cpp:2212,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:2213,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2215,1
    - Dst: rnp_recipient_get_keyid
      Src: /src/rnp/src/tests/ffi-enc.cpp:2215,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:2216,1
    - Dst: EXPECT_STRNE
      Src: /src/rnp/src/tests/ffi-enc.cpp:2218,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2219,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2221,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2222,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2223,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2225
      start: 2185
    functionDepth: 1
    functionLinenumber: 2185
    functionLinenumberEnd: 2225
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - EXPECT_STRNE
    - rnp_ffi_set_pass_provider
    - rnp_op_verify_execute
    - rnp_input_from_path
    - assert_true
    - rnp_op_verify_set_flags
    - assert_rnp_success
    - rnp_op_verify_destroy
    - rnp_ffi_destroy
    - rnp_op_verify_create
    - rnp_op_verify_get_used_recipient
    - rnp_ffi_create
    - rnp_recipient_get_keyid
    - rnp_input_destroy
    - rnp_buffer_destroy
    - import_sec_keys
    - rnp_output_to_null
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_decrypt_hidden_recipient_used_recipient)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2230,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2230,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:2231,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-enc.cpp:2232,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2235,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:2235,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2237,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:2237,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2239,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2239,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2241,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:2241,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2242,1
    - Dst: rnp_op_encrypt_add_recipient
      Src: /src/rnp/src/tests/ffi-enc.cpp:2242,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2243,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:2245,1
    - Dst: rnp_op_encrypt_set_flags
      Src: /src/rnp/src/tests/ffi-enc.cpp:2245,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-enc.cpp:2246,1
    - Dst: rnp_op_encrypt_set_flags
      Src: /src/rnp/src/tests/ffi-enc.cpp:2246,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2247,1
    - Dst: rnp_op_encrypt_set_flags
      Src: /src/rnp/src/tests/ffi-enc.cpp:2247,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2248,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:2248,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2250,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2250,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2251,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2251,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2252,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2252,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2255,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:2255,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2256,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:2256,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2257,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:2258,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2259,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/ffi-enc.cpp:2259,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2260,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2261,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:2262,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:2262,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:2263,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:2264,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2268,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:2268,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2269,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:2269,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2270,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2270,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2271,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:2271,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2275,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi-enc.cpp:2275,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:2276,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2277,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi-enc.cpp:2277,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2278,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi-enc.cpp:2278,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2279,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2279,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2280,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2280,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2281,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:2282,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:2282,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-enc.cpp:2283,1
    - Dst: unlink
      Src: /src/rnp/src/tests/ffi-enc.cpp:2284,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2288
      start: 2227
    functionDepth: 1
    functionLinenumber: 2227
    functionLinenumberEnd: 2288
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_to_path
    - assert_rnp_failure
    - assert_string_equal
    - rnp_ffi_set_pass_provider
    - rnp_op_verify_get_signature_at
    - rnp_op_verify_execute
    - rnp_op_encrypt_set_flags
    - rnp_input_from_path
    - rnp_op_encrypt_add_recipient
    - assert_true
    - rnp_op_encrypt_create
    - assert_rnp_success
    - file_to_str
    - rnp_op_verify_destroy
    - rnp_key_handle_destroy
    - rnp_locate_key
    - assert_int_equal
    - rnp_op_encrypt_execute
    - rnp_decrypt
    - rnp_op_verify_create
    - rnp_ffi_destroy
    - rnp_ffi_create
    - rnp_op_verify_get_signature_count
    - rnp_input_destroy
    - unlink
    - load_keys_gpg
    - rnp_op_encrypt_destroy
    - rnp_output_destroy
    - rnp_op_verify_signature_get_status
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_encrypt_no_wrap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2293,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2293,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:2295,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-enc.cpp:2295,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2298,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:2299,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2301,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:2301,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2303,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2303,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2304,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:2304,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2306,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi-enc.cpp:2306,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2307,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi-enc.cpp:2307,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2308,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2309,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2310,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2312,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:2312,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2314,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:2315,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2316,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2316,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2317,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:2317,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2318,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi-enc.cpp:2318,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2319,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi-enc.cpp:2319,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2320,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2321,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2322,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2324,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:2325,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2326,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:2326,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2327,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2327,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2328,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:2328,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2329,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi-enc.cpp:2329,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2330,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi-enc.cpp:2330,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2331,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2332,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2333,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2335,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2336
      start: 2290
    functionDepth: 1
    functionLinenumber: 2290
    functionLinenumberEnd: 2336
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - rnp_input_from_path
    - rnp_input_destroy
    - assert_true
    - rnp_op_verify_signature_get_status
    - rnp_op_verify_create
    - rnp_op_verify_detached_create
    - assert_rnp_success
    - rnp_op_verify_destroy
    - rnp_ffi_destroy
    - rnp_op_verify_get_signature_at
    - import_pub_keys
    - rnp_ffi_create
    - rnp_output_to_null
    - rnp_output_destroy
    - rnp_op_verify_execute
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_v5_signatures)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2341,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2341,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:2342,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-enc.cpp:2342,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2345,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-enc.cpp:2346,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2348,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:2348,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2350,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2350,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2351,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:2351,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2353,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi-enc.cpp:2353,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:2354,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2356,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi-enc.cpp:2356,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2357,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi-enc.cpp:2357,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2359,1
    - Dst: rnp_op_verify_get_format
      Src: /src/rnp/src/tests/ffi-enc.cpp:2359,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:2360,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2361,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2362,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2363,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2364,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2365
      start: 2338
    functionDepth: 1
    functionLinenumber: 2338
    functionLinenumberEnd: 2365
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_destroy
    - rnp_input_from_path
    - rnp_input_destroy
    - assert_true
    - assert_int_equal
    - rnp_op_verify_signature_get_status
    - rnp_op_verify_create
    - rnp_ffi_destroy
    - assert_rnp_success
    - rnp_op_verify_destroy
    - rnp_op_verify_get_signature_at
    - import_pub_keys
    - rnp_ffi_create
    - rnp_op_verify_get_format
    - rnp_output_to_null
    - rnp_op_verify_get_signature_count
    - rnp_op_verify_execute
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_mimemode_signature)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<password_sequence *>
      Src: /src/rnp/src/tests/ffi-enc.cpp:2383,1
    - Dst: auto*::passwords::size
      Src: /src/rnp/src/tests/ffi-enc.cpp:2385,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/ffi-enc.cpp:2386,1
    - Dst: memcpy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2389,1
    - Dst: std::string::data
      Src: /src/rnp/src/tests/ffi-enc.cpp:2389,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/ffi-enc.cpp:2389,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - ffi
    - app_ctx
    - key
    - pgp_context
    - buf
    - buf_len
    argTypes:
    - rnp_ffi_t
    - void*
    - rnp_key_handle_t
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2391
      start: 2375
    functionDepth: 1
    functionLinenumber: 2375
    functionLinenumberEnd: 2391
    functionName: password_sequence_cb
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - auto*::passwords::size
    - memcpy
    - std::string::data
    - std::string::size
    - static_cast<password_sequence *>
    linkageType: ''
    returnType: bool
    signature: "bool password_sequence_cb(rnp_ffi_t        ffi,\n                     void
      *           app_ctx,\n                     rnp_key_handle_t key,\n                     const
      char *     pgp_context,\n                     char *           buf,\n                     size_t
      \          buf_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<password_cancel_state *>
      Src: /src/rnp/src/tests/ffi-enc.cpp:2405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - ffi
    - app_ctx
    - key
    - pgp_context
    - buf
    - buf_len
    argTypes:
    - rnp_ffi_t
    - void*
    - rnp_key_handle_t
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2408
      start: 2397
    functionDepth: 0
    functionLinenumber: 2397
    functionLinenumberEnd: 2408
    functionName: password_cancel_cb
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - static_cast<password_cancel_state *>
    linkageType: ''
    returnType: bool
    signature: "bool password_cancel_cb(rnp_ffi_t        ffi,\n                   void
      *           app_ctx,\n                   rnp_key_handle_t key,\n                   const
      char *     pgp_context,\n                   char *           buf,\n                   size_t
      \          buf_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2420,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2420,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2425,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:2425,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2427,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:2427,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2428,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2428,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2429,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:2429,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2430,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:2430,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2431,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2432,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2436,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-enc.cpp:2436,1
    - Dst: ATTEMPT_DECRYPT
      Src: /src/rnp/src/tests/ffi-enc.cpp:2459,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:2460,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:2463,1
    - Dst: ATTEMPT_DECRYPT
      Src: /src/rnp/src/tests/ffi-enc.cpp:2469,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:2470,1
    - Dst: ATTEMPT_DECRYPT
      Src: /src/rnp/src/tests/ffi-enc.cpp:2476,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-enc.cpp:2477,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:2478,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2482,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2483,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2484
      start: 2410
    functionDepth: 1
    functionLinenumber: 2410
    functionLinenumberEnd: 2484
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - rnp_op_encrypt_destroy
    - rnp_output_to_memory
    - ATTEMPT_DECRYPT
    - rnp_output_memory_get_buf
    - rnp_input_from_memory
    - assert_true
    - rnp_op_encrypt_create
    - assert_int_equal
    - rnp_op_encrypt_execute
    - rnp_ffi_destroy
    - assert_rnp_success
    - rnp_op_encrypt_add_password
    - rnp_ffi_create
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_decrypt_password_retry)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - cb
    - ','
    - cb_ctx
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2453
      start: 2439
    functionDepth: 0
    functionLinenumber: 2439
    functionLinenumberEnd: 2453
    functionName: ATTEMPT_DECRYPT
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ATTEMPT_DECRYPT(cb, cb_ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2495,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2495,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:2496,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-enc.cpp:2497,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2498,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-enc.cpp:2499,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2504,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:2505,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi-enc.cpp:2505,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2507,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:2507,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2509,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2509,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2510,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/ffi-enc.cpp:2510,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2511,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:2511,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2512,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2513,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2517,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-enc.cpp:2517,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:2518,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:2519,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:2521,1
    - Dst: portable_memmem
      Src: /src/rnp/src/tests/ffi-enc.cpp:2521,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi-enc.cpp:2521,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2522,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2528,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:2529,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi-enc.cpp:2529,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2531,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:2531,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2533,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2533,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2535,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:2535,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2536,1
    - Dst: rnp_op_encrypt_add_recipient
      Src: /src/rnp/src/tests/ffi-enc.cpp:2536,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2537,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2538,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:2538,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2539,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2540,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2544,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-enc.cpp:2544,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:2545,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:2546,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:2547,1
    - Dst: portable_memmem
      Src: /src/rnp/src/tests/ffi-enc.cpp:2547,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi-enc.cpp:2547,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2548,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2554,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:2554,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:2555,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2557,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:2557,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2558,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi-enc.cpp:2558,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2559,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2563,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-enc.cpp:2563,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:2564,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:2565,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:2567,1
    - Dst: portable_memmem
      Src: /src/rnp/src/tests/ffi-enc.cpp:2567,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2568,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2574,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:2575,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi-enc.cpp:2575,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2577,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-enc.cpp:2577,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2579,1
    - Dst: rnp_op_sign_detached_create
      Src: /src/rnp/src/tests/ffi-enc.cpp:2579,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2581,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-enc.cpp:2581,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2582,1
    - Dst: rnp_op_sign_add_signature
      Src: /src/rnp/src/tests/ffi-enc.cpp:2582,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2583,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2584,1
    - Dst: rnp_op_sign_execute
      Src: /src/rnp/src/tests/ffi-enc.cpp:2584,1
    - Dst: rnp_op_sign_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2585,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2586,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-enc.cpp:2590,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-enc.cpp:2590,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:2591,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-enc.cpp:2592,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-enc.cpp:2594,1
    - Dst: portable_memmem
      Src: /src/rnp/src/tests/ffi-enc.cpp:2594,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi-enc.cpp:2594,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2595,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-enc.cpp:2598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2490
    functionDepth: 1
    functionLinenumber: 2490
    functionLinenumberEnd: 2599
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-enc.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_op_sign_destroy
    - rnp_output_memory_get_buf
    - rnp_op_encrypt_add_password
    - rnp_ffi_set_pass_provider
    - strlen
    - rnp_op_encrypt_add_recipient
    - assert_true
    - rnp_op_encrypt_create
    - assert_null
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_op_sign_add_signature
    - rnp_output_to_memory
    - portable_memmem
    - rnp_locate_key
    - rnp_input_from_memory
    - rnp_op_encrypt_execute
    - rnp_ffi_destroy
    - rnp_ffi_create
    - rnp_input_destroy
    - rnp_op_sign_detached_create
    - rnp_key_export
    - load_keys_gpg
    - rnp_op_encrypt_destroy
    - rnp_op_sign_execute
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_no_plaintext_leakage)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/rnp/src/tests/partial-length.cpp:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - app_ctx
    - buf
    - len
    - read
    argTypes:
    - void*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 61
    functionName: dummy_reader
    functionSourceFile: /src/rnp/src/tests/partial-length.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: bool
    signature: bool dummy_reader(void *app_ctx, void *buf, size_t len, size_t *read)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:68,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/partial-length.cpp:68,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:69,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/partial-length.cpp:70,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:72,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/partial-length.cpp:72,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:73,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/partial-length.cpp:73,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:74,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:74,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:77,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/partial-length.cpp:77,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:78,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/partial-length.cpp:78,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:79,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ffi
    - key_flags
    argTypes:
    - rnp_ffi_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 81
    functionName: test_partial_length_init
    functionSourceFile: /src/rnp/src/tests/partial-length.cpp
    functionUses: 0
    functionsReached:
    - rnp_input_from_path
    - assert_rnp_success
    - rnp_ffi_set_pass_provider
    - rnp_load_keys
    - rnp_ffi_create
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void test_partial_length_init(rnp_ffi_t *ffi, uint32_t key_flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:87,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/partial-length.cpp:87,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:88,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/partial-length.cpp:89,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/partial-length.cpp:90,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/partial-length.cpp:90,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:92,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:92,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:93,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 94
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/partial-length.cpp
    functionUses: 0
    functionsReached:
    - rnp_input_from_path
    - assert_int_equal
    - rnp_ffi_destroy
    - assert_rnp_success
    - rnp_load_keys
    - rnp_ffi_create
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_partial_length_public_key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_partial_length_init
      Src: /src/rnp/src/tests/partial-length.cpp:102,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:104,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/partial-length.cpp:105,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:106,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/partial-length.cpp:106,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:108,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/partial-length.cpp:108,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/partial-length.cpp:109,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/partial-length.cpp:109,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:111,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:111,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:112,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:112,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:113,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:113,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:114,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 115
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/partial-length.cpp
    functionUses: 0
    functionsReached:
    - rnp_input_from_path
    - assert_rnp_failure
    - rnp_input_destroy
    - rnp_ffi_destroy
    - rnp_op_verify_create
    - assert_rnp_success
    - rnp_op_verify_destroy
    - test_partial_length_init
    - rnp_output_to_null
    - rnp_output_destroy
    - rnp_op_verify_execute
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_partial_length_signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_partial_length_init
      Src: /src/rnp/src/tests/partial-length.cpp:123,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:125,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/partial-length.cpp:126,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:127,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/partial-length.cpp:127,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:129,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/partial-length.cpp:129,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:130,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/partial-length.cpp:130,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:132,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:132,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:133,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:133,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:134,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:134,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:135,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 117
    functionDepth: 2
    functionLinenumber: 117
    functionLinenumberEnd: 136
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/partial-length.cpp
    functionUses: 0
    functionsReached:
    - rnp_input_from_path
    - rnp_input_destroy
    - rnp_ffi_destroy
    - rnp_op_verify_create
    - assert_rnp_success
    - rnp_op_verify_destroy
    - test_partial_length_init
    - rnp_output_to_null
    - rnp_output_destroy
    - rnp_op_verify_execute
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_partial_length_first_packet_256)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_partial_length_init
      Src: /src/rnp/src/tests/partial-length.cpp:144,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:146,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/partial-length.cpp:147,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:148,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/partial-length.cpp:148,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:150,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/partial-length.cpp:150,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:151,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/partial-length.cpp:151,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:153,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:153,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:154,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:154,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:155,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:155,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:156,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 138
    functionDepth: 2
    functionLinenumber: 138
    functionLinenumberEnd: 157
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/partial-length.cpp
    functionUses: 0
    functionsReached:
    - rnp_input_from_path
    - rnp_input_destroy
    - rnp_ffi_destroy
    - rnp_op_verify_create
    - assert_rnp_success
    - rnp_op_verify_destroy
    - test_partial_length_init
    - rnp_output_to_null
    - rnp_output_destroy
    - rnp_op_verify_execute
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_partial_length_zero_last_chunk)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bzip2_enabled
      Src: /src/rnp/src/tests/partial-length.cpp:161,1
    - Dst: GTEST_SKIP
      Src: /src/rnp/src/tests/partial-length.cpp:162,1
    - Dst: test_partial_length_init
      Src: /src/rnp/src/tests/partial-length.cpp:169,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:171,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/partial-length.cpp:172,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:173,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/partial-length.cpp:173,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:175,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/partial-length.cpp:175,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:176,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/partial-length.cpp:176,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:178,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:178,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:179,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:179,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:180,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:180,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:181,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 182
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/partial-length.cpp
    functionUses: 0
    functionsReached:
    - rnp_input_from_path
    - rnp_input_destroy
    - bzip2_enabled
    - rnp_ffi_destroy
    - rnp_op_verify_create
    - assert_rnp_success
    - rnp_op_verify_destroy
    - test_partial_length_init
    - GTEST_SKIP
    - rnp_output_to_null
    - rnp_output_destroy
    - rnp_op_verify_execute
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_partial_length_largest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_partial_length_init
      Src: /src/rnp/src/tests/partial-length.cpp:194,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:199,1
    - Dst: rnp_input_from_callback
      Src: /src/rnp/src/tests/partial-length.cpp:199,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:200,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/partial-length.cpp:200,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:201,1
    - Dst: rnp_op_sign_create
      Src: /src/rnp/src/tests/partial-length.cpp:201,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:202,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/partial-length.cpp:202,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:203,1
    - Dst: rnp_op_sign_add_signature
      Src: /src/rnp/src/tests/partial-length.cpp:203,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:204,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:204,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:207,1
    - Dst: rnp_op_sign_execute
      Src: /src/rnp/src/tests/partial-length.cpp:207,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:212,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/partial-length.cpp:212,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:213,1
    - Dst: init_mem_src
      Src: /src/rnp/src/tests/partial-length.cpp:213,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:216,1
    - Dst: pgp_packet_body_t::read
      Src: /src/rnp/src/tests/partial-length.cpp:216,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/partial-length.cpp:219,1
    - Dst: pgp_source_t::read_eq
      Src: /src/rnp/src/tests/partial-length.cpp:219,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/partial-length.cpp:220,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/partial-length.cpp:223,1
    - Dst: stream_read_partial_chunk_len
      Src: /src/rnp/src/tests/partial-length.cpp:223,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/partial-length.cpp:224,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/partial-length.cpp:225,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/partial-length.cpp:227,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:228,1
    - Dst: rnp_op_sign_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:228,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:229,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:229,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:230,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:230,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/partial-length.cpp:231,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/partial-length.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 184
    functionDepth: 2
    functionLinenumber: 184
    functionLinenumberEnd: 232
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/partial-length.cpp
    functionUses: 0
    functionsReached:
    - rnp_op_sign_destroy
    - rnp_output_memory_get_buf
    - pgp_source_t::close
    - stream_read_partial_chunk_len
    - init_mem_src
    - assert_true
    - assert_rnp_success
    - rnp_op_sign_create
    - rnp_key_handle_destroy
    - rnp_op_sign_add_signature
    - pgp_source_t::read_eq
    - rnp_output_to_memory
    - rnp_locate_key
    - rnp_input_from_callback
    - assert_int_equal
    - rnp_ffi_destroy
    - pgp_packet_body_t::read
    - rnp_input_destroy
    - test_partial_length_init
    - assert_false
    - rnp_op_sign_execute
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_partial_length_first_packet_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 38
    functionName: ru8
    functionSourceFile: /src/rnp/src/tests/kbx-nsigs-test.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t ru8(uint8_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - p
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 45
    functionName: ru32
    functionSourceFile: /src/rnp/src/tests/kbx-nsigs-test.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ru32(uint8_t *p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:51,1
    - Dst: kbx_header_blob_t::length
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:51,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:52,1
    - Dst: kbx_header_blob_t::parse
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - first_blob
    argTypes:
    - kbx_header_blob_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 53
    functionName: test_parse_header_blob
    functionSourceFile: /src/rnp/src/tests/kbx-nsigs-test.cpp
    functionUses: 0
    functionsReached:
    - kbx_header_blob_t::length
    - assert_int_equal
    - kbx_header_blob_t::parse
    - assert_true
    linkageType: ''
    returnType: void
    signature: void test_parse_header_blob(kbx_header_blob_t &first_blob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:59,1
    - Dst: kbx_pgp_blob_t::parse
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:59,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:60,1
    - Dst: kbx_pgp_blob_t::keyblock_offset
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:60,1
    - Dst: kbx_pgp_blob_t::length
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:60,1
    - Dst: kbx_pgp_blob_t::length
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:61,1
    - Dst: kbx_pgp_blob_t::keyblock_offset
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:62,1
    - Dst: kbx_pgp_blob_t::keyblock_length
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pgp_blob
    argTypes:
    - kbx_pgp_blob_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 63
    functionName: test_parse_pgp_blob
    functionSourceFile: /src/rnp/src/tests/kbx-nsigs-test.cpp
    functionUses: 0
    functionsReached:
    - kbx_pgp_blob_t::keyblock_length
    - assert_true
    - kbx_pgp_blob_t::length
    - assert_false
    - kbx_pgp_blob_t::parse
    - kbx_pgp_blob_t::keyblock_offset
    linkageType: ''
    returnType: void
    signature: void test_parse_pgp_blob(kbx_pgp_blob_t &pgp_blob)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:72,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:72,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:76,1
    - Dst: rnp_op_generate_create
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:76,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:77,1
    - Dst: rnp_op_generate_set_bits
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:77,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:79,1
    - Dst: rnp_op_generate_set_userid
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:79,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:81,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:81,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:83,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:83,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:84,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:85,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:85,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:88,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:88,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:89,1
    - Dst: rnp_op_generate_set_bits
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:89,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:90,1
    - Dst: rnp_op_generate_set_dsa_qbits
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:90,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:92,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:92,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:93,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:93,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:95,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:95,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:99,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:99,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:100,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:101,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:105,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:105,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:107,1
    - Dst: ru32
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:108,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:109,1
    - Dst: ru8
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:110,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:111,1
    - Dst: test_parse_header_blob
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:114,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:119,1
    - Dst: ru32
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:120,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:121,1
    - Dst: ru8
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:122,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:123,1
    - Dst: test_parse_pgp_blob
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:126,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:127,1
    - Dst: kbx_pgp_blob_t::nkeys
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:127,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:128,1
    - Dst: kbx_pgp_blob_t::nsigs
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:128,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:132,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:134,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:134,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:135,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/kbx-nsigs-test.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 136
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/kbx-nsigs-test.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_op_generate_execute
    - rnp_output_memory_get_buf
    - test_parse_pgp_blob
    - rnp_op_generate_set_userid
    - rnp_op_generate_set_bits
    - assert_true
    - kbx_pgp_blob_t::nsigs
    - rnp_op_generate_get_key
    - kbx_pgp_blob_t::nkeys
    - assert_rnp_success
    - test_parse_header_blob
    - rnp_key_handle_destroy
    - rnp_output_to_memory
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_op_generate_subkey_create
    - rnp_ffi_create
    - ru8
    - rnp_op_generate_set_dsa_qbits
    - rnp_op_generate_create
    - rnp_save_keys
    - rnp_op_generate_destroy
    - rnp_output_destroy
    - ru32
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_kbx_nsigs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: valid
      Src: /src/rnp/src/tests/key-validate.cpp:41,1
    - Dst: expired
      Src: /src/rnp/src/tests/key-validate.cpp:41,1
    - Dst: rnp::hex_encode
      Src: /src/rnp/src/tests/key-validate.cpp:42,1
    - Dst: keyid
      Src: /src/rnp/src/tests/key-validate.cpp:42,1
    - Dst: keyid
      Src: /src/rnp/src/tests/key-validate.cpp:43,1
    - Dst: std::exception
      Src: /src/rnp/src/tests/key-validate.cpp:47,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/tests/key-validate.cpp:49,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 10
    argCount: 1
    argNames:
    - keyring
    argTypes:
    - rnp::KeyStore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 54
    functionName: all_keys_valid
    functionSourceFile: /src/rnp/src/tests/key-validate.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - keyid
    - std::exception
    - expired
    - rnp::hex_encode
    - valid
    linkageType: ''
    returnType: bool
    signature: bool all_keys_valid(const rnp::KeyStore *keyring, rnp::Key *except
      = NULL)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:60,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:61,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:61,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:63,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-validate.cpp:63,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:64,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:64,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:65,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:65,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:66,1
    - Dst: all_keys_valid
      Src: /src/rnp/src/tests/key-validate.cpp:66,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:70,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:71,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:71,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:72,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-validate.cpp:72,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:73,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:73,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:74,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:74,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:75,1
    - Dst: all_keys_valid
      Src: /src/rnp/src/tests/key-validate.cpp:75,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:78,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:79,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:79,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:80,1
    - Dst: all_keys_valid
      Src: /src/rnp/src/tests/key-validate.cpp:80,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:83,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:84,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:84,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:85,1
    - Dst: all_keys_valid
      Src: /src/rnp/src/tests/key-validate.cpp:85,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:87,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-validate.cpp:87,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:88,1
    - Dst: auto::import_key
      Src: /src/rnp/src/tests/key-validate.cpp:88,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:89,1
    - Dst: all_keys_valid
      Src: /src/rnp/src/tests/key-validate.cpp:89,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:94,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:95,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:95,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:96,1
    - Dst: all_keys_valid
      Src: /src/rnp/src/tests/key-validate.cpp:96,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:99,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:101,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:101,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:102,1
    - Dst: all_keys_valid
      Src: /src/rnp/src/tests/key-validate.cpp:102,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:106,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:107,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:107,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:109,1
    - Dst: all_keys_valid
      Src: /src/rnp/src/tests/key-validate.cpp:109,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:111,1
    - Dst: profile::add_rule
      Src: /src/rnp/src/tests/key-validate.cpp:116,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:117,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:117,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:118,1
    - Dst: all_keys_valid
      Src: /src/rnp/src/tests/key-validate.cpp:118,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:119,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:121,1
    - Dst: profile::del_rule
      Src: /src/rnp/src/tests/key-validate.cpp:121,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:122,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:122,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:123,1
    - Dst: all_keys_valid
      Src: /src/rnp/src/tests/key-validate.cpp:123,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:127,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:128,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:128,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:129,1
    - Dst: all_keys_valid
      Src: /src/rnp/src/tests/key-validate.cpp:129,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:132,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:133,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:133,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:134,1
    - Dst: all_keys_valid
      Src: /src/rnp/src/tests/key-validate.cpp:134,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:137,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:138,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:138,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:139,1
    - Dst: all_keys_valid
      Src: /src/rnp/src/tests/key-validate.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 141
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/key-validate.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - all_keys_valid
    - rnp::Key*::valid
    - profile::add_rule
    - assert_true
    - auto::import_key
    - auto::load
    - auto::clear
    - rnp_tests_get_key_by_id
    - rnp::Key*::expired
    - assert_false
    - rnp::KeyStore::KeyStore
    - profile::del_rule
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_key_validate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-validate.cpp:151,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/key-validate.cpp:151,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-validate.cpp:152,1
    - Dst: process_pgp_key
      Src: /src/rnp/src/tests/key-validate.cpp:152,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:153,1
    - Dst: rnp::KeyStore*::add_ts_key
      Src: /src/rnp/src/tests/key-validate.cpp:153,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/key-validate.cpp:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - keyring
    - keypath
    argTypes:
    - rnp::KeyStore*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 155
    functionName: key_store_add
    functionSourceFile: /src/rnp/src/tests/key-validate.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_t::close
    - assert_true
    - rnp::KeyStore*::add_ts_key
    - assert_rnp_success
    - process_pgp_key
    - init_file_src
    linkageType: ''
    returnType: void
    signature: void key_store_add(rnp::KeyStore *keyring, const char *keypath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-validate.cpp:160,1
    - Dst: rnp::Key*::validated
      Src: /src/rnp/src/tests/key-validate.cpp:161,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:161,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:161,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 3
    argNames:
    - keyring
    - keyid
    - valid
    argTypes:
    - rnp::KeyStore*
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 162
    functionName: key_check
    functionSourceFile: /src/rnp/src/tests/key-validate.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key*::expired
    - rnp::Key*::valid
    - rnp::Key*::validated
    - rnp_tests_get_key_by_id
    linkageType: ''
    returnType: bool
    signature: bool key_check(rnp::KeyStore *keyring, const std::string &keyid, bool
      valid, bool expired = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:166,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:169,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:170,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:170,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:171,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:175,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:176,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:176,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:177,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:177,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:178,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:181,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-validate.cpp:182,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/key-validate.cpp:183,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-validate.cpp:185,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:186,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:187,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:187,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:188,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:188,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:189,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:192,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:193,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:193,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:194,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:194,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:195,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:198,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:199,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:199,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:200,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:203,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:204,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:204,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:205,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:208,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-validate.cpp:209,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:210,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:211,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:211,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:212,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:212,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:213,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:216,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:217,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:217,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:218,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:218,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:219,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:223,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:224,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:224,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:225,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:225,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:226,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:229,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-validate.cpp:230,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/key-validate.cpp:231,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-validate.cpp:232,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:233,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:234,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:234,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:235,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:235,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:236,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:236,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:237,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:240,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:241,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:241,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:242,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:242,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:243,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:246,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:247,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:247,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:248,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:248,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:249,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:252,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:253,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:253,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:254,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:254,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:255,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:258,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:259,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:259,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:260,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:260,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:261,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:264,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:266,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:266,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:267,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:267,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:268,1
    - Dst: set_time
      Src: /src/rnp/src/tests/key-validate.cpp:270,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:271,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:272,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:272,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:273,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:273,1
    - Dst: set_time
      Src: /src/rnp/src/tests/key-validate.cpp:274,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:275,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:278,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:279,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:279,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:280,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:280,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:281,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:284,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-validate.cpp:285,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/key-validate.cpp:286,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-validate.cpp:287,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:288,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:289,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:289,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:290,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:290,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:291,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:291,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:292,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:295,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:296,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:296,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:297,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:297,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:298,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:301,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:302,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:302,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:303,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:303,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:304,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:308,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:309,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:309,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:310,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:310,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:311,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:315,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:316,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:316,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:317,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:317,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:318,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:321,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:322,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:322,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:323,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:323,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:324,1
    - Dst: key_store_add
      Src: /src/rnp/src/tests/key-validate.cpp:327,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:328,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:328,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:329,1
    - Dst: key_check
      Src: /src/rnp/src/tests/key-validate.cpp:329,1
    - Dst: auto::clear
      Src: /src/rnp/src/tests/key-validate.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 333
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 333
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/key-validate.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - set_time
    - rnp::Key*::valid
    - assert_true
    - key_store_add
    - auto::clear
    - assert_null
    - rnp_tests_get_key_by_id
    - key_check
    - rnp::Key*::expired
    - assert_false
    - rnp::KeyStore::KeyStore
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_forged_key_validate)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:344,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:345,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:345,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:347,1
    - Dst: rnp_tests_key_search
      Src: /src/rnp/src/tests/key-validate.cpp:347,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:348,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:348,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:349,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:349,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:358,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:359,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:359,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:360,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-validate.cpp:360,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:361,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:361,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:362,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:362,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:363,1
    - Dst: rnp_tests_key_search
      Src: /src/rnp/src/tests/key-validate.cpp:363,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:364,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:364,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:365,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:365,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:373,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:374,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:374,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:375,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-validate.cpp:375,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:376,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:376,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:377,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:377,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:378,1
    - Dst: rnp_tests_key_search
      Src: /src/rnp/src/tests/key-validate.cpp:378,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:379,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:379,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:380,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:380,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:388,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:389,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:389,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:390,1
    - Dst: rnp_tests_key_search
      Src: /src/rnp/src/tests/key-validate.cpp:390,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:391,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:391,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:392,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:392,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:393,1
    - Dst: rnp::Key*::subkey_count
      Src: /src/rnp/src/tests/key-validate.cpp:393,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:395,1
    - Dst: auto::get_subkey
      Src: /src/rnp/src/tests/key-validate.cpp:395,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:396,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:396,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:397,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:397,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:408,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:409,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:409,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:410,1
    - Dst: rnp_tests_key_search
      Src: /src/rnp/src/tests/key-validate.cpp:410,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:411,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:411,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:412,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:412,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:413,1
    - Dst: rnp::Key*::subkey_count
      Src: /src/rnp/src/tests/key-validate.cpp:413,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:414,1
    - Dst: auto::get_subkey
      Src: /src/rnp/src/tests/key-validate.cpp:414,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:415,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:415,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:416,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:416,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:424,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:425,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:425,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:426,1
    - Dst: rnp_tests_key_search
      Src: /src/rnp/src/tests/key-validate.cpp:426,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:427,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:427,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:428,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:428,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:429,1
    - Dst: rnp::Key*::revoked
      Src: /src/rnp/src/tests/key-validate.cpp:429,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:430,1
    - Dst: rnp::Key*::subkey_count
      Src: /src/rnp/src/tests/key-validate.cpp:430,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:431,1
    - Dst: auto::get_subkey
      Src: /src/rnp/src/tests/key-validate.cpp:431,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:432,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:432,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:433,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:433,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:434,1
    - Dst: rnp::Key*::revoked
      Src: /src/rnp/src/tests/key-validate.cpp:434,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:442,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:443,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:443,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:444,1
    - Dst: rnp_tests_key_search
      Src: /src/rnp/src/tests/key-validate.cpp:444,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:445,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:445,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:446,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:446,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:447,1
    - Dst: rnp::Key*::revoked
      Src: /src/rnp/src/tests/key-validate.cpp:447,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:448,1
    - Dst: rnp::Key*::subkey_count
      Src: /src/rnp/src/tests/key-validate.cpp:448,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:449,1
    - Dst: auto::get_subkey
      Src: /src/rnp/src/tests/key-validate.cpp:449,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:450,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:450,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:451,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:451,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:452,1
    - Dst: rnp::Key*::revoked
      Src: /src/rnp/src/tests/key-validate.cpp:452,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:460,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:461,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:461,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:462,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-validate.cpp:462,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:463,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:463,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:464,1
    - Dst: rnp::Key*::subkey_count
      Src: /src/rnp/src/tests/key-validate.cpp:464,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:465,1
    - Dst: auto::get_subkey
      Src: /src/rnp/src/tests/key-validate.cpp:465,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:466,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:466,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:475,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:476,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:477,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:477,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:478,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-validate.cpp:478,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:479,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:479,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:480,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:480,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:481,1
    - Dst: rnp::Key*::subkey_count
      Src: /src/rnp/src/tests/key-validate.cpp:481,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:482,1
    - Dst: auto::get_subkey
      Src: /src/rnp/src/tests/key-validate.cpp:482,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:483,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:483,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:484,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:484,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:492,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:493,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:494,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:494,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:495,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-validate.cpp:495,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:496,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:496,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:497,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:497,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:498,1
    - Dst: rnp::Key*::subkey_count
      Src: /src/rnp/src/tests/key-validate.cpp:498,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:499,1
    - Dst: auto::get_subkey
      Src: /src/rnp/src/tests/key-validate.cpp:499,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:500,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:500,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:501,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:501,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:509,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:510,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:511,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:511,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:512,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-validate.cpp:512,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:513,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:513,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:514,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:514,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:515,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-validate.cpp:515,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:516,1
    - Dst: rnp::Key*::subkey_count
      Src: /src/rnp/src/tests/key-validate.cpp:516,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:517,1
    - Dst: auto::get_subkey
      Src: /src/rnp/src/tests/key-validate.cpp:517,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:518,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:518,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:519,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:519,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:527,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:528,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:529,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:529,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:530,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-validate.cpp:530,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:531,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:531,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:532,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:532,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:533,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-validate.cpp:533,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:534,1
    - Dst: rnp::Key*::subkey_count
      Src: /src/rnp/src/tests/key-validate.cpp:534,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:535,1
    - Dst: auto::get_subkey
      Src: /src/rnp/src/tests/key-validate.cpp:535,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:536,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:536,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:537,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:537,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:545,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:546,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:547,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:547,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:548,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-validate.cpp:548,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:549,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:549,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:550,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:550,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:551,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-validate.cpp:551,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:552,1
    - Dst: rnp::Key*::subkey_count
      Src: /src/rnp/src/tests/key-validate.cpp:552,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:553,1
    - Dst: auto::get_subkey
      Src: /src/rnp/src/tests/key-validate.cpp:553,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:554,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:554,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:555,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:555,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:564,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:565,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:566,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:566,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:567,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-validate.cpp:567,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:568,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:568,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:569,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:569,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:570,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-validate.cpp:570,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:571,1
    - Dst: rnp::Key*::subkey_count
      Src: /src/rnp/src/tests/key-validate.cpp:571,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:572,1
    - Dst: auto::get_subkey
      Src: /src/rnp/src/tests/key-validate.cpp:572,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:573,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:573,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:574,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:574,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:582,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:583,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:584,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:584,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:585,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-validate.cpp:585,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:586,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:586,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:587,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:587,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:588,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-validate.cpp:588,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:589,1
    - Dst: rnp::Key*::subkey_count
      Src: /src/rnp/src/tests/key-validate.cpp:589,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:590,1
    - Dst: auto::get_subkey
      Src: /src/rnp/src/tests/key-validate.cpp:590,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:591,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:591,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:592,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 158
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 594
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/key-validate.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp::Key*::valid
    - assert_true
    - rnp_tests_key_search
    - assert_int_equal
    - rnp::Key*::revoked
    - auto::load
    - rnp::Key*::expiration
    - rnp_tests_get_key_by_id
    - auto::get_subkey
    - rnp::Key*::expired
    - assert_false
    - rnp::KeyStore::KeyStore
    - rnp::Key*::subkey_count
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_key_validity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:599,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:600,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:600,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:602,1
    - Dst: rnp_tests_key_search
      Src: /src/rnp/src/tests/key-validate.cpp:602,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:603,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:603,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:604,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:604,1
    - Dst: pgp::pkt::Signature::Signature
      Src: /src/rnp/src/tests/key-validate.cpp:606,1
    - Dst: rnp::Key*::alg
      Src: /src/rnp/src/tests/key-validate.cpp:610,1
    - Dst: pgp::pkt::Signature::set_type
      Src: /src/rnp/src/tests/key-validate.cpp:611,1
    - Dst: pgp::pkt::Signature::set_creation
      Src: /src/rnp/src/tests/key-validate.cpp:612,1
    - Dst: rnp::Key*::creation
      Src: /src/rnp/src/tests/key-validate.cpp:612,1
    - Dst: pgp::pkt::Signature::set_key_expiration
      Src: /src/rnp/src/tests/key-validate.cpp:613,1
    - Dst: pgp::pkt::Signature::set_keyfp
      Src: /src/rnp/src/tests/key-validate.cpp:614,1
    - Dst: rnp::Key*::fp
      Src: /src/rnp/src/tests/key-validate.cpp:614,1
    - Dst: pgp::pkt::Signature::set_keyid
      Src: /src/rnp/src/tests/key-validate.cpp:615,1
    - Dst: rnp::Key*::keyid
      Src: /src/rnp/src/tests/key-validate.cpp:615,1
    - Dst: rnp::Key*::unlock
      Src: /src/rnp/src/tests/key-validate.cpp:618,1
    - Dst: rnp::Key*::sign_direct
      Src: /src/rnp/src/tests/key-validate.cpp:619,1
    - Dst: rnp::Key*::pkt
      Src: /src/rnp/src/tests/key-validate.cpp:619,1
    - Dst: rnp::Key*::add_sig
      Src: /src/rnp/src/tests/key-validate.cpp:620,1
    - Dst: rnp::Key*::revalidate
      Src: /src/rnp/src/tests/key-validate.cpp:621,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:624,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-validate.cpp:624,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:625,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:625,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:626,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:626,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:628,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:629,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:629,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:631,1
    - Dst: rnp_tests_key_search
      Src: /src/rnp/src/tests/key-validate.cpp:631,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:632,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-validate.cpp:632,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:633,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:633,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:634,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:634,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:636,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-validate.cpp:636,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:637,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-validate.cpp:637,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:638,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:638,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:639,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:639,1
    - Dst: rnp::Key*::add_sig
      Src: /src/rnp/src/tests/key-validate.cpp:641,1
    - Dst: rnp::Key*::revalidate
      Src: /src/rnp/src/tests/key-validate.cpp:642,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:643,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-validate.cpp:643,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:644,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:644,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:645,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:645,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:646,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-validate.cpp:646,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:647,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:647,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:648,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:648,1
    - Dst: rnp::Key*::add_uid_cert
      Src: /src/rnp/src/tests/key-validate.cpp:656,1
    - Dst: rnp::Key*::revalidate
      Src: /src/rnp/src/tests/key-validate.cpp:657,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:659,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-validate.cpp:659,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:660,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:660,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:661,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:661,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:666,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:667,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:667,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:668,1
    - Dst: rnp_tests_key_search
      Src: /src/rnp/src/tests/key-validate.cpp:668,1
    - Dst: rnp::Key*::alg
      Src: /src/rnp/src/tests/key-validate.cpp:673,1
    - Dst: pgp::pkt::Signature::set_type
      Src: /src/rnp/src/tests/key-validate.cpp:674,1
    - Dst: pgp::pkt::Signature::set_creation
      Src: /src/rnp/src/tests/key-validate.cpp:675,1
    - Dst: rnp::Key*::creation
      Src: /src/rnp/src/tests/key-validate.cpp:675,1
    - Dst: pgp::pkt::Signature::set_key_expiration
      Src: /src/rnp/src/tests/key-validate.cpp:676,1
    - Dst: pgp::pkt::Signature::set_keyfp
      Src: /src/rnp/src/tests/key-validate.cpp:677,1
    - Dst: rnp::Key*::fp
      Src: /src/rnp/src/tests/key-validate.cpp:677,1
    - Dst: pgp::pkt::Signature::set_keyid
      Src: /src/rnp/src/tests/key-validate.cpp:678,1
    - Dst: rnp::Key*::keyid
      Src: /src/rnp/src/tests/key-validate.cpp:678,1
    - Dst: rnp::Key*::unlock
      Src: /src/rnp/src/tests/key-validate.cpp:680,1
    - Dst: rnp::Key*::sign_direct
      Src: /src/rnp/src/tests/key-validate.cpp:681,1
    - Dst: rnp::Key*::pkt
      Src: /src/rnp/src/tests/key-validate.cpp:681,1
    - Dst: rnp::Key*::add_sig
      Src: /src/rnp/src/tests/key-validate.cpp:682,1
    - Dst: rnp::Key*::revalidate
      Src: /src/rnp/src/tests/key-validate.cpp:683,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:684,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-validate.cpp:684,1
    - Dst: rnp::Key*::add_uid_cert
      Src: /src/rnp/src/tests/key-validate.cpp:690,1
    - Dst: rnp::Key*::revalidate
      Src: /src/rnp/src/tests/key-validate.cpp:691,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:692,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-validate.cpp:692,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-validate.cpp:694,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:695,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-validate.cpp:695,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:696,1
    - Dst: rnp_tests_key_search
      Src: /src/rnp/src/tests/key-validate.cpp:696,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-validate.cpp:697,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-validate.cpp:697,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:698,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-validate.cpp:698,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:699,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:699,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:700,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:700,1
    - Dst: rnp::Key*::add_sig
      Src: /src/rnp/src/tests/key-validate.cpp:702,1
    - Dst: rnp::Key*::revalidate
      Src: /src/rnp/src/tests/key-validate.cpp:703,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:704,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-validate.cpp:704,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:705,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:705,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:706,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:706,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/key-validate.cpp:709,1
    - Dst: pgp_transferable_userid_t::signatures::push_back
      Src: /src/rnp/src/tests/key-validate.cpp:710,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/key-validate.cpp:710,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/key-validate.cpp:710,1
    - Dst: rnp::Key*::add_uid
      Src: /src/rnp/src/tests/key-validate.cpp:711,1
    - Dst: rnp::Key*::revalidate
      Src: /src/rnp/src/tests/key-validate.cpp:712,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-validate.cpp:714,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-validate.cpp:714,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-validate.cpp:715,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/key-validate.cpp:715,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-validate.cpp:716,1
    - Dst: rnp::Key*::expired
      Src: /src/rnp/src/tests/key-validate.cpp:716,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 596
    functionDepth: 1
    functionLinenumber: 596
    functionLinenumberEnd: 731
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/key-validate.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - pgp::pkt::Signature::Signature
    - rnp::Key*::keyid
    - rnp_tests_key_search
    - pgp::pkt::Signature::set_key_expiration
    - pgp::pkt::Signature::set_keyfp
    - rnp::Key*::get_sig
    - rnp::Key*::add_uid
    - pgp::pkt::Signature::set_creation
    - assert_true
    - rnp::Key*::revalidate
    - assert_int_equal
    - rnp::Key*::get_uid
    - rnp::Key*::alg
    - rnp::Key*::sign_direct
    - pgp::pkt::Signature::set_keyid
    - rnp::Key*::unlock
    - rnp::KeyStore::KeyStore
    - pgp::pkt::Signature::set_type
    - rnp::Key*::add_uid_cert
    - rnp::Key*::valid
    - pgp_transferable_userid_t::signatures::push_back
    - rnp::Key*::fp
    - rnp::Key*::pkt
    - auto::load
    - rnp::Key*::expiration
    - rnp::Key*::creation
    - rnp_tests_get_key_by_id
    - rnp::Key*::expired
    - rnp::Key*::add_sig
    - assert_false
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_key_expiry_direct_sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/s2k-iterations.cpp:44,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/s2k-iterations.cpp:45,1
    - Dst: strlen
      Src: /src/rnp/src/tests/s2k-iterations.cpp:45,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/s2k-iterations.cpp:46,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/s2k-iterations.cpp:46,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/s2k-iterations.cpp:48,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/tests/s2k-iterations.cpp:48,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/s2k-iterations.cpp:50,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/tests/s2k-iterations.cpp:50,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/s2k-iterations.cpp:51,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/tests/s2k-iterations.cpp:51,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/s2k-iterations.cpp:59,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/s2k-iterations.cpp:59,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/s2k-iterations.cpp:60,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/s2k-iterations.cpp:60,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/s2k-iterations.cpp:61,1
    - Dst: rnp_dump_packets_to_json
      Src: /src/rnp/src/tests/s2k-iterations.cpp:61,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/s2k-iterations.cpp:62,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/s2k-iterations.cpp:63,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/s2k-iterations.cpp:64,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/s2k-iterations.cpp:65,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/s2k-iterations.cpp:65,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/s2k-iterations.cpp:66,1
    - Dst: nlohmann::ordered_json::is_array
      Src: /src/rnp/src/tests/s2k-iterations.cpp:66,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/s2k-iterations.cpp:68,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/s2k-iterations.cpp:69,1
    - Dst: check_json_pkt_type
      Src: /src/rnp/src/tests/s2k-iterations.cpp:69,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/s2k-iterations.cpp:71,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/s2k-iterations.cpp:71,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/s2k-iterations.cpp:73,1
    - Dst: nlohmann::ordered_json*::contains
      Src: /src/rnp/src/tests/s2k-iterations.cpp:74,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/s2k-iterations.cpp:75,1
    - Dst: nlohmann::ordered_json::is_number_integer
      Src: /src/rnp/src/tests/s2k-iterations.cpp:75,1
    - Dst: nlohmann::ordered_json::get
      Src: /src/rnp/src/tests/s2k-iterations.cpp:77,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/s2k-iterations.cpp:79,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/s2k-iterations.cpp:81,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/s2k-iterations.cpp:85,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/s2k-iterations.cpp:85,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/s2k-iterations.cpp:87,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/tests/s2k-iterations.cpp:87,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/s2k-iterations.cpp:88,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/s2k-iterations.cpp:88,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/s2k-iterations.cpp:89,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/s2k-iterations.cpp:89,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 27
    argCount: 4
    argNames:
    - ffi
    - input_iterations
    - expected_iterations
    - exact_match
    argTypes:
    - rnp_ffi_t
    - size_t
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 90
    functionName: test_s2k_iterations_value
    functionSourceFile: /src/rnp/src/tests/s2k-iterations.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_output_memory_get_buf
    - nlohmann::ordered_json::is_array
    - check_json_pkt_type
    - rnp_op_encrypt_add_password
    - strlen
    - rnp_dump_packets_to_json
    - assert_true
    - rnp_op_encrypt_create
    - assert_rnp_success
    - pgp::pkt::Signature::parse
    - nlohmann::ordered_json::is_number_integer
    - nlohmann::ordered_json*::contains
    - rnp_output_to_memory
    - rnp_input_from_memory
    - assert_int_equal
    - rnp_op_encrypt_execute
    - nlohmann::ordered_json::contains
    - nlohmann::ordered_json::is_null
    - rnp_input_destroy
    - nlohmann::ordered_json::at
    - nlohmann::ordered_json::get
    - rnp_buffer_destroy
    - rnp_op_encrypt_destroy
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: "void test_s2k_iterations_value(rnp_ffi_t ffi,\n                          size_t
      \   input_iterations,\n                          size_t    expected_iterations,\n
      \                         bool      exact_match)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/s2k-iterations.cpp:95,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/s2k-iterations.cpp:95,1
    - Dst: test_s2k_iterations_value
      Src: /src/rnp/src/tests/s2k-iterations.cpp:96,1
    - Dst: test_s2k_iterations_value
      Src: /src/rnp/src/tests/s2k-iterations.cpp:97,1
    - Dst: test_s2k_iterations_value
      Src: /src/rnp/src/tests/s2k-iterations.cpp:98,1
    - Dst: test_s2k_iterations_value
      Src: /src/rnp/src/tests/s2k-iterations.cpp:100,1
    - Dst: test_s2k_iterations_value
      Src: /src/rnp/src/tests/s2k-iterations.cpp:101,1
    - Dst: test_s2k_iterations_value
      Src: /src/rnp/src/tests/s2k-iterations.cpp:102,1
    - Dst: test_s2k_iterations_value
      Src: /src/rnp/src/tests/s2k-iterations.cpp:103,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/s2k-iterations.cpp:104,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/s2k-iterations.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 92
    functionDepth: 2
    functionLinenumber: 92
    functionLinenumberEnd: 105
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/s2k-iterations.cpp
    functionUses: 0
    functionsReached:
    - rnp_ffi_create
    - rnp_ffi_destroy
    - test_s2k_iterations_value
    - assert_rnp_success
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_s2k_iterations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/load-g10.cpp:37,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:38,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/load-g10.cpp:38,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/load-g10.cpp:40,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:43,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/load-g10.cpp:43,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:45,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/load-g10.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 49
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/load-g10.cpp
    functionUses: 0
    functionsReached:
    - auto::load
    - rnp::KeyStore::KeyStore
    - assert_true
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_invalid_g10)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/load-g10.cpp:60,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:61,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/load-g10.cpp:61,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/load-g10.cpp:64,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:66,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/load-g10.cpp:66,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g10.cpp:69,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g10.cpp:70,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/load-g10.cpp:77,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:79,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/load-g10.cpp:79,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/load-g10.cpp:80,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:83,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/load-g10.cpp:83,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:86,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g10.cpp:86,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:87,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g10.cpp:87,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:90,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g10.cpp:90,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:91,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g10.cpp:91,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:98,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g10.cpp:98,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:99,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g10.cpp:99,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:103,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g10.cpp:103,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:106,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g10.cpp:106,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:107,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g10.cpp:107,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:110,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g10.cpp:110,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:111,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g10.cpp:111,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:114,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g10.cpp:114,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:115,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g10.cpp:115,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:118,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g10.cpp:118,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:119,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g10.cpp:119,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:122,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g10.cpp:122,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g10.cpp:123,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g10.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 127
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/load-g10.cpp
    functionUses: 0
    functionsReached:
    - test_load_gpg_check_key
    - auto::load
    - rnp::KeyStore::KeyStore
    - assert_true
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_load_g10)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-unlock.cpp:47,1
    - Dst: setup_cli_rnp_common
      Src: /src/rnp/src/tests/key-unlock.cpp:47,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-unlock.cpp:48,1
    - Dst: cli_rnp_t::load_keyrings
      Src: /src/rnp/src/tests/key-unlock.cpp:48,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/key-unlock.cpp:50,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-unlock.cpp:52,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/key-unlock.cpp:52,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-unlock.cpp:53,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-unlock.cpp:55,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/key-unlock.cpp:55,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-unlock.cpp:57,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/key-unlock.cpp:58,1
    - Dst: std::ofstream::close
      Src: /src/rnp/src/tests/key-unlock.cpp:63,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-unlock.cpp:66,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/key-unlock.cpp:67,1
    - Dst: cli_rnp_t::cfg
      Src: /src/rnp/src/tests/key-unlock.cpp:68,1
    - Dst: rnp_cfg::load_defaults
      Src: /src/rnp/src/tests/key-unlock.cpp:69,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/key-unlock.cpp:70,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/key-unlock.cpp:71,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/tests/key-unlock.cpp:72,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/key-unlock.cpp:73,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/key-unlock.cpp:74,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/tests/key-unlock.cpp:75,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-unlock.cpp:76,1
    - Dst: cli_rnp_protect_file
      Src: /src/rnp/src/tests/key-unlock.cpp:76,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-unlock.cpp:80,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/key-unlock.cpp:80,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-unlock.cpp:81,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-unlock.cpp:84,1
    - Dst: rnp_key_get_alg
      Src: /src/rnp/src/tests/key-unlock.cpp:84,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-unlock.cpp:85,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/key-unlock.cpp:85,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/key-unlock.cpp:86,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-unlock.cpp:89,1
    - Dst: rsa_sec_empty
      Src: /src/rnp/src/tests/key-unlock.cpp:89,1
    - Dst: rnp_key_handle_t::sec::material
      Src: /src/rnp/src/tests/key-unlock.cpp:89,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-unlock.cpp:94,1
    - Dst: rnp_key_handle_t::sec::unlock
      Src: /src/rnp/src/tests/key-unlock.cpp:94,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-unlock.cpp:96,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/key-unlock.cpp:96,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-unlock.cpp:97,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-unlock.cpp:102,1
    - Dst: rnp_key_handle_t::sec::unlock
      Src: /src/rnp/src/tests/key-unlock.cpp:102,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-unlock.cpp:103,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/key-unlock.cpp:103,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-unlock.cpp:104,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-unlock.cpp:109,1
    - Dst: rnp_key_handle_t::sec::unlock
      Src: /src/rnp/src/tests/key-unlock.cpp:109,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-unlock.cpp:110,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/key-unlock.cpp:110,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-unlock.cpp:111,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-unlock.cpp:114,1
    - Dst: rsa_sec_filled
      Src: /src/rnp/src/tests/key-unlock.cpp:114,1
    - Dst: rnp_key_handle_t::sec::material
      Src: /src/rnp/src/tests/key-unlock.cpp:114,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-unlock.cpp:117,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/key-unlock.cpp:118,1
    - Dst: rnp_cfg::clear
      Src: /src/rnp/src/tests/key-unlock.cpp:119,1
    - Dst: rnp_cfg::load_defaults
      Src: /src/rnp/src/tests/key-unlock.cpp:120,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/key-unlock.cpp:121,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/key-unlock.cpp:122,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/tests/key-unlock.cpp:123,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/key-unlock.cpp:124,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/key-unlock.cpp:125,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/tests/key-unlock.cpp:126,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-unlock.cpp:127,1
    - Dst: cli_rnp_protect_file
      Src: /src/rnp/src/tests/key-unlock.cpp:127,1
    - Dst: rnp_cfg::clear
      Src: /src/rnp/src/tests/key-unlock.cpp:128,1
    - Dst: rnp_cfg::load_defaults
      Src: /src/rnp/src/tests/key-unlock.cpp:131,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/key-unlock.cpp:132,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/key-unlock.cpp:133,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/key-unlock.cpp:134,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-unlock.cpp:135,1
    - Dst: cli_rnp_process_file
      Src: /src/rnp/src/tests/key-unlock.cpp:135,1
    - Dst: std::fstream::seekg
      Src: /src/rnp/src/tests/key-unlock.cpp:140,1
    - Dst: std::fstream::peek
      Src: /src/rnp/src/tests/key-unlock.cpp:141,1
    - Dst: std::fstream::seekp
      Src: /src/rnp/src/tests/key-unlock.cpp:142,1
    - Dst: std::fstream::write
      Src: /src/rnp/src/tests/key-unlock.cpp:143,1
    - Dst: std::fstream::close
      Src: /src/rnp/src/tests/key-unlock.cpp:144,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-unlock.cpp:145,1
    - Dst: cli_rnp_process_file
      Src: /src/rnp/src/tests/key-unlock.cpp:145,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-unlock.cpp:148,1
    - Dst: rnp_key_lock
      Src: /src/rnp/src/tests/key-unlock.cpp:148,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-unlock.cpp:149,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/key-unlock.cpp:149,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-unlock.cpp:150,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-unlock.cpp:153,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/key-unlock.cpp:154,1
    - Dst: rnp_cfg::clear
      Src: /src/rnp/src/tests/key-unlock.cpp:155,1
    - Dst: rnp_cfg::load_defaults
      Src: /src/rnp/src/tests/key-unlock.cpp:156,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/key-unlock.cpp:157,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/key-unlock.cpp:158,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/key-unlock.cpp:159,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/tests/key-unlock.cpp:160,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/key-unlock.cpp:161,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/key-unlock.cpp:162,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/tests/key-unlock.cpp:163,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-unlock.cpp:164,1
    - Dst: cli_rnp_protect_file
      Src: /src/rnp/src/tests/key-unlock.cpp:164,1
    - Dst: rnp_cfg::clear
      Src: /src/rnp/src/tests/key-unlock.cpp:165,1
    - Dst: rnp_cfg::load_defaults
      Src: /src/rnp/src/tests/key-unlock.cpp:168,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/key-unlock.cpp:169,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/tests/key-unlock.cpp:170,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/key-unlock.cpp:171,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/key-unlock.cpp:172,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/key-unlock.cpp:173,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/key-unlock.cpp:174,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/tests/key-unlock.cpp:175,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-unlock.cpp:176,1
    - Dst: cli_rnp_protect_file
      Src: /src/rnp/src/tests/key-unlock.cpp:176,1
    - Dst: rnp_cfg::clear
      Src: /src/rnp/src/tests/key-unlock.cpp:177,1
    - Dst: rnp_cfg::load_defaults
      Src: /src/rnp/src/tests/key-unlock.cpp:180,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/key-unlock.cpp:181,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/key-unlock.cpp:182,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/key-unlock.cpp:183,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-unlock.cpp:184,1
    - Dst: cli_rnp_process_file
      Src: /src/rnp/src/tests/key-unlock.cpp:184,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-unlock.cpp:188,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/key-unlock.cpp:188,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-unlock.cpp:189,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-unlock.cpp:192,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/key-unlock.cpp:192,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-unlock.cpp:193,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/key-unlock.cpp:193,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-unlock.cpp:194,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-unlock.cpp:197,1
    - Dst: cli_rnp_process_file
      Src: /src/rnp/src/tests/key-unlock.cpp:197,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/key-unlock.cpp:199,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-unlock.cpp:200,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-unlock.cpp:203,1
    - Dst: rnp_key_lock
      Src: /src/rnp/src/tests/key-unlock.cpp:203,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-unlock.cpp:204,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/key-unlock.cpp:204,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-unlock.cpp:205,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-unlock.cpp:208,1
    - Dst: cli_rnp_process_file
      Src: /src/rnp/src/tests/key-unlock.cpp:208,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-unlock.cpp:210,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/key-unlock.cpp:210,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-unlock.cpp:211,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/key-unlock.cpp:211,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/key-unlock.cpp:212,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-unlock.cpp:213,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/key-unlock.cpp:213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 109
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 214
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/key-unlock.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - cli_rnp_protect_file
    - rnp_unlink
    - ARRAY_SIZE
    - rnp_ffi_set_pass_provider
    - rsa_sec_filled
    - std::fstream::seekg
    - rnp_cfg::set_int
    - assert_true
    - std::fstream::seekp
    - assert_rnp_success
    - file_to_str
    - rnp_key_handle_destroy
    - rnp_cfg::clear
    - rnp_key_get_alg
    - rnp_key_handle_t::sec::unlock
    - rnp_cfg::set_str
    - rnp_key_lock
    - rnp_locate_key
    - rnp_cfg::add_str
    - assert_int_equal
    - cli_rnp_t::cfg
    - std::fstream::write
    - rnp_key_unlock
    - rnp_key_handle_t::sec::material
    - cli_rnp_t::load_keyrings
    - std::fstream::peek
    - rnp_cfg::load_defaults
    - rnp_buffer_destroy
    - std::fstream::close
    - cli_rnp_process_file
    - setup_cli_rnp_common
    - strcmp
    - std::ofstream::close
    - rnp_cfg::set_bool
    - assert_false
    - rsa_sec_empty
    - rnp_key_is_locked
    - cli_rnp_t::end
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_key_unlock_pgp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:38,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:38,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:39,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:40,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:43,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:43,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:45,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:45,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:47,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:47,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:48,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:50,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:50,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:51,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:53,1
    - Dst: rnp_key_is_expired
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:53,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:54,1
    - Dst: rnp_key_is_expired
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:54,1
    - Dst: bogus_key_handle
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:55,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:56,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:57,1
    - Dst: rnp_key_is_expired
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:57,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:58,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:59,1
    - Dst: rnp_key_is_expired
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:59,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:60,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:61,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:61,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:62,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:62,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:63,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:63,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:64,1
    - Dst: check_uid_primary
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:64,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:65,1
    - Dst: check_uid_primary
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:65,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:66,1
    - Dst: check_uid_primary
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:66,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:68,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:68,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:69,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:69,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:70,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:71,1
    - Dst: rnp_key_is_expired
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:71,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:72,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:74,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:74,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:75,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:76,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:76,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:77,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:77,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:78,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:78,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:80,1
    - Dst: reload_keyrings
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:81,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:82,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:82,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:83,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:84,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:84,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:85,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:86,1
    - Dst: rnp_key_is_expired
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:86,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:87,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:88,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:88,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:89,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:89,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:90,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:90,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:92,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:93,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:94,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:94,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:95,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:95,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:96,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:98,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:98,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:99,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:100,1
    - Dst: rnp_key_is_expired
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:100,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:101,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:102,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:102,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:103,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:103,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:104,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:104,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:105,1
    - Dst: reload_keyrings
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:107,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:108,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:108,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:109,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:109,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:110,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:111,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:111,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:112,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:112,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:113,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:113,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:114,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:116,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:116,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:118,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:119,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:120,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:120,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:122,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:122,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:123,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:124,1
    - Dst: rnp_key_is_expired
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:124,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:125,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:126,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:126,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:127,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:127,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:128,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:128,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:129,1
    - Dst: check_uid_primary
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:129,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:130,1
    - Dst: check_uid_primary
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:130,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:131,1
    - Dst: check_uid_primary
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:131,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:132,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:132,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:133,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:133,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:134,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:134,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:135,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:136,1
    - Dst: rnp_key_is_expired
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:136,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:137,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:139,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:139,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:140,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:141,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:141,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:142,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:142,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:143,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:143,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:144,1
    - Dst: reload_keyrings
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:146,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:147,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:147,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:148,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:148,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:149,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:150,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:150,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:151,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:151,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:152,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:152,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:153,1
    - Dst: check_uid_primary
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:153,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:154,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 101
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 157
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-prop.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - assert_rnp_failure
    - rnp_key_is_valid
    - check_uid_valid
    - rnp_ffi_set_pass_provider
    - import_all_keys
    - assert_true
    - bogus_key_handle
    - rnp_key_get_expiration
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_locate_key
    - assert_int_equal
    - rnp_ffi_destroy
    - check_uid_primary
    - rnp_key_unlock
    - rnp_ffi_create
    - reload_keyrings
    - rnp_key_get_uid_count
    - rnp_key_set_expiration
    - rnp_key_is_expired
    - assert_false
    - rnp_unload_keys
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_set_expiry_multiple_uids)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:162,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:162,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:163,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:164,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:168,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:169,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:171,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:171,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:172,1
    - Dst: get_key_uids
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:172,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:173,1
    - Dst: get_key_expiry
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:173,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:174,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:174,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:175,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:175,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:176,1
    - Dst: check_uid_primary
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:176,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:177,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:178,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 179
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-prop.cpp
    functionUses: 0
    functionsReached:
    - rnp_locate_key
    - check_key_valid
    - import_all_keys
    - assert_true
    - assert_int_equal
    - rnp_ffi_destroy
    - get_key_expiry
    - assert_rnp_success
    - check_uid_primary
    - check_uid_valid
    - rnp_ffi_set_pass_provider
    - get_key_uids
    - rnp_key_handle_destroy
    - rnp_ffi_create
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_primary_uid_conflict)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:184,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:184,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:185,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:186,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:193,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:193,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:195,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:195,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:196,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:197,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:197,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:198,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:199,1
    - Dst: get_key_uids
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:199,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:200,1
    - Dst: get_key_expiry
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:200,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:202,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:202,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:203,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:204,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:204,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:206,1
    - Dst: rnp_signature_error_count
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:206,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:207,1
    - Dst: rnp_signature_error_count
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:207,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:208,1
    - Dst: rnp_signature_error_count
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:208,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:209,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:211,1
    - Dst: rnp_signature_error_at
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:211,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:212,1
    - Dst: rnp_signature_error_at
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:212,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:213,1
    - Dst: rnp_signature_error_at
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:213,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:214,1
    - Dst: rnp_signature_error_at
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:214,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:215,1
    - Dst: rnp_signature_error_at
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:215,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:216,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:217,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:218,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:218,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:219,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:219,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:220,1
    - Dst: check_uid_primary
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:220,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:221,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:221,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:222,1
    - Dst: check_uid_primary
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:222,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:223,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 225
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-prop.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - check_key_valid
    - check_uid_valid
    - rnp_ffi_set_pass_provider
    - get_key_uids
    - import_all_keys
    - assert_true
    - assert_null
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_signature_is_valid
    - rnp_locate_key
    - assert_int_equal
    - rnp_ffi_destroy
    - check_uid_primary
    - rnp_ffi_create
    - rnp_key_get_signature_at
    - rnp_signature_handle_destroy
    - get_key_expiry
    - rnp_signature_error_count
    - rnp_signature_error_at
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_expired_certification_and_direct_sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:230,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:230,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:232,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:232,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:234,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:234,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:236,1
    - Dst: rnp_key_25519_bits_tweaked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:236,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:237,1
    - Dst: rnp_key_25519_bits_tweaked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:237,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:238,1
    - Dst: rnp_key_25519_bits_tweaked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:238,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:239,1
    - Dst: rnp_key_25519_bits_tweak
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:239,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:240,1
    - Dst: rnp_key_25519_bits_tweak
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:240,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:241,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:243,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:244,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:245,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:245,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:246,1
    - Dst: rnp_key_25519_bits_tweaked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:246,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:247,1
    - Dst: rnp_key_25519_bits_tweaked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:247,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:248,1
    - Dst: rnp_key_25519_bits_tweaked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:248,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:249,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:251,1
    - Dst: rnp_key_protect
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:251,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:252,1
    - Dst: rnp_key_25519_bits_tweaked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:252,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:253,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:253,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:255,1
    - Dst: rnp_key_25519_bits_tweaked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:255,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:256,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:257,1
    - Dst: rnp_key_lock
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:257,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:258,1
    - Dst: rnp_key_25519_bits_tweaked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:258,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:260,1
    - Dst: rnp_key_25519_bits_tweak
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:260,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:261,1
    - Dst: rnp_key_25519_bits_tweak
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:261,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:262,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:262,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:263,1
    - Dst: rnp_key_25519_bits_tweak
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:263,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:264,1
    - Dst: rnp_key_unprotect
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:264,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:265,1
    - Dst: rnp_key_25519_bits_tweak
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:265,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:266,1
    - Dst: rnp_key_25519_bits_tweaked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:266,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:267,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:270,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:270,1
    - Dst: export_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:271,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:272,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:273,1
    - Dst: rnp_key_protect
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:273,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:274,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:276,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:276,1
    - Dst: export_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:277,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:278,1
    - Dst: reload_keyrings
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:279,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:280,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:280,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:282,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:282,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:283,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:284,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:284,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:286,1
    - Dst: rnp_key_25519_bits_tweaked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:286,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:287,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:288,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:289,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:291,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:291,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:292,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:292,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:292,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:292,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:293,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:293,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:295,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:295,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:296,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:298,1
    - Dst: rnp_key_25519_bits_tweaked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:298,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:299,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:300,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:301,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:303,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:303,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:304,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:304,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:304,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:304,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:305,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:305,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:307,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:307,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:308,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:309,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:309,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:311,1
    - Dst: rnp_key_25519_bits_tweaked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:311,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:312,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:313,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:314,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 71
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 315
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-prop.cpp
    functionUses: 0
    functionsReached:
    - assert_rnp_failure
    - rnp_key_protect
    - export_key
    - import_all_keys
    - assert_true
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_key_25519_bits_tweaked
    - rnp_key_25519_bits_tweak
    - rnp_key_lock
    - rnp_locate_key
    - rnp_key_unprotect
    - rnp_ffi_destroy
    - rnp_key_is_protected
    - rnp_key_unlock
    - rnp_ffi_create
    - reload_keyrings
    - auto::size
    - auto::data
    - assert_false
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_25519_tweaked_bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:321,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:321,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:322,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:322,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:324,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:324,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:326,1
    - Dst: rnp_key_revoke
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:326,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:327,1
    - Dst: rnp_key_revoke
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:327,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:328,1
    - Dst: rnp_key_revoke
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:328,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:329,1
    - Dst: rnp_key_revoke
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:329,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:330,1
    - Dst: rnp_key_revoke
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:330,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:332,1
    - Dst: rnp_key_revoke
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:332,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:333,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:333,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:336,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:336,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:337,1
    - Dst: rnp_key_revoke
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:337,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:338,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:338,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:340,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:340,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:341,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:341,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:342,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:342,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:344,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:345,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:346,1
    - Dst: rnp_key_revoke
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:346,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:347,1
    - Dst: rnp_key_revoke
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:347,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:350,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:350,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:351,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:352,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:352,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:353,1
    - Dst: rnp_key_revoke
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:353,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:354,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:354,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:355,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:357,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:357,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:358,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:360,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:360,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:361,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:362,1
    - Dst: rnp_key_revoke
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:362,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:363,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:363,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:364,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:365,1
    - Dst: rnp_key_lock
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:365,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:366,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:366,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:367,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:367,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:369,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:369,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:370,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:370,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:371,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:371,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:372,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:373,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:374,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:374,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:375,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:376,1
    - Dst: rnp_key_revoke
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:377,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:378,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:378,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:379,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:381,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:381,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:382,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:383,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:383,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:385,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:385,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:386,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:386,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:387,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:388,1
    - Dst: rnp_key_revoke
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:388,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:389,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:389,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:390,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:391,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:391,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:392,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 393
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-prop.cpp
    functionUses: 0
    functionsReached:
    - rnp_key_lock
    - rnp_locate_key
    - assert_rnp_failure
    - assert_true
    - rnp_ffi_destroy
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_ffi_set_pass_provider
    - import_sec_keys
    - import_pub_keys
    - rnp_ffi_create
    - rnp_key_is_revoked
    - assert_false
    - rnp_key_unlock
    - rnp_key_is_locked
    - rnp_unload_keys
    - rnp_key_revoke
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_revoke)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:400,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:400,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:401,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:401,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:404,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:404,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:406,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:406,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:408,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:408,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:410,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:410,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:411,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:411,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:412,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:412,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:413,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:413,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:416,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:416,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:419,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:419,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:421,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:421,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:422,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:423,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:423,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:425,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:425,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:426,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:426,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:427,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:427,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:428,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:428,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:429,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:430,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:430,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:432,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:432,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:433,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:433,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:434,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:434,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:435,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:439,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:439,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:440,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:441,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:442,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:442,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:443,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:444,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:445,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:445,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:446,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:446,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:447,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:447,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:450,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:450,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:452,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:452,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:453,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:453,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:454,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:454,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:455,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:456,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:456,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:457,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:457,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:458,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:459,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:459,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:460,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:460,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:461,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:461,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:463,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:463,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:464,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:464,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:465,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:465,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:466,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:466,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:467,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:467,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:468,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:469,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:469,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:470,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:470,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:471,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:472,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:472,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:473,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:473,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:475,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:475,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:476,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:476,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:477,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:477,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:479,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:479,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:480,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:480,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:481,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:481,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:482,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:482,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:483,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:484,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:484,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:485,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:485,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:486,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:486,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:487,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:489,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:489,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:490,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:491,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:492,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:492,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:493,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:493,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:494,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:494,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:495,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:495,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:496,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:496,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:497,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:497,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:498,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:498,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:499,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:499,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:500,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:502,1
    - Dst: rnp_key_is_expired
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:502,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:503,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:504,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:504,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:505,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:505,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:506,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:507,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:507,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:508,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:508,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:511,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:511,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:512,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:512,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:513,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:513,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:514,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:514,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:515,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:515,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:516,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:516,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:517,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:518,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:518,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:520,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:520,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:521,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:521,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:523,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:523,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:524,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:524,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:525,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:525,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:526,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:527,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:527,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:528,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:529,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:530,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:530,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:531,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:531,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:532,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:532,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:533,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:533,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:534,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:534,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:535,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:535,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:536,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:536,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:537,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:537,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:538,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:539,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:539,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:542,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:542,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:543,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:543,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:544,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:544,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:545,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:545,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:546,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:546,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:547,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:547,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:548,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:548,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:549,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:549,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:550,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:550,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:551,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:552,1
    - Dst: rnp_key_is_expired
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:552,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:553,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:556,1
    - Dst: rnp_key_handle_t::pub::valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:556,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:558,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:558,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:559,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:561,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:561,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:562,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:564,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:564,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:565,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:566,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:566,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:567,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:567,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:568,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:569,1
    - Dst: rnp_key_handle_t::pub::valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:569,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:571,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:571,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:572,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:574,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:574,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:575,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:576,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:576,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:577,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:578,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:578,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:579,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:579,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:580,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:581,1
    - Dst: rnp_key_handle_t::pub::valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:581,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:582,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:582,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:583,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:584,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:584,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:585,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:586,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:586,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:587,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:588,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:588,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:589,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:589,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:590,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:591,1
    - Dst: rnp_key_handle_t::pub::valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:591,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:593,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:593,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:594,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:596,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:596,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:597,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:599,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:599,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:600,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:601,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:601,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:602,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:602,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:605,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:605,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:606,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:606,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:607,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:607,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:608,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:608,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:609,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:609,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:611,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:612,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:613,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:613,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:615,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:615,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:616,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:617,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:617,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:619,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:619,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:620,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:623,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:623,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:624,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:626,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:626,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:627,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:628,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:629,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:631,1
    - Dst: rnp_key_get_creation
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:631,1
    - Dst: time
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:632,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:633,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:633,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:634,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:634,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:635,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:637,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:637,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:638,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:639,1
    - Dst: rnp_key_get_creation
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:639,1
    - Dst: time
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:640,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:641,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:641,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:642,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:642,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:643,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:645,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:645,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:646,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:648,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:648,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:649,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:653,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:653,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:654,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:655,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:655,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:656,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:656,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:657,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:658,1
    - Dst: rnp_key_is_expired
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:658,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:659,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:661,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:661,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:662,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:664,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:664,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:665,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:667,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:667,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:668,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:668,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:671,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:671,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:672,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:672,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:673,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:673,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:676,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:676,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:677,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:678,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:678,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:679,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:679,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:680,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:681,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:681,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:682,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:682,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:684,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:685,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:685,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:686,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:687,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:687,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:688,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:689,1
    - Dst: rnp_key_handle_t::pub::valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:689,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:691,1
    - Dst: rnp_key_handle_t::sec::valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:691,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:692,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:692,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:693,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:694,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:694,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:696,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:697,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:697,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:698,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:699,1
    - Dst: rnp_key_handle_t::pub::valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:699,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:700,1
    - Dst: rnp_key_handle_t::sec::valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:700,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:703,1
    - Dst: rnp_key_get_creation
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:703,1
    - Dst: time
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:705,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:707,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:707,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:708,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:708,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:709,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:710,1
    - Dst: rnp_key_get_creation
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:710,1
    - Dst: time
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:714,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:716,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:716,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:717,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:717,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:718,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:719,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:719,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:720,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:721,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:721,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:722,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:723,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:723,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:724,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:725,1
    - Dst: rnp_key_handle_t::pub::valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:725,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:726,1
    - Dst: rnp_key_handle_t::sec::valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:726,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:727,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:727,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:728,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:729,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:729,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:730,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:731,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:731,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:732,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:733,1
    - Dst: rnp_key_handle_t::pub::valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:733,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:734,1
    - Dst: rnp_key_handle_t::sec::valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:734,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:735,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:735,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:736,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:736,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:739,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:739,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:740,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:740,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:741,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:741,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:743,1
    - Dst: rnp_key_get_creation
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:743,1
    - Dst: time
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:744,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:745,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:745,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:746,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:746,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:747,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:748,1
    - Dst: rnp_key_get_creation
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:748,1
    - Dst: time
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:749,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:750,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:750,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:751,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:751,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:752,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:754,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:754,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:755,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:755,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:756,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:756,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:757,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:758,1
    - Dst: rnp_key_handle_t::sec::valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:758,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:759,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:759,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:760,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:760,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:761,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:761,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:762,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:763,1
    - Dst: rnp_key_handle_t::sec::valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:763,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:764,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:764,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:765,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:765,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:766,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:766,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:769,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:769,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:770,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:771,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:772,1
    - Dst: load_keys_kbx_g10
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:772,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:774,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:774,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:775,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:775,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:776,1
    - Dst: rnp_key_get_creation
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:776,1
    - Dst: time
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:778,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:780,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:780,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:782,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:782,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:783,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:785,1
    - Dst: rnp_key_get_creation
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:785,1
    - Dst: time
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:786,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:787,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:787,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:789,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:789,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:790,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:792,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:792,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:793,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:794,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:794,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:795,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:796,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:796,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:797,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:798,1
    - Dst: rnp_key_handle_t::pub::valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:798,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:799,1
    - Dst: rnp_key_handle_t::sec::valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:799,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:800,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:800,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:801,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:802,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:802,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:803,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:804,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:804,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:805,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:806,1
    - Dst: rnp_key_handle_t::pub::valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:806,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:807,1
    - Dst: rnp_key_handle_t::sec::valid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:807,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:808,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:808,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:809,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:809,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:813,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:813,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:814,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:814,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:815,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:815,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:816,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:816,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:817,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:817,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:818,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:818,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:820,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:820,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:821,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:821,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:822,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:822,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:823,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:824,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:824,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:825,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:827,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:827,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:828,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:830,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:830,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:831,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:832,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:832,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:833,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:833,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:834,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:834,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:835,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:835,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:838,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:838,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:839,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:840,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:841,1
    - Dst: load_keys_kbx_g10
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:841,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:843,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:843,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:844,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:844,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:845,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:845,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:846,1
    - Dst: rnp_key_get_creation
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:846,1
    - Dst: time
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:847,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:848,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:848,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:849,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:849,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:850,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:852,1
    - Dst: rnp_key_get_creation
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:852,1
    - Dst: time
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:853,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:854,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:854,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:855,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:855,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:856,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:858,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:858,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:859,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:859,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:864,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 386
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 865
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-prop.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_output_to_path
    - rnp_output_memory_get_buf
    - assert_rnp_failure
    - rnp_key_is_valid
    - rnp_unlink
    - rnp_ffi_set_pass_provider
    - rnp_key_valid_till
    - assert_int_not_equal
    - rnp_input_from_path
    - assert_true
    - rnp_key_get_expiration
    - assert_null
    - assert_rnp_success
    - rnp_key_get_creation
    - rnp_key_handle_t::sec::valid
    - rnp_key_handle_destroy
    - rnp_output_to_memory
    - rnp_locate_key
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_import_keys
    - rnp_key_unlock
    - import_pub_keys
    - rnp_ffi_create
    - rnp_key_valid_till64
    - time
    - load_keys_kbx_g10
    - rnp_input_destroy
    - rnp_save_keys
    - rnp_key_set_expiration
    - rnp_key_handle_t::pub::valid
    - rnp_key_export
    - rnp_key_is_locked
    - rnp_key_is_expired
    - assert_false
    - import_sec_keys
    - rnp_unload_keys
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_set_expiry)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:871,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:871,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:873,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:873,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:874,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:874,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:881,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:881,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:882,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:882,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:883,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:884,1
    - Dst: rnp_key_handle_t::pub::get_sig
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:884,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:885,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:885,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:886,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:886,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:887,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:888,1
    - Dst: rnp_key_handle_t::pub::get_sig
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:888,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:890,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:890,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:891,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:891,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:892,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:893,1
    - Dst: rnp_key_handle_t::pub::get_sig
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:893,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:894,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:894,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:895,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:895,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:896,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:897,1
    - Dst: rnp_key_handle_t::pub::get_sig
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:897,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:899,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:899,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:900,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:900,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:902,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:906,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:906,1
    - Dst: time
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:909,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:912,1
    - Dst: rnp_add_security_rule
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:913,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:920,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:920,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:921,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:921,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:923,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:923,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:924,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:924,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:925,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:926,1
    - Dst: rnp_key_handle_t::pub::get_sig
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:926,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:927,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:927,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:928,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:928,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:929,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:930,1
    - Dst: rnp_key_handle_t::pub::get_sig
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:930,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:932,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:932,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:933,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:933,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:934,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:935,1
    - Dst: rnp_key_handle_t::pub::get_sig
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:935,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:936,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:936,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:937,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:937,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:938,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:939,1
    - Dst: rnp_key_handle_t::pub::get_sig
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:939,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:941,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:941,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:942,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:942,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:944,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 945
      start: 867
    functionDepth: 1
    functionLinenumber: 867
    functionLinenumberEnd: 945
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-prop.cpp
    functionUses: 0
    functionsReached:
    - rnp_locate_key
    - rnp_key_set_expiration
    - assert_true
    - rnp_key_get_expiration
    - assert_int_equal
    - rnp_ffi_destroy
    - assert_rnp_success
    - rnp_key_handle_t::pub::get_sig
    - rnp_key_handle_destroy
    - import_sec_keys
    - import_pub_keys
    - rnp_ffi_create
    - rnp_add_security_rule
    - time
    - rnp_get_security_rule
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_upgrade_hash_on_set_expiry)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:950,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:950,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:953,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:953,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:955,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:955,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:957,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:957,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:958,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:958,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:959,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:959,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:961,1
    - Dst: rnp_key_get_protection_mode
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:961,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:962,1
    - Dst: rnp_key_get_protection_mode
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:962,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:963,1
    - Dst: rnp_key_get_protection_mode
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:963,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:965,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:965,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:966,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:966,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:967,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:967,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:969,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:969,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:970,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:970,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:971,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:971,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:973,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:973,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:974,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:974,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:975,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:975,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:976,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:979,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:979,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:980,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:980,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:981,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:981,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:982,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:982,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:983,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:984,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:985,1
    - Dst: rnp_key_get_protection_mode
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:985,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:986,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:987,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:988,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:988,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:989,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:990,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:991,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:991,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:992,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:993,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:994,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:994,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:995,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:996,1
    - Dst: rnp_key_unprotect
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:996,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:997,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:997,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:998,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:999,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1000,1
    - Dst: rnp_key_get_protection_mode
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1000,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1001,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1002,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1003,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1003,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1004,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1004,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1005,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1005,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1006,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1009,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1009,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1010,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1010,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1011,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1012,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1013,1
    - Dst: rnp_key_get_protection_mode
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1013,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1014,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1015,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1016,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1016,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1017,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1018,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1019,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1019,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1020,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1021,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1022,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1022,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1023,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1024,1
    - Dst: rnp_key_unprotect
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1024,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1025,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1025,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1026,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1027,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1028,1
    - Dst: rnp_key_get_protection_mode
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1028,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1029,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1030,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1031,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1031,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1032,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1032,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1033,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1033,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1034,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1037,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1037,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1038,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1038,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1039,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1039,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1040,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1040,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1041,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1041,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1042,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1043,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1044,1
    - Dst: rnp_key_get_protection_mode
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1044,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1045,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1046,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1047,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1047,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1048,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1049,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1050,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1050,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1051,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1052,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1053,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1053,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1054,1
    - Dst: idea_enabled
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1055,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1056,1
    - Dst: rnp_key_unprotect
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1056,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1057,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1057,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1058,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1059,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1060,1
    - Dst: rnp_key_get_protection_mode
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1060,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1061,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1062,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1063,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1063,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1064,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1064,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1065,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1065,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1067,1
    - Dst: rnp_key_unprotect
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1067,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1068,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1068,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1069,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1070,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1071,1
    - Dst: rnp_key_get_protection_mode
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1071,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1072,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1073,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1075,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1078,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1079,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1079,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1081,1
    - Dst: load_keys_kbx_g10
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1081,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1084,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1084,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1085,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1085,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1086,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1087,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1088,1
    - Dst: rnp_key_get_protection_mode
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1088,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1089,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1090,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1091,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1091,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1092,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1093,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1094,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1094,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1095,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1096,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1097,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1097,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1098,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1099,1
    - Dst: rnp_key_unprotect
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1099,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1100,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1100,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1101,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1102,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1103,1
    - Dst: rnp_key_get_protection_mode
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1103,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1104,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1105,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1106,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1106,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1107,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1107,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1108,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1108,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1109,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1111,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1111,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1112,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1112,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1113,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1114,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1115,1
    - Dst: rnp_key_get_protection_mode
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1115,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1116,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1117,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1118,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1118,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1119,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1120,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1121,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1121,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1122,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1123,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1124,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1124,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1125,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1126,1
    - Dst: rnp_key_unprotect
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1126,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1127,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1127,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1128,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1129,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1130,1
    - Dst: rnp_key_get_protection_mode
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1130,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1131,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1132,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1133,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1133,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1134,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1134,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1135,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1135,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1136,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1139,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1140,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1140,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1141,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1141,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1142,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1142,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1143,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1143,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1144,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1144,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1145,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1146,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1147,1
    - Dst: rnp_key_get_protection_mode
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1147,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1148,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1149,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1150,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1150,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1151,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1151,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1152,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1152,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1153,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1155,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1155,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1156,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1156,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1157,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1158,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1159,1
    - Dst: rnp_key_get_protection_mode
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1159,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1160,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1161,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1162,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1162,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1163,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1164,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1165,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1165,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1166,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1167,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1168,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1168,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1169,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1170,1
    - Dst: rnp_key_unprotect
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1170,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1171,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1171,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1172,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1173,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1174,1
    - Dst: rnp_key_get_protection_mode
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1174,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1175,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1176,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1177,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1177,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1178,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1178,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1179,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1179,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1180,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1183,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1183,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1184,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1184,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1185,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1185,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1186,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1186,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1187,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1188,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1189,1
    - Dst: rnp_key_get_protection_mode
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1189,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1190,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1191,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1192,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1192,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1193,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1193,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1194,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1194,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1195,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1197,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1197,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1198,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1198,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1199,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1200,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1201,1
    - Dst: rnp_key_get_protection_mode
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1201,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1202,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1203,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1204,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1204,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1205,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1206,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1207,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1207,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1208,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1209,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1210,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1210,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1211,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1212,1
    - Dst: rnp_key_unprotect
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1212,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1213,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1213,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1214,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1215,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1216,1
    - Dst: rnp_key_get_protection_mode
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1216,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1217,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1218,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1219,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1219,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1220,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1220,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1221,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1221,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1222,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1225,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1225,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1226,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1226,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1227,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1227,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1228,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1228,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1229,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1230,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1231,1
    - Dst: rnp_key_get_protection_mode
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1231,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1232,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1233,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1234,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1234,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1235,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1235,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1236,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1236,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1237,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1240,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1240,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1241,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1241,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1242,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1242,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1243,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1243,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1244,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1245,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1246,1
    - Dst: rnp_key_get_protection_mode
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1246,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1247,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1248,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1249,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1249,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1250,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1250,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1251,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1251,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1252,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1254,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 275
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 947
    functionDepth: 1
    functionLinenumber: 947
    functionLinenumberEnd: 1255
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-prop.cpp
    functionUses: 0
    functionsReached:
    - assert_rnp_failure
    - idea_enabled
    - assert_string_equal
    - assert_true
    - import_all_keys
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_locate_key
    - rnp_key_get_protection_iterations
    - rnp_key_get_protection_hash
    - rnp_key_get_protection_cipher
    - assert_int_equal
    - rnp_key_unprotect
    - rnp_key_get_protection_type
    - rnp_key_get_protection_mode
    - rnp_ffi_destroy
    - import_pub_keys
    - rnp_ffi_create
    - load_keys_kbx_g10
    - rnp_buffer_destroy
    - rnp_unload_keys
    - import_sec_keys
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_get_protection_info)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1264,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1265,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1265,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1268,1
    - Dst: rnp_key_get_default_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1268,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1269,1
    - Dst: rnp_key_get_default_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1269,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1270,1
    - Dst: rnp_key_get_default_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1270,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1271,1
    - Dst: rnp_key_get_default_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1271,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1272,1
    - Dst: rnp_key_get_default_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1272,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1274,1
    - Dst: rnp_key_get_default_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1275,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1276,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1276,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1277,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1278,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1279,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1282,1
    - Dst: rnp_key_get_default_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1283,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1284,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1287,1
    - Dst: rnp_key_get_default_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1287,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1288,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1288,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1289,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1290,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1291,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1293,1
    - Dst: rnp_key_get_default_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1293,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1294,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1294,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1295,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1296,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1297,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1299,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1300,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1300,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1303,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1303,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1304,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1304,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1306,1
    - Dst: rnp_key_get_default_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1306,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1307,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1307,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1308,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1309,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1310,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1312,1
    - Dst: rnp_key_get_default_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1313,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1314,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1314,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1315,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1316,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1317,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1318,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1321,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1321,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1322,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1322,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1323,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1323,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1325,1
    - Dst: rnp_key_get_default_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1325,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1326,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1326,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1327,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1328,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1329,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1330,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1332,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1332,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1333,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1333,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1334,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1334,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1336,1
    - Dst: rnp_key_get_default_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1336,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1337,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1337,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1338,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1339,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1340,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1341,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1343,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1343,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1344,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1345,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1346,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1346,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1348,1
    - Dst: rnp_key_get_default_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1348,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1350,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1353
      start: 1257
    functionDepth: 1
    functionLinenumber: 1257
    functionLinenumberEnd: 1353
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-prop.cpp
    functionUses: 0
    functionsReached:
    - test_ffi_init
    - rnp_locate_key
    - assert_rnp_failure
    - assert_true
    - import_all_keys
    - assert_int_equal
    - assert_string_equal
    - rnp_buffer_destroy
    - assert_null
    - assert_rnp_success
    - rnp_ffi_destroy
    - rnp_key_handle_destroy
    - rnp_unload_keys
    - import_pub_keys
    - rnp_key_get_default_key
    - rnp_key_get_keyid
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_default_subkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1362,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1362,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1365,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1365,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1369,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1369,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1370,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1373,1
    - Dst: rnp_key_get_primary_grip
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1373,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1374,1
    - Dst: rnp_key_get_primary_grip
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1374,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1375,1
    - Dst: rnp_key_get_primary_grip
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1375,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1376,1
    - Dst: rnp_key_get_primary_grip
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1376,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1377,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1378,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1382,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1382,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1383,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1384,1
    - Dst: rnp_key_get_primary_grip
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1384,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1385,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1386,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1387,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1389,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1393,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1393,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1394,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1395,1
    - Dst: rnp_key_get_primary_grip
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1395,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1396,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1397,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1398,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1400,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1404,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1404,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1405,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1406,1
    - Dst: rnp_key_get_primary_grip
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1406,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1407,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1408,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1409,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1411,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1414,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1415
      start: 1355
    functionDepth: 1
    functionLinenumber: 1355
    functionLinenumberEnd: 1415
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-prop.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_locate_key
    - assert_rnp_failure
    - assert_true
    - assert_string_equal
    - assert_null
    - rnp_buffer_destroy
    - assert_rnp_success
    - rnp_ffi_destroy
    - load_keys_gpg
    - rnp_key_get_primary_grip
    - rnp_key_handle_destroy
    - rnp_ffi_create
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_rnp_key_get_primary_grip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1422,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1422,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1425,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1425,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1429,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1429,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1430,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1434,1
    - Dst: rnp_key_get_primary_fprint
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1434,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1435,1
    - Dst: rnp_key_get_primary_fprint
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1435,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1436,1
    - Dst: rnp_key_get_primary_fprint
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1436,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1437,1
    - Dst: rnp_key_get_primary_fprint
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1437,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1438,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1439,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1443,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1443,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1444,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1445,1
    - Dst: rnp_key_get_primary_fprint
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1445,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1446,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1447,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1448,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1450,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1454,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1454,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1455,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1456,1
    - Dst: rnp_key_get_primary_fprint
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1456,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1457,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1458,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1459,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1461,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1465,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1465,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1466,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1467,1
    - Dst: rnp_key_get_primary_fprint
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1467,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1468,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1469,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1470,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1472,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1476,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1476,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1477,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1478,1
    - Dst: rnp_key_get_primary_fprint
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1478,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1479,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1480,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1481,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1483,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1487,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1487,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1488,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1489,1
    - Dst: rnp_key_get_primary_fprint
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1489,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1490,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1491,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1492,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1494,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-prop.cpp:1497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1498
      start: 1417
    functionDepth: 1
    functionLinenumber: 1417
    functionLinenumberEnd: 1498
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-prop.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_locate_key
    - assert_rnp_failure
    - assert_true
    - assert_string_equal
    - assert_null
    - rnp_buffer_destroy
    - assert_rnp_success
    - rnp_ffi_destroy
    - load_keys_gpg
    - rnp_key_get_primary_fprint
    - rnp_key_handle_destroy
    - rnp_ffi_create
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_rnp_key_get_primary_fprint)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fds
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: pipe
    functionSourceFile: /src/rnp/src/tests/support.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: pipe(fds)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fd
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: dup
    functionSourceFile: /src/rnp/src/tests/support.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dup(fd)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd1
    - ','
    - fd2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: dup2
    functionSourceFile: /src/rnp/src/tests/support.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: dup2(fd1, fd2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - N
    - ','
    - R
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: realpath
    functionSourceFile: /src/rnp/src/tests/support.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: realpath(N, R)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - n
    - align_to
    argTypes:
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 314
    functionName: rnp_round_up
    functionSourceFile: /src/rnp/src/tests/support.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t rnp_round_up(size_t n, size_t align_to)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/load-g23.cpp:40,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g23.cpp:42,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/load-g23.cpp:42,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/load-g23.cpp:43,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g23.cpp:46,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/load-g23.cpp:46,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g23.cpp:53,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g23.cpp:53,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g23.cpp:54,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g23.cpp:54,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g23.cpp:57,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g23.cpp:57,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g23.cpp:58,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g23.cpp:58,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g23.cpp:61,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g23.cpp:61,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g23.cpp:64,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g23.cpp:64,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g23.cpp:65,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g23.cpp:65,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g23.cpp:68,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g23.cpp:68,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g23.cpp:69,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g23.cpp:69,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g23.cpp:72,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g23.cpp:72,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-g23.cpp:73,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g23.cpp:73,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-g23.cpp:75,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g23.cpp:75,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-g23.cpp:79,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g23.cpp:79,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-g23.cpp:82,1
    - Dst: test_load_gpg_check_key
      Src: /src/rnp/src/tests/load-g23.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 86
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/load-g23.cpp
    functionUses: 0
    functionsReached:
    - assert_true
    - auto::load
    - assert_false
    - rnp::KeyStore::KeyStore
    - test_load_gpg_check_key
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_load_g23)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hkdf::create
      Src: /src/rnp/src/tests/hkdf.cpp:38,1
    - Dst: std::unique_ptr::extract_expand
      Src: /src/rnp/src/tests/hkdf.cpp:41,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/hkdf.cpp:42,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/hkdf.cpp:42,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/hkdf.cpp:42,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/hkdf.cpp:42,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/hkdf.cpp:42,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/hkdf.cpp:42,1
    - Dst: assert_memory_equal
      Src: /src/rnp/src/tests/hkdf.cpp:43,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/hkdf.cpp:43,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/hkdf.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 6
    functionDepth: 1
    functionLinenumber: 6
    functionLinenumberEnd: 44
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/hkdf.cpp
    functionUses: 0
    functionsReached:
    - assert_memory_equal
    - std::vector::size
    - rnp::Hkdf::create
    - std::unique_ptr::extract_expand
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, hkdf_test_case_1)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:34,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-uid.cpp:34,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-uid.cpp:35,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-uid.cpp:35,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:38,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-uid.cpp:38,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-uid.cpp:39,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:42,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-uid.cpp:42,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:43,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-uid.cpp:46,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:46,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-uid.cpp:47,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:47,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-uid.cpp:48,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:48,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:49,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:49,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-uid.cpp:50,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-uid.cpp:53,1
    - Dst: rnp_uid_get_type
      Src: /src/rnp/src/tests/ffi-uid.cpp:53,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-uid.cpp:54,1
    - Dst: rnp_uid_get_type
      Src: /src/rnp/src/tests/ffi-uid.cpp:54,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:55,1
    - Dst: rnp_uid_get_type
      Src: /src/rnp/src/tests/ffi-uid.cpp:55,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:56,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-uid.cpp:60,1
    - Dst: rnp_uid_get_data
      Src: /src/rnp/src/tests/ffi-uid.cpp:60,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-uid.cpp:61,1
    - Dst: rnp_uid_get_data
      Src: /src/rnp/src/tests/ffi-uid.cpp:61,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-uid.cpp:62,1
    - Dst: rnp_uid_get_data
      Src: /src/rnp/src/tests/ffi-uid.cpp:62,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:63,1
    - Dst: rnp_uid_get_data
      Src: /src/rnp/src/tests/ffi-uid.cpp:63,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:64,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:65,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/ffi-uid.cpp:65,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:66,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-uid.cpp:69,1
    - Dst: rnp_uid_is_primary
      Src: /src/rnp/src/tests/ffi-uid.cpp:69,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-uid.cpp:70,1
    - Dst: rnp_uid_is_primary
      Src: /src/rnp/src/tests/ffi-uid.cpp:70,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:71,1
    - Dst: rnp_uid_is_primary
      Src: /src/rnp/src/tests/ffi-uid.cpp:71,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-uid.cpp:72,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:73,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:75,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:75,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:76,1
    - Dst: rnp_uid_get_data
      Src: /src/rnp/src/tests/ffi-uid.cpp:76,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:77,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:78,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/ffi-uid.cpp:78,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:79,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:80,1
    - Dst: rnp_uid_is_primary
      Src: /src/rnp/src/tests/ffi-uid.cpp:80,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-uid.cpp:81,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:82,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:84,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:84,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:85,1
    - Dst: rnp_uid_get_data
      Src: /src/rnp/src/tests/ffi-uid.cpp:85,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:86,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:87,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/ffi-uid.cpp:87,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:88,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:89,1
    - Dst: rnp_uid_is_primary
      Src: /src/rnp/src/tests/ffi-uid.cpp:89,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-uid.cpp:90,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:91,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:93,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:93,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:94,1
    - Dst: rnp_uid_get_type
      Src: /src/rnp/src/tests/ffi-uid.cpp:94,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:95,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:96,1
    - Dst: rnp_uid_get_data
      Src: /src/rnp/src/tests/ffi-uid.cpp:96,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:97,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:98,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:99,1
    - Dst: rnp_uid_is_primary
      Src: /src/rnp/src/tests/ffi-uid.cpp:99,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-uid.cpp:100,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:101,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:102,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 105
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-uid.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - assert_rnp_failure
    - rnp_key_get_uid_handle_at
    - rnp_uid_get_type
    - assert_true
    - memcmp
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_locate_key
    - rnp_uid_is_primary
    - rnp_uid_handle_destroy
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_ffi_create
    - rnp_key_get_uid_count
    - rnp_buffer_destroy
    - load_keys_gpg
    - rnp_uid_get_data
    - assert_false
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_uid_properties)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:110,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-uid.cpp:110,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-uid.cpp:111,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-uid.cpp:111,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:114,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-uid.cpp:114,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-uid.cpp:115,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:118,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-uid.cpp:118,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:119,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:123,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:123,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-uid.cpp:125,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-uid.cpp:125,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-uid.cpp:126,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-uid.cpp:126,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:127,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-uid.cpp:127,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-uid.cpp:128,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:129,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:131,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:131,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:132,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-uid.cpp:132,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-uid.cpp:133,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:134,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:136,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:136,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:137,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-uid.cpp:137,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-uid.cpp:138,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:139,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:142,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:142,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:143,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-uid.cpp:143,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-uid.cpp:144,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:145,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:149,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-uid.cpp:149,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-uid.cpp:150,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:151,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:154,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-uid.cpp:154,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-uid.cpp:155,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:156,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:157,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-uid.cpp:157,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-uid.cpp:158,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-uid.cpp:161,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-uid.cpp:161,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:163,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-uid.cpp:163,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:164,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:167,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:167,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:168,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-uid.cpp:168,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-uid.cpp:169,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:170,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:172,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:172,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:173,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-uid.cpp:173,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-uid.cpp:174,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:175,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:177,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:177,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:178,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-uid.cpp:178,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-uid.cpp:179,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:180,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:182,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:182,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:183,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-uid.cpp:183,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-uid.cpp:184,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:185,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:188,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-uid.cpp:188,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-uid.cpp:189,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:190,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-uid.cpp:193,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-uid.cpp:193,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:195,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-uid.cpp:195,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:196,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:199,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:199,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:200,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-uid.cpp:200,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-uid.cpp:201,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:203,1
    - Dst: rnp_uid_is_primary
      Src: /src/rnp/src/tests/ffi-uid.cpp:203,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-uid.cpp:204,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:205,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:209,1
    - Dst: rnp_key_get_primary_uid
      Src: /src/rnp/src/tests/ffi-uid.cpp:209,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-uid.cpp:210,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:211,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:212,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:215,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-uid.cpp:215,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-uid.cpp:216,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:218,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:221,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-uid.cpp:221,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-uid.cpp:222,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-uid.cpp:222,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:223,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-uid.cpp:223,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-uid.cpp:224,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:226,1
    - Dst: rnp_key_get_primary_uid
      Src: /src/rnp/src/tests/ffi-uid.cpp:226,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:227,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:228,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:229,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:232,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-uid.cpp:232,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-uid.cpp:233,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-uid.cpp:233,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:234,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-uid.cpp:234,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-uid.cpp:235,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:236,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-uid.cpp:236,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-uid.cpp:237,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-uid.cpp:239,1
    - Dst: rnp_key_get_primary_uid
      Src: /src/rnp/src/tests/ffi-uid.cpp:239,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-uid.cpp:240,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:241,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:241,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:242,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-uid.cpp:242,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-uid.cpp:243,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:244,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:245,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-uid.cpp:245,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-uid.cpp:247,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:248,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:251,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-uid.cpp:251,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-uid.cpp:252,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-uid.cpp:252,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:253,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-uid.cpp:253,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-uid.cpp:254,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:255,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-uid.cpp:255,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-uid.cpp:256,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:258,1
    - Dst: rnp_key_get_primary_uid
      Src: /src/rnp/src/tests/ffi-uid.cpp:258,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-uid.cpp:259,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:260,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:261,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:262,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:262,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:263,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-uid.cpp:263,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-uid.cpp:264,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:265,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:266,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:266,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:267,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-uid.cpp:267,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-uid.cpp:268,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:269,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:270,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 120
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 273
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-uid.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - assert_rnp_failure
    - rnp_key_get_uid_handle_at
    - rnp_key_is_valid
    - assert_string_equal
    - assert_true
    - assert_null
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_locate_key
    - rnp_uid_handle_destroy
    - rnp_uid_is_primary
    - assert_int_equal
    - rnp_uid_is_valid
    - rnp_ffi_destroy
    - import_pub_keys
    - rnp_ffi_create
    - rnp_key_get_uid_count
    - rnp_key_get_primary_uid
    - rnp_buffer_destroy
    - load_keys_gpg
    - assert_false
    - rnp_unload_keys
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_uid_validity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:278,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-uid.cpp:278,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-uid.cpp:279,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-uid.cpp:279,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:282,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-uid.cpp:282,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:284,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-uid.cpp:284,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:285,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:287,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:287,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:290,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:290,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-uid.cpp:291,1
    - Dst: rnp_uid_remove
      Src: /src/rnp/src/tests/ffi-uid.cpp:291,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-uid.cpp:292,1
    - Dst: rnp_uid_remove
      Src: /src/rnp/src/tests/ffi-uid.cpp:292,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-uid.cpp:293,1
    - Dst: rnp_uid_remove
      Src: /src/rnp/src/tests/ffi-uid.cpp:293,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:294,1
    - Dst: rnp_uid_remove
      Src: /src/rnp/src/tests/ffi-uid.cpp:294,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:295,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:295,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:296,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-uid.cpp:296,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:297,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:299,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:299,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:301,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:301,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:302,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:303,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:304,1
    - Dst: rnp_uid_remove
      Src: /src/rnp/src/tests/ffi-uid.cpp:304,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:305,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:305,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:306,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-uid.cpp:306,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:307,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:309,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:309,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:310,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:310,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:311,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:312,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:313,1
    - Dst: rnp_uid_remove
      Src: /src/rnp/src/tests/ffi-uid.cpp:313,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:314,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:314,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:315,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-uid.cpp:315,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:316,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:318,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:318,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:319,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:319,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:320,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:321,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:322,1
    - Dst: rnp_uid_remove
      Src: /src/rnp/src/tests/ffi-uid.cpp:322,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:323,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:323,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:324,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-uid.cpp:324,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:325,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:326,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:327,1
    - Dst: reload_pubring
      Src: /src/rnp/src/tests/ffi-uid.cpp:329,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:330,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-uid.cpp:330,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-uid.cpp:331,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:332,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-uid.cpp:332,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:334,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-uid.cpp:334,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:335,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:336,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:339,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-uid.cpp:339,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-uid.cpp:340,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-uid.cpp:340,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:343,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-uid.cpp:343,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:344,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-uid.cpp:344,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:345,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:347,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-uid.cpp:347,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-uid.cpp:348,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:350,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:350,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:351,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:351,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:352,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:353,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:354,1
    - Dst: rnp_uid_remove
      Src: /src/rnp/src/tests/ffi-uid.cpp:354,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:355,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:355,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:356,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-uid.cpp:356,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:357,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:359,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:359,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:360,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/tests/ffi-uid.cpp:360,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:361,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:362,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:363,1
    - Dst: rnp_uid_remove
      Src: /src/rnp/src/tests/ffi-uid.cpp:363,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:364,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:364,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:365,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-uid.cpp:365,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:366,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:367,1
    - Dst: reload_keyrings
      Src: /src/rnp/src/tests/ffi-uid.cpp:369,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:370,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-uid.cpp:370,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:371,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-uid.cpp:371,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-uid.cpp:372,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-uid.cpp:374,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-uid.cpp:374,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-uid.cpp:375,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:376,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-uid.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 82
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 379
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-uid.cpp
    functionUses: 0
    functionsReached:
    - rnp_key_get_subkey_at
    - assert_rnp_failure
    - rnp_key_get_uid_handle_at
    - assert_string_equal
    - assert_true
    - assert_null
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_locate_key
    - rnp_uid_handle_destroy
    - assert_int_equal
    - rnp_ffi_destroy
    - reload_pubring
    - rnp_ffi_create
    - reload_keyrings
    - rnp_key_get_uid_count
    - rnp_key_have_secret
    - rnp_buffer_destroy
    - load_keys_gpg
    - rnp_key_get_uid_at
    - rnp_unload_keys
    - rnp_uid_remove
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_remove_uid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wprintf
      Src: /src/rnp/src/tests/rnp_tests.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - expression
    - function
    - file
    - line
    - pReserved
    argTypes:
    - wchar_t*
    - wchar_t*
    - wchar_t*
    - unsigned int
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 47
    functionName: rnpInvalidParameterHandler
    functionSourceFile: /src/rnp/src/tests/rnp_tests.cpp
    functionUses: 0
    functionsReached:
    - wprintf
    linkageType: ''
    returnType: void
    signature: "void rnpInvalidParameterHandler(const wchar_t *expression,\n                           const
      wchar_t *function,\n                           const wchar_t *file,\n                           unsigned
      int   line,\n                           uintptr_t      pReserved)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_temp_dir
      Src: /src/rnp/src/tests/rnp_tests.cpp:50,1
    - Dst: _set_invalid_parameter_handler
      Src: /src/rnp/src/tests/rnp_tests.cpp:54,1
    - Dst: _CrtSetReportMode
      Src: /src/rnp/src/tests/rnp_tests.cpp:55,1
    - Dst: getenv
      Src: /src/rnp/src/tests/rnp_tests.cpp:60,1
    - Dst: setenv
      Src: /src/rnp/src/tests/rnp_tests.cpp:61,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/tests/rnp_tests.cpp:63,1
    - Dst: setenv
      Src: /src/rnp/src/tests/rnp_tests.cpp:63,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/tests/rnp_tests.cpp:64,1
    - Dst: chdir
      Src: /src/rnp/src/tests/rnp_tests.cpp:64,1
    - Dst: string
      Src: /src/rnp/src/tests/rnp_tests.cpp:66,1
    - Dst: copy_recursively
      Src: /src/rnp/src/tests/rnp_tests.cpp:67,1
    - Dst: getenv
      Src: /src/rnp/src/tests/rnp_tests.cpp:67,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/rnp_tests.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 68
    functionName: rnp_tests::rnp_tests
    functionSourceFile: /src/rnp/src/tests/rnp_tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - make_temp_dir
    - chdir
    - _set_invalid_parameter_handler
    - string
    - getenv
    - std::string::c_str
    - copy_recursively
    - setenv
    - _CrtSetReportMode
    linkageType: ''
    returnType: void
    signature: void rnp_tests::rnp_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clean_temp_dir
      Src: /src/rnp/src/tests/rnp_tests.cpp:72,1
    - Dst: free
      Src: /src/rnp/src/tests/rnp_tests.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: rnp_tests::~rnp_tests()
    functionSourceFile: /src/rnp/src/tests/rnp_tests.cpp
    functionUses: 0
    functionsReached:
    - free
    - clean_temp_dir
    linkageType: ''
    returnType: void
    signature: void rnp_tests::~rnp_tests()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 80
    functionName: rnp_tests::original_dir
    functionSourceFile: /src/rnp/src/tests/rnp_tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      rnp_tests::original_dir() const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_NE
      Src: /src/rnp/src/tests/rnp_tests.cpp:85,1
    - Dst: getcwd
      Src: /src/rnp/src/tests/rnp_tests.cpp:85,1
    - Dst: ::testing::InitGoogleTest
      Src: /src/rnp/src/tests/rnp_tests.cpp:86,1
    - Dst: RUN_ALL_TESTS
      Src: /src/rnp/src/tests/rnp_tests.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 88
    functionName: main
    functionSourceFile: /src/rnp/src/tests/rnp_tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_NE
    - RUN_ALL_TESTS
    - ::testing::InitGoogleTest
    - getcwd
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:34,1
    - Dst: rnp::hex_decode
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:34,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:35,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:35,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:40,1
    - Dst: rnp::hex_decode
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:40,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:41,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:41,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:46,1
    - Dst: rnp::hex_decode
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:46,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:47,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:47,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:52,1
    - Dst: rnp::hex_decode
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:52,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:54,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:54,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:59,1
    - Dst: rnp::hex_decode
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:59,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:61,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:61,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:66,1
    - Dst: rnp::hex_decode
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:66,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:71,1
    - Dst: rnp::hex_decode
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:71,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:76,1
    - Dst: rnp::hex_decode
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:76,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:82,1
    - Dst: rnp::hex_encode
      Src: /src/rnp/src/tests/utils-hex2bin.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 29
    functionDepth: 1
    functionLinenumber: 29
    functionLinenumberEnd: 85
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/utils-hex2bin.cpp
    functionUses: 0
    functionsReached:
    - rnp::hex_decode
    - assert_int_equal
    - memcmp
    - rnp::hex_encode
    - assert_false
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_utils_hex2bin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - app_ctx
    - buf
    - len
    - read
    argTypes:
    - void*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: error_reader
    functionSourceFile: /src/rnp/src/tests/pipe.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool error_reader(void *app_ctx, void *buf, size_t len, size_t *read)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - app_ctx
    - buf
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: error_writer
    functionSourceFile: /src/rnp/src/tests/pipe.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool error_writer(void *app_ctx, const void *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - app_ctx
    - buf
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: ignoring_writer
    functionSourceFile: /src/rnp/src/tests/pipe.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool ignoring_writer(void *app_ctx, const void *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pipe.cpp:67,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/pipe.cpp:68,1
    - Dst: std::string::data
      Src: /src/rnp/src/tests/pipe.cpp:68,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/pipe.cpp:68,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pipe.cpp:69,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/pipe.cpp:69,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/pipe.cpp:71,1
    - Dst: rnp_output_pipe
      Src: /src/rnp/src/tests/pipe.cpp:71,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/pipe.cpp:72,1
    - Dst: rnp_output_pipe
      Src: /src/rnp/src/tests/pipe.cpp:72,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pipe.cpp:73,1
    - Dst: rnp_output_pipe
      Src: /src/rnp/src/tests/pipe.cpp:73,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pipe.cpp:74,1
    - Dst: rnp_output_finish
      Src: /src/rnp/src/tests/pipe.cpp:74,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pipe.cpp:75,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/pipe.cpp:75,1
    - Dst: string
      Src: /src/rnp/src/tests/pipe.cpp:76,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/pipe.cpp:77,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/pipe.cpp:77,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/pipe.cpp:77,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pipe.cpp:79,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/pipe.cpp:79,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pipe.cpp:80,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/pipe.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 81
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/pipe.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_destroy
    - rnp_output_to_memory
    - rnp_output_finish
    - rnp_input_from_memory
    - rnp_output_memory_get_buf
    - assert_rnp_failure
    - string
    - assert_string_equal
    - std::string::c_str
    - assert_rnp_success
    - std::string::data
    - std::string::size
    - rnp_output_pipe
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_pipe)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pipe.cpp:88,1
    - Dst: rnp_input_from_callback
      Src: /src/rnp/src/tests/pipe.cpp:88,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pipe.cpp:89,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/pipe.cpp:89,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/pipe.cpp:91,1
    - Dst: rnp_output_pipe
      Src: /src/rnp/src/tests/pipe.cpp:91,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pipe.cpp:93,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/pipe.cpp:93,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pipe.cpp:94,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/pipe.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/pipe.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_destroy
    - rnp_input_from_callback
    - assert_rnp_failure
    - assert_rnp_success
    - rnp_output_to_null
    - rnp_output_pipe
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_pipe_source_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pipe.cpp:103,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/pipe.cpp:104,1
    - Dst: std::string::data
      Src: /src/rnp/src/tests/pipe.cpp:104,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/pipe.cpp:104,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pipe.cpp:105,1
    - Dst: rnp_output_to_callback
      Src: /src/rnp/src/tests/pipe.cpp:105,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/pipe.cpp:107,1
    - Dst: rnp_output_pipe
      Src: /src/rnp/src/tests/pipe.cpp:107,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pipe.cpp:109,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/pipe.cpp:109,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pipe.cpp:110,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/pipe.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 111
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/pipe.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_destroy
    - rnp_input_from_memory
    - assert_rnp_failure
    - assert_rnp_success
    - rnp_output_to_callback
    - std::string::data
    - std::string::size
    - rnp_output_pipe
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_pipe_dest_error)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/pipe.cpp:118,1
    - Dst: rnp_output_to_callback
      Src: /src/rnp/src/tests/pipe.cpp:118,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/pipe.cpp:119,1
    - Dst: rnp_output_to_callback
      Src: /src/rnp/src/tests/pipe.cpp:119,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pipe.cpp:120,1
    - Dst: rnp_output_to_callback
      Src: /src/rnp/src/tests/pipe.cpp:120,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/pipe.cpp:122,1
    - Dst: rnp_output_write
      Src: /src/rnp/src/tests/pipe.cpp:122,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/pipe.cpp:122,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/pipe.cpp:122,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/pipe.cpp:123,1
    - Dst: rnp_output_write
      Src: /src/rnp/src/tests/pipe.cpp:123,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pipe.cpp:124,1
    - Dst: rnp_output_write
      Src: /src/rnp/src/tests/pipe.cpp:124,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/pipe.cpp:125,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pipe.cpp:126,1
    - Dst: rnp_output_write
      Src: /src/rnp/src/tests/pipe.cpp:126,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/pipe.cpp:126,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/pipe.cpp:126,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/pipe.cpp:127,1
    - Dst: rnp_output_finish
      Src: /src/rnp/src/tests/pipe.cpp:127,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pipe.cpp:128,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/pipe.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 113
    functionDepth: 1
    functionLinenumber: 113
    functionLinenumberEnd: 129
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/pipe.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_destroy
    - rnp_output_finish
    - assert_rnp_failure
    - assert_int_equal
    - std::string::c_str
    - assert_rnp_success
    - rnp_output_to_callback
    - std::string::size
    - rnp_output_write
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_output_write)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:47,1
    - Dst: rnp_key_is_primary
      Src: /src/rnp/src/tests/ffi-key.cpp:47,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:48,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:50,1
    - Dst: rnp_key_is_sub
      Src: /src/rnp/src/tests/ffi-key.cpp:50,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:51,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:53,1
    - Dst: rnp_key_have_public
      Src: /src/rnp/src/tests/ffi-key.cpp:53,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:54,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:56,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:56,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 4
    argNames:
    - key
    - primary_expected
    - have_public_expected
    - have_secret_expected
    argTypes:
    - rnp_key_handle_t
    - bool
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 58
    functionName: check_key_properties
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - rnp_key_have_secret
    - assert_true
    - rnp_key_have_public
    - assert_rnp_success
    - rnp_key_is_primary
    - rnp_key_is_sub
    linkageType: ''
    returnType: void
    signature: "void check_key_properties(rnp_key_handle_t key,\n                     bool
      \            primary_expected,\n                     bool             have_public_expected,\n
      \                    bool             have_secret_expected)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:67,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:67,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:68,1
    - Dst: rnp_ffi_set_key_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:68,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:69,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:70,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-key.cpp:73,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:76,1
    - Dst: rnp_generate_key_json
      Src: /src/rnp/src/tests/ffi-key.cpp:76,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi-key.cpp:76,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:77,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi-key.cpp:80,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:81,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:81,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:82,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:88,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:89,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:92,1
    - Dst: nlohmann::ordered_json*::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:92,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:94,1
    - Dst: nlohmann::ordered_json*::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:95,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:96,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:96,1
    - Dst: nlohmann::ordered_json::get_ref
      Src: /src/rnp/src/tests/ffi-key.cpp:97,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:98,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:99,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:99,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:100,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:106,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:108,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:109,1
    - Dst: nlohmann::ordered_json*::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:109,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:111,1
    - Dst: nlohmann::ordered_json*::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:112,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:113,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:113,1
    - Dst: nlohmann::ordered_json::get_ref
      Src: /src/rnp/src/tests/ffi-key.cpp:114,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:115,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:116,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:116,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:117,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:123,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:123,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:124,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:124,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:125,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:125,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:126,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:127,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:127,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:128,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:128,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:129,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:129,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:130,1
    - Dst: check_key_properties
      Src: /src/rnp/src/tests/ffi-key.cpp:133,1
    - Dst: check_key_properties
      Src: /src/rnp/src/tests/ffi-key.cpp:134,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:138,1
    - Dst: rnp_key_get_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:138,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:139,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:142,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:143,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 145
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - nlohmann::ordered_json::get_ref
    - assert_rnp_failure
    - check_key_properties
    - rnp_ffi_set_pass_provider
    - auto::c_str
    - assert_true
    - rnp_key_get_bits
    - assert_rnp_success
    - file_to_str
    - pgp::pkt::Signature::parse
    - rnp_key_handle_destroy
    - nlohmann::ordered_json*::contains
    - rnp_get_secret_key_count
    - nlohmann::ordered_json*::is_null
    - rnp_locate_key
    - rnp_generate_key_json
    - rnp_ffi_set_key_provider
    - assert_int_equal
    - rnp_ffi_destroy
    - nlohmann::ordered_json::contains
    - nlohmann::ordered_json::is_null
    - rnp_ffi_create
    - rnp_get_public_key_count
    - rnp_buffer_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_keygen_json_pair)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:154,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:154,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:155,1
    - Dst: rnp_ffi_set_key_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:155,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:156,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:157,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-key.cpp:160,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:163,1
    - Dst: rnp_generate_key_json
      Src: /src/rnp/src/tests/ffi-key.cpp:163,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi-key.cpp:163,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:164,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi-key.cpp:167,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:168,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:168,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:169,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:175,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:176,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:179,1
    - Dst: nlohmann::ordered_json*::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:179,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:181,1
    - Dst: nlohmann::ordered_json*::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:182,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:183,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:183,1
    - Dst: nlohmann::ordered_json::get_ref
      Src: /src/rnp/src/tests/ffi-key.cpp:184,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:185,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:186,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:186,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:187,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:193,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:195,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:196,1
    - Dst: nlohmann::ordered_json*::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:196,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:198,1
    - Dst: nlohmann::ordered_json*::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:199,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:200,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:200,1
    - Dst: nlohmann::ordered_json::get_ref
      Src: /src/rnp/src/tests/ffi-key.cpp:201,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:202,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:203,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:203,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:204,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:210,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:210,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:211,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:212,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:212,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:213,1
    - Dst: check_key_properties
      Src: /src/rnp/src/tests/ffi-key.cpp:216,1
    - Dst: check_key_properties
      Src: /src/rnp/src/tests/ffi-key.cpp:217,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:221,1
    - Dst: rnp_key_get_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:221,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:222,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:223,1
    - Dst: rnp_key_get_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:223,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:224,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:227,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:228,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 230
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - nlohmann::ordered_json::get_ref
    - check_key_properties
    - rnp_ffi_set_pass_provider
    - auto::c_str
    - assert_true
    - rnp_key_get_bits
    - assert_rnp_success
    - file_to_str
    - pgp::pkt::Signature::parse
    - rnp_key_handle_destroy
    - nlohmann::ordered_json*::contains
    - rnp_get_secret_key_count
    - nlohmann::ordered_json*::is_null
    - rnp_locate_key
    - rnp_generate_key_json
    - rnp_ffi_set_key_provider
    - assert_int_equal
    - rnp_ffi_destroy
    - nlohmann::ordered_json::contains
    - nlohmann::ordered_json::is_null
    - rnp_ffi_create
    - rnp_get_public_key_count
    - rnp_buffer_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_keygen_json_pair_dsa_elg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:239,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:239,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:240,1
    - Dst: rnp_ffi_set_key_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:240,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:241,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:241,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-key.cpp:244,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:247,1
    - Dst: rnp_generate_key_json
      Src: /src/rnp/src/tests/ffi-key.cpp:247,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi-key.cpp:247,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:248,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi-key.cpp:251,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:252,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:252,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:253,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:259,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:260,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:263,1
    - Dst: nlohmann::ordered_json*::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:263,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:265,1
    - Dst: nlohmann::ordered_json*::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:266,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:267,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:267,1
    - Dst: nlohmann::ordered_json::get_ref
      Src: /src/rnp/src/tests/ffi-key.cpp:268,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:269,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:270,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:270,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:271,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:278,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:278,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:279,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:280,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:280,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:281,1
    - Dst: check_key_properties
      Src: /src/rnp/src/tests/ffi-key.cpp:284,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:287,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 232
    functionDepth: 2
    functionLinenumber: 232
    functionLinenumberEnd: 289
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - nlohmann::ordered_json::get_ref
    - check_key_properties
    - rnp_ffi_set_pass_provider
    - auto::c_str
    - assert_true
    - assert_rnp_success
    - file_to_str
    - pgp::pkt::Signature::parse
    - rnp_key_handle_destroy
    - nlohmann::ordered_json*::contains
    - rnp_get_secret_key_count
    - nlohmann::ordered_json*::is_null
    - rnp_locate_key
    - rnp_generate_key_json
    - rnp_ffi_set_key_provider
    - assert_int_equal
    - rnp_ffi_destroy
    - nlohmann::ordered_json::contains
    - nlohmann::ordered_json::is_null
    - rnp_ffi_create
    - rnp_get_public_key_count
    - rnp_buffer_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_keygen_json_primary)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:300,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:300,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:301,1
    - Dst: rnp_ffi_set_key_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:301,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:302,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:302,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-key.cpp:305,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:306,1
    - Dst: rnp_generate_key_json
      Src: /src/rnp/src/tests/ffi-key.cpp:306,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi-key.cpp:306,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:308,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:308,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:309,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:310,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:310,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:311,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi-key.cpp:314,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:315,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:315,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:316,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:323,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:324,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:327,1
    - Dst: nlohmann::ordered_json*::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:327,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:329,1
    - Dst: nlohmann::ordered_json*::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:330,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:331,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:331,1
    - Dst: strdup
      Src: /src/rnp/src/tests/ffi-key.cpp:332,1
    - Dst: nlohmann::ordered_json::get_ref
      Src: /src/rnp/src/tests/ffi-key.cpp:332,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:333,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:334,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:334,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:335,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-key.cpp:342,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi-key.cpp:346,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi-key.cpp:346,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:347,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:347,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:351,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:351,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:352,1
    - Dst: nlohmann::ordered_json*::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:352,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:353,1
    - Dst: nlohmann::ordered_json*::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:354,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:355,1
    - Dst: nlohmann::ordered_json*::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:355,1
    - Dst: nlohmann::ordered_json*::erase
      Src: /src/rnp/src/tests/ffi-key.cpp:357,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:359,1
    - Dst: nlohmann::ordered_json*::size
      Src: /src/rnp/src/tests/ffi-key.cpp:359,1
    - Dst: nlohmann::ordered_json::dump
      Src: /src/rnp/src/tests/ffi-key.cpp:360,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:361,1
    - Dst: auto::empty
      Src: /src/rnp/src/tests/ffi-key.cpp:361,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:365,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:369,1
    - Dst: rnp_generate_key_json
      Src: /src/rnp/src/tests/ffi-key.cpp:369,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi-key.cpp:369,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:370,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi-key.cpp:373,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:374,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:374,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:375,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:381,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:383,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:384,1
    - Dst: nlohmann::ordered_json*::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:384,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:386,1
    - Dst: nlohmann::ordered_json*::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:387,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:388,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:388,1
    - Dst: nlohmann::ordered_json::get_ref
      Src: /src/rnp/src/tests/ffi-key.cpp:389,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:390,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:391,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:391,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:392,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:399,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:399,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:400,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:401,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:401,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:402,1
    - Dst: check_key_properties
      Src: /src/rnp/src/tests/ffi-key.cpp:405,1
    - Dst: check_key_properties
      Src: /src/rnp/src/tests/ffi-key.cpp:406,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:410,1
    - Dst: rnp_key_get_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:410,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:411,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:414,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:415,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:416,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 62
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 293
    functionDepth: 2
    functionLinenumber: 293
    functionLinenumberEnd: 417
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - nlohmann::ordered_json::get_ref
    - check_key_properties
    - rnp_ffi_set_pass_provider
    - auto::c_str
    - nlohmann::ordered_json*::size
    - assert_true
    - nlohmann::ordered_json::dump
    - rnp_key_get_bits
    - assert_rnp_success
    - file_to_str
    - pgp::pkt::Signature::parse
    - rnp_key_handle_destroy
    - nlohmann::ordered_json*::contains
    - rnp_get_secret_key_count
    - nlohmann::ordered_json*::is_null
    - rnp_locate_key
    - rnp_generate_key_json
    - rnp_ffi_set_key_provider
    - assert_int_equal
    - rnp_ffi_destroy
    - strdup
    - nlohmann::ordered_json::contains
    - nlohmann::ordered_json::is_null
    - rnp_ffi_create
    - rnp_get_public_key_count
    - auto::empty
    - rnp_buffer_destroy
    - nlohmann::ordered_json*::erase
    - assert_false
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_keygen_json_sub)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:422,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:422,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:427,1
    - Dst: rnp_generate_key_json
      Src: /src/rnp/src/tests/ffi-key.cpp:427,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/ffi-key.cpp:427,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:428,1
    - Dst: rnp_generate_key_json
      Src: /src/rnp/src/tests/ffi-key.cpp:428,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:429,1
    - Dst: rnp_generate_key_json
      Src: /src/rnp/src/tests/ffi-key.cpp:429,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:430,1
    - Dst: rnp_generate_key_json
      Src: /src/rnp/src/tests/ffi-key.cpp:430,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:431,1
    - Dst: rnp_generate_key_json
      Src: /src/rnp/src/tests/ffi-key.cpp:432,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:433,1
    - Dst: rnp_generate_key_json
      Src: /src/rnp/src/tests/ffi-key.cpp:434,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:436,1
    - Dst: rnp_generate_key_json
      Src: /src/rnp/src/tests/ffi-key.cpp:437,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:438,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:439,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:439,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:441,1
    - Dst: rnp_generate_key_json
      Src: /src/rnp/src/tests/ffi-key.cpp:441,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:442,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:443,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:445,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:445,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:446,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:447,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:447,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-key.cpp:449,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:450,1
    - Dst: rnp_generate_key_json
      Src: /src/rnp/src/tests/ffi-key.cpp:450,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/ffi-key.cpp:450,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-key.cpp:452,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:454,1
    - Dst: rnp_generate_key_json
      Src: /src/rnp/src/tests/ffi-key.cpp:454,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/ffi-key.cpp:454,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key.cpp:455,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:456,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:456,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:457,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:458,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:458,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:459,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 462
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_generate_key_json
    - assert_rnp_failure
    - assert_int_equal
    - rnp_buffer_destroy
    - std::string::c_str
    - assert_null
    - assert_rnp_success
    - file_to_str
    - rnp_ffi_destroy
    - rnp_unload_keys
    - rnp_ffi_create
    - rnp_get_secret_key_count
    - rnp_get_public_key_count
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_keygen_json_edge_cases)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:467,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:467,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:468,1
    - Dst: rnp_ffi_set_key_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:468,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:469,1
    - Dst: rnp_ffi_set_key_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:469,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:472,1
    - Dst: rnp_generate_key_rsa
      Src: /src/rnp/src/tests/ffi-key.cpp:472,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:476,1
    - Dst: rnp_generate_key_rsa
      Src: /src/rnp/src/tests/ffi-key.cpp:476,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:477,1
    - Dst: rnp_generate_key_rsa
      Src: /src/rnp/src/tests/ffi-key.cpp:477,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:481,1
    - Dst: rnp_generate_key_ex
      Src: /src/rnp/src/tests/ffi-key.cpp:481,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:483,1
    - Dst: rnp_generate_key_ex
      Src: /src/rnp/src/tests/ffi-key.cpp:483,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:485,1
    - Dst: rnp_generate_key_ex
      Src: /src/rnp/src/tests/ffi-key.cpp:485,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:487,1
    - Dst: rnp_generate_key_ex
      Src: /src/rnp/src/tests/ffi-key.cpp:487,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:489,1
    - Dst: rnp_generate_key_ex
      Src: /src/rnp/src/tests/ffi-key.cpp:489,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:493,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:494,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:495,1
    - Dst: rnp_generate_key_rsa
      Src: /src/rnp/src/tests/ffi-key.cpp:495,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:496,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:498,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:498,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:499,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:502,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:502,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:503,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:504,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:504,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:505,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:506,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:506,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:507,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:508,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:508,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:509,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:511,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key.cpp:511,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:512,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:514,1
    - Dst: rnp_key_get_creation
      Src: /src/rnp/src/tests/ffi-key.cpp:514,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:516,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key.cpp:516,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:517,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:519,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:519,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:520,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:521,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:521,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:522,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:523,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:523,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:524,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:525,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:525,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:526,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:527,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:527,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:528,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:530,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key.cpp:530,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:531,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:533,1
    - Dst: rnp_key_get_creation
      Src: /src/rnp/src/tests/ffi-key.cpp:533,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:535,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key.cpp:535,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:536,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:537,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:537,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:538,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:538,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:540,1
    - Dst: rnp_generate_key_rsa
      Src: /src/rnp/src/tests/ffi-key.cpp:540,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:541,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:542,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:542,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:543,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:545,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key.cpp:545,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:547,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:547,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:548,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:549,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:549,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:550,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:551,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key.cpp:551,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:553,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:553,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:554,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:554,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:557,1
    - Dst: rnp_generate_key_ex
      Src: /src/rnp/src/tests/ffi-key.cpp:558,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:559,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:560,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:560,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:561,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:563,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi-key.cpp:563,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:564,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:566,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:571,1
    - Dst: rnp_generate_key_ex
      Src: /src/rnp/src/tests/ffi-key.cpp:571,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:573,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:574,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:574,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:575,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:576,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:576,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:577,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:578,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:578,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:579,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:580,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:580,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:581,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:582,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:583,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:587,1
    - Dst: rnp_op_generate_create
      Src: /src/rnp/src/tests/ffi-key.cpp:587,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:588,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:588,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:589,1
    - Dst: rnp_op_generate_set_userid
      Src: /src/rnp/src/tests/ffi-key.cpp:589,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:590,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:590,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:591,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:591,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:592,1
    - Dst: rnp_op_generate_set_expiration
      Src: /src/rnp/src/tests/ffi-key.cpp:592,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:593,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:593,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:595,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:595,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:596,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:598,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi-key.cpp:598,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:601,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:601,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:602,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:602,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:603,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:603,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:604,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:604,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:605,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:605,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:606,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:606,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:607,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:607,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:608,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:608,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:609,1
    - Dst: rnp_op_generate_set_expiration
      Src: /src/rnp/src/tests/ffi-key.cpp:609,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:610,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:610,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:611,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:611,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:612,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:614,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi-key.cpp:614,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-key.cpp:617,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:618,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi-key.cpp:618,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:619,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi-key.cpp:619,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:620,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi-key.cpp:620,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:621,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi-key.cpp:622,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:623,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi-key.cpp:623,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:625,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi-key.cpp:626,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:629,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:630,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-key.cpp:633,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:634,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:634,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:635,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:635,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:636,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:636,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:637,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:638,1
    - Dst: rnp_key_handle_t::pub::valid
      Src: /src/rnp/src/tests/ffi-key.cpp:638,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:640,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:640,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:641,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:641,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:642,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:642,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:643,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:645,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key.cpp:645,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:646,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key.cpp:646,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:647,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key.cpp:647,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:648,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:650,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi-key.cpp:650,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:651,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi-key.cpp:651,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:652,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi-key.cpp:652,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:653,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:654,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:655,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:655,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:656,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:657,1
    - Dst: rnp_key_handle_t::pub::valid
      Src: /src/rnp/src/tests/ffi-key.cpp:657,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:659,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:659,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:660,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:662,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key.cpp:662,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:663,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:664,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi-key.cpp:664,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:665,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:666,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:667,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:668,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:669,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:672,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 153
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 673
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 673
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_op_generate_execute
    - rnp_key_get_subkey_at
    - rnp_output_memory_get_buf
    - assert_rnp_failure
    - rnp_key_is_valid
    - rnp_ffi_set_pass_provider
    - rnp_key_valid_till
    - rnp_op_generate_set_userid
    - rnp_key_get_keyid
    - assert_true
    - rnp_key_get_expiration
    - rnp_op_generate_get_key
    - assert_rnp_success
    - rnp_key_get_creation
    - rnp_key_handle_destroy
    - rnp_key_allows_usage
    - rnp_generate_key_rsa
    - rnp_output_to_memory
    - rnp_locate_key
    - rnp_ffi_set_key_provider
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_key_is_protected
    - rnp_generate_key_ex
    - rnp_key_unlock
    - rnp_op_generate_set_expiration
    - rnp_op_generate_subkey_create
    - rnp_ffi_create
    - import_pub_keys
    - rnp_key_valid_till64
    - rnp_output_destroy
    - rnp_op_generate_add_usage
    - rnp_op_generate_create
    - rnp_buffer_destroy
    - rnp_key_handle_t::pub::valid
    - rnp_key_export
    - rnp_op_generate_set_curve
    - rnp_op_generate_destroy
    - assert_false
    - rnp_unload_keys
    - rnp_key_is_locked
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_generate_misc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:678,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:678,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:681,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:681,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:683,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:683,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:685,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:685,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:687,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key.cpp:687,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:688,1
    - Dst: rnp_key_unprotect
      Src: /src/rnp/src/tests/ffi-key.cpp:688,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:690,1
    - Dst: rnp_key_add_uid
      Src: /src/rnp/src/tests/ffi-key.cpp:690,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:692,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:694,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:694,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:695,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:695,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:697,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:697,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:699,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:699,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:700,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:702,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 703
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 703
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - rnp_locate_key
    - assert_rnp_failure
    - import_all_keys
    - assert_true
    - assert_int_equal
    - rnp_key_unprotect
    - rnp_ffi_destroy
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_key_unlock
    - rnp_op_generate_subkey_create
    - rnp_unload_keys
    - rnp_ffi_create
    - rnp_key_add_uid
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_sec_key_offline_operations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:708,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:708,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:709,1
    - Dst: rnp_ffi_set_key_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:709,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:712,1
    - Dst: rnp_generate_key_rsa
      Src: /src/rnp/src/tests/ffi-key.cpp:712,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:713,1
    - Dst: rnp_generate_key_rsa
      Src: /src/rnp/src/tests/ffi-key.cpp:713,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:714,1
    - Dst: rnp_generate_key_rsa
      Src: /src/rnp/src/tests/ffi-key.cpp:714,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:715,1
    - Dst: rnp_generate_key_rsa
      Src: /src/rnp/src/tests/ffi-key.cpp:715,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:717,1
    - Dst: rnp_generate_key_rsa
      Src: /src/rnp/src/tests/ffi-key.cpp:717,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:718,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:721,1
    - Dst: rnp_key_is_primary
      Src: /src/rnp/src/tests/ffi-key.cpp:721,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:722,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:723,1
    - Dst: rnp_key_have_public
      Src: /src/rnp/src/tests/ffi-key.cpp:723,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:724,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:725,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:725,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:726,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:727,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi-key.cpp:727,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:728,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:729,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:729,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:730,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:733,1
    - Dst: rnp_key_get_alg
      Src: /src/rnp/src/tests/ffi-key.cpp:733,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:734,1
    - Dst: strcasecmp
      Src: /src/rnp/src/tests/ffi-key.cpp:734,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:735,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:738,1
    - Dst: rnp_key_get_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:738,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:739,1
    - Dst: rnp_key_get_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:739,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:740,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:741,1
    - Dst: rnp_key_get_dsa_qbits
      Src: /src/rnp/src/tests/ffi-key.cpp:741,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:744,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:744,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:745,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:746,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:746,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:747,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:748,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:748,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:749,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:750,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:750,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:751,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:754,1
    - Dst: rnp_key_get_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:754,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:755,1
    - Dst: rnp_key_get_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:755,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key.cpp:756,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:760,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-key.cpp:760,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:761,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:762,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/tests/ffi-key.cpp:762,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key.cpp:763,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:764,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/tests/ffi-key.cpp:764,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:765,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/tests/ffi-key.cpp:765,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:766,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/tests/ffi-key.cpp:766,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:767,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:768,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:771,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:771,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:772,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:772,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:773,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:775,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:775,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:776,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:776,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:777,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:777,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:779,1
    - Dst: rnp_key_is_primary
      Src: /src/rnp/src/tests/ffi-key.cpp:779,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:780,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:781,1
    - Dst: rnp_key_have_public
      Src: /src/rnp/src/tests/ffi-key.cpp:781,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:782,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:783,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:783,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:784,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:785,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi-key.cpp:785,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:786,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:787,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:787,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:788,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:790,1
    - Dst: rnp_key_get_alg
      Src: /src/rnp/src/tests/ffi-key.cpp:790,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:791,1
    - Dst: strcasecmp
      Src: /src/rnp/src/tests/ffi-key.cpp:791,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:792,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:794,1
    - Dst: rnp_key_get_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:794,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:795,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:797,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:797,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:798,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:799,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:799,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:800,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:801,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:801,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:802,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:803,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:803,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:804,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:806,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:806,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:807,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:807,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:810,1
    - Dst: rnp_generate_key_rsa
      Src: /src/rnp/src/tests/ffi-key.cpp:810,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:811,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:812,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:812,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:813,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:815,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:815,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:817,1
    - Dst: rnp_generate_key_ex
      Src: /src/rnp/src/tests/ffi-key.cpp:817,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:819,1
    - Dst: rnp_key_get_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:819,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:820,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:821,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:821,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:822,1
    - Dst: rnp_key_get_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:822,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:823,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:824,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:824,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:825,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:825,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:826,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 91
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 705
    functionDepth: 1
    functionLinenumber: 705
    functionLinenumberEnd: 827
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_key_get_subkey_at
    - assert_rnp_failure
    - assert_string_equal
    - strcasecmp
    - rnp_key_get_dsa_qbits
    - assert_true
    - rnp_key_get_bits
    - assert_null
    - assert_rnp_success
    - rnp_key_get_subkey_count
    - rnp_key_is_primary
    - rnp_key_handle_destroy
    - rnp_key_allows_usage
    - rnp_generate_key_rsa
    - rnp_key_get_alg
    - rnp_ffi_set_key_provider
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_key_get_curve
    - rnp_key_is_protected
    - rnp_generate_key_ex
    - rnp_ffi_create
    - rnp_key_get_uid_count
    - rnp_key_have_secret
    - rnp_buffer_destroy
    - rnp_key_have_public
    - rnp_key_get_uid_at
    - assert_false
    - rnp_key_is_locked
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_generate_rsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:832,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:832,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:833,1
    - Dst: rnp_ffi_set_key_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:833,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:836,1
    - Dst: rnp_generate_key_dsa_eg
      Src: /src/rnp/src/tests/ffi-key.cpp:836,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:837,1
    - Dst: rnp_generate_key_dsa_eg
      Src: /src/rnp/src/tests/ffi-key.cpp:837,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:838,1
    - Dst: rnp_generate_key_dsa_eg
      Src: /src/rnp/src/tests/ffi-key.cpp:838,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:839,1
    - Dst: rnp_generate_key_dsa_eg
      Src: /src/rnp/src/tests/ffi-key.cpp:839,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:841,1
    - Dst: rnp_generate_key_dsa_eg
      Src: /src/rnp/src/tests/ffi-key.cpp:841,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:842,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:845,1
    - Dst: rnp_key_is_primary
      Src: /src/rnp/src/tests/ffi-key.cpp:845,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:846,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:847,1
    - Dst: rnp_key_have_public
      Src: /src/rnp/src/tests/ffi-key.cpp:847,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:848,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:849,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:849,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:850,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:851,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi-key.cpp:851,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:852,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:853,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:853,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:854,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:857,1
    - Dst: rnp_key_get_alg
      Src: /src/rnp/src/tests/ffi-key.cpp:857,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:858,1
    - Dst: strcasecmp
      Src: /src/rnp/src/tests/ffi-key.cpp:858,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:859,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:862,1
    - Dst: rnp_key_get_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:862,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:863,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:864,1
    - Dst: rnp_key_get_dsa_qbits
      Src: /src/rnp/src/tests/ffi-key.cpp:864,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:865,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:868,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:868,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:869,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:870,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:870,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:871,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:872,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:872,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:873,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:874,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:874,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:875,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:879,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-key.cpp:879,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:880,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:881,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/tests/ffi-key.cpp:881,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:882,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:883,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:886,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:886,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:887,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:889,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:889,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:891,1
    - Dst: rnp_key_is_primary
      Src: /src/rnp/src/tests/ffi-key.cpp:891,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:892,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:893,1
    - Dst: rnp_key_have_public
      Src: /src/rnp/src/tests/ffi-key.cpp:893,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:894,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:895,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:895,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:896,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:897,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi-key.cpp:897,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:898,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:899,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:899,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:900,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:902,1
    - Dst: rnp_key_get_alg
      Src: /src/rnp/src/tests/ffi-key.cpp:902,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:903,1
    - Dst: strcasecmp
      Src: /src/rnp/src/tests/ffi-key.cpp:903,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:904,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:906,1
    - Dst: rnp_key_get_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:906,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:907,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:909,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:909,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:910,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:911,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:911,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:912,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:913,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:913,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:914,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:915,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:915,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:916,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:918,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:918,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:919,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:919,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:922,1
    - Dst: rnp_generate_key_dsa_eg
      Src: /src/rnp/src/tests/ffi-key.cpp:922,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:923,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:924,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:924,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:925,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:927,1
    - Dst: rnp_generate_key_dsa_eg
      Src: /src/rnp/src/tests/ffi-key.cpp:927,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:929,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:929,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:930,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 931
      start: 829
    functionDepth: 1
    functionLinenumber: 829
    functionLinenumberEnd: 931
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_key_get_subkey_at
    - assert_rnp_failure
    - assert_string_equal
    - strcasecmp
    - rnp_key_get_dsa_qbits
    - assert_true
    - rnp_key_get_bits
    - assert_rnp_success
    - rnp_key_get_subkey_count
    - rnp_key_is_primary
    - rnp_key_handle_destroy
    - rnp_key_allows_usage
    - rnp_key_get_alg
    - rnp_ffi_set_key_provider
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_key_is_protected
    - rnp_ffi_create
    - rnp_key_get_uid_count
    - rnp_generate_key_dsa_eg
    - rnp_key_have_secret
    - rnp_buffer_destroy
    - rnp_key_have_public
    - rnp_key_get_uid_at
    - assert_false
    - rnp_key_is_locked
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_generate_dsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:936,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:936,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:937,1
    - Dst: rnp_ffi_set_key_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:937,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:940,1
    - Dst: rnp_generate_key_ec
      Src: /src/rnp/src/tests/ffi-key.cpp:940,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key.cpp:941,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:943,1
    - Dst: rnp_generate_key_ec
      Src: /src/rnp/src/tests/ffi-key.cpp:943,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:944,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:947,1
    - Dst: rnp_key_is_primary
      Src: /src/rnp/src/tests/ffi-key.cpp:947,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:948,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:949,1
    - Dst: rnp_key_have_public
      Src: /src/rnp/src/tests/ffi-key.cpp:949,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:950,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:951,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:951,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:952,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:953,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi-key.cpp:953,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:954,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:955,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:955,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:956,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:959,1
    - Dst: rnp_key_get_alg
      Src: /src/rnp/src/tests/ffi-key.cpp:959,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:960,1
    - Dst: strcasecmp
      Src: /src/rnp/src/tests/ffi-key.cpp:960,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:961,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:964,1
    - Dst: rnp_key_get_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:964,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:965,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:966,1
    - Dst: rnp_key_get_dsa_qbits
      Src: /src/rnp/src/tests/ffi-key.cpp:966,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:969,1
    - Dst: rnp_key_get_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:969,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:970,1
    - Dst: rnp_key_get_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:970,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:971,1
    - Dst: strcasecmp
      Src: /src/rnp/src/tests/ffi-key.cpp:971,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:972,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:975,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:975,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:976,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:977,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:977,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:978,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:979,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:979,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:980,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:981,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:981,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:982,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:986,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-key.cpp:986,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:987,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:988,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/tests/ffi-key.cpp:988,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:989,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:990,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:993,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:993,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:994,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:996,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:996,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:998,1
    - Dst: rnp_key_is_primary
      Src: /src/rnp/src/tests/ffi-key.cpp:998,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:999,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1000,1
    - Dst: rnp_key_have_public
      Src: /src/rnp/src/tests/ffi-key.cpp:1000,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1001,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1002,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:1002,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1003,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1004,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi-key.cpp:1004,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1005,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1006,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:1006,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1007,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1009,1
    - Dst: rnp_key_get_alg
      Src: /src/rnp/src/tests/ffi-key.cpp:1009,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1010,1
    - Dst: strcasecmp
      Src: /src/rnp/src/tests/ffi-key.cpp:1010,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1011,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1013,1
    - Dst: rnp_key_get_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:1013,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1014,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1017,1
    - Dst: rnp_key_get_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1017,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1018,1
    - Dst: strcasecmp
      Src: /src/rnp/src/tests/ffi-key.cpp:1018,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1019,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1021,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1021,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1022,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1023,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1023,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1024,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1025,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1025,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1026,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1027,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1027,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1028,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1030,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1030,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1031,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1031,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1032,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1032,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 933
    functionDepth: 1
    functionLinenumber: 933
    functionLinenumberEnd: 1033
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_key_get_subkey_at
    - assert_rnp_failure
    - assert_string_equal
    - strcasecmp
    - rnp_key_get_dsa_qbits
    - assert_true
    - rnp_key_get_bits
    - assert_null
    - assert_rnp_success
    - rnp_key_get_subkey_count
    - rnp_key_is_primary
    - rnp_key_handle_destroy
    - rnp_key_allows_usage
    - rnp_key_get_alg
    - rnp_generate_key_ec
    - rnp_ffi_set_key_provider
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_key_get_curve
    - rnp_key_is_protected
    - rnp_ffi_create
    - rnp_key_get_uid_count
    - rnp_key_have_secret
    - rnp_buffer_destroy
    - rnp_key_have_public
    - rnp_key_get_uid_at
    - assert_false
    - rnp_key_is_locked
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_generate_ecdsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1038,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1038,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1039,1
    - Dst: rnp_ffi_set_key_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:1039,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1042,1
    - Dst: rnp_generate_key_25519
      Src: /src/rnp/src/tests/ffi-key.cpp:1042,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1043,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1046,1
    - Dst: rnp_key_is_primary
      Src: /src/rnp/src/tests/ffi-key.cpp:1046,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1047,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1048,1
    - Dst: rnp_key_have_public
      Src: /src/rnp/src/tests/ffi-key.cpp:1048,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1049,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1050,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:1050,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1051,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1052,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi-key.cpp:1052,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1053,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1054,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:1054,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1055,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1058,1
    - Dst: rnp_key_get_alg
      Src: /src/rnp/src/tests/ffi-key.cpp:1058,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1059,1
    - Dst: strcasecmp
      Src: /src/rnp/src/tests/ffi-key.cpp:1059,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1060,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1063,1
    - Dst: rnp_key_get_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:1063,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1064,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1067,1
    - Dst: rnp_key_get_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1067,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1068,1
    - Dst: strcasecmp
      Src: /src/rnp/src/tests/ffi-key.cpp:1068,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1069,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1072,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1072,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1073,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1074,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1074,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1075,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1076,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1076,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1077,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1078,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1078,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1079,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1083,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-key.cpp:1083,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1084,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1085,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/tests/ffi-key.cpp:1085,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1086,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1087,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1090,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:1090,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1091,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1093,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:1093,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1095,1
    - Dst: rnp_key_is_primary
      Src: /src/rnp/src/tests/ffi-key.cpp:1095,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1096,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1097,1
    - Dst: rnp_key_have_public
      Src: /src/rnp/src/tests/ffi-key.cpp:1097,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1098,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1099,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:1099,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1100,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1101,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi-key.cpp:1101,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1102,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1103,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:1103,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1104,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1106,1
    - Dst: rnp_key_get_alg
      Src: /src/rnp/src/tests/ffi-key.cpp:1106,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1107,1
    - Dst: strcasecmp
      Src: /src/rnp/src/tests/ffi-key.cpp:1107,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1108,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1110,1
    - Dst: rnp_key_get_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:1110,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1111,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1114,1
    - Dst: rnp_key_get_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1114,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1115,1
    - Dst: strcasecmp
      Src: /src/rnp/src/tests/ffi-key.cpp:1115,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1116,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1118,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1118,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1119,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1120,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1120,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1121,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1122,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1122,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1123,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1124,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1124,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1125,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1127,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1127,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1128,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1128,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1129,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 69
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1130
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_key_get_subkey_at
    - assert_string_equal
    - strcasecmp
    - assert_true
    - rnp_key_get_bits
    - assert_rnp_success
    - rnp_key_get_subkey_count
    - rnp_key_is_primary
    - rnp_key_handle_destroy
    - rnp_key_allows_usage
    - rnp_key_get_alg
    - rnp_ffi_set_key_provider
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_key_get_curve
    - rnp_key_is_protected
    - rnp_generate_key_25519
    - rnp_ffi_create
    - rnp_key_get_uid_count
    - rnp_key_have_secret
    - rnp_buffer_destroy
    - rnp_key_have_public
    - rnp_key_get_uid_at
    - assert_false
    - rnp_key_is_locked
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_generate_eddsa)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1135,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1135,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1136,1
    - Dst: rnp_ffi_set_key_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:1136,1
    - Dst: sm2_enabled
      Src: /src/rnp/src/tests/ffi-key.cpp:1140,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1141,1
    - Dst: rnp_generate_key_sm2
      Src: /src/rnp/src/tests/ffi-key.cpp:1141,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1142,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1142,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1145,1
    - Dst: rnp_generate_key_sm2
      Src: /src/rnp/src/tests/ffi-key.cpp:1145,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1146,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1149,1
    - Dst: rnp_key_is_primary
      Src: /src/rnp/src/tests/ffi-key.cpp:1149,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1150,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1151,1
    - Dst: rnp_key_have_public
      Src: /src/rnp/src/tests/ffi-key.cpp:1151,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1152,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1153,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:1153,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1154,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1155,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi-key.cpp:1155,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1156,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1157,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:1157,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1158,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1161,1
    - Dst: rnp_key_get_alg
      Src: /src/rnp/src/tests/ffi-key.cpp:1161,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1162,1
    - Dst: strcasecmp
      Src: /src/rnp/src/tests/ffi-key.cpp:1162,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1163,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1166,1
    - Dst: rnp_key_get_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:1166,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1167,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1170,1
    - Dst: rnp_key_get_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1170,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1171,1
    - Dst: strcasecmp
      Src: /src/rnp/src/tests/ffi-key.cpp:1171,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1172,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1175,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1175,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1176,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1177,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1177,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1178,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1179,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1179,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1180,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1181,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1181,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1182,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1186,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-key.cpp:1186,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1187,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1188,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/tests/ffi-key.cpp:1188,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1189,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1190,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1193,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:1193,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1194,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1196,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:1196,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1198,1
    - Dst: rnp_key_is_primary
      Src: /src/rnp/src/tests/ffi-key.cpp:1198,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1199,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1200,1
    - Dst: rnp_key_have_public
      Src: /src/rnp/src/tests/ffi-key.cpp:1200,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1201,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1202,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:1202,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1203,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1204,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi-key.cpp:1204,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1205,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1206,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:1206,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1207,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1209,1
    - Dst: rnp_key_get_alg
      Src: /src/rnp/src/tests/ffi-key.cpp:1209,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1210,1
    - Dst: strcasecmp
      Src: /src/rnp/src/tests/ffi-key.cpp:1210,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1211,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1213,1
    - Dst: rnp_key_get_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:1213,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1214,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1217,1
    - Dst: rnp_key_get_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1217,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1218,1
    - Dst: strcasecmp
      Src: /src/rnp/src/tests/ffi-key.cpp:1218,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1219,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1221,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1221,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1222,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1223,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1223,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1224,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1225,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1225,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1226,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1227,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1227,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1228,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1230,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1230,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1231,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1231,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1232,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1232,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 74
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1132
    functionDepth: 1
    functionLinenumber: 1132
    functionLinenumberEnd: 1233
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_key_get_subkey_at
    - assert_rnp_failure
    - assert_string_equal
    - strcasecmp
    - assert_true
    - rnp_key_get_bits
    - rnp_generate_key_sm2
    - assert_rnp_success
    - rnp_key_get_subkey_count
    - rnp_key_is_primary
    - rnp_key_handle_destroy
    - rnp_key_allows_usage
    - rnp_key_get_alg
    - sm2_enabled
    - rnp_ffi_set_key_provider
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_key_get_curve
    - rnp_key_is_protected
    - rnp_ffi_create
    - rnp_key_get_uid_count
    - rnp_key_have_secret
    - rnp_buffer_destroy
    - rnp_key_have_public
    - rnp_key_get_uid_at
    - assert_false
    - rnp_key_is_locked
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_generate_sm2)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1238,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1238,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1239,1
    - Dst: rnp_ffi_set_key_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:1239,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1240,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:1241,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1245,1
    - Dst: rnp_op_generate_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1245,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1246,1
    - Dst: rnp_op_generate_set_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:1246,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1247,1
    - Dst: rnp_op_generate_set_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:1247,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1248,1
    - Dst: rnp_op_generate_set_dsa_qbits
      Src: /src/rnp/src/tests/ffi-key.cpp:1248,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1250,1
    - Dst: rnp_op_generate_clear_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1250,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1251,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1251,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1252,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1252,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1253,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1253,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1255,1
    - Dst: rnp_op_generate_clear_pref_ciphers
      Src: /src/rnp/src/tests/ffi-key.cpp:1255,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1256,1
    - Dst: rnp_op_generate_add_pref_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1256,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1257,1
    - Dst: rnp_op_generate_add_pref_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1257,1
    - Dst: blowfish_enabled
      Src: /src/rnp/src/tests/ffi-key.cpp:1257,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1258,1
    - Dst: rnp_op_generate_clear_pref_ciphers
      Src: /src/rnp/src/tests/ffi-key.cpp:1258,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1259,1
    - Dst: rnp_op_generate_add_pref_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1259,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1260,1
    - Dst: rnp_op_generate_add_pref_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1260,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1262,1
    - Dst: rnp_op_generate_clear_pref_compression
      Src: /src/rnp/src/tests/ffi-key.cpp:1262,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1263,1
    - Dst: rnp_op_generate_add_pref_compression
      Src: /src/rnp/src/tests/ffi-key.cpp:1263,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1264,1
    - Dst: rnp_op_generate_add_pref_compression
      Src: /src/rnp/src/tests/ffi-key.cpp:1264,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1265,1
    - Dst: rnp_op_generate_clear_pref_compression
      Src: /src/rnp/src/tests/ffi-key.cpp:1265,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1266,1
    - Dst: rnp_op_generate_add_pref_compression
      Src: /src/rnp/src/tests/ffi-key.cpp:1266,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1267,1
    - Dst: rnp_op_generate_add_pref_compression
      Src: /src/rnp/src/tests/ffi-key.cpp:1267,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1269,1
    - Dst: rnp_op_generate_clear_pref_hashes
      Src: /src/rnp/src/tests/ffi-key.cpp:1269,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1270,1
    - Dst: rnp_op_generate_add_pref_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1270,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1271,1
    - Dst: rnp_op_generate_add_pref_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1271,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1272,1
    - Dst: rnp_op_generate_clear_pref_hashes
      Src: /src/rnp/src/tests/ffi-key.cpp:1272,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1273,1
    - Dst: rnp_op_generate_add_pref_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1273,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1274,1
    - Dst: rnp_op_generate_add_pref_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1274,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1276,1
    - Dst: rnp_op_generate_set_expiration
      Src: /src/rnp/src/tests/ffi-key.cpp:1276,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1277,1
    - Dst: rnp_op_generate_set_expiration
      Src: /src/rnp/src/tests/ffi-key.cpp:1277,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1279,1
    - Dst: rnp_op_generate_set_pref_keyserver
      Src: /src/rnp/src/tests/ffi-key.cpp:1279,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1280,1
    - Dst: rnp_op_generate_set_pref_keyserver
      Src: /src/rnp/src/tests/ffi-key.cpp:1280,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1281,1
    - Dst: rnp_op_generate_set_pref_keyserver
      Src: /src/rnp/src/tests/ffi-key.cpp:1281,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1283,1
    - Dst: rnp_op_generate_set_userid
      Src: /src/rnp/src/tests/ffi-key.cpp:1283,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1284,1
    - Dst: rnp_op_generate_set_userid
      Src: /src/rnp/src/tests/ffi-key.cpp:1284,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1285,1
    - Dst: rnp_op_generate_set_userid
      Src: /src/rnp/src/tests/ffi-key.cpp:1285,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1287,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1287,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1288,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1288,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1289,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1289,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1290,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1290,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1291,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1291,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1292,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1292,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1293,1
    - Dst: rnp_op_generate_set_protection_iterations
      Src: /src/rnp/src/tests/ffi-key.cpp:1293,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1294,1
    - Dst: rnp_op_generate_set_protection_mode
      Src: /src/rnp/src/tests/ffi-key.cpp:1294,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1295,1
    - Dst: rnp_op_generate_set_protection_mode
      Src: /src/rnp/src/tests/ffi-key.cpp:1295,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1296,1
    - Dst: rnp_op_generate_set_protection_mode
      Src: /src/rnp/src/tests/ffi-key.cpp:1296,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1298,1
    - Dst: rnp_op_generate_set_request_password
      Src: /src/rnp/src/tests/ffi-key.cpp:1298,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1299,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1299,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1301,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1301,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1302,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1303,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1303,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1306,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1306,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1307,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1308,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1308,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1309,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1310,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1310,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1311,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1312,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1312,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1313,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1316,1
    - Dst: rnp_key_get_creation
      Src: /src/rnp/src/tests/ffi-key.cpp:1316,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1317,1
    - Dst: time
      Src: /src/rnp/src/tests/ffi-key.cpp:1317,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1319,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key.cpp:1319,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1320,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1322,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key.cpp:1322,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1323,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1325,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi-key.cpp:1325,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1326,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1327,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:1327,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1328,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1329,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key.cpp:1329,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1330,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:1330,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1331,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1332,1
    - Dst: rnp_key_lock
      Src: /src/rnp/src/tests/ffi-key.cpp:1332,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1335,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1335,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1336,1
    - Dst: rnp_op_generate_set_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:1336,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1337,1
    - Dst: rnp_op_generate_set_dsa_qbits
      Src: /src/rnp/src/tests/ffi-key.cpp:1337,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1339,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1339,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1340,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1340,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1342,1
    - Dst: rnp_op_generate_clear_pref_ciphers
      Src: /src/rnp/src/tests/ffi-key.cpp:1342,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1343,1
    - Dst: rnp_op_generate_add_pref_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1343,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1344,1
    - Dst: rnp_op_generate_clear_pref_compression
      Src: /src/rnp/src/tests/ffi-key.cpp:1344,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1345,1
    - Dst: rnp_op_generate_add_pref_compression
      Src: /src/rnp/src/tests/ffi-key.cpp:1345,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1346,1
    - Dst: rnp_op_generate_clear_pref_hashes
      Src: /src/rnp/src/tests/ffi-key.cpp:1346,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1347,1
    - Dst: rnp_op_generate_add_pref_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1347,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1348,1
    - Dst: rnp_op_generate_set_pref_keyserver
      Src: /src/rnp/src/tests/ffi-key.cpp:1348,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1349,1
    - Dst: rnp_op_generate_set_userid
      Src: /src/rnp/src/tests/ffi-key.cpp:1349,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1351,1
    - Dst: rnp_op_generate_set_expiration
      Src: /src/rnp/src/tests/ffi-key.cpp:1351,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1353,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1353,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1354,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1354,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1355,1
    - Dst: rnp_op_generate_set_protection_iterations
      Src: /src/rnp/src/tests/ffi-key.cpp:1355,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1356,1
    - Dst: rnp_op_generate_set_request_password
      Src: /src/rnp/src/tests/ffi-key.cpp:1356,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1358,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1358,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1360,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1360,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1361,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1362,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1362,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1364,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1364,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1365,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1366,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1366,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1367,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1368,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1368,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1369,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1370,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1370,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1371,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1374,1
    - Dst: rnp_key_get_creation
      Src: /src/rnp/src/tests/ffi-key.cpp:1374,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1375,1
    - Dst: time
      Src: /src/rnp/src/tests/ffi-key.cpp:1375,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1377,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key.cpp:1377,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1378,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1380,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi-key.cpp:1380,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1381,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1382,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:1382,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1383,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1384,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key.cpp:1384,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1385,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:1385,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1386,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1387,1
    - Dst: rnp_key_lock
      Src: /src/rnp/src/tests/ffi-key.cpp:1387,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1389,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1389,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1392,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1392,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1393,1
    - Dst: rnp_op_generate_set_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:1393,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1394,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1394,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1395,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1395,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1396,1
    - Dst: rnp_op_generate_set_expiration
      Src: /src/rnp/src/tests/ffi-key.cpp:1396,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1397,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1397,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1398,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1398,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1400,1
    - Dst: rnp_op_generate_set_protection_iterations
      Src: /src/rnp/src/tests/ffi-key.cpp:1400,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1401,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1401,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1402,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1402,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1403,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1404,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1404,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1406,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1406,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1407,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1408,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1408,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1409,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1410,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1410,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1411,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1412,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1412,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1413,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1415,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi-key.cpp:1415,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1416,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1417,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1417,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1420,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1420,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1421,1
    - Dst: rnp_op_generate_set_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:1421,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1422,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1422,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1423,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1423,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1424,1
    - Dst: rnp_op_generate_set_expiration
      Src: /src/rnp/src/tests/ffi-key.cpp:1424,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1425,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1425,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1426,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1426,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1427,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1427,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1428,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1428,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1429,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1430,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1430,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1432,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1432,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1433,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1434,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1434,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1435,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1436,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1436,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1437,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1438,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1438,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1439,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1440,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1440,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1443,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1443,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1444,1
    - Dst: rnp_op_generate_set_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:1444,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1445,1
    - Dst: rnp_op_generate_set_dsa_qbits
      Src: /src/rnp/src/tests/ffi-key.cpp:1445,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1446,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1446,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1447,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1447,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1448,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1448,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1449,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1449,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1450,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1450,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1451,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1451,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1452,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1452,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1453,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1454,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1454,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1456,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1456,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1457,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1458,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1458,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1459,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1460,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1460,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1461,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1462,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1462,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1463,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1464,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1464,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1466,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1466,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1467,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1467,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1468,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1468,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1469,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1469,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1470,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1470,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1471,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1471,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1472,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1473,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1473,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1474,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1474,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1476,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1476,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1477,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1477,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1478,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1478,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1479,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1479,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1480,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1480,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1481,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1481,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1482,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1483,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1483,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1484,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1484,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1486,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1486,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1487,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1487,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1488,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1488,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/ffi-key.cpp:1489,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1490,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1490,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1491,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1491,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1492,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1492,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1493,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1494,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1494,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1495,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1495,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1497,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1497,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1498,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1498,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1499,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1499,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1502,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1502,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1503,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1503,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1504,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1504,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/ffi-key.cpp:1505,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1506,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1506,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1507,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1507,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1508,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1508,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1509,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1510,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1510,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1511,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1511,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1513,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1513,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1514,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1514,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1515,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1515,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1518,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1518,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1519,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1519,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1520,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1520,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/ffi-key.cpp:1521,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1522,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1522,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1523,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1523,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1524,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1524,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1525,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1526,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1526,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1527,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1527,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1529,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1529,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1530,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1530,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1531,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1531,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1534,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1534,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1535,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1535,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1536,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1536,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1537,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1537,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1538,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1538,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1539,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1539,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1540,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1541,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1541,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1542,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1542,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1545,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1545,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1546,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1546,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1547,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1547,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1548,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1548,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1550,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1550,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1551,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1551,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1552,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1552,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1553,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1553,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1555,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1555,1
    - Dst: sm2_enabled
      Src: /src/rnp/src/tests/ffi-key.cpp:1556,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1557,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1557,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1559,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1559,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1560,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1560,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1562,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1562,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1565,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1565,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1566,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1566,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1567,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1567,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1568,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1568,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1569,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1569,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1570,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1570,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1571,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1571,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1572,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1572,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1573,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1574,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1574,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1576,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1576,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1577,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1578,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1578,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1579,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1580,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1580,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1581,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1582,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1582,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1583,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1584,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1584,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1587,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1587,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1588,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1588,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1589,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1589,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1590,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1590,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1591,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1591,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1592,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1592,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1593,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1593,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1594,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1594,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1595,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1596,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1596,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1598,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1598,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1599,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1600,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1600,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1601,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1602,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1602,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1603,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1604,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1604,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1605,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1606,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1606,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1609,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1609,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1610,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1610,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1611,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1611,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1612,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1612,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1613,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1613,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1614,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1614,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1615,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1615,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1616,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1616,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1617,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1618,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1618,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1620,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1620,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1621,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1622,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1622,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1623,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1624,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1624,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1625,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1626,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:1626,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1627,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1628,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1628,1
    - Dst: sm2_enabled
      Src: /src/rnp/src/tests/ffi-key.cpp:1631,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1633,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1633,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1635,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1635,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1636,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1636,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1637,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1637,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1638,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1638,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1639,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1639,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1640,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1641,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1641,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1643,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1643,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1644,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1644,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1645,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1645,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 344
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1646
      start: 1235
    functionDepth: 1
    functionLinenumber: 1235
    functionLinenumberEnd: 1646
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_op_generate_execute
    - assert_rnp_failure
    - rnp_op_generate_add_pref_hash
    - rnp_op_generate_set_protection_mode
    - rnp_op_generate_clear_pref_compression
    - rnp_ffi_set_pass_provider
    - rnp_key_valid_till
    - rnp_op_generate_set_userid
    - rnp_op_generate_clear_pref_hashes
    - rnp_op_generate_set_bits
    - rnp_op_generate_clear_pref_ciphers
    - assert_true
    - rnp_op_generate_add_pref_compression
    - rnp_key_get_expiration
    - rnp_op_generate_get_key
    - rnp_op_generate_clear_usage
    - assert_rnp_success
    - rnp_op_generate_add_pref_cipher
    - rnp_key_get_creation
    - rnp_key_handle_destroy
    - rnp_key_allows_usage
    - rnp_key_lock
    - rnp_op_generate_set_pref_keyserver
    - sm2_enabled
    - rnp_op_generate_set_protection_hash
    - rnp_ffi_set_key_provider
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_key_is_protected
    - rnp_op_generate_set_expiration
    - rnp_key_unlock
    - blowfish_enabled
    - rnp_ffi_create
    - rnp_op_generate_set_protection_cipher
    - time
    - rnp_op_generate_set_protection_iterations
    - rnp_op_generate_subkey_create
    - rnp_op_generate_add_usage
    - rnp_op_generate_set_dsa_qbits
    - rnp_op_generate_create
    - rnp_op_generate_set_curve
    - rnp_op_generate_destroy
    - rnp_op_generate_set_request_password
    - assert_false
    - brainpool_enabled
    - rnp_key_is_locked
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_generate_ex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1651,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1651,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1652,1
    - Dst: rnp_ffi_set_key_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:1652,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1653,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:1654,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1658,1
    - Dst: rnp_op_generate_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1658,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1659,1
    - Dst: rnp_op_generate_set_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:1659,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1661,1
    - Dst: rnp_op_generate_set_expiration
      Src: /src/rnp/src/tests/ffi-key.cpp:1661,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1663,1
    - Dst: rnp_op_generate_set_request_password
      Src: /src/rnp/src/tests/ffi-key.cpp:1663,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1664,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1664,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1666,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1666,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1667,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1668,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1668,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1671,1
    - Dst: rnp_key_get_creation
      Src: /src/rnp/src/tests/ffi-key.cpp:1671,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1672,1
    - Dst: time
      Src: /src/rnp/src/tests/ffi-key.cpp:1672,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1674,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key.cpp:1674,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1675,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1677,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key.cpp:1677,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1678,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1680,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi-key.cpp:1680,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1681,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1682,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1682,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1685,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:1685,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1686,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1686,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1689,1
    - Dst: rnp_key_get_creation
      Src: /src/rnp/src/tests/ffi-key.cpp:1689,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1690,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1692,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key.cpp:1692,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1693,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1695,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key.cpp:1695,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1696,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1698,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi-key.cpp:1698,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:1699,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1700,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1700,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1701,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1648
    functionDepth: 1
    functionLinenumber: 1648
    functionLinenumberEnd: 1702
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_op_generate_execute
    - rnp_ffi_set_pass_provider
    - rnp_key_valid_till
    - rnp_op_generate_set_bits
    - assert_true
    - rnp_key_get_expiration
    - rnp_op_generate_get_key
    - assert_rnp_success
    - rnp_key_get_creation
    - rnp_key_handle_destroy
    - rnp_locate_key
    - rnp_ffi_set_key_provider
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_op_generate_set_expiration
    - rnp_key_valid_till64
    - time
    - rnp_ffi_create
    - import_pub_keys
    - rnp_op_generate_create
    - rnp_op_generate_destroy
    - rnp_op_generate_set_request_password
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_generate_expiry_32bit)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1707,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1707,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1708,1
    - Dst: rnp_ffi_set_key_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:1708,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1709,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:1710,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1714,1
    - Dst: rnp_op_generate_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1714,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1715,1
    - Dst: rnp_op_generate_set_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:1715,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1716,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1716,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1718,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1718,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1719,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1720,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1720,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1723,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1723,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1724,1
    - Dst: rnp_op_generate_set_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:1724,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1726,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1726,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1728,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1728,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1729,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1730,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1730,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1732,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1732,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1735,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1735,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1736,1
    - Dst: rnp_op_generate_set_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:1736,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1737,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1737,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1738,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1738,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1739,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1740,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1740,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1741,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1741,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1744,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1744,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1745,1
    - Dst: rnp_op_generate_set_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:1745,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1746,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1746,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1747,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1747,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1748,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1748,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1749,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1749,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1750,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1750,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1751,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1752,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1752,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1753,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1753,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1755,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1755,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1756,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1756,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1757,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1757,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1758,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1758,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1759,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1759,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1760,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1760,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1761,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1762,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1762,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1763,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1763,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1765,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1765,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1766,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1766,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1767,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1767,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1768,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1768,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1769,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1769,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1770,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1770,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1771,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1772,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1772,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1773,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1773,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1775,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1775,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1776,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1776,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1777,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1777,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/ffi-key.cpp:1778,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1779,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1779,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1780,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1780,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1781,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1781,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1782,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1783,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1783,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1784,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1784,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1786,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1786,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1787,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1787,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1788,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1788,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1791,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1791,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1792,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1792,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1793,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1793,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/ffi-key.cpp:1794,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1795,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1795,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1796,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1796,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1797,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1797,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1798,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1799,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1799,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1800,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1800,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1802,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1802,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1803,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1803,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1804,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1804,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1807,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1807,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1808,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1808,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1809,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1809,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/ffi-key.cpp:1810,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1811,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1811,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1812,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1812,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1813,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1813,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1814,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1815,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1815,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1816,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1816,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1818,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1818,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1819,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1819,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1820,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1820,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1823,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1823,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1824,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1824,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1825,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1825,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1826,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1826,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1827,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1827,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1828,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1828,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1829,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1830,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1830,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1831,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1831,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1834,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1834,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1835,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1835,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1836,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1836,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1837,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1837,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1839,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1839,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1840,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1840,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1841,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1841,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1842,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1842,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1844,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1844,1
    - Dst: sm2_enabled
      Src: /src/rnp/src/tests/ffi-key.cpp:1845,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1846,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1846,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1848,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1848,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1849,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1849,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1851,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1851,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1854,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1854,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1855,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1855,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1856,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1856,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1857,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1857,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1858,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1858,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1859,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1859,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1860,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1861,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1861,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1862,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1862,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1865,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1865,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1866,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1866,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1867,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1867,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1868,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1868,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1869,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1869,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1870,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1870,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1871,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1872,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1872,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1873,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1873,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1876,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1876,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1877,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/tests/ffi-key.cpp:1877,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1878,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1878,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1879,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1879,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1880,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1880,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1881,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1881,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1882,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1883,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1883,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1884,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1884,1
    - Dst: sm2_enabled
      Src: /src/rnp/src/tests/ffi-key.cpp:1887,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1889,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1889,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1891,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1891,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1892,1
    - Dst: rnp_op_generate_set_protection_cipher
      Src: /src/rnp/src/tests/ffi-key.cpp:1892,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1893,1
    - Dst: rnp_op_generate_set_protection_hash
      Src: /src/rnp/src/tests/ffi-key.cpp:1893,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1894,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1894,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1895,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1895,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1896,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1897,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1897,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1899,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1899,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1900,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1900,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1901,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1901,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 164
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1902
      start: 1704
    functionDepth: 1
    functionLinenumber: 1704
    functionLinenumberEnd: 1902
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_op_generate_execute
    - assert_rnp_failure
    - rnp_ffi_set_pass_provider
    - rnp_op_generate_set_bits
    - rnp_op_generate_get_key
    - assert_rnp_success
    - rnp_key_handle_destroy
    - sm2_enabled
    - rnp_op_generate_set_protection_hash
    - rnp_ffi_set_key_provider
    - rnp_ffi_destroy
    - rnp_op_generate_subkey_create
    - rnp_ffi_create
    - rnp_op_generate_set_protection_cipher
    - rnp_op_generate_create
    - rnp_op_generate_set_curve
    - rnp_op_generate_destroy
    - brainpool_enabled
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_generate_algnamecase)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1907,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1907,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1908,1
    - Dst: rnp_ffi_set_key_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:1908,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1909,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:1910,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1914,1
    - Dst: rnp_op_generate_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1914,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1915,1
    - Dst: rnp_op_generate_set_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:1915,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1916,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1916,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1918,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1918,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1919,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1920,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1920,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1923,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi-key.cpp:1923,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1924,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1926,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1926,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1927,1
    - Dst: rnp_op_generate_set_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:1927,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1928,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1928,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1930,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1930,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1931,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1932,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1932,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1933,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi-key.cpp:1933,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1934,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1935,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1935,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1936,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1936,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1939,1
    - Dst: rnp_op_generate_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1939,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1940,1
    - Dst: rnp_op_generate_set_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:1940,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1941,1
    - Dst: rnp_op_generate_set_protection_password
      Src: /src/rnp/src/tests/ffi-key.cpp:1941,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1943,1
    - Dst: rnp_op_generate_set_request_password
      Src: /src/rnp/src/tests/ffi-key.cpp:1943,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1944,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1944,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1946,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1946,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1947,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1948,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1948,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1950,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi-key.cpp:1950,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1951,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1952,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:1952,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1953,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1954,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key.cpp:1954,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1955,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:1955,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1956,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1957,1
    - Dst: rnp_key_lock
      Src: /src/rnp/src/tests/ffi-key.cpp:1957,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1959,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1959,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1960,1
    - Dst: rnp_op_generate_set_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:1960,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1961,1
    - Dst: rnp_op_generate_set_protection_password
      Src: /src/rnp/src/tests/ffi-key.cpp:1961,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:1963,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1963,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1964,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key.cpp:1964,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1966,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1966,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1968,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1968,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1969,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1970,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1970,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1971,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi-key.cpp:1971,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1972,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1973,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:1973,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1974,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1975,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key.cpp:1975,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1976,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:1976,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1977,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1978,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1978,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1979,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1979,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1982,1
    - Dst: rnp_op_generate_create
      Src: /src/rnp/src/tests/ffi-key.cpp:1982,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1983,1
    - Dst: rnp_op_generate_set_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:1983,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1984,1
    - Dst: rnp_op_generate_set_request_password
      Src: /src/rnp/src/tests/ffi-key.cpp:1984,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1985,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:1985,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1987,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:1987,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:1988,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1989,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:1989,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1991,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi-key.cpp:1991,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1992,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1993,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:1993,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:1994,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1995,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key.cpp:1995,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1996,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:1996,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:1997,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:1998,1
    - Dst: rnp_key_lock
      Src: /src/rnp/src/tests/ffi-key.cpp:1998,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2000,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/tests/ffi-key.cpp:2000,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2001,1
    - Dst: rnp_op_generate_set_bits
      Src: /src/rnp/src/tests/ffi-key.cpp:2001,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2002,1
    - Dst: rnp_op_generate_set_request_password
      Src: /src/rnp/src/tests/ffi-key.cpp:2002,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2004,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:2004,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2006,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:2006,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2007,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2008,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2008,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2009,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/ffi-key.cpp:2009,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2010,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2011,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:2011,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2012,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2013,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key.cpp:2013,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2014,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:2014,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:2015,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2016,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2016,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2017,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2017,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2018,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2018,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 92
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2019
      start: 1904
    functionDepth: 1
    functionLinenumber: 1904
    functionLinenumberEnd: 2019
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_op_generate_execute
    - assert_rnp_failure
    - rnp_ffi_set_pass_provider
    - rnp_op_generate_set_bits
    - assert_true
    - rnp_op_generate_get_key
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_key_lock
    - rnp_ffi_set_key_provider
    - rnp_ffi_destroy
    - rnp_key_is_protected
    - rnp_key_unlock
    - rnp_op_generate_subkey_create
    - rnp_op_generate_set_protection_password
    - rnp_ffi_create
    - rnp_op_generate_create
    - rnp_op_generate_destroy
    - rnp_op_generate_set_request_password
    - assert_false
    - rnp_key_is_locked
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_generate_protection)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2028,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:2028,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2029,1
    - Dst: rnp_ffi_set_key_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:2029,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2030,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:2030,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-key.cpp:2033,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2034,1
    - Dst: rnp_generate_key_json
      Src: /src/rnp/src/tests/ffi-key.cpp:2034,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi-key.cpp:2034,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2035,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2037,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:2037,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2038,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2039,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:2039,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2040,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi-key.cpp:2043,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2044,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2044,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2045,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2052,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:2053,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2056,1
    - Dst: nlohmann::ordered_json*::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2056,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2058,1
    - Dst: nlohmann::ordered_json*::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:2059,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2060,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2060,1
    - Dst: strdup
      Src: /src/rnp/src/tests/ffi-key.cpp:2061,1
    - Dst: nlohmann::ordered_json::get_ref
      Src: /src/rnp/src/tests/ffi-key.cpp:2061,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2062,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2063,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:2063,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2064,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2071,1
    - Dst: rnp_key_protect
      Src: /src/rnp/src/tests/ffi-key.cpp:2071,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2072,1
    - Dst: rnp_key_lock
      Src: /src/rnp/src/tests/ffi-key.cpp:2072,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2073,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-key.cpp:2077,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi-key.cpp:2081,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi-key.cpp:2081,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2082,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2082,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2086,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:2086,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2087,1
    - Dst: nlohmann::ordered_json*::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2087,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2088,1
    - Dst: nlohmann::ordered_json*::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:2089,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2090,1
    - Dst: nlohmann::ordered_json*::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2090,1
    - Dst: nlohmann::ordered_json*::erase
      Src: /src/rnp/src/tests/ffi-key.cpp:2092,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2094,1
    - Dst: nlohmann::ordered_json*::size
      Src: /src/rnp/src/tests/ffi-key.cpp:2094,1
    - Dst: nlohmann::ordered_json::dump
      Src: /src/rnp/src/tests/ffi-key.cpp:2095,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:2096,1
    - Dst: auto::empty
      Src: /src/rnp/src/tests/ffi-key.cpp:2096,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2100,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2104,1
    - Dst: rnp_ffi_set_key_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:2104,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2105,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:2105,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:2106,1
    - Dst: rnp_generate_key_json
      Src: /src/rnp/src/tests/ffi-key.cpp:2106,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi-key.cpp:2106,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2109,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:2110,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:2111,1
    - Dst: rnp_generate_key_json
      Src: /src/rnp/src/tests/ffi-key.cpp:2111,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi-key.cpp:2111,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2114,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:2115,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2116,1
    - Dst: rnp_generate_key_json
      Src: /src/rnp/src/tests/ffi-key.cpp:2116,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi-key.cpp:2116,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2117,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi-key.cpp:2120,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2121,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2121,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2122,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2128,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:2130,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2131,1
    - Dst: nlohmann::ordered_json*::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2131,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2133,1
    - Dst: nlohmann::ordered_json*::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:2134,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2135,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2135,1
    - Dst: nlohmann::ordered_json::get_ref
      Src: /src/rnp/src/tests/ffi-key.cpp:2136,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2137,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2138,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:2138,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2139,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2146,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:2146,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2147,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2148,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:2148,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2149,1
    - Dst: check_key_properties
      Src: /src/rnp/src/tests/ffi-key.cpp:2152,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2155,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2156,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2021
    functionDepth: 2
    functionLinenumber: 2021
    functionLinenumberEnd: 2158
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - nlohmann::ordered_json::get_ref
    - assert_rnp_failure
    - check_key_properties
    - rnp_ffi_set_pass_provider
    - rnp_key_protect
    - auto::c_str
    - nlohmann::ordered_json*::size
    - assert_true
    - nlohmann::ordered_json::dump
    - assert_rnp_success
    - file_to_str
    - pgp::pkt::Signature::parse
    - rnp_key_handle_destroy
    - nlohmann::ordered_json*::contains
    - rnp_get_secret_key_count
    - nlohmann::ordered_json*::is_null
    - rnp_key_lock
    - rnp_locate_key
    - rnp_generate_key_json
    - rnp_ffi_set_key_provider
    - assert_int_equal
    - rnp_ffi_destroy
    - strdup
    - nlohmann::ordered_json::contains
    - nlohmann::ordered_json::is_null
    - rnp_ffi_create
    - rnp_get_public_key_count
    - auto::empty
    - rnp_buffer_destroy
    - nlohmann::ordered_json*::erase
    - assert_false
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_keygen_json_sub_pass_required)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strchr
      Src: /src/rnp/src/tests/ffi-key.cpp:2176,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi-key.cpp:2177,1
    - Dst: nlohmann::ordered_json
      Src: /src/rnp/src/tests/ffi-key.cpp:2179,1
    - Dst: memcpy
      Src: /src/rnp/src/tests/ffi-key.cpp:2181,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:2184,1
    - Dst: nlohmann::ordered_json
      Src: /src/rnp/src/tests/ffi-key.cpp:2185,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - jso
    - field
    argTypes:
    - nlohmann::ordered_json
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2191
      start: 2169
    functionDepth: 1
    functionLinenumber: 2169
    functionLinenumberEnd: 2191
    functionName: get_json_obj
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - nlohmann::ordered_json
    - memcpy
    - nlohmann::ordered_json::contains
    - strlen
    - strchr
    linkageType: ''
    returnType: nlohmann::ordered_json
    signature: nlohmann::ordered_json get_json_obj(nlohmann::ordered_json jso, const
      char *field)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2212,1
    - Dst: rnp_detect_homedir_info
      Src: /src/rnp/src/tests/ffi-key.cpp:2212,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2215,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:2215,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2217,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-key.cpp:2217,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2219,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2221,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2223,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2225,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2230,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:2230,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2231,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2234,1
    - Dst: rnp_key_to_json
      Src: /src/rnp/src/tests/ffi-key.cpp:2234,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2235,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi-key.cpp:2237,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2238,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2238,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2240,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2240,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2241,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2242,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2242,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2243,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2243,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2244,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2245,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2245,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2246,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2247,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2248,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2248,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2250,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2251,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2251,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2253,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2253,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2254,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2254,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2255,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2255,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2257,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2257,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2258,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2258,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2259,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2260,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2260,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2261,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2263,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2263,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2265,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2265,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2266,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2266,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2267,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2270,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2270,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2271,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2271,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2272,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2277,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2277,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2278,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2278,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2279,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2281,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2281,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2282,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2282,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2284,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2284,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2285,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2285,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2286,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2288,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2288,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2289,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2290,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2290,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2294,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2296,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2300,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:2300,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2301,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2303,1
    - Dst: rnp_key_to_json
      Src: /src/rnp/src/tests/ffi-key.cpp:2303,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2304,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi-key.cpp:2306,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2307,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2307,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2309,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2309,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2310,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2311,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2311,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2312,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2312,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2313,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2314,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2314,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2315,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2316,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2317,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2317,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2320,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2320,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2321,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2322,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2322,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2323,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2324,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2325,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2325,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2327,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2327,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2328,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2328,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2329,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2329,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2331,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2331,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2332,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2332,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2333,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2335,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2335,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2336,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2339,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2339,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2341,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2341,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2342,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2342,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2343,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2347,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2347,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2348,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2348,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2349,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2351,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2351,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2352,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2352,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2354,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2354,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2356,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2356,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2357,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2358,1
    - Dst: get_json_obj
      Src: /src/rnp/src/tests/ffi-key.cpp:2358,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2362,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2363,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 83
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2367
      start: 2200
    functionDepth: 2
    functionLinenumber: 2200
    functionLinenumberEnd: 2367
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_locate_key
    - rnp_detect_homedir_info
    - rnp::str_case_eq
    - assert_true
    - get_json_obj
    - assert_int_equal
    - rnp_buffer_destroy
    - rnp_ffi_destroy
    - assert_rnp_success
    - load_keys_gpg
    - pgp::pkt::Signature::parse
    - nlohmann::ordered_json::is_null
    - rnp_key_handle_destroy
    - rnp_key_to_json
    - rnp_ffi_create
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_to_json)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2378,1
    - Dst: rnp_detect_homedir_info
      Src: /src/rnp/src/tests/ffi-key.cpp:2378,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2381,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:2381,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:2386,1
    - Dst: rnp_identifier_iterator_create
      Src: /src/rnp/src/tests/ffi-key.cpp:2386,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2387,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2394,1
    - Dst: rnp_identifier_iterator_create
      Src: /src/rnp/src/tests/ffi-key.cpp:2394,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2395,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2397,1
    - Dst: rnp_identifier_iterator_next
      Src: /src/rnp/src/tests/ffi-key.cpp:2397,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2398,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2399,1
    - Dst: rnp_identifier_iterator_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2399,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2404,1
    - Dst: rnp_identifier_iterator_create
      Src: /src/rnp/src/tests/ffi-key.cpp:2404,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2405,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2407,1
    - Dst: rnp_identifier_iterator_next
      Src: /src/rnp/src/tests/ffi-key.cpp:2407,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2408,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2409,1
    - Dst: rnp_identifier_iterator_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2409,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2414,1
    - Dst: rnp_identifier_iterator_create
      Src: /src/rnp/src/tests/ffi-key.cpp:2414,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2415,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2417,1
    - Dst: rnp_identifier_iterator_next
      Src: /src/rnp/src/tests/ffi-key.cpp:2417,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2418,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2419,1
    - Dst: rnp_identifier_iterator_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2419,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2424,1
    - Dst: rnp_identifier_iterator_create
      Src: /src/rnp/src/tests/ffi-key.cpp:2424,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2425,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2427,1
    - Dst: rnp_identifier_iterator_next
      Src: /src/rnp/src/tests/ffi-key.cpp:2427,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2428,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2429,1
    - Dst: rnp_identifier_iterator_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2429,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2433,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-key.cpp:2433,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2435,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2437,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2439,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2441,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2447,1
    - Dst: rnp_identifier_iterator_create
      Src: /src/rnp/src/tests/ffi-key.cpp:2447,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2448,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2461,1
    - Dst: rnp_identifier_iterator_next
      Src: /src/rnp/src/tests/ffi-key.cpp:2461,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2463,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2463,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2467,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/ffi-key.cpp:2467,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2469,1
    - Dst: rnp_identifier_iterator_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2469,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2475,1
    - Dst: rnp_identifier_iterator_create
      Src: /src/rnp/src/tests/ffi-key.cpp:2475,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2476,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2489,1
    - Dst: rnp_identifier_iterator_next
      Src: /src/rnp/src/tests/ffi-key.cpp:2489,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2491,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2491,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2495,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/ffi-key.cpp:2495,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2497,1
    - Dst: rnp_identifier_iterator_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2497,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2503,1
    - Dst: rnp_identifier_iterator_create
      Src: /src/rnp/src/tests/ffi-key.cpp:2503,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2504,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2512,1
    - Dst: rnp_identifier_iterator_next
      Src: /src/rnp/src/tests/ffi-key.cpp:2512,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2514,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2514,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2518,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/ffi-key.cpp:2518,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2520,1
    - Dst: rnp_identifier_iterator_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2520,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2526,1
    - Dst: rnp_identifier_iterator_create
      Src: /src/rnp/src/tests/ffi-key.cpp:2526,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2527,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2540,1
    - Dst: rnp_identifier_iterator_next
      Src: /src/rnp/src/tests/ffi-key.cpp:2540,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2542,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/tests/ffi-key.cpp:2542,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2546,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/ffi-key.cpp:2546,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2548,1
    - Dst: rnp_identifier_iterator_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2548,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2552,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 96
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2553
      start: 2369
    functionDepth: 1
    functionLinenumber: 2369
    functionLinenumberEnd: 2553
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_identifier_iterator_create
    - rnp_detect_homedir_info
    - rnp_identifier_iterator_next
    - assert_rnp_failure
    - assert_true
    - rnp::str_case_eq
    - assert_int_equal
    - rnp_buffer_destroy
    - assert_null
    - rnp_ffi_destroy
    - assert_rnp_success
    - load_keys_gpg
    - ARRAY_SIZE
    - rnp_ffi_create
    - rnp_identifier_iterator_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_iter)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert_memory_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2570,1
    - Dst: assert_memory_not_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2572,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2576,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:2576,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2579,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-key.cpp:2579,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2580,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:2580,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2582,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2586,1
    - Dst: rnp_identifier_iterator_create
      Src: /src/rnp/src/tests/ffi-key.cpp:2586,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2589,1
    - Dst: rnp_identifier_iterator_next
      Src: /src/rnp/src/tests/ffi-key.cpp:2589,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2595,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:2595,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2596,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2597,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:2597,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2598,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2599,1
    - Dst: rnp_key_have_public
      Src: /src/rnp/src/tests/ffi-key.cpp:2599,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2600,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2601,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2601,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/tests/ffi-key.cpp:2602,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2605,1
    - Dst: rnp_identifier_iterator_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2606,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2607,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 29
    argCount: 7
    argNames:
    - format
    - armored
    - buf
    - buf_len
    - id_type
    - expected_ids
    - secret
    argTypes:
    - char*
    - bool
    - uint8_t*
    - size_t
    - char*
    - std::vector<std::string>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2608
      start: 2555
    functionDepth: 1
    functionLinenumber: 2555
    functionLinenumberEnd: 2608
    functionName: check_loaded_keys
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 1
    functionsReached:
    - assert_non_null
    - rnp_load_keys
    - assert_true
    - assert_rnp_success
    - rnp_key_handle_destroy
    - assert_memory_not_equal
    - rnp_identifier_iterator_create
    - rnp_locate_key
    - rnp_input_from_memory
    - rnp_identifier_iterator_next
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_ffi_create
    - std::vector::push_back
    - rnp_input_destroy
    - assert_memory_equal
    - rnp_key_have_secret
    - rnp_key_have_public
    - rnp_identifier_iterator_destroy
    linkageType: ''
    returnType: void
    signature: "void check_loaded_keys(const char *                    format,\n                  bool
      \                           armored,\n                  uint8_t *                       buf,\n
      \                 size_t                          buf_len,\n                  const
      char *                    id_type,\n                  const std::vector<std::string>
      &expected_ids,\n                  bool                            secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi-key.cpp:2619,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2625,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:2625,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2626,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2630,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-key.cpp:2630,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2631,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2634,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi-key.cpp:2634,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2638,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-key.cpp:2638,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2639,1
    - Dst: check_loaded_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:2642,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2645,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2646,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2653,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:2653,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2654,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2658,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-key.cpp:2658,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2659,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2662,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi-key.cpp:2663,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2667,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-key.cpp:2667,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2668,1
    - Dst: check_loaded_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:2671,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2674,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2675,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2682,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:2682,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2683,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2687,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-key.cpp:2687,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2688,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2691,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi-key.cpp:2692,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2696,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-key.cpp:2696,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2697,1
    - Dst: check_loaded_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:2700,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2709,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2710,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2717,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:2717,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2718,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2722,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-key.cpp:2722,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2723,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2726,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi-key.cpp:2726,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2733,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-key.cpp:2733,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2734,1
    - Dst: check_loaded_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:2737,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2746,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2747,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2754,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:2754,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2755,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2759,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-key.cpp:2759,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2760,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2763,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi-key.cpp:2764,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2768,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-key.cpp:2768,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2769,1
    - Dst: check_loaded_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:2772,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2776,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2777,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2784,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:2784,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2785,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2789,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-key.cpp:2789,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2790,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2793,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/ffi-key.cpp:2794,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2798,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-key.cpp:2798,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2799,1
    - Dst: check_loaded_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:2802,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2806,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2807,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2811,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 87
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2812
      start: 2610
    functionDepth: 2
    functionLinenumber: 2610
    functionLinenumberEnd: 2812
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - test_ffi_init
    - rnp_locate_key
    - rnp_output_to_memory
    - rnp_output_memory_get_buf
    - check_loaded_keys
    - rnp_ffi_destroy
    - rnp_key_export
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_export)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::ordered_json
      Src: /src/rnp/src/tests/ffi-key.cpp:2827,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:2829,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:2832,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:2835,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi-key.cpp:2842,1
    - Dst: nlohmann::ordered_json*::is_object
      Src: /src/rnp/src/tests/ffi-key.cpp:2846,1
    - Dst: nlohmann::ordered_json*::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:2849,1
    - Dst: nlohmann::ordered_json::is_array
      Src: /src/rnp/src/tests/ffi-key.cpp:2852,1
    - Dst: nlohmann::ordered_json::size
      Src: /src/rnp/src/tests/ffi-key.cpp:2855,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2864,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 48
    argCount: 7
    argNames:
    - ffi
    - jso
    - flags
    - input
    - rescount
    - pubcount
    - seccount
    argTypes:
    - rnp_ffi_t
    - nlohmann::ordered_json*
    - uint32_t
    - rnp_input_t
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2866
      start: 2814
    functionDepth: 1
    functionLinenumber: 2814
    functionLinenumberEnd: 2866
    functionName: check_import_keys_ex
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - nlohmann::ordered_json
    - nlohmann::ordered_json::is_array
    - nlohmann::ordered_json*::is_object
    - rnp_buffer_destroy
    - nlohmann::ordered_json::size
    - rnp_import_keys
    - pgp::pkt::Signature::parse
    - nlohmann::ordered_json*::contains
    - rnp_get_secret_key_count
    - rnp_get_public_key_count
    linkageType: ''
    returnType: bool
    signature: "bool check_import_keys_ex(rnp_ffi_t               ffi,\n                     nlohmann::ordered_json
      *jso,\n                     uint32_t                flags,\n                     rnp_input_t
      \            input,\n                     size_t                  rescount,\n
      \                    size_t                  pubcount,\n                     size_t
      \                 seccount)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:2878,1
    - Dst: check_import_keys_ex
      Src: /src/rnp/src/tests/ffi-key.cpp:2881,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - ffi
    - jso
    - keypath
    - rescount
    - pubcount
    - seccount
    argTypes:
    - rnp_ffi_t
    - nlohmann::ordered_json*
    - char*
    - size_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2890
      start: 2868
    functionDepth: 2
    functionLinenumber: 2868
    functionLinenumberEnd: 2890
    functionName: check_import_keys
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - check_import_keys_ex
    - rnp_input_from_path
    - rnp_input_destroy
    linkageType: ''
    returnType: bool
    signature: "bool check_import_keys(rnp_ffi_t               ffi,\n                  nlohmann::ordered_json
      *jso,\n                  const char *            keypath,\n                  size_t
      \                 rescount,\n                  size_t                  pubcount,\n
      \                 size_t                  seccount)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi-key.cpp:2896,1
    - Dst: nlohmann::ordered_json::is_object
      Src: /src/rnp/src/tests/ffi-key.cpp:2899,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:2903,1
    - Dst: nlohmann::ordered_json::is_array
      Src: /src/rnp/src/tests/ffi-key.cpp:2906,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi-key.cpp:2909,1
    - Dst: nlohmann::ordered_json::is_object
      Src: /src/rnp/src/tests/ffi-key.cpp:2910,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:2914,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/ffi-key.cpp:2917,1
    - Dst: nlohmann::ordered_json::get_ref
      Src: /src/rnp/src/tests/ffi-key.cpp:2917,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:2920,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/ffi-key.cpp:2923,1
    - Dst: nlohmann::ordered_json::get_ref
      Src: /src/rnp/src/tests/ffi-key.cpp:2923,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi-key.cpp:2926,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/ffi-key.cpp:2929,1
    - Dst: nlohmann::ordered_json::get_ref
      Src: /src/rnp/src/tests/ffi-key.cpp:2929,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 35
    argCount: 5
    argNames:
    - jso
    - idx
    - pub
    - sec
    - fp
    argTypes:
    - nlohmann::ordered_json
    - size_t
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2933
      start: 2892
    functionDepth: 1
    functionLinenumber: 2892
    functionLinenumberEnd: 2933
    functionName: check_key_status
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - nlohmann::ordered_json::at
    - nlohmann::ordered_json::is_array
    - nlohmann::ordered_json::get_ref
    - nlohmann::ordered_json::is_object
    - strcmp
    - nlohmann::ordered_json::contains
    - nlohmann::ordered_json::is_null
    linkageType: ''
    returnType: bool
    signature: "bool check_key_status(\n  nlohmann::ordered_json jso, size_t idx,
      const char *pub, const char *sec, const char *fp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2940,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:2940,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2942,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:2942,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:2943,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:2943,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:2944,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:2944,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:2945,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:2945,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:2946,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:2946,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2948,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:2948,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:2949,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2951,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:2951,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2952,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2953,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:2953,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2954,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2955,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:2955,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2957,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:2957,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2958,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:2958,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2959,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2960,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:2960,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2961,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2963,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:2963,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2964,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:2964,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2965,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2966,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:2966,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:2967,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:2968,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:2968,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2971,1
    - Dst: check_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:2971,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2973,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:2974,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2977,1
    - Dst: check_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:2977,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2979,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:2980,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2983,1
    - Dst: check_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:2983,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2985,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:2986,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2989,1
    - Dst: check_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:2989,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2991,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:2992,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2995,1
    - Dst: check_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:2996,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:2997,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:2998,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3001,1
    - Dst: check_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3002,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3003,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3004,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3005,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3005,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3007,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3007,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3011,1
    - Dst: check_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3011,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3013,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3013,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3017,1
    - Dst: check_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3017,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3019,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3019,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3023,1
    - Dst: check_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3024,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3025,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3025,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3027,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3027,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3029,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3029,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3033,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3034
      start: 2935
    functionDepth: 3
    functionLinenumber: 2935
    functionLinenumberEnd: 3034
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - rnp_input_from_path
    - assert_rnp_failure
    - assert_true
    - assert_int_equal
    - check_import_keys
    - rnp_ffi_destroy
    - rnp_import_keys
    - assert_rnp_success
    - rnp_unload_keys
    - import_sec_keys
    - rnp_ffi_create
    - rnp_get_secret_key_count
    - check_key_status
    - rnp_get_public_key_count
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_keys_import)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3040,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:3040,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3043,1
    - Dst: check_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3044,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3045,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3046,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3047,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3048,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3051,1
    - Dst: check_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3052,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3053,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3053,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3055,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3055,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3060
      start: 3036
    functionDepth: 3
    functionLinenumber: 3036
    functionLinenumberEnd: 3060
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_true
    - check_import_keys
    - rnp_ffi_destroy
    - assert_rnp_success
    - rnp_ffi_create
    - check_key_status
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_elgamal4096)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3067,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:3067,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3069,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3070,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:3071,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3071,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3072,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3074,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3074,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3075,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3077,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3078,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3079,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3080,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3081,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3082,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3082,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3083,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3085,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3085,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3086,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3088,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3088,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3089,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3091,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3091,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3092,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3093,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3093,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3094,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3094,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3095,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3096,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3096,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3099,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3099,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3100,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3100,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3101,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3102,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3103,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3104,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3105,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3106,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3107,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3107,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3108,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3109,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3109,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3110,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3112,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3112,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3113,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3115,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3115,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3116,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3117,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3117,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3118,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3118,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3119,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3120,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3120,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3123,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3123,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3124,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3125,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3126,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3127,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3128,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3129,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3129,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3130,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3131,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3131,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3132,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3134,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3134,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3135,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3137,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3137,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3138,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3139,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3139,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3140,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3140,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3141,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3142,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3142,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3145,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3145,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3146,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3147,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3148,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3149,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3150,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3151,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3151,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3152,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3153,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3153,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3154,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3155,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3155,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3156,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3157,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3157,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3160,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3161,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3162,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3163,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3164,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3165,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3165,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3166,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3167,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3167,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3168,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3170,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3170,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3171,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3173,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:3173,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3174,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3175,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3175,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3176,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3176,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3177,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3178,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:3178,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:3179,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3180,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3180,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3183,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3184,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3185,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3186,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3187,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3188,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3188,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3189,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3190,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3190,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3191,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3193,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3193,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3194,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3195,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:3195,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3196,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3197,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3197,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3198,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3198,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3199,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3200,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:3200,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3201,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3202,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3202,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3203,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3203,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3204,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3205,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:3205,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3206,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3207,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3207,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3210,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3210,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:3211,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3212,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3213,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3213,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3214,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3215,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3215,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3216,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 117
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3220
      start: 3062
    functionDepth: 1
    functionLinenumber: 3062
    functionLinenumberEnd: 3220
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - assert_rnp_failure
    - rnp_input_from_path
    - assert_true
    - assert_null
    - assert_rnp_success
    - rnp_key_get_subkey_count
    - rnp_key_handle_destroy
    - rnp_get_secret_key_count
    - rnp_locate_key
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_import_keys
    - rnp_ffi_create
    - rnp_get_public_key_count
    - rnp_input_destroy
    - rnp_key_get_uid_count
    - rnp_key_have_secret
    - assert_false
    - rnp_unload_keys
    - import_sec_keys
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_malformed_keys_import)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3230,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:3230,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3232,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3232,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:3234,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3234,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3235,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3237,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3237,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3238,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3240,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3240,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3242,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3243,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3244,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3245,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3245,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3246,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3248
      start: 3222
    functionDepth: 1
    functionLinenumber: 3222
    functionLinenumberEnd: 3248
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - rnp_input_from_path
    - assert_rnp_failure
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_import_keys
    - assert_rnp_success
    - rnp_ffi_create
    - rnp_get_public_key_count
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_experimental_packet_import)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3255,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:3255,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3256,1
    - Dst: rnp_ffi_set_key_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:3256,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3257,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:3257,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3260,1
    - Dst: rnp_op_generate_create
      Src: /src/rnp/src/tests/ffi-key.cpp:3260,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3261,1
    - Dst: rnp_op_generate_set_v6_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3261,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3262,1
    - Dst: rnp_op_generate_set_userid
      Src: /src/rnp/src/tests/ffi-key.cpp:3262,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3263,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:3263,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3264,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/tests/ffi-key.cpp:3264,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3265,1
    - Dst: rnp_op_generate_set_expiration
      Src: /src/rnp/src/tests/ffi-key.cpp:3265,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3266,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:3266,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3268,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3268,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3270,1
    - Dst: rnp_key_handle_t::pub::get_sig
      Src: /src/rnp/src/tests/ffi-key.cpp:3270,1
    - Dst: has_subpkt
      Src: /src/rnp/src/tests/ffi-key.cpp:3270,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:3272,1
    - Dst: rnp_key_handle_t::pub::get_sig
      Src: /src/rnp/src/tests/ffi-key.cpp:3272,1
    - Dst: has_subpkt
      Src: /src/rnp/src/tests/ffi-key.cpp:3272,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3275,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3276,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3278
      start: 3251
    functionDepth: 1
    functionLinenumber: 3251
    functionLinenumberEnd: 3278
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - rnp_op_generate_execute
    - rnp_op_generate_add_usage
    - rnp_op_generate_create
    - assert_true
    - rnp_ffi_set_key_provider
    - rnp_op_generate_set_userid
    - rnp_op_generate_get_key
    - rnp_ffi_destroy
    - assert_rnp_success
    - rnp_key_handle_t::pub::get_sig
    - has_subpkt
    - rnp_op_generate_destroy
    - rnp_ffi_set_pass_provider
    - rnp_op_generate_set_expiration
    - rnp_op_generate_set_v6_key
    - assert_false
    - rnp_ffi_create
    - rnp_key_handle_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_v6_sig_subpackets)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3286,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:3286,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3287,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3288,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3289,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3290,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3294,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3295,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3295,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3296,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3297,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3297,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3298,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/ffi-key.cpp:3303,1
    - Dst: is_primary
      Src: /src/rnp/src/tests/ffi-key.cpp:3305,1
    - Dst: fp
      Src: /src/rnp/src/tests/ffi-key.cpp:3306,1
    - Dst: get_sig
      Src: /src/rnp/src/tests/ffi-key.cpp:3312,1
    - Dst: rnp::Signature::sig::get_subpkt
      Src: /src/rnp/src/tests/ffi-key.cpp:3313,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3314,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3317,1
    - Dst: fp
      Src: /src/rnp/src/tests/ffi-key.cpp:3317,1
    - Dst: assert_memory_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3318,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/ffi-key.cpp:3318,1
    - Dst: pgp::Fingerprint::data
      Src: /src/rnp/src/tests/ffi-key.cpp:3319,1
    - Dst: pgp::Fingerprint::size
      Src: /src/rnp/src/tests/ffi-key.cpp:3320,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3322,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3323
      start: 3280
    functionDepth: 1
    functionLinenumber: 3280
    functionLinenumberEnd: 3323
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - pgp::Fingerprint::size
    - get_sig
    - rnp_input_from_path
    - fp
    - assert_rnp_success
    - rnp_get_secret_key_count
    - assert_int_equal
    - rnp_ffi_destroy
    - pgp::Fingerprint::Fingerprint
    - rnp_import_keys
    - rnp::Signature::sig::get_subpkt
    - rnp_ffi_create
    - rnp_get_public_key_count
    - rnp_input_destroy
    - assert_memory_equal
    - auto::data
    - pgp::Fingerprint::data
    - is_primary
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_v6_cert_import)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3347,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:3347,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3348,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3348,1
    - Dst: first::c_str
      Src: /src/rnp/src/tests/ffi-key.cpp:3348,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3349,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3349,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3354,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3355,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3355,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3356,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3357,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3357,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3358,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3359,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3362,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:3362,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3363,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3363,1
    - Dst: second::c_str
      Src: /src/rnp/src/tests/ffi-key.cpp:3363,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3364,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3364,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3369,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3370,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3370,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3371,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3374
      start: 3326
    functionDepth: 1
    functionLinenumber: 3326
    functionLinenumberEnd: 3374
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - first::c_str
    - rnp_input_from_path
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_import_keys
    - assert_rnp_success
    - second::c_str
    - rnp_ffi_create
    - rnp_get_secret_key_count
    - rnp_get_public_key_count
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_pqc_certs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3383,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:3383,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3384,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3385,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3386,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3387,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3391,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3392,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3392,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3393,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3395
      start: 3377
    functionDepth: 1
    functionLinenumber: 3377
    functionLinenumberEnd: 3395
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - rnp_input_from_path
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_import_keys
    - assert_rnp_success
    - rnp_ffi_create
    - rnp_get_secret_key_count
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_v6_seckey_import)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3406,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:3406,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3407,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3407,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3409,1
    - Dst: check_import_keys_ex
      Src: /src/rnp/src/tests/ffi-key.cpp:3409,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3410,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3411,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3412,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3413,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3414,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3415,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3416,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3417,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3420,1
    - Dst: check_import_keys_ex
      Src: /src/rnp/src/tests/ffi-key.cpp:3420,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3421,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3422,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3423,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3424,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3425,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3426,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3430,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3430,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3431,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3432,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3435,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3435,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3436,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3436,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3437,1
    - Dst: check_import_keys_ex
      Src: /src/rnp/src/tests/ffi-key.cpp:3437,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3438,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3439,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3440,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3441,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3442,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3443,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3446,1
    - Dst: check_import_keys_ex
      Src: /src/rnp/src/tests/ffi-key.cpp:3446,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3447,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3447,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3449,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3449,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3451,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3451,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3455,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3455,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3456,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3457,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3460,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3460,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3461,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3461,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3463,1
    - Dst: check_import_keys_ex
      Src: /src/rnp/src/tests/ffi-key.cpp:3463,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3464,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3465,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3466,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3467,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3468,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3469,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3470,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3471,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3474,1
    - Dst: check_import_keys_ex
      Src: /src/rnp/src/tests/ffi-key.cpp:3474,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3475,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3476,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3477,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3478,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3479,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3480,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3484,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3484,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3485,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3486,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3489
      start: 3398
    functionDepth: 2
    functionLinenumber: 3398
    functionLinenumberEnd: 3489
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - rnp_input_from_path
    - assert_true
    - assert_int_equal
    - rnp_ffi_destroy
    - assert_null
    - assert_rnp_success
    - rnp_import_keys
    - check_key_status
    - rnp_unload_keys
    - rnp_ffi_create
    - check_import_keys_ex
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_iterated_key_import)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3496,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:3496,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3498,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-key.cpp:3498,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3501,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3502,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3504,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3504,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3505,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key.cpp:3506,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3507,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi-key.cpp:3507,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3508,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:3508,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3509,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3510,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3513,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi-key.cpp:3513,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3514,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3514,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3516,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi-key.cpp:3516,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3517,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3517,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3518,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3521,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3521,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3522,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3522,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3523,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3523,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3525,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3526,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3527,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3527,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3528,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi-key.cpp:3528,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3529,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:3529,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3530,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3531,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3533,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi-key.cpp:3533,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3534,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3534,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3536,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi-key.cpp:3536,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3537,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3537,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3538,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3541,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3541,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3542,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3542,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3543,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3543,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3545,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3546,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3547,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3547,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3548,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi-key.cpp:3548,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3549,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:3549,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3550,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3551,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3553,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi-key.cpp:3553,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3554,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3554,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3556,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi-key.cpp:3556,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3557,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3557,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3558,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3561,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3561,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3562,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3562,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3563,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3563,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3565,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3566,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3567,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3567,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3568,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi-key.cpp:3568,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3569,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:3569,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3570,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3571,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3573,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi-key.cpp:3573,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3574,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3574,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3576,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi-key.cpp:3576,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3577,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3577,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3578,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3581
      start: 3491
    functionDepth: 1
    functionLinenumber: 3491
    functionLinenumberEnd: 3581
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - rnp_input_from_path
    - rnp_input_destroy
    - assert_true
    - assert_int_equal
    - rnp_op_verify_signature_get_status
    - rnp_op_verify_create
    - rnp_ffi_destroy
    - assert_rnp_success
    - rnp_op_verify_destroy
    - load_keys_gpg
    - rnp_ffi_set_pass_provider
    - rnp_op_verify_get_signature_at
    - rnp_unload_keys
    - import_pub_keys
    - rnp_ffi_create
    - rnp_output_to_null
    - rnp_output_destroy
    - rnp_op_verify_execute
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_stripped_keys_import)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3586,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:3586,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3590,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3591,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3593,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3593,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3595,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3596,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3600,1
    - Dst: check_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3601,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3602,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3603,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3608,1
    - Dst: check_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3608,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3610,1
    - Dst: check_key_status
      Src: /src/rnp/src/tests/ffi-key.cpp:3611,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3615,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3615,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3617,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3617,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3618,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3620,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/tests/ffi-key.cpp:3620,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3621,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3622,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3623,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/tests/ffi-key.cpp:3623,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3624,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3625,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3626,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3629,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3630,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3631,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3631,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3633,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3634,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3637,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3638,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3639,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3639,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3640,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3641,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3642,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3643,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3643,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3644,1
    - Dst: rnp_key_get_revocation_reason
      Src: /src/rnp/src/tests/ffi-key.cpp:3644,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3645,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3646,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3648,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/ffi-key.cpp:3648,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3649,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3650,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3651,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3651,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3654,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3655,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3656,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3656,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3657,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3658,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3659,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3660,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3660,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3661,1
    - Dst: rnp_key_get_revocation_reason
      Src: /src/rnp/src/tests/ffi-key.cpp:3661,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3663,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/ffi-key.cpp:3663,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:3664,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3665,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3666,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3666,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3667,1
    - Dst: rnp_key_get_revocation_reason
      Src: /src/rnp/src/tests/ffi-key.cpp:3667,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3668,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3669,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3671,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/ffi-key.cpp:3671,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3672,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3673,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3676,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3677,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3678,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3678,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3679,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3680,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3681,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3683,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3683,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3684,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3685,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3685,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3686,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3686,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3687,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3689,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:3689,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3691,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi-key.cpp:3691,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3692,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3693,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3695,1
    - Dst: rnp_key_get_primary_fprint
      Src: /src/rnp/src/tests/ffi-key.cpp:3695,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3696,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3697,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3698,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3699,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:3699,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3700,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi-key.cpp:3700,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3701,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3702,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3703,1
    - Dst: rnp_key_get_primary_fprint
      Src: /src/rnp/src/tests/ffi-key.cpp:3703,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3704,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3705,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3706,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3707,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3707,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3708,1
    - Dst: rnp_key_get_primary_fprint
      Src: /src/rnp/src/tests/ffi-key.cpp:3708,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3709,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3710,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3711,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3712,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3712,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3713,1
    - Dst: rnp_key_get_primary_fprint
      Src: /src/rnp/src/tests/ffi-key.cpp:3713,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3714,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3715,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3716,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3717,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3720,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3720,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3721,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3721,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3722,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3723,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3723,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3724,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3724,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3725,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3726,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:3726,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3727,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi-key.cpp:3727,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3728,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3729,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3730,1
    - Dst: rnp_key_get_primary_fprint
      Src: /src/rnp/src/tests/ffi-key.cpp:3730,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3731,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3732,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3733,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3734,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:3734,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3735,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi-key.cpp:3735,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3736,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3737,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3738,1
    - Dst: rnp_key_get_primary_fprint
      Src: /src/rnp/src/tests/ffi-key.cpp:3738,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3739,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3740,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3741,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3742,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3744,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3744,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3745,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3745,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3746,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3747,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3751,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3751,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3752,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3752,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3754,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:3754,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3755,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3756,1
    - Dst: rnp_key_handle_t::pub::valid
      Src: /src/rnp/src/tests/ffi-key.cpp:3756,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3757,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3758,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3758,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3759,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:3759,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3760,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3761,1
    - Dst: rnp_key_handle_t::pub::valid
      Src: /src/rnp/src/tests/ffi-key.cpp:3761,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3762,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3765,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3765,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3766,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3766,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3767,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:3767,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3768,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3769,1
    - Dst: rnp_key_handle_t::pub::valid
      Src: /src/rnp/src/tests/ffi-key.cpp:3769,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3771,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key.cpp:3771,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3772,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3774,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi-key.cpp:3774,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3775,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3777,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3778,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3778,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3779,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:3779,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3780,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3781,1
    - Dst: rnp_key_handle_t::pub::valid
      Src: /src/rnp/src/tests/ffi-key.cpp:3781,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3782,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key.cpp:3782,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3783,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3784,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi-key.cpp:3784,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3785,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3786,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3789,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3789,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3790,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3790,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3791,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3791,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3792,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:3792,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3793,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3794,1
    - Dst: rnp_key_handle_t::pub::valid
      Src: /src/rnp/src/tests/ffi-key.cpp:3794,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3795,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key.cpp:3795,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3796,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3797,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key.cpp:3797,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3798,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3799,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/tests/ffi-key.cpp:3799,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3800,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3801,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3802,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3802,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3803,1
    - Dst: rnp_key_handle_t::pub::valid
      Src: /src/rnp/src/tests/ffi-key.cpp:3803,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3805,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/ffi-key.cpp:3805,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3806,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3807,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 171
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3810
      start: 3583
    functionDepth: 3
    functionLinenumber: 3583
    functionLinenumberEnd: 3810
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_key_get_subkey_at
    - rnp_key_is_valid
    - assert_string_equal
    - rnp_key_valid_till
    - rnp_key_get_keyid
    - rnp_input_from_path
    - assert_true
    - rnp_key_get_expiration
    - assert_null
    - assert_rnp_success
    - rnp_key_get_subkey_count
    - rnp_key_handle_destroy
    - rnp_key_is_revoked
    - rnp_locate_key
    - assert_int_equal
    - check_import_keys
    - rnp_ffi_destroy
    - rnp_import_keys
    - rnp_key_get_primary_fprint
    - import_pub_keys
    - rnp_ffi_create
    - rnp_key_valid_till64
    - check_key_status
    - rnp_get_public_key_count
    - rnp_input_destroy
    - rnp_key_get_uid_count
    - rnp_buffer_destroy
    - rnp_key_handle_t::pub::valid
    - rnp_key_get_uid_at
    - rnp_key_get_revocation_reason
    - assert_false
    - rnp_unload_keys
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_import_edge_cases)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3818,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:3818,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3821,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3821,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3824,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3824,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3825,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3827,1
    - Dst: rnp_key_is_expired
      Src: /src/rnp/src/tests/ffi-key.cpp:3827,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3828,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3829,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3834,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-key.cpp:3834,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3835,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3835,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3837,1
    - Dst: rnp_op_sign_create
      Src: /src/rnp/src/tests/ffi-key.cpp:3837,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3838,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3838,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3839,1
    - Dst: rnp_op_sign_add_signature
      Src: /src/rnp/src/tests/ffi-key.cpp:3839,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3840,1
    - Dst: rnp_op_sign_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3841,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3842,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3843,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3846,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3846,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3848,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3848,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3849,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3851,1
    - Dst: rnp_key_is_expired
      Src: /src/rnp/src/tests/ffi-key.cpp:3851,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:3852,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3854,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:3854,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3855,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3856,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3859,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-key.cpp:3859,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3860,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi-key.cpp:3860,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3861,1
    - Dst: rnp_op_sign_create
      Src: /src/rnp/src/tests/ffi-key.cpp:3861,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3862,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3862,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3863,1
    - Dst: rnp_op_sign_add_signature
      Src: /src/rnp/src/tests/ffi-key.cpp:3863,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3864,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3865,1
    - Dst: rnp_op_sign_execute
      Src: /src/rnp/src/tests/ffi-key.cpp:3865,1
    - Dst: rnp_op_sign_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3866,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3867,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3868,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3871
      start: 3812
    functionDepth: 1
    functionLinenumber: 3812
    functionLinenumberEnd: 3871
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_op_sign_destroy
    - rnp_key_is_valid
    - assert_true
    - assert_rnp_success
    - rnp_op_sign_create
    - rnp_key_handle_destroy
    - rnp_op_sign_add_signature
    - rnp_locate_key
    - rnp_input_from_memory
    - assert_int_equal
    - rnp_ffi_destroy
    - import_pub_keys
    - rnp_ffi_create
    - rnp_input_destroy
    - rnp_key_is_expired
    - assert_false
    - import_sec_keys
    - rnp_op_sign_execute
    - rnp_output_to_null
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_sec_key_expiry_update_via_pub_import)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3876,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:3876,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3880,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3881,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3882,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3882,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3884,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3886,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3886,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3888,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:3888,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3889,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3891,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:3891,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3892,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3894,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key.cpp:3894,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3895,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3896,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:3897,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key.cpp:3897,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3899,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3899,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3900,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3903,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:3903,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3905,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi-key.cpp:3905,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3906,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3907,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3909,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:3909,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3910,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3912,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:3912,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3913,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3914,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key.cpp:3914,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3915,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3916,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3917,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key.cpp:3917,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3918,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:3918,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:3919,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3920,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3922,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:3922,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3923,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi-key.cpp:3923,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3924,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3925,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3927,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:3927,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3928,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3930,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:3930,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3931,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3932,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key.cpp:3932,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3933,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3934,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3935,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key.cpp:3935,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3936,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:3936,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:3937,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3938,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3939,1
    - Dst: reload_keyrings
      Src: /src/rnp/src/tests/ffi-key.cpp:3942,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3945,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3945,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3947,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:3947,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3948,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3950,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:3950,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3951,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3952,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key.cpp:3952,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3953,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3954,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3956,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:3956,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3957,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3960,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:3960,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3962,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi-key.cpp:3962,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3963,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3964,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3966,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:3966,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3967,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3969,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:3969,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3970,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3971,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key.cpp:3971,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3972,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3973,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3974,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3976,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:3976,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3977,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi-key.cpp:3977,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3978,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3979,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3981,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:3981,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3982,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3984,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:3984,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:3985,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3986,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key.cpp:3986,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:3987,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3988,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3989,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3990,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3993,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3993,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3994,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:3995,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3996,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:3996,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:3998,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:3999,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:3999,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4001,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:4001,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4002,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4004,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:4004,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4005,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4006,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key.cpp:4006,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4007,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4008,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:4009,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key.cpp:4009,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4011,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4011,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4012,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4014,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4014,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4016,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:4016,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4017,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4019,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:4019,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4020,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4021,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key.cpp:4021,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4022,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4023,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4024,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4026,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4026,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4028,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:4028,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4029,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4031,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:4031,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4032,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4033,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key.cpp:4033,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4034,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4035,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4036,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4037,1
    - Dst: reload_keyrings
      Src: /src/rnp/src/tests/ffi-key.cpp:4040,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4043,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4043,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4045,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:4045,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4046,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4048,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key.cpp:4048,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4049,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4050,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4051,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4051,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4052,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4053,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4056,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4056,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4057,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:4058,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4059,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4059,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4061,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4062,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4062,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4064,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:4064,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4065,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4067,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:4067,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4068,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4069,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key.cpp:4069,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4070,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4071,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:4072,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key.cpp:4072,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4073,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4076,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4076,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4077,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:4078,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4079,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4079,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4081,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4082,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4082,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4084,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:4084,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4085,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4087,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:4087,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4088,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4089,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key.cpp:4089,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4090,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4091,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:4092,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key.cpp:4092,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4094,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4094,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4095,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4096,1
    - Dst: reload_keyrings
      Src: /src/rnp/src/tests/ffi-key.cpp:4099,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4102,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4102,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4104,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:4104,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4105,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4107,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key.cpp:4107,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4108,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4109,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4110,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4110,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4111,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4112,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4115,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4115,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4116,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:4117,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4118,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4118,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4120,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4121,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4121,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4123,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:4123,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4124,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4126,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key.cpp:4126,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4127,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4128,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key.cpp:4128,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4129,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4130,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:4131,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key.cpp:4131,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4133,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4133,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4134,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4135,1
    - Dst: reload_keyrings
      Src: /src/rnp/src/tests/ffi-key.cpp:4138,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4141,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4141,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4143,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key.cpp:4143,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4144,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4146,1
    - Dst: rnp_key_get_protection_type
      Src: /src/rnp/src/tests/ffi-key.cpp:4146,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4147,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4148,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4149,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4149,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4150,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4151,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 232
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4154
      start: 3873
    functionDepth: 1
    functionLinenumber: 3873
    functionLinenumberEnd: 4154
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - rnp_key_get_subkey_at
    - assert_rnp_failure
    - assert_string_equal
    - rnp_key_get_keyid
    - rnp_input_from_path
    - assert_true
    - assert_rnp_success
    - rnp_key_get_subkey_count
    - rnp_key_handle_destroy
    - rnp_locate_key
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_key_get_protection_type
    - rnp_import_keys
    - rnp_key_unlock
    - rnp_ffi_create
    - rnp_input_destroy
    - reload_keyrings
    - rnp_key_have_secret
    - rnp_buffer_destroy
    - assert_false
    - rnp_unload_keys
    - rnp_key_is_locked
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_import_gpg_s2k)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:4164,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-key.cpp:4168,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4171,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4175,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4179,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4184,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/ffi-key.cpp:4184,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4188,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/ffi-key.cpp:4188,1
    - Dst: rnp_key_handle_t::pub::valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4191,1
    - Dst: rnp_key_handle_t::pub::valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4191,1
    - Dst: rnp_key_handle_t::pub::sig_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4194,1
    - Dst: rnp_key_handle_t::pub::sig_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4194,1
    - Dst: rnp_key_handle_t::pub::can_sign
      Src: /src/rnp/src/tests/ffi-key.cpp:4197,1
    - Dst: rnp_key_handle_t::pub::can_encrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4197,1
    - Dst: rnp_key_handle_t::pub::uid_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4200,1
    - Dst: rnp_key_handle_t::pub::get_uid
      Src: /src/rnp/src/tests/ffi-key.cpp:4200,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4203,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4204,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4205,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 38
    argCount: 4
    argNames:
    - memout
    - keyid
    - subid
    - uid
    argTypes:
    - rnp_output_t
    - std::string
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4207
      start: 4156
    functionDepth: 1
    functionLinenumber: 4156
    functionLinenumberEnd: 4207
    functionName: check_key_autocrypt
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - rnp_locate_key
    - rnp_output_memory_get_buf
    - rnp_key_handle_t::pub::can_encrypt
    - import_all_keys
    - rnp_key_handle_t::pub::get_uid
    - rnp_ffi_destroy
    - std::string::c_str
    - rnp_key_handle_t::pub::valid
    - rnp_key_handle_t::pub::can_sign
    - rnp_key_handle_destroy
    - rnp_ffi_create
    - rnp_key_handle_t::pub::sig_count
    - rnp_get_secret_key_count
    - rnp_get_public_key_count
    - rnp_key_handle_t::pub::uid_count
    linkageType: ''
    returnType: bool
    signature: "bool check_key_autocrypt(rnp_output_t       memout,\n                    const
      std::string &keyid,\n                    const std::string &subid,\n                    const
      std::string &uid,\n                    bool               base64 = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_ffi_init
      Src: /src/rnp/src/tests/ffi-key.cpp:4212,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4215,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4215,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4217,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4217,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:4220,1
    - Dst: rnp_key_export_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4220,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4222,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-key.cpp:4222,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:4223,1
    - Dst: rnp_key_export_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4223,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:4224,1
    - Dst: rnp_key_export_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4224,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:4225,1
    - Dst: rnp_key_export_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4225,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:4226,1
    - Dst: rnp_key_export_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4226,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:4227,1
    - Dst: rnp_key_export_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4227,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:4228,1
    - Dst: rnp_key_export_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4228,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:4229,1
    - Dst: rnp_key_export_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4229,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4230,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4233,1
    - Dst: rnp_key_export_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4233,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4234,1
    - Dst: check_key_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4235,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4236,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4239,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4240,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4240,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4241,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-key.cpp:4241,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:4242,1
    - Dst: rnp_key_export_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4242,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4243,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4244,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4247,1
    - Dst: rnp_key_export_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4247,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4248,1
    - Dst: check_key_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4249,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4250,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4253,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-key.cpp:4253,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4254,1
    - Dst: rnp_key_export_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4255,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4260,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-key.cpp:4260,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4265,1
    - Dst: regcomp
      Src: /src/rnp/src/tests/ffi-key.cpp:4265,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/ffi-key.cpp:4265,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4266,1
    - Dst: regexec
      Src: /src/rnp/src/tests/ffi-key.cpp:4266,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/ffi-key.cpp:4266,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4270,1
    - Dst: std::regex_search
      Src: /src/rnp/src/tests/ffi-key.cpp:4270,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:4273,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4273,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4275,1
    - Dst: check_key_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4276,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4277,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4280,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4280,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:4281,1
    - Dst: rnp_key_remove
      Src: /src/rnp/src/tests/ffi-key.cpp:4281,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4282,1
    - Dst: rnp_key_remove
      Src: /src/rnp/src/tests/ffi-key.cpp:4282,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4283,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4284,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-key.cpp:4284,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4285,1
    - Dst: rnp_key_export_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4285,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4286,1
    - Dst: check_key_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4287,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4288,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4289,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4292,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4292,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4293,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4293,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4294,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4294,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4295,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-key.cpp:4295,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4296,1
    - Dst: rnp_key_export_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4296,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4298,1
    - Dst: check_key_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4298,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4302,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4303,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4306,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4306,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4307,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4307,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4308,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4308,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4309,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-key.cpp:4309,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4310,1
    - Dst: rnp_key_export_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4310,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4311,1
    - Dst: check_key_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4311,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4313,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4314,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4317,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4317,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4318,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4318,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4319,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4319,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4320,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4320,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4321,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-key.cpp:4321,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:4322,1
    - Dst: rnp_key_export_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4322,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4323,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:4324,1
    - Dst: rnp_key_export_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4324,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4325,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4326,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4327,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4328,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4331,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4331,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4332,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4332,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4333,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4333,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4334,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-key.cpp:4334,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:4335,1
    - Dst: rnp_key_export_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4335,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4336,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4337,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4338,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4341,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4341,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4342,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4342,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4343,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4343,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4344,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-key.cpp:4344,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4345,1
    - Dst: rnp_key_export_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4345,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4346,1
    - Dst: check_key_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4346,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4348,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4349,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4352,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4352,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4354,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4354,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4356,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4356,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4358,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4358,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4359,1
    - Dst: rnp_key_handle_t::pub::sig_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4359,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4360,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-key.cpp:4360,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4361,1
    - Dst: rnp_key_export_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4361,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4362,1
    - Dst: check_key_autocrypt
      Src: /src/rnp/src/tests/ffi-key.cpp:4362,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4364,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4365,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 99
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4368
      start: 4209
    functionDepth: 2
    functionLinenumber: 4209
    functionLinenumberEnd: 4368
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_memory_get_buf
    - assert_rnp_failure
    - std::regex_search
    - rnp_key_remove
    - assert_true
    - import_all_keys
    - assert_rnp_success
    - check_key_autocrypt
    - rnp_key_handle_destroy
    - test_ffi_init
    - rnp_locate_key
    - rnp_output_to_memory
    - assert_int_equal
    - rnp_ffi_destroy
    - std::string::c_str
    - regexec
    - import_pub_keys
    - rnp_key_export_autocrypt
    - regcomp
    - assert_false
    - rnp_unload_keys
    - rnp_key_handle_t::pub::sig_count
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_export_autocrypt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4373,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:4373,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4376,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:4377,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:4379,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4379,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4380,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4382,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:4383,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4384,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4385,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4386,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4388,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4388,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4389,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4391,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4391,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4392,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:4393,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4394,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4395,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4396,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4398,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4398,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4399,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4401,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4401,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4402,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:4403,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4404,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4405,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4406,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4408,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4408,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4409,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4411,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4411,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4412,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:4413,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:4414,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4415,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4416,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4418,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4418,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4419,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4421,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:4422,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4423,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4424,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4425,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4427,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4427,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4428,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4430,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4430,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4431,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key.cpp:4432,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4433,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4434,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4435,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4437,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4437,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4438,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4441
      start: 4370
    functionDepth: 1
    functionLinenumber: 4370
    functionLinenumberEnd: 4441
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - rnp_input_from_path
    - assert_rnp_failure
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_import_keys
    - assert_rnp_success
    - rnp_unload_keys
    - rnp_ffi_create
    - rnp_get_public_key_count
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_keys_import_autocrypt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4446,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:4446,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4460,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-key.cpp:4460,1
    - Dst: strlen
      Src: /src/rnp/src/tests/ffi-key.cpp:4460,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4461,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4461,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4462,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4464,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4464,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4465,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4467
      start: 4443
    functionDepth: 1
    functionLinenumber: 4443
    functionLinenumberEnd: 4467
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - rnp_input_from_memory
    - assert_int_equal
    - rnp_ffi_destroy
    - assert_rnp_success
    - strlen
    - rnp_load_keys
    - rnp_ffi_create
    - rnp_get_public_key_count
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_keys_load_armored_spaces)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_signature_get_keyid
      Src: /src/rnp/src/tests/ffi-key.cpp:4475,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/ffi-key.cpp:4479,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - keyid
    - sig
    argTypes:
    - char*
    - rnp_signature_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4482
      start: 4471
    functionDepth: 1
    functionLinenumber: 4471
    functionLinenumberEnd: 4482
    functionName: is_self_signature
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    - rnp_signature_get_keyid
    - rnp_buffer_destroy
    linkageType: ''
    returnType: bool
    signature: bool is_self_signature(const char *keyid, rnp_signature_handle_t sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_signature_get_hash_alg
      Src: /src/rnp/src/tests/ffi-key.cpp:4489,1
    - Dst: rnp_signature_get_creation
      Src: /src/rnp/src/tests/ffi-key.cpp:4490,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/tests/ffi-key.cpp:4494,1
    - Dst: printf
      Src: /src/rnp/src/tests/ffi-key.cpp:4497,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4500,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ffi
    - sig
    argTypes:
    - rnp_ffi_t
    - rnp_signature_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4502
      start: 4484
    functionDepth: 1
    functionLinenumber: 4484
    functionLinenumberEnd: 4502
    functionName: is_weak_signature
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - rnp_buffer_destroy
    - rnp_signature_get_creation
    - printf
    - rnp_signature_get_hash_alg
    - rnp_get_security_rule
    linkageType: ''
    returnType: bool
    signature: bool is_weak_signature(rnp_ffi_t ffi, rnp_signature_handle_t sig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp_uid_get_type
      Src: /src/rnp/src/tests/ffi-key.cpp:4508,1
    - Dst: rnp_uid_get_data
      Src: /src/rnp/src/tests/ffi-key.cpp:4513,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4515,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - uid
    argTypes:
    - rnp_uid_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4523
      start: 4504
    functionDepth: 1
    functionLinenumber: 4504
    functionLinenumberEnd: 4523
    functionName: get_uid_str
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - rnp_uid_get_data
    - rnp_buffer_destroy
    - rnp_uid_get_type
    linkageType: ''
    returnType: std::string
    signature: std::string get_uid_str(rnp_uid_handle_t uid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi-key.cpp:4529,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4531,1
    - Dst: printf
      Src: /src/rnp/src/tests/ffi-key.cpp:4532,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4537,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key.cpp:4540,1
    - Dst: is_self_signature
      Src: /src/rnp/src/tests/ffi-key.cpp:4541,1
    - Dst: is_weak_signature
      Src: /src/rnp/src/tests/ffi-key.cpp:4541,1
    - Dst: printf
      Src: /src/rnp/src/tests/ffi-key.cpp:4542,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4545,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4549,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key.cpp:4552,1
    - Dst: rnp_uid_get_signature_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4554,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key.cpp:4557,1
    - Dst: is_self_signature
      Src: /src/rnp/src/tests/ffi-key.cpp:4558,1
    - Dst: is_weak_signature
      Src: /src/rnp/src/tests/ffi-key.cpp:4558,1
    - Dst: get_uid_str
      Src: /src/rnp/src/tests/ffi-key.cpp:4559,1
    - Dst: printf
      Src: /src/rnp/src/tests/ffi-key.cpp:4560,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/ffi-key.cpp:4561,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4566,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4568,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4572,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:4575,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4577,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key.cpp:4580,1
    - Dst: is_self_signature
      Src: /src/rnp/src/tests/ffi-key.cpp:4581,1
    - Dst: is_weak_signature
      Src: /src/rnp/src/tests/ffi-key.cpp:4581,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi-key.cpp:4583,1
    - Dst: printf
      Src: /src/rnp/src/tests/ffi-key.cpp:4584,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4589,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4591,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4593,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4595,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 2
    argNames:
    - ffi
    - key
    argTypes:
    - rnp_ffi_t
    - rnp_key_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4597
      start: 4525
    functionDepth: 2
    functionLinenumber: 4525
    functionLinenumberEnd: 4597
    functionName: key_weak_self_signatures_count
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - rnp_key_get_subkey_at
    - rnp_key_get_uid_handle_at
    - rnp_key_is_valid
    - rnp_key_get_keyid
    - auto::c_str
    - rnp_key_get_subkey_count
    - rnp_key_handle_destroy
    - rnp_uid_get_signature_at
    - printf
    - rnp_uid_handle_destroy
    - rnp_key_get_signature_count
    - rnp_key_get_signature_at
    - rnp_signature_handle_destroy
    - rnp_key_get_uid_count
    - rnp_buffer_destroy
    - get_uid_str
    - rnp_uid_get_signature_count
    - is_weak_signature
    - is_self_signature
    linkageType: ''
    returnType: size_t
    signature: size_t key_weak_self_signatures_count(rnp_ffi_t ffi, rnp_key_handle_t
      key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4602,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:4602,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4604,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4604,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4606,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4606,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4609,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4609,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4610,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4613,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4613,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4614,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4616,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key.cpp:4616,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4617,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4617,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4618,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4619,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4621,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4621,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4622,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4624,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:4624,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4625,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4625,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4626,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4628,1
    - Dst: key_weak_self_signatures_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4628,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4629,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4630,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4631,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4631,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:4634,1
    - Dst: rnp_set_timestamp
      Src: /src/rnp/src/tests/ffi-key.cpp:4634,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4635,1
    - Dst: rnp_set_timestamp
      Src: /src/rnp/src/tests/ffi-key.cpp:4635,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4636,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4636,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4637,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4637,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4639,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4639,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:4640,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4642,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4642,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4643,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4644,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key.cpp:4644,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4645,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4645,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:4646,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4647,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4649,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4649,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4650,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4651,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:4651,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4652,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4652,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:4653,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4655,1
    - Dst: key_weak_self_signatures_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4655,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4656,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4657,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4658,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4658,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4660,1
    - Dst: rnp_add_security_rule
      Src: /src/rnp/src/tests/ffi-key.cpp:4660,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4667,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4667,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4668,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4668,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4670,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4670,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4671,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4673,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key.cpp:4673,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4674,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4674,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4675,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4676,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4678,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:4678,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4679,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4679,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4680,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4682,1
    - Dst: key_weak_self_signatures_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4682,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4683,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4684,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4687,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4687,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4688,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4688,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4690,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4690,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:4691,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4693,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key.cpp:4693,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4694,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4694,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:4695,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4696,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4698,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key.cpp:4698,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4699,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4699,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:4700,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4702,1
    - Dst: key_weak_self_signatures_count
      Src: /src/rnp/src/tests/ffi-key.cpp:4702,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4703,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4704,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 72
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4707
      start: 4599
    functionDepth: 3
    functionLinenumber: 4599
    functionLinenumberEnd: 4707
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - rnp_key_get_subkey_at
    - assert_rnp_failure
    - rnp_key_get_uid_handle_at
    - rnp_key_is_valid
    - rnp_set_timestamp
    - assert_true
    - assert_rnp_success
    - rnp_key_get_subkey_count
    - rnp_key_handle_destroy
    - rnp_add_security_rule
    - rnp_locate_key
    - key_weak_self_signatures_count
    - rnp_uid_handle_destroy
    - assert_int_equal
    - rnp_uid_is_valid
    - rnp_ffi_destroy
    - import_pub_keys
    - rnp_ffi_create
    - rnp_key_get_uid_count
    - assert_false
    - rnp_unload_keys
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_sha1_self_signatures)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4712,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:4712,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4714,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-key.cpp:4715,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4718,1
    - Dst: rnp_identifier_iterator_create
      Src: /src/rnp/src/tests/ffi-key.cpp:4718,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:4719,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4723,1
    - Dst: rnp_identifier_iterator_next
      Src: /src/rnp/src/tests/ffi-key.cpp:4723,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4728,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4728,1
    - Dst: cast5_enabled
      Src: /src/rnp/src/tests/ffi-key.cpp:4729,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4730,1
    - Dst: rnp_key_unprotect
      Src: /src/rnp/src/tests/ffi-key.cpp:4730,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4731,1
    - Dst: rnp_key_protect
      Src: /src/rnp/src/tests/ffi-key.cpp:4731,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:4733,1
    - Dst: rnp_key_unprotect
      Src: /src/rnp/src/tests/ffi-key.cpp:4733,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4735,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4737,1
    - Dst: rnp_identifier_iterator_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4737,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4739,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4739,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4740,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-key.cpp:4741,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4742,1
    - Dst: rnp_identifier_iterator_create
      Src: /src/rnp/src/tests/ffi-key.cpp:4742,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:4743,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4746,1
    - Dst: rnp_identifier_iterator_next
      Src: /src/rnp/src/tests/ffi-key.cpp:4746,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4751,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4751,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4752,1
    - Dst: rnp_key_unprotect
      Src: /src/rnp/src/tests/ffi-key.cpp:4752,1
    - Dst: cast5_enabled
      Src: /src/rnp/src/tests/ffi-key.cpp:4753,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4754,1
    - Dst: rnp_key_protect
      Src: /src/rnp/src/tests/ffi-key.cpp:4754,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4756,1
    - Dst: rnp_key_protect
      Src: /src/rnp/src/tests/ffi-key.cpp:4756,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4758,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4760,1
    - Dst: rnp_identifier_iterator_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4760,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4761,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4762
      start: 4709
    functionDepth: 1
    functionLinenumber: 4709
    functionLinenumberEnd: 4762
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_identifier_iterator_create
    - rnp_locate_key
    - rnp_identifier_iterator_next
    - assert_rnp_failure
    - assert_true
    - rnp_key_unprotect
    - rnp_ffi_destroy
    - assert_rnp_success
    - load_keys_gpg
    - rnp_key_handle_destroy
    - rnp_unload_keys
    - cast5_enabled
    - rnp_ffi_create
    - rnp_key_protect
    - rnp_identifier_iterator_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_reprotect_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4767,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:4767,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4769,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4769,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4771,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4772,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4776,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4776,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4777,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4777,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4778,1
    - Dst: check_sub_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4778,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4779,1
    - Dst: check_key_grip
      Src: /src/rnp/src/tests/ffi-key.cpp:4779,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4780,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4782,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4782,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4783,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4783,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4784,1
    - Dst: check_key_fp
      Src: /src/rnp/src/tests/ffi-key.cpp:4785,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4786,1
    - Dst: check_key_grip
      Src: /src/rnp/src/tests/ffi-key.cpp:4786,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4787,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4790,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4790,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4791,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4791,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4792,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4792,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4795,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4795,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4797,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4798,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4802,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4802,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4803,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4803,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4804,1
    - Dst: check_sub_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4804,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4805,1
    - Dst: check_key_grip
      Src: /src/rnp/src/tests/ffi-key.cpp:4805,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4806,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4808,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4808,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4809,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4809,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4810,1
    - Dst: check_key_fp
      Src: /src/rnp/src/tests/ffi-key.cpp:4811,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4812,1
    - Dst: check_key_grip
      Src: /src/rnp/src/tests/ffi-key.cpp:4812,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4813,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4815,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4815,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4816,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4816,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4817,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4817,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4820,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4820,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4822,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4823,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4827,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4827,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4828,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4828,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4829,1
    - Dst: check_sub_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4829,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4830,1
    - Dst: check_key_grip
      Src: /src/rnp/src/tests/ffi-key.cpp:4830,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4831,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4833,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4833,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4834,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4834,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4835,1
    - Dst: check_key_fp
      Src: /src/rnp/src/tests/ffi-key.cpp:4836,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4837,1
    - Dst: check_key_grip
      Src: /src/rnp/src/tests/ffi-key.cpp:4837,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4838,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4840,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4840,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4841,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4841,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4842,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4842,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:4846,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4846,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:4847,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4847,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4851,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4851,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4853,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4854,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4858,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4858,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4859,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4859,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4860,1
    - Dst: check_sub_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4860,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4861,1
    - Dst: check_key_grip
      Src: /src/rnp/src/tests/ffi-key.cpp:4861,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4862,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4864,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4864,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4865,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4865,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4866,1
    - Dst: check_key_fp
      Src: /src/rnp/src/tests/ffi-key.cpp:4867,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4868,1
    - Dst: check_key_grip
      Src: /src/rnp/src/tests/ffi-key.cpp:4868,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4869,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4871,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4871,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4872,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4872,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4873,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4873,1
    - Dst: reload_keyrings
      Src: /src/rnp/src/tests/ffi-key.cpp:4875,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4877,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4877,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4878,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4878,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4880,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4880,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4881,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4881,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4883,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4883,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4884,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4884,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4886,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4886,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4887,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4887,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4889,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4890
      start: 4764
    functionDepth: 1
    functionLinenumber: 4764
    functionLinenumberEnd: 4890
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - rnp_locate_key
    - check_key_fp
    - reload_keyrings
    - check_key_valid
    - assert_true
    - rnp_ffi_destroy
    - assert_rnp_success
    - check_key_grip
    - check_uid_valid
    - rnp_key_handle_destroy
    - assert_false
    - import_sec_keys
    - import_pub_keys
    - rnp_ffi_create
    - check_has_key
    - check_sub_valid
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_v5_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4895,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:4895,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:4897,1
    - Dst: load_keys_kbx_g10
      Src: /src/rnp/src/tests/ffi-key.cpp:4897,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:4902,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4902,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:4903,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4903,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:4905,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4905,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:4906,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4906,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:4908,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4908,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:4909,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4909,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:4911,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4911,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key.cpp:4912,1
    - Dst: check_has_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4912,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4914,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4915
      start: 4892
    functionDepth: 1
    functionLinenumber: 4892
    functionLinenumberEnd: 4915
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - rnp_ffi_destroy
    - assert_rnp_success
    - assert_false
    - rnp_ffi_create
    - load_keys_kbx_g10
    - check_has_key
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_v5_keys_g23)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4920,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:4920,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4922,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4922,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4924,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4924,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4925,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key.cpp:4925,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4926,1
    - Dst: rnp_key_lock
      Src: /src/rnp/src/tests/ffi-key.cpp:4926,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4927,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4929,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4929,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4930,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key.cpp:4930,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4931,1
    - Dst: rnp_key_lock
      Src: /src/rnp/src/tests/ffi-key.cpp:4931,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4932,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4933,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4934
      start: 4917
    functionDepth: 1
    functionLinenumber: 4917
    functionLinenumberEnd: 4934
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - rnp_key_lock
    - rnp_locate_key
    - assert_true
    - rnp_ffi_destroy
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_key_unlock
    - import_sec_keys
    - rnp_ffi_create
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_v5_sec_keys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4943,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:4943,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4945,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-key.cpp:4945,1
    - Dst: path_for
      Src: /src/rnp/src/tests/ffi-key.cpp:4945,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4948,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4948,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:4949,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4950,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4950,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4951,1
    - Dst: check_key_revoked
      Src: /src/rnp/src/tests/ffi-key.cpp:4951,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4953,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key.cpp:4953,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4955,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key.cpp:4955,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4956,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4957,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4958,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4958,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:4961,1
    - Dst: rnp_signature_get_revoker
      Src: /src/rnp/src/tests/ffi-key.cpp:4961,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:4962,1
    - Dst: rnp_signature_get_revoker
      Src: /src/rnp/src/tests/ffi-key.cpp:4962,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4963,1
    - Dst: rnp_signature_get_revoker
      Src: /src/rnp/src/tests/ffi-key.cpp:4963,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4964,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/ffi-key.cpp:4964,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4965,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4966,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4968,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key.cpp:4968,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4969,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key.cpp:4969,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4970,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4971,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4972,1
    - Dst: rnp_signature_get_revoker
      Src: /src/rnp/src/tests/ffi-key.cpp:4972,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4973,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/ffi-key.cpp:4973,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4974,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4975,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4976,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4978,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-key.cpp:4978,1
    - Dst: path_for
      Src: /src/rnp/src/tests/ffi-key.cpp:4978,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4979,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4979,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key.cpp:4980,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4981,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4981,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4982,1
    - Dst: check_key_revoked
      Src: /src/rnp/src/tests/ffi-key.cpp:4982,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4983,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key.cpp:4983,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4984,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key.cpp:4984,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4985,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4986,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:4987,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4987,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4988,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4989,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4991,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4991,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4992,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4992,1
    - Dst: path_for
      Src: /src/rnp/src/tests/ffi-key.cpp:4992,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4993,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4993,1
    - Dst: path_for
      Src: /src/rnp/src/tests/ffi-key.cpp:4993,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4994,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:4994,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4995,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:4995,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:4996,1
    - Dst: check_key_revoked
      Src: /src/rnp/src/tests/ffi-key.cpp:4996,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:4997,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:4999,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:4999,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5000,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:5000,1
    - Dst: path_for
      Src: /src/rnp/src/tests/ffi-key.cpp:5000,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5001,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:5001,1
    - Dst: path_for
      Src: /src/rnp/src/tests/ffi-key.cpp:5001,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5002,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:5002,1
    - Dst: path_for
      Src: /src/rnp/src/tests/ffi-key.cpp:5002,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:5003,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:5003,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5004,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:5004,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5005,1
    - Dst: check_key_revoked
      Src: /src/rnp/src/tests/ffi-key.cpp:5005,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:5006,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key.cpp:5006,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:5007,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:5007,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:5008,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key.cpp:5008,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:5009,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:5010,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:5011,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:5012,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key.cpp:5012,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:5014,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:5014,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:5015,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key.cpp:5015,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:5016,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:5017,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:5018,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:5019,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5021,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:5021,1
    - Dst: path_for
      Src: /src/rnp/src/tests/ffi-key.cpp:5021,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:5022,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:5022,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5023,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:5023,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5024,1
    - Dst: check_key_revoked
      Src: /src/rnp/src/tests/ffi-key.cpp:5024,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:5025,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5027,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-key.cpp:5027,1
    - Dst: path_for
      Src: /src/rnp/src/tests/ffi-key.cpp:5027,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:5028,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:5028,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:5031,1
    - Dst: rnp_key_get_revoker_count
      Src: /src/rnp/src/tests/ffi-key.cpp:5031,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:5032,1
    - Dst: rnp_key_get_revoker_count
      Src: /src/rnp/src/tests/ffi-key.cpp:5032,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:5033,1
    - Dst: rnp_key_get_revoker_count
      Src: /src/rnp/src/tests/ffi-key.cpp:5033,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:5034,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:5035,1
    - Dst: rnp_key_get_revoker_at
      Src: /src/rnp/src/tests/ffi-key.cpp:5035,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:5036,1
    - Dst: rnp_key_get_revoker_at
      Src: /src/rnp/src/tests/ffi-key.cpp:5036,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:5037,1
    - Dst: rnp_key_get_revoker_at
      Src: /src/rnp/src/tests/ffi-key.cpp:5037,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key.cpp:5038,1
    - Dst: rnp_key_get_revoker_at
      Src: /src/rnp/src/tests/ffi-key.cpp:5038,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:5039,1
    - Dst: rnp_key_get_revoker_at
      Src: /src/rnp/src/tests/ffi-key.cpp:5039,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:5040,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:5041,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:5042,1
    - Dst: rnp_key_get_revoker_at
      Src: /src/rnp/src/tests/ffi-key.cpp:5042,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:5043,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:5044,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5046,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:5046,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5049,1
    - Dst: check_key_revoked
      Src: /src/rnp/src/tests/ffi-key.cpp:5049,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:5050,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5051,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-key.cpp:5051,1
    - Dst: path_for
      Src: /src/rnp/src/tests/ffi-key.cpp:5051,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:5052,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:5052,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5053,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:5053,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5054,1
    - Dst: check_key_revoked
      Src: /src/rnp/src/tests/ffi-key.cpp:5054,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:5056,1
    - Dst: rnp_key_get_revocation_reason
      Src: /src/rnp/src/tests/ffi-key.cpp:5056,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:5057,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:5058,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:5059,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:5061,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:5061,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5062,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-key.cpp:5062,1
    - Dst: path_for
      Src: /src/rnp/src/tests/ffi-key.cpp:5062,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5063,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-key.cpp:5063,1
    - Dst: path_for
      Src: /src/rnp/src/tests/ffi-key.cpp:5063,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:5064,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:5064,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5065,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:5065,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5066,1
    - Dst: check_key_revoked
      Src: /src/rnp/src/tests/ffi-key.cpp:5066,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:5067,1
    - Dst: rnp_key_get_revocation_reason
      Src: /src/rnp/src/tests/ffi-key.cpp:5067,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:5068,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:5069,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:5070,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:5072,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:5072,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5073,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-key.cpp:5073,1
    - Dst: path_for
      Src: /src/rnp/src/tests/ffi-key.cpp:5073,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5074,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:5074,1
    - Dst: path_for
      Src: /src/rnp/src/tests/ffi-key.cpp:5074,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:5075,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:5075,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5076,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:5076,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5077,1
    - Dst: check_key_revoked
      Src: /src/rnp/src/tests/ffi-key.cpp:5077,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:5078,1
    - Dst: rnp_key_get_revocation_reason
      Src: /src/rnp/src/tests/ffi-key.cpp:5078,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key.cpp:5079,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:5080,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:5081,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:5084,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 121
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5085
      start: 4936
    functionDepth: 1
    functionLinenumber: 4936
    functionLinenumberEnd: 5085
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - check_key_valid
    - assert_rnp_failure
    - assert_string_equal
    - rnp_signature_get_revoker
    - assert_true
    - assert_rnp_success
    - rnp_key_get_revoker_count
    - rnp_key_handle_destroy
    - rnp_signature_is_valid
    - rnp_signature_get_type
    - path_for
    - rnp_locate_key
    - assert_int_equal
    - rnp_ffi_destroy
    - import_pub_keys
    - rnp_ffi_create
    - rnp_key_get_signature_at
    - rnp_signature_handle_destroy
    - check_key_revoked
    - rnp_buffer_destroy
    - load_keys_gpg
    - strcmp
    - rnp_key_get_revocation_reason
    - rnp_unload_keys
    - rnp_key_get_revoker_at
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_designated_revokers)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:5090,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key.cpp:5090,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5092,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:5093,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:5095,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:5095,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5096,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:5096,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5097,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:5097,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:5098,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5101,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key.cpp:5102,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key.cpp:5104,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key.cpp:5104,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5105,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:5105,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key.cpp:5106,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key.cpp:5106,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:5107,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key.cpp:5109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5110
      start: 5087
    functionDepth: 1
    functionLinenumber: 5087
    functionLinenumberEnd: 5110
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key.cpp
    functionUses: 0
    functionsReached:
    - rnp_locate_key
    - check_key_valid
    - assert_true
    - rnp_ffi_destroy
    - assert_rnp_success
    - check_uid_valid
    - rnp_key_handle_destroy
    - import_pub_keys
    - rnp_ffi_create
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_armored_keys_extra_line)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/rnp/src/tests/rng-randomness.cpp:36,1
    - Dst: rng::get
      Src: /src/rnp/src/tests/rng-randomness.cpp:42,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/rng-randomness.cpp:47,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 53
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/rng-randomness.cpp
    functionUses: 0
    functionsReached:
    - rng::get
    - assert_int_not_equal
    - memset
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_rng_randomness)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stat
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 36
    functionName: WIFEXITED
    functionSourceFile: /src/rnp/src/tests/cli.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WIFEXITED(stat)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - stat
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 40
    functionName: WEXITSTATUS
    functionSourceFile: /src/rnp/src/tests/cli.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: WEXITSTATUS(stat)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/rnp/src/tests/cli.cpp:56,1
    - Dst: va_start
      Src: /src/rnp/src/tests/cli.cpp:63,1
    - Dst: va_arg
      Src: /src/rnp/src/tests/cli.cpp:66,1
    - Dst: va_end
      Src: /src/rnp/src/tests/cli.cpp:68,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/cli.cpp:72,1
    - Dst: rnp_main
      Src: /src/rnp/src/tests/cli.cpp:73,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/cli.cpp:74,1
    - Dst: rnpkeys_main
      Src: /src/rnp/src/tests/cli.cpp:75,1
    - Dst: free
      Src: /src/rnp/src/tests/cli.cpp:79,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 1
    argNames:
    - cmd
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 82
    functionName: call_rnp
    functionSourceFile: /src/rnp/src/tests/cli.cpp
    functionUses: 0
    functionsReached:
    - va_start
    - rnp_main
    - rnpkeys_main
    - strcmp
    - va_end
    - va_arg
    - free
    - calloc
    linkageType: ''
    returnType: int
    signature: int call_rnp(const char *cmd, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:95,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:103,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:104,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/tests/cli.cpp:104,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:107,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:108,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:109,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/cli.cpp:109,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:112,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:123,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:124,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/tests/cli.cpp:124,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:126,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:127,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:130,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/cli.cpp:131,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:132,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/cli.cpp:132,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:135,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:136,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:137,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/tests/cli.cpp:137,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:139,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:149,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:150,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/cli.cpp:150,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:153,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/cli.cpp:162,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cli.cpp:163,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/tests/cli.cpp:163,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:165,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:174,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:175,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/tests/cli.cpp:175,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:177,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/cli.cpp:187,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:189,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:199,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:200,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/cli.cpp:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 201
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cli.cpp
    functionUses: 0
    functionsReached:
    - assert_true
    - assert_int_equal
    - rnp_unlink
    - rnp_file_exists
    - assert_false
    - call_rnp
    - assert_int_not_equal
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_cli_rnp_keyfile)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:207,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/cli.cpp:218,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:223,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/cli.cpp:225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - userid
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 203
    functionDepth: 2
    functionLinenumber: 203
    functionLinenumberEnd: 227
    functionName: test_cli_g10_key_sign
    functionSourceFile: /src/rnp/src/tests/cli.cpp
    functionUses: 0
    functionsReached:
    - call_rnp
    - rnp_unlink
    linkageType: ''
    returnType: bool
    signature: bool test_cli_g10_key_sign(const char *userid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:234,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/cli.cpp:236,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:241,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/cli.cpp:251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - userid
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 229
    functionDepth: 2
    functionLinenumber: 229
    functionLinenumberEnd: 253
    functionName: test_cli_g10_key_encrypt
    functionSourceFile: /src/rnp/src/tests/cli.cpp
    functionUses: 0
    functionsReached:
    - call_rnp
    - rnp_unlink
    linkageType: ''
    returnType: bool
    signature: bool test_cli_g10_key_encrypt(const char *userid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:260,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:262,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:265,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:266,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:267,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/cli.cpp:267,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:270,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:271,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:274,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:284,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:285,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/cli.cpp:285,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:288,1
    - Dst: test_cli_g10_key_sign
      Src: /src/rnp/src/tests/cli.cpp:288,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:289,1
    - Dst: test_cli_g10_key_encrypt
      Src: /src/rnp/src/tests/cli.cpp:289,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cli.cpp:290,1
    - Dst: test_cli_g10_key_sign
      Src: /src/rnp/src/tests/cli.cpp:290,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:291,1
    - Dst: test_cli_g10_key_encrypt
      Src: /src/rnp/src/tests/cli.cpp:291,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:294,1
    - Dst: test_cli_g10_key_sign
      Src: /src/rnp/src/tests/cli.cpp:294,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:295,1
    - Dst: test_cli_g10_key_encrypt
      Src: /src/rnp/src/tests/cli.cpp:295,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cli.cpp:296,1
    - Dst: test_cli_g10_key_sign
      Src: /src/rnp/src/tests/cli.cpp:296,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:297,1
    - Dst: test_cli_g10_key_encrypt
      Src: /src/rnp/src/tests/cli.cpp:297,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:304,1
    - Dst: test_cli_g10_key_sign
      Src: /src/rnp/src/tests/cli.cpp:304,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:305,1
    - Dst: test_cli_g10_key_encrypt
      Src: /src/rnp/src/tests/cli.cpp:305,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cli.cpp:306,1
    - Dst: test_cli_g10_key_sign
      Src: /src/rnp/src/tests/cli.cpp:306,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:307,1
    - Dst: test_cli_g10_key_encrypt
      Src: /src/rnp/src/tests/cli.cpp:307,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:311,1
    - Dst: test_cli_g10_key_sign
      Src: /src/rnp/src/tests/cli.cpp:311,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cli.cpp:312,1
    - Dst: test_cli_g10_key_encrypt
      Src: /src/rnp/src/tests/cli.cpp:312,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:315,1
    - Dst: test_cli_g10_key_sign
      Src: /src/rnp/src/tests/cli.cpp:315,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:316,1
    - Dst: test_cli_g10_key_encrypt
      Src: /src/rnp/src/tests/cli.cpp:316,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cli.cpp:317,1
    - Dst: test_cli_g10_key_sign
      Src: /src/rnp/src/tests/cli.cpp:317,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:318,1
    - Dst: test_cli_g10_key_encrypt
      Src: /src/rnp/src/tests/cli.cpp:318,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:321,1
    - Dst: test_cli_g10_key_sign
      Src: /src/rnp/src/tests/cli.cpp:321,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:322,1
    - Dst: test_cli_g10_key_encrypt
      Src: /src/rnp/src/tests/cli.cpp:322,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cli.cpp:323,1
    - Dst: test_cli_g10_key_sign
      Src: /src/rnp/src/tests/cli.cpp:323,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:324,1
    - Dst: test_cli_g10_key_encrypt
      Src: /src/rnp/src/tests/cli.cpp:324,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:327,1
    - Dst: test_cli_g10_key_sign
      Src: /src/rnp/src/tests/cli.cpp:327,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:328,1
    - Dst: test_cli_g10_key_encrypt
      Src: /src/rnp/src/tests/cli.cpp:328,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cli.cpp:329,1
    - Dst: test_cli_g10_key_sign
      Src: /src/rnp/src/tests/cli.cpp:329,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:330,1
    - Dst: test_cli_g10_key_encrypt
      Src: /src/rnp/src/tests/cli.cpp:330,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:333,1
    - Dst: test_cli_g10_key_sign
      Src: /src/rnp/src/tests/cli.cpp:333,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:334,1
    - Dst: test_cli_g10_key_encrypt
      Src: /src/rnp/src/tests/cli.cpp:334,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cli.cpp:335,1
    - Dst: test_cli_g10_key_sign
      Src: /src/rnp/src/tests/cli.cpp:335,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:336,1
    - Dst: test_cli_g10_key_encrypt
      Src: /src/rnp/src/tests/cli.cpp:336,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:339,1
    - Dst: test_cli_g10_key_sign
      Src: /src/rnp/src/tests/cli.cpp:339,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/cli.cpp:339,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:340,1
    - Dst: test_cli_g10_key_encrypt
      Src: /src/rnp/src/tests/cli.cpp:340,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/cli.cpp:340,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cli.cpp:341,1
    - Dst: test_cli_g10_key_sign
      Src: /src/rnp/src/tests/cli.cpp:341,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:342,1
    - Dst: test_cli_g10_key_encrypt
      Src: /src/rnp/src/tests/cli.cpp:342,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/cli.cpp:342,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:345,1
    - Dst: test_cli_g10_key_sign
      Src: /src/rnp/src/tests/cli.cpp:345,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/cli.cpp:345,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:346,1
    - Dst: test_cli_g10_key_encrypt
      Src: /src/rnp/src/tests/cli.cpp:346,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/cli.cpp:346,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cli.cpp:347,1
    - Dst: test_cli_g10_key_sign
      Src: /src/rnp/src/tests/cli.cpp:347,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:348,1
    - Dst: test_cli_g10_key_encrypt
      Src: /src/rnp/src/tests/cli.cpp:348,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/cli.cpp:348,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:351,1
    - Dst: test_cli_g10_key_sign
      Src: /src/rnp/src/tests/cli.cpp:351,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/cli.cpp:351,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:352,1
    - Dst: test_cli_g10_key_encrypt
      Src: /src/rnp/src/tests/cli.cpp:352,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/cli.cpp:352,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cli.cpp:353,1
    - Dst: test_cli_g10_key_sign
      Src: /src/rnp/src/tests/cli.cpp:353,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:354,1
    - Dst: test_cli_g10_key_encrypt
      Src: /src/rnp/src/tests/cli.cpp:354,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/cli.cpp:354,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:357,1
    - Dst: test_cli_g10_key_sign
      Src: /src/rnp/src/tests/cli.cpp:357,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:358,1
    - Dst: test_cli_g10_key_encrypt
      Src: /src/rnp/src/tests/cli.cpp:358,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cli.cpp:359,1
    - Dst: test_cli_g10_key_sign
      Src: /src/rnp/src/tests/cli.cpp:359,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:360,1
    - Dst: test_cli_g10_key_encrypt
      Src: /src/rnp/src/tests/cli.cpp:360,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 57
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 255
    functionDepth: 3
    functionLinenumber: 255
    functionLinenumberEnd: 361
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cli.cpp
    functionUses: 0
    functionsReached:
    - assert_true
    - assert_int_equal
    - rnp_unlink
    - test_cli_g10_key_encrypt
    - assert_false
    - brainpool_enabled
    - call_rnp
    - test_cli_g10_key_sign
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_cli_g10_operations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string
      Src: /src/rnp/src/tests/cli.cpp:369,1
    - Dst: rnp_mkdir
      Src: /src/rnp/src/tests/cli.cpp:370,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/cli.cpp:370,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/tests/cli.cpp:371,1
    - Dst: original_dir
      Src: /src/rnp/src/tests/cli.cpp:371,1
    - Dst: GetACP
      Src: /src/rnp/src/tests/cli.cpp:374,1
    - Dst: ZeroMemory
      Src: /src/rnp/src/tests/cli.cpp:376,1
    - Dst: ZeroMemory
      Src: /src/rnp/src/tests/cli.cpp:378,1
    - Dst: CreateProcessA
      Src: /src/rnp/src/tests/cli.cpp:379,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/cli.cpp:380,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:389,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:390,1
    - Dst: WaitForSingleObject
      Src: /src/rnp/src/tests/cli.cpp:390,1
    - Dst: CloseHandle
      Src: /src/rnp/src/tests/cli.cpp:391,1
    - Dst: CloseHandle
      Src: /src/rnp/src/tests/cli.cpp:392,1
    - Dst: wstr_from_utf8
      Src: /src/rnp/src/tests/cli.cpp:394,1
    - Dst: wstr_from_utf8
      Src: /src/rnp/src/tests/cli.cpp:395,1
    - Dst: ZeroMemory
      Src: /src/rnp/src/tests/cli.cpp:400,1
    - Dst: ZeroMemory
      Src: /src/rnp/src/tests/cli.cpp:401,1
    - Dst: CreateProcessW
      Src: /src/rnp/src/tests/cli.cpp:402,1
    - Dst: std::wstring::c_str
      Src: /src/rnp/src/tests/cli.cpp:403,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:412,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:413,1
    - Dst: WaitForSingleObject
      Src: /src/rnp/src/tests/cli.cpp:413,1
    - Dst: CloseHandle
      Src: /src/rnp/src/tests/cli.cpp:414,1
    - Dst: CloseHandle
      Src: /src/rnp/src/tests/cli.cpp:415,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cli.cpp:418,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/cli.cpp:418,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cli.cpp:420,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/cli.cpp:420,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cli.cpp:421,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/cli.cpp:421,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/cli.cpp:422,1
    - Dst: MultiByteToWideChar
      Src: /src/rnp/src/tests/cli.cpp:425,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/cli.cpp:425,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/cli.cpp:425,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:426,1
    - Dst: std::wstring::resize
      Src: /src/rnp/src/tests/cli.cpp:428,1
    - Dst: MultiByteToWideChar
      Src: /src/rnp/src/tests/cli.cpp:429,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/cli.cpp:430,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/cli.cpp:430,1
    - Dst: std::wstring::size
      Src: /src/rnp/src/tests/cli.cpp:430,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:431,1
    - Dst: wstr_to_utf8
      Src: /src/rnp/src/tests/cli.cpp:434,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cli.cpp:436,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/cli.cpp:436,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/cli.cpp:436,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/cli.cpp:437,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cli.cpp:440,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/cli.cpp:440,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:441,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cli.cpp:444,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/cli.cpp:444,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/cli.cpp:445,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cli.cpp:449,1
    - Dst: rnp_uid_get_data
      Src: /src/rnp/src/tests/cli.cpp:449,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:451,1
    - Dst: std::string::compare
      Src: /src/rnp/src/tests/cli.cpp:451,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/cli.cpp:452,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/cli.cpp:453,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/cli.cpp:454,1
    - Dst: wstr_to_utf8
      Src: /src/rnp/src/tests/cli.cpp:456,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cli.cpp:458,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/cli.cpp:458,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/cli.cpp:458,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/cli.cpp:459,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cli.cpp:462,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/cli.cpp:462,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:463,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cli.cpp:466,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/cli.cpp:466,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/cli.cpp:467,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cli.cpp:471,1
    - Dst: rnp_uid_get_data
      Src: /src/rnp/src/tests/cli.cpp:471,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:473,1
    - Dst: std::string::compare
      Src: /src/rnp/src/tests/cli.cpp:473,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/cli.cpp:474,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/cli.cpp:475,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/cli.cpp:476,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/cli.cpp:477,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 479
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cli.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - original_dir
    - rnp_key_get_uid_handle_at
    - rnp_load_keys
    - rnp_input_from_path
    - wstr_from_utf8
    - assert_true
    - rnp_mkdir
    - string
    - assert_rnp_success
    - MultiByteToWideChar
    - ZeroMemory
    - std::string::compare
    - rnp_key_handle_destroy
    - std::wstring::resize
    - rnp_locate_key
    - rnp_uid_handle_destroy
    - rnp::path::append
    - assert_int_equal
    - rnp_ffi_destroy
    - std::string::c_str
    - wstr_to_utf8
    - std::wstring::c_str
    - std::string::size
    - rnp_ffi_create
    - CloseHandle
    - CreateProcessW
    - rnp_input_destroy
    - rnp_key_get_uid_count
    - GetACP
    - WaitForSingleObject
    - rnp_buffer_destroy
    - rnp_uid_get_data
    - std::wstring::size
    - CreateProcessA
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_cli_rnpkeys_unicode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:484,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:484,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:487,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:495,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:498,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:500,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:503,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:514,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:515,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:516,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:519,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:528,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:529,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:539,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 540
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cli.cpp
    functionUses: 0
    functionsReached:
    - call_rnp
    - assert_int_equal
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_cli_rnp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::path::append
      Src: /src/rnp/src/tests/cli.cpp:544,1
    - Dst: original_dir
      Src: /src/rnp/src/tests/cli.cpp:544,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/tests/cli.cpp:546,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cli.cpp:547,1
    - Dst: auto::empty
      Src: /src/rnp/src/tests/cli.cpp:547,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:548,1
    - Dst: system
      Src: /src/rnp/src/tests/cli.cpp:548,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/cli.cpp:548,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/tests/cli.cpp:551,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cli.cpp:552,1
    - Dst: auto::empty
      Src: /src/rnp/src/tests/cli.cpp:552,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:553,1
    - Dst: system
      Src: /src/rnp/src/tests/cli.cpp:553,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/cli.cpp:553,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/tests/cli.cpp:556,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cli.cpp:557,1
    - Dst: auto::empty
      Src: /src/rnp/src/tests/cli.cpp:557,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:558,1
    - Dst: system
      Src: /src/rnp/src/tests/cli.cpp:558,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/cli.cpp:558,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/tests/cli.cpp:561,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cli.cpp:562,1
    - Dst: auto::empty
      Src: /src/rnp/src/tests/cli.cpp:562,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:563,1
    - Dst: system
      Src: /src/rnp/src/tests/cli.cpp:563,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/cli.cpp:563,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/tests/cli.cpp:566,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cli.cpp:567,1
    - Dst: auto::empty
      Src: /src/rnp/src/tests/cli.cpp:567,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:568,1
    - Dst: system
      Src: /src/rnp/src/tests/cli.cpp:568,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/cli.cpp:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 569
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cli.cpp
    functionUses: 0
    functionsReached:
    - auto::c_str
    - system
    - original_dir
    - rnp::path::append
    - assert_int_equal
    - assert_false
    - auto::empty
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_cli_examples)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:574,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:574,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:577,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:578,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:580,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:581,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:583,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:584,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:586,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:587,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:589,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:590,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:592,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:593,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:595,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:596,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:598,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:599,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:601,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:602,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:604,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:605,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:608,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:609,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:611,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/cli.cpp:612,1
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:614,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/cli.cpp:615,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 571
    functionDepth: 2
    functionLinenumber: 571
    functionLinenumberEnd: 616
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cli.cpp
    functionUses: 0
    functionsReached:
    - call_rnp
    - assert_int_equal
    - assert_int_not_equal
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_cli_rnpkeys)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: is_primary
      Src: /src/rnp/src/tests/cli.cpp:625,1
    - Dst: has_primary_fp
      Src: /src/rnp/src/tests/cli.cpp:628,1
    - Dst: rnp::KeyStore*::get_key
      Src: /src/rnp/src/tests/cli.cpp:631,1
    - Dst: primary_fp
      Src: /src/rnp/src/tests/cli.cpp:631,1
    - Dst: rnp::Key*::uid_count
      Src: /src/rnp/src/tests/cli.cpp:636,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/cli.cpp:639,1
    - Dst: expiration
      Src: /src/rnp/src/tests/cli.cpp:643,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/tests/cli.cpp:657,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 34
    argCount: 3
    argNames:
    - keystore
    - userid
    - expectedExpiration
    argTypes:
    - rnp::KeyStore*
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 667
      start: 619
    functionDepth: 1
    functionLinenumber: 619
    functionLinenumberEnd: 667
    functionName: key_expiration_check
    functionSourceFile: /src/rnp/src/tests/cli.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - expiration
    - rnp::Key*::get_uid
    - primary_fp
    - rnp::Key*::uid_count
    - rnp::KeyStore*::get_key
    - has_primary_fp
    - is_primary
    linkageType: ''
    returnType: int
    signature: int key_expiration_check(rnp::KeyStore *keystore, const char *userid,
      uint32_t expectedExpiration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: call_rnp
      Src: /src/rnp/src/tests/cli.cpp:672,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - homedir
    - userid
    - expiration
    argTypes:
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 669
    functionDepth: 2
    functionLinenumber: 669
    functionLinenumberEnd: 688
    functionName: key_generate
    functionSourceFile: /src/rnp/src/tests/cli.cpp
    functionUses: 0
    functionsReached:
    - call_rnp
    linkageType: ''
    returnType: int
    signature: int key_generate(const char *homedir, const char *userid, const char
      *expiration)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert_false
      Src: /src/rnp/src/tests/cli.cpp:692,1
    - Dst: RNP_MKDIR
      Src: /src/rnp/src/tests/cli.cpp:692,1
    - Dst: time
      Src: /src/rnp/src/tests/cli.cpp:693,1
    - Dst: rnp_y2k38_warning
      Src: /src/rnp/src/tests/cli.cpp:697,1
    - Dst: rnp_localtime
      Src: /src/rnp/src/tests/cli.cpp:703,1
    - Dst: time
      Src: /src/rnp/src/tests/cli.cpp:703,1
    - Dst: mktime
      Src: /src/rnp/src/tests/cli.cpp:712,1
    - Dst: rnp_localtime
      Src: /src/rnp/src/tests/cli.cpp:715,1
    - Dst: mktime
      Src: /src/rnp/src/tests/cli.cpp:720,1
    - Dst: fmt
      Src: /src/rnp/src/tests/cli.cpp:722,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/cli.cpp:725,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:725,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/cli.cpp:726,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:726,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/cli.cpp:727,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:727,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/cli.cpp:728,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:728,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/cli.cpp:730,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:731,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/cli.cpp:732,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:732,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/cli.cpp:734,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:734,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/cli.cpp:736,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:736,1
    - Dst: rnp_y2k38_warning
      Src: /src/rnp/src/tests/cli.cpp:738,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/cli.cpp:739,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:740,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/cli.cpp:742,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:742,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/cli.cpp:744,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:744,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/cli.cpp:746,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:746,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/cli.cpp:748,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:748,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/cli.cpp:749,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:749,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:752,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:752,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:753,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:753,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:755,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:755,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/cli.cpp:755,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:756,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:756,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:757,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:757,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:758,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:758,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:759,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:759,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:760,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:760,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:761,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:761,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:762,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:762,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:763,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:763,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:764,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:764,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:765,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:765,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:766,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:766,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:767,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:767,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:768,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:768,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:769,1
    - Dst: key_generate
      Src: /src/rnp/src/tests/cli.cpp:769,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/cli.cpp:771,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cli.cpp:773,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/cli.cpp:773,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:774,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/cli.cpp:774,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:775,1
    - Dst: auto::key_count
      Src: /src/rnp/src/tests/cli.cpp:775,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/cli.cpp:776,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:777,1
    - Dst: key_expiration_check
      Src: /src/rnp/src/tests/cli.cpp:777,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:779,1
    - Dst: key_expiration_check
      Src: /src/rnp/src/tests/cli.cpp:779,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:781,1
    - Dst: key_expiration_check
      Src: /src/rnp/src/tests/cli.cpp:781,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:782,1
    - Dst: key_expiration_check
      Src: /src/rnp/src/tests/cli.cpp:782,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:783,1
    - Dst: key_expiration_check
      Src: /src/rnp/src/tests/cli.cpp:783,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:784,1
    - Dst: key_expiration_check
      Src: /src/rnp/src/tests/cli.cpp:784,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:785,1
    - Dst: key_expiration_check
      Src: /src/rnp/src/tests/cli.cpp:785,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:786,1
    - Dst: key_expiration_check
      Src: /src/rnp/src/tests/cli.cpp:786,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:787,1
    - Dst: key_expiration_check
      Src: /src/rnp/src/tests/cli.cpp:787,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:788,1
    - Dst: key_expiration_check
      Src: /src/rnp/src/tests/cli.cpp:788,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:789,1
    - Dst: key_expiration_check
      Src: /src/rnp/src/tests/cli.cpp:789,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:790,1
    - Dst: key_expiration_check
      Src: /src/rnp/src/tests/cli.cpp:790,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:791,1
    - Dst: key_expiration_check
      Src: /src/rnp/src/tests/cli.cpp:791,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:792,1
    - Dst: key_expiration_check
      Src: /src/rnp/src/tests/cli.cpp:792,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:793,1
    - Dst: key_expiration_check
      Src: /src/rnp/src/tests/cli.cpp:794,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:795,1
    - Dst: key_expiration_check
      Src: /src/rnp/src/tests/cli.cpp:795,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:799,1
    - Dst: key_expiration_check
      Src: /src/rnp/src/tests/cli.cpp:800,1
    - Dst: delete_recursively
      Src: /src/rnp/src/tests/cli.cpp:803,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 804
      start: 690
    functionDepth: 3
    functionLinenumber: 690
    functionLinenumberEnd: 804
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cli.cpp
    functionUses: 0
    functionsReached:
    - key_expiration_check
    - rnp_localtime
    - auto::key_count
    - key_generate
    - pgp_source_t::close
    - delete_recursively
    - assert_int_not_equal
    - auto::c_str
    - assert_true
    - assert_rnp_success
    - init_file_src
    - mktime
    - fmt
    - assert_int_equal
    - RNP_MKDIR
    - rnp::KeyStore::KeyStore
    - time
    - auto::load
    - rnp_y2k38_warning
    - assert_false
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_cli_rnpkeys_genkey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::path::append
      Src: /src/rnp/src/tests/cli.cpp:808,1
    - Dst: original_dir
      Src: /src/rnp/src/tests/cli.cpp:808,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/cli.cpp:813,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/cli.cpp:813,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:814,1
    - Dst: system
      Src: /src/rnp/src/tests/cli.cpp:815,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:816,1
    - Dst: WIFEXITED
      Src: /src/rnp/src/tests/cli.cpp:816,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:817,1
    - Dst: WEXITSTATUS
      Src: /src/rnp/src/tests/cli.cpp:817,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/cli.cpp:819,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/cli.cpp:819,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:820,1
    - Dst: system
      Src: /src/rnp/src/tests/cli.cpp:821,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:822,1
    - Dst: WIFEXITED
      Src: /src/rnp/src/tests/cli.cpp:822,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:823,1
    - Dst: WEXITSTATUS
      Src: /src/rnp/src/tests/cli.cpp:823,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/cli.cpp:826,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/cli.cpp:826,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:827,1
    - Dst: system
      Src: /src/rnp/src/tests/cli.cpp:828,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:829,1
    - Dst: WIFEXITED
      Src: /src/rnp/src/tests/cli.cpp:829,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cli.cpp:830,1
    - Dst: WEXITSTATUS
      Src: /src/rnp/src/tests/cli.cpp:830,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/cli.cpp:832,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/cli.cpp:832,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:833,1
    - Dst: system
      Src: /src/rnp/src/tests/cli.cpp:834,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cli.cpp:835,1
    - Dst: WIFEXITED
      Src: /src/rnp/src/tests/cli.cpp:835,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/cli.cpp:836,1
    - Dst: WEXITSTATUS
      Src: /src/rnp/src/tests/cli.cpp:836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 806
    functionDepth: 1
    functionLinenumber: 806
    functionLinenumberEnd: 837
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cli.cpp
    functionUses: 0
    functionsReached:
    - auto::c_str
    - system
    - original_dir
    - assert_true
    - rnp::path::append
    - WIFEXITED
    - assert_int_equal
    - assert_int_not_equal
    - WEXITSTATUS
    - snprintf
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_cli_dump)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/rnp/src/tests/cli.cpp:845,1
    - Dst: getenv
      Src: /src/rnp/src/tests/cli.cpp:848,1
    - Dst: std::string::append
      Src: /src/rnp/src/tests/cli.cpp:850,1
    - Dst: setenv
      Src: /src/rnp/src/tests/cli.cpp:852,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/cli.cpp:852,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/cli.cpp:853,1
    - Dst: getenv_logname
      Src: /src/rnp/src/tests/cli.cpp:853,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/cli.cpp:853,1
    - Dst: unsetenv
      Src: /src/rnp/src/tests/cli.cpp:855,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/cli.cpp:856,1
    - Dst: getenv_logname
      Src: /src/rnp/src/tests/cli.cpp:856,1
    - Dst: setenv
      Src: /src/rnp/src/tests/cli.cpp:860,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/cli.cpp:860,1
    - Dst: unsetenv
      Src: /src/rnp/src/tests/cli.cpp:862,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 839
    functionDepth: 1
    functionLinenumber: 839
    functionLinenumberEnd: 864
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cli.cpp
    functionUses: 0
    functionsReached:
    - assert_string_equal
    - std::string::c_str
    - getenv
    - getenv_logname
    - setenv
    - std::string::append
    - unsetenv
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_cli_logname)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 54
    functionName: assert_true
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 167
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_true(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 55
    functionName: assert_false
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 68
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_false(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 56
    functionName: assert_string_equal
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_string_equal(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: assert_int_equal
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 135
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_int_equal(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 58
    functionName: assert_int_not_equal
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_int_not_equal(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 59
    functionName: assert_greater_than
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_greater_than(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 60
    functionName: assert_non_null
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 104
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_non_null(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 61
    functionName: assert_null
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_null(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 62
    functionName: assert_rnp_success
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 196
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_rnp_success(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: assert_rnp_failure
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 99
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_rnp_failure(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 64
    functionName: assert_memory_equal
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_memory_equal(a, b, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: assert_memory_not_equal
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_memory_not_equal(a, b, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 66
    functionName: assert_throw
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_throw(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 68
    functionName: assert_true
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 167
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_true(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: assert_false
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 68
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_false(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 70
    functionName: assert_string_equal
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 51
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_string_equal(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 71
    functionName: assert_int_equal
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 135
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_int_equal(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 72
    functionName: assert_int_not_equal
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_int_not_equal(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 73
    functionName: assert_greater_than
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_greater_than(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 74
    functionName: assert_non_null
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 104
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_non_null(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 75
    functionName: assert_null
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 28
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_null(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 76
    functionName: assert_rnp_success
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 196
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_rnp_success(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 77
    functionName: assert_rnp_failure
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 99
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_rnp_failure(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: assert_memory_equal
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_memory_equal(a, b, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - sz
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 79
    functionName: assert_memory_not_equal
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_memory_not_equal(a, b, sz)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 80
    functionName: assert_throw
    functionSourceFile: /src/rnp/src/tests/rnp_tests.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: assert_throw(a)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/tests/file-utils.cpp:39,1
    - Dst: rnp_mkstemp
      Src: /src/rnp/src/tests/file-utils.cpp:40,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/file-utils.cpp:41,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/file-utils.cpp:45,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/file-utils.cpp:48,1
    - Dst: close
      Src: /src/rnp/src/tests/file-utils.cpp:48,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/file-utils.cpp:49,1
    - Dst: unlink
      Src: /src/rnp/src/tests/file-utils.cpp:49,1
    - Dst: c_str
      Src: /src/rnp/src/tests/file-utils.cpp:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 53
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/file-utils.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - unlink
    - assert_int_equal
    - rnp_mkstemp
    - close
    - assert_false
    - c_str
    - assert_int_not_equal
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_rnp_mkstemp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/file-utils.cpp:59,1
    - Dst: rnp_access
      Src: /src/rnp/src/tests/file-utils.cpp:59,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/file-utils.cpp:60,1
    - Dst: rnp_access
      Src: /src/rnp/src/tests/file-utils.cpp:60,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/file-utils.cpp:61,1
    - Dst: rnp_access
      Src: /src/rnp/src/tests/file-utils.cpp:61,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/file-utils.cpp:62,1
    - Dst: rnp_access
      Src: /src/rnp/src/tests/file-utils.cpp:62,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/file-utils.cpp:63,1
    - Dst: rnp_access
      Src: /src/rnp/src/tests/file-utils.cpp:63,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/file-utils.cpp:65,1
    - Dst: rnp_access
      Src: /src/rnp/src/tests/file-utils.cpp:65,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/file-utils.cpp:68,1
    - Dst: rnp_access
      Src: /src/rnp/src/tests/file-utils.cpp:68,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/file-utils.cpp:69,1
    - Dst: rnp_access
      Src: /src/rnp/src/tests/file-utils.cpp:69,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/file-utils.cpp:70,1
    - Dst: rnp_access
      Src: /src/rnp/src/tests/file-utils.cpp:70,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/file-utils.cpp:71,1
    - Dst: rnp_access
      Src: /src/rnp/src/tests/file-utils.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 73
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/file-utils.cpp
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - rnp_access
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_rnp_access)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/rnp/src/tests/cipher_cxx.cpp:47,1
    - Dst: rnp::hex_decode
      Src: /src/rnp/src/tests/cipher_cxx.cpp:48,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:48,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:48,1
    - Dst: std::invalid_argument
      Src: /src/rnp/src/tests/cipher_cxx.cpp:49,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - hex
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 52
    functionName: decode_hex
    functionSourceFile: /src/rnp/src/tests/cipher_cxx.cpp
    functionUses: 0
    functionsReached:
    - rnp::hex_decode
    - std::invalid_argument
    - strlen
    - std::vector::size
    - std::vector::data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> decode_hex(const char *hex)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Cipher::encryption
      Src: /src/rnp/src/tests/cipher_cxx.cpp:71,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/cipher_cxx.cpp:72,1
    - Dst: auto::block_size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:73,1
    - Dst: auto::update_granularity
      Src: /src/rnp/src/tests/cipher_cxx.cpp:74,1
    - Dst: std::vector::resize
      Src: /src/rnp/src/tests/cipher_cxx.cpp:77,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:77,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher_cxx.cpp:79,1
    - Dst: auto::set_key
      Src: /src/rnp/src/tests/cipher_cxx.cpp:79,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:79,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:79,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher_cxx.cpp:80,1
    - Dst: auto::set_iv
      Src: /src/rnp/src/tests/cipher_cxx.cpp:80,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:80,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:80,1
    - Dst: std::vector::empty
      Src: /src/rnp/src/tests/cipher_cxx.cpp:81,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher_cxx.cpp:82,1
    - Dst: auto::set_ad
      Src: /src/rnp/src/tests/cipher_cxx.cpp:82,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:82,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:82,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher_cxx.cpp:87,1
    - Dst: auto::finish
      Src: /src/rnp/src/tests/cipher_cxx.cpp:87,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:88,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:88,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:88,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:88,1
    - Dst: std::vector::resize
      Src: /src/rnp/src/tests/cipher_cxx.cpp:89,1
    - Dst: assert_memory_equal
      Src: /src/rnp/src/tests/cipher_cxx.cpp:90,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:90,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:90,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:90,1
    - Dst: auto::reset
      Src: /src/rnp/src/tests/cipher_cxx.cpp:93,1
    - Dst: Cipher::encryption
      Src: /src/rnp/src/tests/cipher_cxx.cpp:93,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher_cxx.cpp:94,1
    - Dst: auto::set_key
      Src: /src/rnp/src/tests/cipher_cxx.cpp:94,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:94,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:94,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher_cxx.cpp:95,1
    - Dst: auto::set_iv
      Src: /src/rnp/src/tests/cipher_cxx.cpp:95,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:95,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:95,1
    - Dst: std::vector::empty
      Src: /src/rnp/src/tests/cipher_cxx.cpp:96,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher_cxx.cpp:97,1
    - Dst: auto::set_ad
      Src: /src/rnp/src/tests/cipher_cxx.cpp:97,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:97,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:97,1
    - Dst: std::vector::clear
      Src: /src/rnp/src/tests/cipher_cxx.cpp:99,1
    - Dst: std::vector::resize
      Src: /src/rnp/src/tests/cipher_cxx.cpp:100,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:100,1
    - Dst: assert_memory_not_equal
      Src: /src/rnp/src/tests/cipher_cxx.cpp:102,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:102,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:102,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:102,1
    - Dst: rnp_round_up
      Src: /src/rnp/src/tests/cipher_cxx.cpp:104,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:104,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher_cxx.cpp:109,1
    - Dst: auto::update
      Src: /src/rnp/src/tests/cipher_cxx.cpp:109,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:109,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:110,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:112,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher_cxx.cpp:118,1
    - Dst: auto::finish
      Src: /src/rnp/src/tests/cipher_cxx.cpp:118,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:118,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:119,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:121,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:122,1
    - Dst: std::vector::resize
      Src: /src/rnp/src/tests/cipher_cxx.cpp:125,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher_cxx.cpp:126,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:126,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:126,1
    - Dst: assert_memory_equal
      Src: /src/rnp/src/tests/cipher_cxx.cpp:127,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:127,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:127,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:127,1
    - Dst: auto::reset
      Src: /src/rnp/src/tests/cipher_cxx.cpp:128,1
    - Dst: Cipher::decryption
      Src: /src/rnp/src/tests/cipher_cxx.cpp:131,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher_cxx.cpp:132,1
    - Dst: auto::set_key
      Src: /src/rnp/src/tests/cipher_cxx.cpp:132,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:132,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:132,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher_cxx.cpp:133,1
    - Dst: auto::set_iv
      Src: /src/rnp/src/tests/cipher_cxx.cpp:133,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:133,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:133,1
    - Dst: std::vector::empty
      Src: /src/rnp/src/tests/cipher_cxx.cpp:134,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher_cxx.cpp:135,1
    - Dst: auto::set_ad
      Src: /src/rnp/src/tests/cipher_cxx.cpp:135,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:135,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:135,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:138,1
    - Dst: rnp_round_up
      Src: /src/rnp/src/tests/cipher_cxx.cpp:140,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:140,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:150,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:151,1
    - Dst: std::min
      Src: /src/rnp/src/tests/cipher_cxx.cpp:157,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher_cxx.cpp:161,1
    - Dst: auto::update
      Src: /src/rnp/src/tests/cipher_cxx.cpp:161,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:161,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:162,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:164,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher_cxx.cpp:171,1
    - Dst: auto::finish
      Src: /src/rnp/src/tests/cipher_cxx.cpp:171,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:171,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:172,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:174,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:175,1
    - Dst: std::vector::resize
      Src: /src/rnp/src/tests/cipher_cxx.cpp:178,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher_cxx.cpp:179,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:179,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:179,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:180,1
    - Dst: assert_memory_equal
      Src: /src/rnp/src/tests/cipher_cxx.cpp:181,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:181,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:181,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:181,1
    - Dst: auto::reset
      Src: /src/rnp/src/tests/cipher_cxx.cpp:186,1
    - Dst: Cipher::decryption
      Src: /src/rnp/src/tests/cipher_cxx.cpp:186,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher_cxx.cpp:187,1
    - Dst: auto::set_key
      Src: /src/rnp/src/tests/cipher_cxx.cpp:187,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:187,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:187,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher_cxx.cpp:188,1
    - Dst: auto::set_iv
      Src: /src/rnp/src/tests/cipher_cxx.cpp:188,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:188,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:188,1
    - Dst: std::vector::empty
      Src: /src/rnp/src/tests/cipher_cxx.cpp:189,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher_cxx.cpp:190,1
    - Dst: auto::set_ad
      Src: /src/rnp/src/tests/cipher_cxx.cpp:190,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:190,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:190,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:193,1
    - Dst: rnp_round_up
      Src: /src/rnp/src/tests/cipher_cxx.cpp:195,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:195,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:197,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:198,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher_cxx.cpp:205,1
    - Dst: auto::update
      Src: /src/rnp/src/tests/cipher_cxx.cpp:205,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:205,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:206,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:208,1
    - Dst: std::min
      Src: /src/rnp/src/tests/cipher_cxx.cpp:210,1
    - Dst: std::vector::back
      Src: /src/rnp/src/tests/cipher_cxx.cpp:216,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher_cxx.cpp:217,1
    - Dst: auto::finish
      Src: /src/rnp/src/tests/cipher_cxx.cpp:217,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:217,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:218,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/cipher_cxx.cpp:220,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/cipher_cxx.cpp:221,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 80
    argCount: 9
    argNames:
    - alg
    - mode
    - tag_size
    - disable_padding
    - key_hex
    - iv_hex
    - ad_hex
    - pt_hex
    - expected_ct_hex
    argTypes:
    - pgp_symm_alg_t
    - pgp_cipher_mode_t
    - size_t
    - bool
    - char*
    - char*
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 224
    functionName: test_cipher
    functionSourceFile: /src/rnp/src/tests/cipher_cxx.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - auto::update_granularity
    - auto::set_key
    - std::vector::empty
    - auto::set_ad
    - std::vector::clear
    - assert_true
    - Cipher::decryption
    - std::vector::back
    - assert_memory_not_equal
    - auto::update
    - std::vector::resize
    - rnp_round_up
    - auto::reset
    - Cipher::encryption
    - auto::block_size
    - assert_int_equal
    - std::min
    - std::vector::size
    - std::vector::data
    - assert_memory_equal
    - auto::set_iv
    - assert_false
    - auto::finish
    linkageType: ''
    returnType: void
    signature: "void test_cipher(pgp_symm_alg_t    alg,\n            pgp_cipher_mode_t
      mode,\n            size_t            tag_size,\n            bool              disable_padding,\n
      \           const char *      key_hex,\n            const char *      iv_hex,\n
      \           const char *      ad_hex,\n            const char *      pt_hex,\n
      \           const char *      expected_ct_hex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher_cxx.cpp:229,1
    - Dst: idea_enabled
      Src: /src/rnp/src/tests/cipher_cxx.cpp:229,1
    - Dst: test_cipher
      Src: /src/rnp/src/tests/cipher_cxx.cpp:231,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher_cxx.cpp:241,1
    - Dst: idea_enabled
      Src: /src/rnp/src/tests/cipher_cxx.cpp:241,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/cipher_cxx.cpp:242,1
    - Dst: Cipher::encryption
      Src: /src/rnp/src/tests/cipher_cxx.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 244
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher_cxx.cpp
    functionUses: 0
    functionsReached:
    - idea_enabled
    - test_cipher
    - assert_true
    - Cipher::encryption
    - assert_null
    - assert_false
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_cipher_idea)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_cipher
      Src: /src/rnp/src/tests/cipher_cxx.cpp:250,1
    - Dst: test_cipher
      Src: /src/rnp/src/tests/cipher_cxx.cpp:260,1
    - Dst: test_cipher
      Src: /src/rnp/src/tests/cipher_cxx.cpp:270,1
    - Dst: test_cipher
      Src: /src/rnp/src/tests/cipher_cxx.cpp:280,1
    - Dst: test_cipher
      Src: /src/rnp/src/tests/cipher_cxx.cpp:290,1
    - Dst: test_cipher
      Src: /src/rnp/src/tests/cipher_cxx.cpp:300,1
    - Dst: test_cipher
      Src: /src/rnp/src/tests/cipher_cxx.cpp:310,1
    - Dst: test_cipher
      Src: /src/rnp/src/tests/cipher_cxx.cpp:320,1
    - Dst: test_cipher
      Src: /src/rnp/src/tests/cipher_cxx.cpp:331,1
    - Dst: test_cipher
      Src: /src/rnp/src/tests/cipher_cxx.cpp:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 351
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher_cxx.cpp
    functionUses: 0
    functionsReached:
    - test_cipher
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_cipher_aes_128_ocb)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_cipher
      Src: /src/rnp/src/tests/cipher_cxx.cpp:356,1
    - Dst: test_cipher
      Src: /src/rnp/src/tests/cipher_cxx.cpp:365,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 353
    functionDepth: 2
    functionLinenumber: 353
    functionLinenumberEnd: 374
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher_cxx.cpp
    functionUses: 0
    functionsReached:
    - test_cipher
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_cipher_aes_128_cbc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_cipher
      Src: /src/rnp/src/tests/cipher_cxx.cpp:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 388
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher_cxx.cpp
    functionUses: 0
    functionsReached:
    - test_cipher
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_cipher_aes_128_cbc_nopadding)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - dst
    - val
    argTypes:
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 48
    functionName: w32
    functionSourceFile: /src/rnp/src/tests/load-kbx.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void w32(uint8_t *dst, uint32_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/rnp/src/tests/load-kbx.cpp:53,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:55,1
    - Dst: memcpy
      Src: /src/rnp/src/tests/load-kbx.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - buf
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 64
    functionName: make_valid_header_blob
    functionSourceFile: /src/rnp/src/tests/load-kbx.cpp
    functionUses: 0
    functionsReached:
    - w32
    - memcpy
    - memset
    linkageType: ''
    returnType: void
    signature: void make_valid_header_blob(uint8_t *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/rnp/src/tests/load-kbx.cpp:73,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:74,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/load-kbx.cpp:74,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:76,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:77,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:77,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:78,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:78,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:80,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:80,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:82,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:83,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:83,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:84,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:84,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:86,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:86,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:88,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:89,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:89,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:90,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:90,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:92,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:92,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:94,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:95,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:95,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:96,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:96,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:98,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:98,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:100,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:102,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:102,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:103,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:103,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:105,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:105,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:107,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:109,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:109,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:110,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:110,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:112,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:112,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:114,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:117,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:117,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:118,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:118,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:120,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:120,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:122,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:129,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:129,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:130,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:130,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:132,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:132,1
    - Dst: make_valid_header_blob
      Src: /src/rnp/src/tests/load-kbx.cpp:134,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:135,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:137,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:138,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:139,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:139,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:141,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:141,1
    - Dst: make_valid_header_blob
      Src: /src/rnp/src/tests/load-kbx.cpp:143,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:144,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:146,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:146,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:147,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:147,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:149,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:149,1
    - Dst: make_valid_header_blob
      Src: /src/rnp/src/tests/load-kbx.cpp:151,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:152,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:155,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:155,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:156,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:156,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:158,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:158,1
    - Dst: make_valid_header_blob
      Src: /src/rnp/src/tests/load-kbx.cpp:160,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:161,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:168,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:170,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:171,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:171,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:172,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:172,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:174,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:174,1
    - Dst: make_valid_header_blob
      Src: /src/rnp/src/tests/load-kbx.cpp:176,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:177,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:184,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:186,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:191,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:191,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:192,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:192,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:194,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:194,1
    - Dst: make_valid_header_blob
      Src: /src/rnp/src/tests/load-kbx.cpp:196,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:197,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:204,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:206,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:211,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:211,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:212,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:212,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:214,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:214,1
    - Dst: make_valid_header_blob
      Src: /src/rnp/src/tests/load-kbx.cpp:216,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:217,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:224,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:226,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:235,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:235,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:236,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:236,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:238,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:238,1
    - Dst: make_valid_header_blob
      Src: /src/rnp/src/tests/load-kbx.cpp:240,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:241,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:246,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:247,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:254,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:254,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:255,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:255,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:257,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:257,1
    - Dst: make_valid_header_blob
      Src: /src/rnp/src/tests/load-kbx.cpp:259,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:260,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:265,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:266,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:271,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:272,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:273,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:273,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:275,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:275,1
    - Dst: make_valid_header_blob
      Src: /src/rnp/src/tests/load-kbx.cpp:277,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:278,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:283,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:284,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:293,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:294,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:295,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:295,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:297,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:297,1
    - Dst: make_valid_header_blob
      Src: /src/rnp/src/tests/load-kbx.cpp:299,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:300,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:305,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:306,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:313,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:314,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:315,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:315,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:317,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:317,1
    - Dst: make_valid_header_blob
      Src: /src/rnp/src/tests/load-kbx.cpp:319,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:320,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:325,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:326,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:337,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:338,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:339,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:339,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:341,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:341,1
    - Dst: make_valid_header_blob
      Src: /src/rnp/src/tests/load-kbx.cpp:343,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:344,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:349,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:350,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:365,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:366,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:367,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:367,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:369,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:369,1
    - Dst: make_valid_header_blob
      Src: /src/rnp/src/tests/load-kbx.cpp:371,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:372,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:377,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:378,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:389,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:390,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:391,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:391,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:393,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:393,1
    - Dst: make_valid_header_blob
      Src: /src/rnp/src/tests/load-kbx.cpp:395,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:396,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:401,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:402,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:413,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:413,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:415,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:415,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:417,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:417,1
    - Dst: make_valid_header_blob
      Src: /src/rnp/src/tests/load-kbx.cpp:419,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:420,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:425,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:426,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:439,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:440,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:441,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:441,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:443,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:443,1
    - Dst: make_valid_header_blob
      Src: /src/rnp/src/tests/load-kbx.cpp:445,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:446,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:451,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:452,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:471,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:472,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:473,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:473,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:475,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:475,1
    - Dst: make_valid_header_blob
      Src: /src/rnp/src/tests/load-kbx.cpp:477,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:478,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:483,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:484,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:499,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:500,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:501,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:501,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:503,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:503,1
    - Dst: make_valid_header_blob
      Src: /src/rnp/src/tests/load-kbx.cpp:505,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:506,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:514,1
    - Dst: w32
      Src: /src/rnp/src/tests/load-kbx.cpp:516,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:541,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/load-kbx.cpp:542,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/load-kbx.cpp:543,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/load-kbx.cpp:543,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-kbx.cpp:545,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:545,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/load-kbx.cpp:547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 360
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 548
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/load-kbx.cpp
    functionUses: 0
    functionsReached:
    - w32
    - rnp_input_from_memory
    - assert_rnp_failure
    - rnp_ffi_destroy
    - assert_rnp_success
    - memset
    - make_valid_header_blob
    - rnp_load_keys
    - rnp_ffi_create
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_invalid_kbx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-grip.cpp:36,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-grip.cpp:38,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-grip.cpp:38,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-grip.cpp:40,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-grip.cpp:43,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/key-grip.cpp:43,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:47,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:48,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:49,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:50,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:51,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:52,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:53,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:54,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:57,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:58,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:59,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:60,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:61,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:62,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:63,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:64,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:67,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:68,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:69,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:70,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:73,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:74,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:75,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:76,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:77,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:78,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:79,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:80,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:83,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:84,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:85,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:86,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:87,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:88,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:89,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:90,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:93,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:94,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:95,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:96,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:97,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:98,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:99,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:100,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:103,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:104,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:105,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:106,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:107,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:108,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:109,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:110,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:113,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:114,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:115,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:116,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:117,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:118,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:119,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:120,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:123,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:124,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:125,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:126,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:127,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:128,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:129,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:130,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:133,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:134,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:135,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:136,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:137,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:138,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:139,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:140,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:143,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:144,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:145,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:146,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:147,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:148,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-grip.cpp:149,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/key-grip.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 155
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/key-grip.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_tests_get_key_by_grip
    - assert_true
    - auto::load
    - rnp::KeyStore::KeyStore
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, key_grip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_dump.cpp:38,1
    - Dst: time
      Src: /src/rnp/src/tests/fuzz_dump.cpp:39,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_dump.cpp:40,1
    - Dst: dump_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_dump.cpp:40,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_dump.cpp:40,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_dump.cpp:40,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/fuzz_dump.cpp:41,1
    - Dst: time
      Src: /src/rnp/src/tests/fuzz_dump.cpp:41,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_dump.cpp:43,1
    - Dst: time
      Src: /src/rnp/src/tests/fuzz_dump.cpp:44,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_dump.cpp:45,1
    - Dst: dump_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_dump.cpp:45,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_dump.cpp:45,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_dump.cpp:45,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/fuzz_dump.cpp:46,1
    - Dst: time
      Src: /src/rnp/src/tests/fuzz_dump.cpp:46,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_dump.cpp:48,1
    - Dst: time
      Src: /src/rnp/src/tests/fuzz_dump.cpp:49,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_dump.cpp:50,1
    - Dst: dump_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_dump.cpp:50,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_dump.cpp:50,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_dump.cpp:50,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/fuzz_dump.cpp:51,1
    - Dst: time
      Src: /src/rnp/src/tests/fuzz_dump.cpp:51,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_dump.cpp:53,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_dump.cpp:54,1
    - Dst: dump_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_dump.cpp:54,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_dump.cpp:54,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_dump.cpp:54,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_dump.cpp:56,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_dump.cpp:57,1
    - Dst: dump_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_dump.cpp:57,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_dump.cpp:57,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_dump.cpp:57,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_dump.cpp:59,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_dump.cpp:60,1
    - Dst: dump_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_dump.cpp:60,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_dump.cpp:60,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_dump.cpp:60,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_dump.cpp:62,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_dump.cpp:63,1
    - Dst: dump_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_dump.cpp:63,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_dump.cpp:63,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_dump.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 64
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/fuzz_dump.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - auto::data
    - assert_true
    - assert_int_equal
    - time
    - file_to_vec
    - dump_LLVMFuzzerTestOneInput
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_fuzz_dump)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: bzip2_enabled
      Src: /src/rnp/src/tests/large-packet.cpp:32,1
    - Dst: GTEST_SKIP
      Src: /src/rnp/src/tests/large-packet.cpp:33,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-packet.cpp:42,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/large-packet.cpp:42,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-packet.cpp:43,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/large-packet.cpp:43,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-packet.cpp:44,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/large-packet.cpp:44,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-packet.cpp:45,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/large-packet.cpp:45,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-packet.cpp:48,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/large-packet.cpp:48,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-packet.cpp:49,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/large-packet.cpp:49,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-packet.cpp:51,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/large-packet.cpp:51,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-packet.cpp:52,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/large-packet.cpp:52,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-packet.cpp:54,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/large-packet.cpp:54,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-packet.cpp:55,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/large-packet.cpp:55,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-packet.cpp:56,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/large-packet.cpp:56,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-packet.cpp:57,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/large-packet.cpp:57,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 58
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/large-packet.cpp
    functionUses: 0
    functionsReached:
    - rnp_input_from_path
    - bzip2_enabled
    - rnp_ffi_destroy
    - rnp_op_verify_create
    - assert_rnp_success
    - rnp_op_verify_destroy
    - rnp_op_verify_execute
    - GTEST_SKIP
    - rnp_load_keys
    - rnp_ffi_create
    - rnp_output_to_null
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_large_packet)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const pgp::RSAKeyMaterial &>
      Src: /src/rnp/src/tests/key-protect.cpp:36,1
    - Dst: mpi_empty
      Src: /src/rnp/src/tests/key-protect.cpp:37,1
    - Dst: auto::d
      Src: /src/rnp/src/tests/key-protect.cpp:37,1
    - Dst: mpi_empty
      Src: /src/rnp/src/tests/key-protect.cpp:37,1
    - Dst: auto::p
      Src: /src/rnp/src/tests/key-protect.cpp:37,1
    - Dst: mpi_empty
      Src: /src/rnp/src/tests/key-protect.cpp:37,1
    - Dst: auto::q
      Src: /src/rnp/src/tests/key-protect.cpp:37,1
    - Dst: mpi_empty
      Src: /src/rnp/src/tests/key-protect.cpp:38,1
    - Dst: auto::u
      Src: /src/rnp/src/tests/key-protect.cpp:38,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - pgp::KeyMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 39
    functionName: rsa_sec_empty
    functionSourceFile: /src/rnp/src/tests/key-protect.cpp
    functionUses: 1
    functionsReached:
    - dynamic_cast<const pgp::RSAKeyMaterial &>
    - auto::u
    - auto::p
    - auto::q
    - auto::d
    - mpi_empty
    linkageType: ''
    returnType: bool
    signature: bool rsa_sec_empty(const pgp::KeyMaterial &key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const pgp::RSAKeyMaterial &>
      Src: /src/rnp/src/tests/key-protect.cpp:44,1
    - Dst: mpi_empty
      Src: /src/rnp/src/tests/key-protect.cpp:45,1
    - Dst: auto::d
      Src: /src/rnp/src/tests/key-protect.cpp:45,1
    - Dst: mpi_empty
      Src: /src/rnp/src/tests/key-protect.cpp:45,1
    - Dst: auto::p
      Src: /src/rnp/src/tests/key-protect.cpp:45,1
    - Dst: mpi_empty
      Src: /src/rnp/src/tests/key-protect.cpp:45,1
    - Dst: auto::q
      Src: /src/rnp/src/tests/key-protect.cpp:45,1
    - Dst: mpi_empty
      Src: /src/rnp/src/tests/key-protect.cpp:46,1
    - Dst: auto::u
      Src: /src/rnp/src/tests/key-protect.cpp:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - pgp::KeyMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: rsa_sec_filled
    functionSourceFile: /src/rnp/src/tests/key-protect.cpp
    functionUses: 1
    functionsReached:
    - dynamic_cast<const pgp::RSAKeyMaterial &>
    - auto::u
    - auto::p
    - auto::q
    - auto::d
    - mpi_empty
    linkageType: ''
    returnType: bool
    signature: bool rsa_sec_filled(const pgp::KeyMaterial &key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-protect.cpp:67,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-protect.cpp:69,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/key-protect.cpp:69,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-protect.cpp:70,1
    - Dst: auto::load_pgp
      Src: /src/rnp/src/tests/key-protect.cpp:70,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/key-protect.cpp:71,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/key-protect.cpp:73,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-protect.cpp:74,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-protect.cpp:75,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:78,1
    - Dst: rnp::Key*::is_protected
      Src: /src/rnp/src/tests/key-protect.cpp:78,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:79,1
    - Dst: rnp::Key*::is_locked
      Src: /src/rnp/src/tests/key-protect.cpp:79,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-protect.cpp:82,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-protect.cpp:83,1
    - Dst: rnp::Key::Key
      Src: /src/rnp/src/tests/key-protect.cpp:86,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-protect.cpp:87,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-protect.cpp:92,1
    - Dst: rnp::Key*::alg
      Src: /src/rnp/src/tests/key-protect.cpp:92,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:95,1
    - Dst: rsa_sec_empty
      Src: /src/rnp/src/tests/key-protect.cpp:95,1
    - Dst: rnp::Key*::material
      Src: /src/rnp/src/tests/key-protect.cpp:95,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-protect.cpp:99,1
    - Dst: rnp::Key*::unprotect
      Src: /src/rnp/src/tests/key-protect.cpp:99,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-protect.cpp:103,1
    - Dst: rnp::Key*::unprotect
      Src: /src/rnp/src/tests/key-protect.cpp:103,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:107,1
    - Dst: rnp::Key*::unprotect
      Src: /src/rnp/src/tests/key-protect.cpp:107,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-protect.cpp:108,1
    - Dst: rnp::Key*::is_protected
      Src: /src/rnp/src/tests/key-protect.cpp:108,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:111,1
    - Dst: rnp::Key*::is_locked
      Src: /src/rnp/src/tests/key-protect.cpp:111,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:114,1
    - Dst: rsa_sec_empty
      Src: /src/rnp/src/tests/key-protect.cpp:114,1
    - Dst: rnp::Key*::material
      Src: /src/rnp/src/tests/key-protect.cpp:114,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:118,1
    - Dst: rnp::Key*::unlock
      Src: /src/rnp/src/tests/key-protect.cpp:118,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-protect.cpp:119,1
    - Dst: rnp::Key*::is_locked
      Src: /src/rnp/src/tests/key-protect.cpp:119,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:122,1
    - Dst: rsa_sec_filled
      Src: /src/rnp/src/tests/key-protect.cpp:122,1
    - Dst: rnp::Key*::material
      Src: /src/rnp/src/tests/key-protect.cpp:122,1
    - Dst: dynamic_cast<const pgp::RSAKeyMaterial &>
      Src: /src/rnp/src/tests/key-protect.cpp:125,1
    - Dst: rnp::Key*::material
      Src: /src/rnp/src/tests/key-protect.cpp:125,1
    - Dst: auto::d
      Src: /src/rnp/src/tests/key-protect.cpp:126,1
    - Dst: auto::p
      Src: /src/rnp/src/tests/key-protect.cpp:127,1
    - Dst: auto::q
      Src: /src/rnp/src/tests/key-protect.cpp:128,1
    - Dst: auto::u
      Src: /src/rnp/src/tests/key-protect.cpp:129,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-protect.cpp:133,1
    - Dst: rnp::Key*::rawpkt
      Src: /src/rnp/src/tests/key-protect.cpp:134,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-protect.cpp:136,1
    - Dst: auto::load_pgp
      Src: /src/rnp/src/tests/key-protect.cpp:136,1
    - Dst: rnp::MemorySource::src
      Src: /src/rnp/src/tests/key-protect.cpp:136,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-protect.cpp:140,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-protect.cpp:140,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-protect.cpp:141,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-protect.cpp:144,1
    - Dst: rnp::Key*::is_locked
      Src: /src/rnp/src/tests/key-protect.cpp:144,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-protect.cpp:145,1
    - Dst: rnp::Key*::is_protected
      Src: /src/rnp/src/tests/key-protect.cpp:145,1
    - Dst: dynamic_cast<const pgp::RSAKeyMaterial &>
      Src: /src/rnp/src/tests/key-protect.cpp:147,1
    - Dst: rnp::Key*::material
      Src: /src/rnp/src/tests/key-protect.cpp:147,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-protect.cpp:148,1
    - Dst: mpi_empty
      Src: /src/rnp/src/tests/key-protect.cpp:148,1
    - Dst: auto::d
      Src: /src/rnp/src/tests/key-protect.cpp:148,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-protect.cpp:149,1
    - Dst: mpi_empty
      Src: /src/rnp/src/tests/key-protect.cpp:149,1
    - Dst: auto::p
      Src: /src/rnp/src/tests/key-protect.cpp:149,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-protect.cpp:150,1
    - Dst: mpi_empty
      Src: /src/rnp/src/tests/key-protect.cpp:150,1
    - Dst: auto::q
      Src: /src/rnp/src/tests/key-protect.cpp:150,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-protect.cpp:151,1
    - Dst: mpi_empty
      Src: /src/rnp/src/tests/key-protect.cpp:151,1
    - Dst: auto::u
      Src: /src/rnp/src/tests/key-protect.cpp:151,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:154,1
    - Dst: auto::d
      Src: /src/rnp/src/tests/key-protect.cpp:154,1
    - Dst: auto::d
      Src: /src/rnp/src/tests/key-protect.cpp:154,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:155,1
    - Dst: auto::p
      Src: /src/rnp/src/tests/key-protect.cpp:155,1
    - Dst: auto::p
      Src: /src/rnp/src/tests/key-protect.cpp:155,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:156,1
    - Dst: auto::q
      Src: /src/rnp/src/tests/key-protect.cpp:156,1
    - Dst: auto::q
      Src: /src/rnp/src/tests/key-protect.cpp:156,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:157,1
    - Dst: auto::u
      Src: /src/rnp/src/tests/key-protect.cpp:157,1
    - Dst: auto::u
      Src: /src/rnp/src/tests/key-protect.cpp:157,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-protect.cpp:159,1
    - Dst: auto::d
      Src: /src/rnp/src/tests/key-protect.cpp:159,1
    - Dst: auto::p
      Src: /src/rnp/src/tests/key-protect.cpp:159,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:162,1
    - Dst: rnp::Key*::lock
      Src: /src/rnp/src/tests/key-protect.cpp:162,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:163,1
    - Dst: rnp::Key*::is_locked
      Src: /src/rnp/src/tests/key-protect.cpp:163,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:165,1
    - Dst: rsa_sec_empty
      Src: /src/rnp/src/tests/key-protect.cpp:165,1
    - Dst: rnp::Key*::material
      Src: /src/rnp/src/tests/key-protect.cpp:165,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:168,1
    - Dst: rnp::Key*::unlock
      Src: /src/rnp/src/tests/key-protect.cpp:168,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-protect.cpp:169,1
    - Dst: rnp::Key*::is_locked
      Src: /src/rnp/src/tests/key-protect.cpp:169,1
    - Dst: dynamic_cast<const pgp::RSAKeyMaterial &>
      Src: /src/rnp/src/tests/key-protect.cpp:171,1
    - Dst: rnp::Key*::material
      Src: /src/rnp/src/tests/key-protect.cpp:171,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:172,1
    - Dst: auto::d
      Src: /src/rnp/src/tests/key-protect.cpp:172,1
    - Dst: auto::d
      Src: /src/rnp/src/tests/key-protect.cpp:172,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:173,1
    - Dst: auto::p
      Src: /src/rnp/src/tests/key-protect.cpp:173,1
    - Dst: auto::p
      Src: /src/rnp/src/tests/key-protect.cpp:173,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:174,1
    - Dst: auto::q
      Src: /src/rnp/src/tests/key-protect.cpp:174,1
    - Dst: auto::q
      Src: /src/rnp/src/tests/key-protect.cpp:174,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:175,1
    - Dst: auto::u
      Src: /src/rnp/src/tests/key-protect.cpp:175,1
    - Dst: auto::u
      Src: /src/rnp/src/tests/key-protect.cpp:175,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:181,1
    - Dst: rnp::Key*::lock
      Src: /src/rnp/src/tests/key-protect.cpp:181,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-protect.cpp:185,1
    - Dst: rnp::Key*::protect
      Src: /src/rnp/src/tests/key-protect.cpp:185,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-protect.cpp:186,1
    - Dst: rnp::Key*::is_protected
      Src: /src/rnp/src/tests/key-protect.cpp:186,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:190,1
    - Dst: rnp::Key*::unlock
      Src: /src/rnp/src/tests/key-protect.cpp:190,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-protect.cpp:191,1
    - Dst: rnp::Key*::is_locked
      Src: /src/rnp/src/tests/key-protect.cpp:191,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-protect.cpp:195,1
    - Dst: rnp::Key*::protect
      Src: /src/rnp/src/tests/key-protect.cpp:195,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-protect.cpp:196,1
    - Dst: rnp::Key*::is_protected
      Src: /src/rnp/src/tests/key-protect.cpp:196,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:200,1
    - Dst: rnp::Key*::protect
      Src: /src/rnp/src/tests/key-protect.cpp:200,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:201,1
    - Dst: rnp::Key*::is_protected
      Src: /src/rnp/src/tests/key-protect.cpp:201,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:204,1
    - Dst: rnp::Key*::lock
      Src: /src/rnp/src/tests/key-protect.cpp:204,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:205,1
    - Dst: rnp::Key*::is_locked
      Src: /src/rnp/src/tests/key-protect.cpp:205,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-protect.cpp:209,1
    - Dst: rnp::Key*::unlock
      Src: /src/rnp/src/tests/key-protect.cpp:209,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:210,1
    - Dst: rnp::Key*::is_locked
      Src: /src/rnp/src/tests/key-protect.cpp:210,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:214,1
    - Dst: rnp::Key*::unlock
      Src: /src/rnp/src/tests/key-protect.cpp:214,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-protect.cpp:215,1
    - Dst: rnp::Key*::is_locked
      Src: /src/rnp/src/tests/key-protect.cpp:215,1
    - Dst: dynamic_cast<const pgp::RSAKeyMaterial &>
      Src: /src/rnp/src/tests/key-protect.cpp:218,1
    - Dst: rnp::Key*::material
      Src: /src/rnp/src/tests/key-protect.cpp:218,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:219,1
    - Dst: auto::d
      Src: /src/rnp/src/tests/key-protect.cpp:219,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:220,1
    - Dst: auto::p
      Src: /src/rnp/src/tests/key-protect.cpp:220,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:221,1
    - Dst: auto::q
      Src: /src/rnp/src/tests/key-protect.cpp:221,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:222,1
    - Dst: auto::u
      Src: /src/rnp/src/tests/key-protect.cpp:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 79
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 226
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/key-protect.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - pgp_source_t::close
    - dynamic_cast<const pgp::RSAKeyMaterial &>
    - ARRAY_SIZE
    - rsa_sec_filled
    - auto::d
    - assert_true
    - assert_rnp_success
    - init_file_src
    - rnp::Key*::is_protected
    - rnp::Key*::unprotect
    - auto::load_pgp
    - rnp::Key*::material
    - rnp::Key*::protect
    - rnp::Key*::rawpkt
    - assert_int_equal
    - rnp::Key*::is_locked
    - rnp::Key*::lock
    - rnp::Key*::alg
    - rnp::MemorySource::src
    - auto::q
    - rnp::Key*::unlock
    - rnp::KeyStore::KeyStore
    - mpi_empty
    - rnp::Key::Key
    - auto::p
    - rnp_tests_get_key_by_id
    - assert_false
    - rsa_sec_empty
    - auto::u
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_key_protect_load_pgp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<pgp::RSAKeyParams &>
      Src: /src/rnp/src/tests/key-protect.cpp:231,1
    - Dst: rnp::KeygenParams::key_params
      Src: /src/rnp/src/tests/key-protect.cpp:231,1
    - Dst: set_bits
      Src: /src/rnp/src/tests/key-protect.cpp:232,1
    - Dst: rnp::Key::Key
      Src: /src/rnp/src/tests/key-protect.cpp:240,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:242,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/key-protect.cpp:242,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:243,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/key-protect.cpp:243,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-protect.cpp:244,1
    - Dst: rnp::Key::pkt
      Src: /src/rnp/src/tests/key-protect.cpp:244,1
    - Dst: empty
      Src: /src/rnp/src/tests/key-protect.cpp:244,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-protect.cpp:245,1
    - Dst: pkt
      Src: /src/rnp/src/tests/key-protect.cpp:245,1
    - Dst: empty
      Src: /src/rnp/src/tests/key-protect.cpp:245,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:246,1
    - Dst: pkt
      Src: /src/rnp/src/tests/key-protect.cpp:246,1
    - Dst: empty
      Src: /src/rnp/src/tests/key-protect.cpp:246,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:247,1
    - Dst: pkt
      Src: /src/rnp/src/tests/key-protect.cpp:247,1
    - Dst: empty
      Src: /src/rnp/src/tests/key-protect.cpp:247,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:249,1
    - Dst: rnp::Key::pkt
      Src: /src/rnp/src/tests/key-protect.cpp:249,1
    - Dst: size
      Src: /src/rnp/src/tests/key-protect.cpp:249,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:250,1
    - Dst: pkt
      Src: /src/rnp/src/tests/key-protect.cpp:250,1
    - Dst: size
      Src: /src/rnp/src/tests/key-protect.cpp:250,1
    - Dst: memcpy
      Src: /src/rnp/src/tests/key-protect.cpp:253,1
    - Dst: rnp::Key::pkt
      Src: /src/rnp/src/tests/key-protect.cpp:253,1
    - Dst: data
      Src: /src/rnp/src/tests/key-protect.cpp:253,1
    - Dst: memcpy
      Src: /src/rnp/src/tests/key-protect.cpp:254,1
    - Dst: pkt
      Src: /src/rnp/src/tests/key-protect.cpp:254,1
    - Dst: data
      Src: /src/rnp/src/tests/key-protect.cpp:254,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:260,1
    - Dst: rnp::Key::protect
      Src: /src/rnp/src/tests/key-protect.cpp:260,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:261,1
    - Dst: protect
      Src: /src/rnp/src/tests/key-protect.cpp:261,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/key-protect.cpp:262,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/key-protect.cpp:262,1
    - Dst: rnp::Key::pkt
      Src: /src/rnp/src/tests/key-protect.cpp:262,1
    - Dst: data
      Src: /src/rnp/src/tests/key-protect.cpp:262,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/key-protect.cpp:263,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/key-protect.cpp:263,1
    - Dst: pkt
      Src: /src/rnp/src/tests/key-protect.cpp:263,1
    - Dst: data
      Src: /src/rnp/src/tests/key-protect.cpp:263,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/tests/key-protect.cpp:265,1
    - Dst: rnp::Key::rawpkt
      Src: /src/rnp/src/tests/key-protect.cpp:266,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-protect.cpp:267,1
    - Dst: pgp_key_pkt_t*::parse
      Src: /src/rnp/src/tests/key-protect.cpp:267,1
    - Dst: rnp::MemorySource::src
      Src: /src/rnp/src/tests/key-protect.cpp:267,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/key-protect.cpp:268,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/key-protect.cpp:268,1
    - Dst: pgp_key_pkt_t*::sec_data::data
      Src: /src/rnp/src/tests/key-protect.cpp:268,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-protect.cpp:269,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/tests/key-protect.cpp:271,1
    - Dst: rawpkt
      Src: /src/rnp/src/tests/key-protect.cpp:272,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-protect.cpp:273,1
    - Dst: pgp_key_pkt_t*::parse
      Src: /src/rnp/src/tests/key-protect.cpp:273,1
    - Dst: rnp::MemorySource::src
      Src: /src/rnp/src/tests/key-protect.cpp:273,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/key-protect.cpp:274,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/key-protect.cpp:274,1
    - Dst: pgp_key_pkt_t*::sec_data::data
      Src: /src/rnp/src/tests/key-protect.cpp:274,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-protect.cpp:275,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:279,1
    - Dst: rnp::Key::unlock
      Src: /src/rnp/src/tests/key-protect.cpp:279,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:280,1
    - Dst: unlock
      Src: /src/rnp/src/tests/key-protect.cpp:280,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/key-protect.cpp:281,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/key-protect.cpp:281,1
    - Dst: rnp::Key::pkt
      Src: /src/rnp/src/tests/key-protect.cpp:281,1
    - Dst: data
      Src: /src/rnp/src/tests/key-protect.cpp:281,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/key-protect.cpp:282,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/key-protect.cpp:282,1
    - Dst: pkt
      Src: /src/rnp/src/tests/key-protect.cpp:282,1
    - Dst: data
      Src: /src/rnp/src/tests/key-protect.cpp:282,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:284,1
    - Dst: rnp::Key::unprotect
      Src: /src/rnp/src/tests/key-protect.cpp:284,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:285,1
    - Dst: unprotect
      Src: /src/rnp/src/tests/key-protect.cpp:285,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-protect.cpp:286,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/key-protect.cpp:286,1
    - Dst: rnp::Key::pkt
      Src: /src/rnp/src/tests/key-protect.cpp:286,1
    - Dst: data
      Src: /src/rnp/src/tests/key-protect.cpp:286,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-protect.cpp:287,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/key-protect.cpp:287,1
    - Dst: pkt
      Src: /src/rnp/src/tests/key-protect.cpp:287,1
    - Dst: data
      Src: /src/rnp/src/tests/key-protect.cpp:287,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:290,1
    - Dst: rnp::Key::protect
      Src: /src/rnp/src/tests/key-protect.cpp:290,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:291,1
    - Dst: protect
      Src: /src/rnp/src/tests/key-protect.cpp:291,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/key-protect.cpp:292,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/key-protect.cpp:292,1
    - Dst: rnp::Key::pkt
      Src: /src/rnp/src/tests/key-protect.cpp:292,1
    - Dst: data
      Src: /src/rnp/src/tests/key-protect.cpp:292,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/key-protect.cpp:293,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/key-protect.cpp:293,1
    - Dst: pkt
      Src: /src/rnp/src/tests/key-protect.cpp:293,1
    - Dst: data
      Src: /src/rnp/src/tests/key-protect.cpp:293,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-protect.cpp:294,1
    - Dst: rnp::Key::unlock
      Src: /src/rnp/src/tests/key-protect.cpp:294,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-protect.cpp:295,1
    - Dst: unlock
      Src: /src/rnp/src/tests/key-protect.cpp:295,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:296,1
    - Dst: rnp::Key::unlock
      Src: /src/rnp/src/tests/key-protect.cpp:296,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:297,1
    - Dst: unlock
      Src: /src/rnp/src/tests/key-protect.cpp:297,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:298,1
    - Dst: rnp::Key::lock
      Src: /src/rnp/src/tests/key-protect.cpp:298,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-protect.cpp:299,1
    - Dst: lock
      Src: /src/rnp/src/tests/key-protect.cpp:299,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/tests/key-protect.cpp:301,1
    - Dst: rnp::Key::rawpkt
      Src: /src/rnp/src/tests/key-protect.cpp:302,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-protect.cpp:303,1
    - Dst: pgp_key_pkt_t*::parse
      Src: /src/rnp/src/tests/key-protect.cpp:303,1
    - Dst: rnp::MemorySource::src
      Src: /src/rnp/src/tests/key-protect.cpp:303,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/key-protect.cpp:304,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/key-protect.cpp:304,1
    - Dst: pgp_key_pkt_t*::sec_data::data
      Src: /src/rnp/src/tests/key-protect.cpp:304,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-protect.cpp:305,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/tests/key-protect.cpp:307,1
    - Dst: rawpkt
      Src: /src/rnp/src/tests/key-protect.cpp:308,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-protect.cpp:309,1
    - Dst: pgp_key_pkt_t*::parse
      Src: /src/rnp/src/tests/key-protect.cpp:309,1
    - Dst: rnp::MemorySource::src
      Src: /src/rnp/src/tests/key-protect.cpp:309,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/key-protect.cpp:310,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/key-protect.cpp:310,1
    - Dst: pgp_key_pkt_t*::sec_data::data
      Src: /src/rnp/src/tests/key-protect.cpp:310,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-protect.cpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 313
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/key-protect.cpp
    functionUses: 0
    functionsReached:
    - unprotect
    - data
    - rnp::Key::unlock
    - set_bits
    - rnp::KeygenParams::generate
    - rnp::Key::rawpkt
    - protect
    - empty
    - assert_int_not_equal
    - size
    - pkt
    - assert_true
    - rnp::Key::pkt
    - rnp::Key::unprotect
    - memcmp
    - rawpkt
    - assert_rnp_success
    - pgp_key_pkt_t*::sec_data::data
    - unlock
    - dynamic_cast<pgp::RSAKeyParams &>
    - rnp::Key::protect
    - memcpy
    - assert_int_equal
    - rnp::KeygenParams::key_params
    - pgp_key_pkt_t::pgp_key_pkt_t
    - rnp::MemorySource::src
    - rnp::Key::lock
    - rnp::Key::Key
    - pgp_key_pkt_t*::parse
    - lock
    - assert_false
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_key_protect_sec_data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:41,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/large-mpi.cpp:41,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/large-mpi.cpp:42,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/tests/large-mpi.cpp:42,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/large-mpi.cpp:43,1
    - Dst: pgp_key_sequence_t::keys::empty
      Src: /src/rnp/src/tests/large-mpi.cpp:43,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/large-mpi.cpp:44,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:46,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/large-mpi.cpp:46,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:47,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/large-mpi.cpp:48,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/large-mpi.cpp:49,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/large-mpi.cpp:49,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/large-mpi.cpp:50,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:53,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/large-mpi.cpp:54,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/large-mpi.cpp:55,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/large-mpi.cpp:55,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/large-mpi.cpp:56,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:59,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/large-mpi.cpp:60,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:61,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/large-mpi.cpp:61,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/large-mpi.cpp:62,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:66,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/large-mpi.cpp:67,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:68,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/large-mpi.cpp:69,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:70,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/large-mpi.cpp:70,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:71,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/large-mpi.cpp:71,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/large-mpi.cpp:72,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/large-mpi.cpp:73,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:74,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/large-mpi.cpp:74,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:77,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/large-mpi.cpp:78,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:79,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/large-mpi.cpp:79,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:81,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/large-mpi.cpp:81,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/large-mpi.cpp:82,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/large-mpi.cpp:82,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/large-mpi.cpp:83,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/large-mpi.cpp:84,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:85,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/large-mpi.cpp:85,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/large-mpi.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 88
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/large-mpi.cpp
    functionUses: 0
    functionsReached:
    - rnp_input_from_path
    - assert_rnp_failure
    - assert_true
    - pgp_source_t::close
    - rnp_ffi_destroy
    - rnp_op_verify_detached_create
    - assert_rnp_success
    - rnp_import_keys
    - rnp_op_verify_destroy
    - init_file_src
    - pgp_key_sequence_t::keys::empty
    - rnp_ffi_create
    - rnp_op_verify_execute
    - process_pgp_keys
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_large_mpi_rsa_pub)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:96,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/large-mpi.cpp:96,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:99,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/large-mpi.cpp:100,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/large-mpi.cpp:101,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/large-mpi.cpp:101,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/large-mpi.cpp:102,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:105,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/large-mpi.cpp:106,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:107,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/large-mpi.cpp:107,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/large-mpi.cpp:108,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:111,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/large-mpi.cpp:112,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:113,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/large-mpi.cpp:113,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:114,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/large-mpi.cpp:114,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/large-mpi.cpp:115,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/large-mpi.cpp:116,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:119,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/large-mpi.cpp:120,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/large-mpi.cpp:121,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/large-mpi.cpp:121,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/large-mpi.cpp:122,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/tests/large-mpi.cpp:122,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/large-mpi.cpp:123,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/large-mpi.cpp:124,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/large-mpi.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 127
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/large-mpi.cpp
    functionUses: 0
    functionsReached:
    - rnp_input_from_path
    - assert_rnp_failure
    - rnp_ffi_destroy
    - rnp_decrypt
    - rnp_import_keys
    - assert_rnp_success
    - rnp_ffi_create
    - rnp_output_to_null
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_large_mpi_rsa_priv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_null
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:39,1
    - Dst: rnp_cfg::get_cstr
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:39,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:42,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:43,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:44,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:45,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:46,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:47,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:50,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:51,1
    - Dst: rnp_cfg::copy
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:55,1
    - Dst: copy
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:58,1
    - Dst: copy
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:61,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:67,1
    - Dst: rnp_cfg*::get_int
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:67,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:68,1
    - Dst: rnp_cfg*::get_int
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:68,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:69,1
    - Dst: rnp_cfg*::get_bool
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:69,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:70,1
    - Dst: rnp_cfg*::get_bool
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:70,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:71,1
    - Dst: rnp_cfg*::get_bool
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:71,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:72,1
    - Dst: rnp_cfg*::get_bool
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:72,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:73,1
    - Dst: rnp_cfg*::get_bool
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:73,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:75,1
    - Dst: rnp_cfg*::get_cstr
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:75,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:76,1
    - Dst: rnp_cfg*::get_cstr
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:76,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:77,1
    - Dst: rnp_cfg*::get_cstr
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:77,1
    - Dst: rnp_cfg*::get_list
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:79,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:80,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:80,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:84,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:85,1
    - Dst: auto::c_str
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:85,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:90,1
    - Dst: rnp_cfg::get_str
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:90,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:91,1
    - Dst: rnp_cfg::get_str
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:91,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:92,1
    - Dst: rnp_cfg::get_str
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:92,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:93,1
    - Dst: rnp_cfg::get_str
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:93,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:94,1
    - Dst: rnp_cfg::get_str
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:94,1
    - Dst: rnp_cfg::get_list
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:97,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:98,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:98,1
    - Dst: rnp_cfg::get_list
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:99,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:100,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:100,1
    - Dst: rnp_cfg::get_list
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:102,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:103,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:103,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:106,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:107,1
    - Dst: rnp_cfg::get_int
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:107,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:108,1
    - Dst: get_int
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:108,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:109,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:110,1
    - Dst: rnp_cfg::get_int
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:110,1
    - Dst: rnp_cfg::unset
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 114
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/utils-rnpcfg.cpp
    functionUses: 0
    functionsReached:
    - rnp_cfg::get_str
    - assert_string_equal
    - rnp_cfg*::get_list
    - rnp_cfg::set_int
    - auto::c_str
    - rnp_cfg::get_list
    - rnp_cfg*::get_bool
    - assert_true
    - assert_null
    - rnp_cfg*::get_int
    - rnp_cfg::get_int
    - snprintf
    - rnp_cfg::set_str
    - rnp_cfg::add_str
    - assert_int_equal
    - rnp_cfg::get_cstr
    - rnp_cfg*::get_cstr
    - rnp_cfg::copy
    - auto::size
    - rnp_cfg::unset
    - rnp_cfg::set_bool
    - assert_false
    - get_int
    - copy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_rnpcfg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: time
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:118,1
    - Dst: rnp_localtime
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:121,1
    - Dst: mktime
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:126,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:131,1
    - Dst: fmt
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:131,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:132,1
    - Dst: fmt
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:132,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:133,1
    - Dst: fmt
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:133,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:136,1
    - Dst: rnp_cfg::get_expiration
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:136,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:137,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:138,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:139,1
    - Dst: rnp_cfg::get_expiration
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:139,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:140,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:141,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:142,1
    - Dst: rnp_cfg::get_expiration
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:142,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:143,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:144,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:145,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:146,1
    - Dst: rnp_cfg::get_expiration
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:146,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:147,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:148,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:149,1
    - Dst: rnp_cfg::get_expiration
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:149,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:151,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:152,1
    - Dst: rnp_cfg::get_expiration
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:152,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:153,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:156,1
    - Dst: rnp_cfg::get_expiration
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:156,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:159,1
    - Dst: rnp_cfg::get_expiration
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:159,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:160,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:162,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:163,1
    - Dst: rnp_cfg::get_expiration
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:163,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:164,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:165,1
    - Dst: rnp_cfg::get_expiration
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:165,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:166,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:167,1
    - Dst: rnp_cfg::get_expiration
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:167,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:168,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:169,1
    - Dst: rnp_cfg::get_expiration
      Src: /src/rnp/src/tests/utils-rnpcfg.cpp:169,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 40
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 170
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/utils-rnpcfg.cpp
    functionUses: 0
    functionsReached:
    - fmt
    - rnp_localtime
    - rnp_cfg::get_expiration
    - assert_true
    - assert_int_equal
    - assert_int_not_equal
    - assert_false
    - time
    - mktime
    - rnp_cfg::set_str
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_rnpcfg_get_expiration)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:37,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:38,1
    - Dst: keyimport_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:38,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:38,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:38,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:40,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:41,1
    - Dst: keyimport_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:41,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:41,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:41,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:43,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:44,1
    - Dst: keyimport_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:44,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:44,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:44,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:46,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:47,1
    - Dst: keyimport_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:47,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:47,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:47,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:49,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:50,1
    - Dst: keyimport_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:50,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:50,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:50,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:52,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:53,1
    - Dst: keyimport_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:53,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:53,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:53,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 54
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/fuzz_keyimport.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - auto::data
    - assert_int_equal
    - keyimport_LLVMFuzzerTestOneInput
    - file_to_vec
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_fuzz_keyimport)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:61,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:62,1
    - Dst: keyimport_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:62,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:62,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_keyimport.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/fuzz_keyimport.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - auto::data
    - assert_int_equal
    - keyimport_LLVMFuzzerTestOneInput
    - file_to_vec
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_fuzz_keyimport_slow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_verify.cpp:38,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_verify.cpp:39,1
    - Dst: verify_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_verify.cpp:39,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_verify.cpp:39,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_verify.cpp:39,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_verify.cpp:41,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_verify.cpp:42,1
    - Dst: verify_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_verify.cpp:42,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_verify.cpp:42,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_verify.cpp:42,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_verify.cpp:44,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_verify.cpp:45,1
    - Dst: verify_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_verify.cpp:45,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_verify.cpp:45,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_verify.cpp:45,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_verify.cpp:47,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_verify.cpp:48,1
    - Dst: verify_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_verify.cpp:48,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_verify.cpp:48,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_verify.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/fuzz_verify.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - verify_LLVMFuzzerTestOneInput
    - auto::data
    - assert_int_equal
    - file_to_vec
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_fuzz_verify)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:37,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:38,1
    - Dst: keyring_kbx_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:38,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:38,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:38,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:42,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:43,1
    - Dst: keyring_kbx_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:43,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:43,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:43,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:46,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:47,1
    - Dst: keyring_kbx_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:47,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:47,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:47,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:50,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:51,1
    - Dst: keyring_kbx_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:51,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:51,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:51,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:54,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:55,1
    - Dst: keyring_kbx_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:55,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:55,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_keyring_kbx.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 56
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/fuzz_keyring_kbx.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - auto::data
    - assert_int_equal
    - keyring_kbx_LLVMFuzzerTestOneInput
    - file_to_vec
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_fuzz_keyring_kbx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_throw
      Src: /src/rnp/src/tests/cipher.cpp:72,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/tests/cipher.cpp:72,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/tests/cipher.cpp:73,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:74,1
    - Dst: strlen
      Src: /src/rnp/src/tests/cipher.cpp:74,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/tests/cipher.cpp:78,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/tests/cipher.cpp:79,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:80,1
    - Dst: strlen
      Src: /src/rnp/src/tests/cipher.cpp:80,1
    - Dst: auto::add
      Src: /src/rnp/src/tests/cipher.cpp:82,1
    - Dst: auto::add
      Src: /src/rnp/src/tests/cipher.cpp:83,1
    - Dst: auto::finish
      Src: /src/rnp/src/tests/cipher.cpp:84,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:86,1
    - Dst: bin_eq_hex
      Src: /src/rnp/src/tests/cipher.cpp:86,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 88
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - bin_eq_hex
    - assert_true
    - rnp::Hash::size
    - assert_int_equal
    - assert_throw
    - strlen
    - rnp::Hash::create
    - auto::add
    - auto::finish
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, hash_test_success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/rnp/src/tests/cipher.cpp:98,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:100,1
    - Dst: pgp_cipher_cfb_start
      Src: /src/rnp/src/tests/cipher.cpp:100,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:102,1
    - Dst: pgp_cipher_cfb_encrypt
      Src: /src/rnp/src/tests/cipher.cpp:102,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:104,1
    - Dst: bin_eq_hex
      Src: /src/rnp/src/tests/cipher.cpp:105,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:106,1
    - Dst: pgp_cipher_cfb_finish
      Src: /src/rnp/src/tests/cipher.cpp:106,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:108,1
    - Dst: pgp_cipher_cfb_start
      Src: /src/rnp/src/tests/cipher.cpp:108,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:109,1
    - Dst: pgp_cipher_cfb_decrypt
      Src: /src/rnp/src/tests/cipher.cpp:109,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:110,1
    - Dst: bin_eq_hex
      Src: /src/rnp/src/tests/cipher.cpp:111,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:112,1
    - Dst: pgp_cipher_cfb_finish
      Src: /src/rnp/src/tests/cipher.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 113
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - pgp_cipher_cfb_start
    - assert_true
    - assert_int_equal
    - pgp_cipher_cfb_encrypt
    - pgp_cipher_cfb_decrypt
    - memset
    - pgp_cipher_cfb_finish
    - bin_eq_hex
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, cipher_test_success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<pgp::RSAKeyParams &>
      Src: /src/rnp/src/tests/cipher.cpp:121,1
    - Dst: rnp::KeygenParams::key_params
      Src: /src/rnp/src/tests/cipher.cpp:121,1
    - Dst: set_bits
      Src: /src/rnp/src/tests/cipher.cpp:122,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:124,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:125,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/cipher.cpp:125,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:129,1
    - Dst: pgp_key_pkt_t::material::encrypt
      Src: /src/rnp/src/tests/cipher.cpp:129,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:130,1
    - Dst: pgp_key_pkt_t::material::encrypt
      Src: /src/rnp/src/tests/cipher.cpp:130,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:131,1
    - Dst: pgp::RSAEncMaterial::enc::m::size
      Src: /src/rnp/src/tests/cipher.cpp:131,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:133,1
    - Dst: pgp_key_pkt_t::material::decrypt
      Src: /src/rnp/src/tests/cipher.cpp:133,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:134,1
    - Dst: rnp::secure_bytes::empty
      Src: /src/rnp/src/tests/cipher.cpp:134,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:135,1
    - Dst: pgp_key_pkt_t::material::decrypt
      Src: /src/rnp/src/tests/cipher.cpp:135,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:136,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/tests/cipher.cpp:136,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:137,1
    - Dst: bin_eq_hex
      Src: /src/rnp/src/tests/cipher.cpp:137,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/tests/cipher.cpp:137,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:140,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/cipher.cpp:140,1
    - Dst: rng::get
      Src: /src/rnp/src/tests/cipher.cpp:143,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/tests/cipher.cpp:143,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/tests/cipher.cpp:143,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:147,1
    - Dst: pgp_key_pkt_t::material::sign
      Src: /src/rnp/src/tests/cipher.cpp:147,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:148,1
    - Dst: pgp_key_pkt_t::material::verify
      Src: /src/rnp/src/tests/cipher.cpp:148,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:149,1
    - Dst: pgp_key_pkt_t::material::sign
      Src: /src/rnp/src/tests/cipher.cpp:149,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:150,1
    - Dst: pgp_key_pkt_t::material::verify
      Src: /src/rnp/src/tests/cipher.cpp:150,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/tests/cipher.cpp:153,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/tests/cipher.cpp:153,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:154,1
    - Dst: pgp_key_pkt_t::material::verify
      Src: /src/rnp/src/tests/cipher.cpp:154,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:158,1
    - Dst: pgp_key_pkt_t::material::verify
      Src: /src/rnp/src/tests/cipher.cpp:158,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 159
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - rnp::secure_bytes::size
    - assert_rnp_failure
    - rng::get
    - set_bits
    - rnp::KeygenParams::generate
    - pgp_key_pkt_t::material::encrypt
    - rnp::secure_bytes::data
    - pgp_key_pkt_t::material::sign
    - rnp::secure_bytes::end
    - assert_true
    - assert_rnp_success
    - rnp::secure_bytes::empty
    - rnp::secure_bytes::begin
    - dynamic_cast<pgp::RSAKeyParams &>
    - pgp::RSAEncMaterial::enc::m::size
    - bin_eq_hex
    - pgp_key_pkt_t::material::decrypt
    - assert_int_equal
    - rnp::KeygenParams::key_params
    - pgp_key_pkt_t::pgp_key_pkt_t
    - pgp_key_pkt_t::material::verify
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, pkcs1_rsa_test_success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<pgp::RSAKeyParams &>
      Src: /src/rnp/src/tests/cipher.cpp:164,1
    - Dst: rnp::KeygenParams::key_params
      Src: /src/rnp/src/tests/cipher.cpp:164,1
    - Dst: set_bits
      Src: /src/rnp/src/tests/cipher.cpp:165,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:167,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:168,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/cipher.cpp:168,1
    - Dst: dynamic_cast<pgp::RSAKeyParams &>
      Src: /src/rnp/src/tests/cipher.cpp:171,1
    - Dst: rnp::KeygenParams::key_params
      Src: /src/rnp/src/tests/cipher.cpp:171,1
    - Dst: set_bits
      Src: /src/rnp/src/tests/cipher.cpp:172,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:174,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:175,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/cipher.cpp:175,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 176
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - set_bits
    - rnp::KeygenParams::generate
    - rnp::KeygenParams::key_params
    - pgp_key_pkt_t::pgp_key_pkt_t
    - assert_false
    - dynamic_cast<pgp::RSAKeyParams &>
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, pkcs1_rsa_test_sign_enc_only)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:187,1
    - Dst: hex2mpi
      Src: /src/rnp/src/tests/cipher.cpp:188,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:193,1
    - Dst: hex2mpi
      Src: /src/rnp/src/tests/cipher.cpp:193,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:194,1
    - Dst: hex2mpi
      Src: /src/rnp/src/tests/cipher.cpp:195,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:200,1
    - Dst: hex2mpi
      Src: /src/rnp/src/tests/cipher.cpp:201,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:204,1
    - Dst: hex2mpi
      Src: /src/rnp/src/tests/cipher.cpp:205,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:208,1
    - Dst: hex2mpi
      Src: /src/rnp/src/tests/cipher.cpp:209,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:215,1
    - Dst: hex2mpi
      Src: /src/rnp/src/tests/cipher.cpp:216,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:221,1
    - Dst: pgp::rsa::Encrypted::m::size
      Src: /src/rnp/src/tests/cipher.cpp:221,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:224,1
    - Dst: pgp::rsa::Key::decrypt_pkcs1
      Src: /src/rnp/src/tests/cipher.cpp:224,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:225,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/tests/cipher.cpp:225,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:226,1
    - Dst: bin_eq_hex
      Src: /src/rnp/src/tests/cipher.cpp:226,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/tests/cipher.cpp:226,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/tests/cipher.cpp:226,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:230,1
    - Dst: hex2mpi
      Src: /src/rnp/src/tests/cipher.cpp:231,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:236,1
    - Dst: pgp::rsa::Signature::s::size
      Src: /src/rnp/src/tests/cipher.cpp:236,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:240,1
    - Dst: pgp::rsa::Key::verify_pkcs1
      Src: /src/rnp/src/tests/cipher.cpp:240,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 241
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - pgp::rsa::Key::verify_pkcs1
    - rnp::secure_bytes::size
    - assert_true
    - pgp::rsa::Key::decrypt_pkcs1
    - hex2mpi
    - assert_int_equal
    - assert_rnp_success
    - rnp::secure_bytes::data
    - pgp::rsa::Encrypted::m::size
    - pgp::rsa::Signature::s::size
    - bin_eq_hex
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, pkcs1_rsa_short_mpi_test_success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:246,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:247,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/cipher.cpp:247,1
    - Dst: rng::get
      Src: /src/rnp/src/tests/cipher.cpp:250,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/tests/cipher.cpp:250,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/tests/cipher.cpp:250,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:255,1
    - Dst: pgp_key_pkt_t::material::sign
      Src: /src/rnp/src/tests/cipher.cpp:255,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:256,1
    - Dst: pgp_key_pkt_t::material::verify
      Src: /src/rnp/src/tests/cipher.cpp:256,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:258,1
    - Dst: pgp_key_pkt_t::material::sign
      Src: /src/rnp/src/tests/cipher.cpp:258,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:259,1
    - Dst: pgp_key_pkt_t::material::verify
      Src: /src/rnp/src/tests/cipher.cpp:259,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:262,1
    - Dst: pgp_key_pkt_t::material::encrypt
      Src: /src/rnp/src/tests/cipher.cpp:262,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:263,1
    - Dst: pgp_key_pkt_t::material::decrypt
      Src: /src/rnp/src/tests/cipher.cpp:263,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:267,1
    - Dst: pgp_key_pkt_t::material::verify
      Src: /src/rnp/src/tests/cipher.cpp:267,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:273,1
    - Dst: pgp_key_pkt_t::material::verify
      Src: /src/rnp/src/tests/cipher.cpp:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 274
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - rnp::secure_bytes::size
    - assert_rnp_failure
    - assert_true
    - pgp_key_pkt_t::material::verify
    - pgp_key_pkt_t::material::decrypt
    - rng::get
    - rnp::KeygenParams::generate
    - assert_rnp_success
    - pgp_key_pkt_t::pgp_key_pkt_t
    - pgp_key_pkt_t::material::encrypt
    - rnp::secure_bytes::data
    - pgp_key_pkt_t::material::sign
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, rnp_test_eddsa)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<pgp::ECCKeyParams &>
      Src: /src/rnp/src/tests/cipher.cpp:279,1
    - Dst: rnp::KeygenParams::key_params
      Src: /src/rnp/src/tests/cipher.cpp:279,1
    - Dst: set_curve
      Src: /src/rnp/src/tests/cipher.cpp:280,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:282,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:283,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/cipher.cpp:283,1
    - Dst: dynamic_cast<pgp::ECKeyMaterial &>
      Src: /src/rnp/src/tests/cipher.cpp:286,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:287,1
    - Dst: auto::x
      Src: /src/rnp/src/tests/cipher.cpp:287,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:288,1
    - Dst: auto::x
      Src: /src/rnp/src/tests/cipher.cpp:288,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:289,1
    - Dst: auto::x
      Src: /src/rnp/src/tests/cipher.cpp:289,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:290,1
    - Dst: auto::x
      Src: /src/rnp/src/tests/cipher.cpp:290,1
    - Dst: pgp::Fingerprint::vec
      Src: /src/rnp/src/tests/cipher.cpp:296,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:297,1
    - Dst: pgp_key_pkt_t::material::encrypt
      Src: /src/rnp/src/tests/cipher.cpp:297,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:298,1
    - Dst: pgp_key_pkt_t::material::encrypt
      Src: /src/rnp/src/tests/cipher.cpp:298,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:299,1
    - Dst: pgp::ECDHEncMaterial::enc::m::size
      Src: /src/rnp/src/tests/cipher.cpp:299,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:300,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:301,1
    - Dst: pgp::ECDHEncMaterial::enc::p::size
      Src: /src/rnp/src/tests/cipher.cpp:301,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:304,1
    - Dst: pgp_key_pkt_t::material::decrypt
      Src: /src/rnp/src/tests/cipher.cpp:304,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:305,1
    - Dst: rnp::secure_bytes::empty
      Src: /src/rnp/src/tests/cipher.cpp:305,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:306,1
    - Dst: pgp_key_pkt_t::material::decrypt
      Src: /src/rnp/src/tests/cipher.cpp:306,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:307,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/tests/cipher.cpp:307,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:308,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/cipher.cpp:308,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/tests/cipher.cpp:308,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/tests/cipher.cpp:308,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:311,1
    - Dst: pgp_key_pkt_t::material::decrypt
      Src: /src/rnp/src/tests/cipher.cpp:311,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:315,1
    - Dst: pgp_key_pkt_t::material::decrypt
      Src: /src/rnp/src/tests/cipher.cpp:315,1
    - Dst: pgp::ECDHEncMaterial::enc::m::back
      Src: /src/rnp/src/tests/cipher.cpp:318,1
    - Dst: pgp::ECDHEncMaterial::enc::m::pop_back
      Src: /src/rnp/src/tests/cipher.cpp:319,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:320,1
    - Dst: pgp_key_pkt_t::material::decrypt
      Src: /src/rnp/src/tests/cipher.cpp:320,1
    - Dst: pgp::ECDHEncMaterial::enc::m::push_back
      Src: /src/rnp/src/tests/cipher.cpp:322,1
    - Dst: pgp::ECDHEncMaterial::enc::m::push_back
      Src: /src/rnp/src/tests/cipher.cpp:323,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:324,1
    - Dst: pgp_key_pkt_t::material::decrypt
      Src: /src/rnp/src/tests/cipher.cpp:324,1
    - Dst: rng::get
      Src: /src/rnp/src/tests/cipher.cpp:327,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/tests/cipher.cpp:327,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/tests/cipher.cpp:327,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:329,1
    - Dst: pgp_key_pkt_t::material::sign
      Src: /src/rnp/src/tests/cipher.cpp:329,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:330,1
    - Dst: pgp_key_pkt_t::material::verify
      Src: /src/rnp/src/tests/cipher.cpp:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 331
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - pgp::Fingerprint::vec
    - rnp::secure_bytes::size
    - assert_rnp_failure
    - dynamic_cast<pgp::ECCKeyParams &>
    - rng::get
    - rnp::KeygenParams::generate
    - set_curve
    - pgp_key_pkt_t::material::encrypt
    - dynamic_cast<pgp::ECKeyMaterial &>
    - rnp::secure_bytes::data
    - pgp_key_pkt_t::material::sign
    - pgp::ECDHEncMaterial::enc::m::back
    - assert_true
    - memcmp
    - assert_rnp_success
    - rnp::secure_bytes::empty
    - auto::x
    - pgp::ECDHEncMaterial::enc::m::size
    - pgp_key_pkt_t::material::decrypt
    - assert_int_equal
    - pgp::ECDHEncMaterial::enc::m::push_back
    - pgp::ECDHEncMaterial::enc::p::size
    - pgp_key_pkt_t::pgp_key_pkt_t
    - rnp::KeygenParams::key_params
    - pgp::ECDHEncMaterial::enc::m::pop_back
    - pgp_key_pkt_t::material::verify
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, rnp_test_x25519)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:340,1
    - Dst: pgp::eg::Key::encrypt_pkcs1
      Src: /src/rnp/src/tests/cipher.cpp:340,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:341,1
    - Dst: pgp::eg::Key::decrypt_pkcs1
      Src: /src/rnp/src/tests/cipher.cpp:341,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:342,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/tests/cipher.cpp:342,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/tests/cipher.cpp:342,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:343,1
    - Dst: bin_eq_hex
      Src: /src/rnp/src/tests/cipher.cpp:343,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/tests/cipher.cpp:343,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/tests/cipher.cpp:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - key
    - rng
    argTypes:
    - pgp::eg::Key
    - rnp::RNG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 333
    functionDepth: 1
    functionLinenumber: 333
    functionLinenumberEnd: 344
    functionName: elgamal_roundtrip
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - rnp::secure_bytes::size
    - assert_true
    - assert_int_equal
    - assert_rnp_success
    - pgp::eg::Key::decrypt_pkcs1
    - rnp::secure_bytes::data
    - pgp::eg::Key::encrypt_pkcs1
    - bin_eq_hex
    linkageType: ''
    returnType: void
    signature: void elgamal_roundtrip(const pgp::eg::Key &key, rnp::RNG &rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:350,1
    - Dst: pgp::eg::Key::generate
      Src: /src/rnp/src/tests/cipher.cpp:350,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:351,1
    - Dst: pgp::eg::Key::validate
      Src: /src/rnp/src/tests/cipher.cpp:351,1
    - Dst: elgamal_roundtrip
      Src: /src/rnp/src/tests/cipher.cpp:352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 346
    functionDepth: 2
    functionLinenumber: 346
    functionLinenumberEnd: 353
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - assert_true
    - pgp::eg::Key::generate
    - assert_rnp_success
    - elgamal_roundtrip
    - pgp::eg::Key::validate
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, raw_elgamal_random_key_test_success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/cipher.cpp:365,1
    - Dst: rng::get
      Src: /src/rnp/src/tests/cipher.cpp:368,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/tests/cipher.cpp:368,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/tests/cipher.cpp:368,1
    - Dst: rnp::KeygenParams::set_hash
      Src: /src/rnp/src/tests/cipher.cpp:371,1
    - Dst: dynamic_cast<pgp::ECCKeyParams &>
      Src: /src/rnp/src/tests/cipher.cpp:372,1
    - Dst: rnp::KeygenParams::key_params
      Src: /src/rnp/src/tests/cipher.cpp:372,1
    - Dst: auto::set_curve
      Src: /src/rnp/src/tests/cipher.cpp:373,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:375,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:376,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:378,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/cipher.cpp:378,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:379,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/cipher.cpp:379,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:384,1
    - Dst: pgp_key_pkt_t::material::encrypt
      Src: /src/rnp/src/tests/cipher.cpp:384,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:385,1
    - Dst: pgp_key_pkt_t::material::decrypt
      Src: /src/rnp/src/tests/cipher.cpp:385,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:388,1
    - Dst: pgp_key_pkt_t::material::sign
      Src: /src/rnp/src/tests/cipher.cpp:388,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:389,1
    - Dst: pgp_key_pkt_t::material::verify
      Src: /src/rnp/src/tests/cipher.cpp:389,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:392,1
    - Dst: pgp_key_pkt_t::material::verify
      Src: /src/rnp/src/tests/cipher.cpp:392,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:396,1
    - Dst: pgp_key_pkt_t::material::verify
      Src: /src/rnp/src/tests/cipher.cpp:396,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 398
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - rnp::KeygenParams::set_hash
    - rnp::secure_bytes::size
    - assert_true
    - assert_rnp_failure
    - pgp_key_pkt_t::material::decrypt
    - auto::set_curve
    - rng::get
    - dynamic_cast<pgp::ECCKeyParams &>
    - pgp_key_pkt_t::material::verify
    - rnp::KeygenParams::generate
    - assert_rnp_success
    - rnp::KeygenParams::key_params
    - ARRAY_SIZE
    - pgp_key_pkt_t::pgp_key_pkt_t
    - pgp_key_pkt_t::material::encrypt
    - rnp::secure_bytes::data
    - pgp_key_pkt_t::material::sign
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, ecdsa_signverify_success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::secure_bytes::insert
      Src: /src/rnp/src/tests/cipher.cpp:409,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/tests/cipher.cpp:409,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/tests/cipher.cpp:409,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/cipher.cpp:411,1
    - Dst: rnp::KeygenParams::set_hash
      Src: /src/rnp/src/tests/cipher.cpp:413,1
    - Dst: dynamic_cast<pgp::ECCKeyParams &>
      Src: /src/rnp/src/tests/cipher.cpp:414,1
    - Dst: rnp::KeygenParams::key_params
      Src: /src/rnp/src/tests/cipher.cpp:414,1
    - Dst: auto::set_curve
      Src: /src/rnp/src/tests/cipher.cpp:415,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:418,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/cipher.cpp:418,1
    - Dst: rnp::KeygenParams::hash
      Src: /src/rnp/src/tests/cipher.cpp:421,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/tests/cipher.cpp:422,1
    - Dst: rnp::KeygenParams::hash
      Src: /src/rnp/src/tests/cipher.cpp:422,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:423,1
    - Dst: pgp_key_pkt_t::material::sign
      Src: /src/rnp/src/tests/cipher.cpp:423,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:424,1
    - Dst: pgp_key_pkt_t::material::verify
      Src: /src/rnp/src/tests/cipher.cpp:424,1
    - Dst: pgp::Fingerprint::vec
      Src: /src/rnp/src/tests/cipher.cpp:427,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:428,1
    - Dst: pgp_key_pkt_t::material::encrypt
      Src: /src/rnp/src/tests/cipher.cpp:428,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:431,1
    - Dst: pgp_key_pkt_t::material::decrypt
      Src: /src/rnp/src/tests/cipher.cpp:431,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:433,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/tests/cipher.cpp:433,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/tests/cipher.cpp:433,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:434,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 400
    functionDepth: 1
    functionLinenumber: 400
    functionLinenumberEnd: 436
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - pgp::Fingerprint::vec
    - rnp::secure_bytes::size
    - assert_rnp_failure
    - rnp::Hash::size
    - auto::set_curve
    - dynamic_cast<pgp::ECCKeyParams &>
    - rnp::secure_bytes::insert
    - rnp::KeygenParams::generate
    - pgp_key_pkt_t::material::encrypt
    - ARRAY_SIZE
    - pgp_key_pkt_t::material::sign
    - rnp::secure_bytes::end
    - assert_true
    - assert_rnp_success
    - rnp::KeygenParams::hash
    - pgp_key_pkt_t::material::decrypt
    - assert_int_equal
    - rnp::KeygenParams::key_params
    - rnp::KeygenParams::set_hash
    - pgp_key_pkt_t::material::verify
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, ecdh_roundtrip)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - src
    argTypes:
    - ECDHKeyMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 443
    functionName: pgp::ECDHTestKeyMaterial::ECDHTestKeyMaterial
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDHTestKeyMaterial(const ECDHKeyMaterial &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_symm_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 449
    functionName: pgp::ECDHTestKeyMaterial::set_key_wrap_alg
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_key_wrap_alg(pgp_symm_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 455
    functionName: "&\n    ec()"
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ec::Key
    signature: "ec::Key &\n    ec()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - src
    argTypes:
    - ECDHKeyMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 443
    functionName: pgp::ECDHTestKeyMaterial::ECDHTestKeyMaterial
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDHTestKeyMaterial(const ECDHKeyMaterial &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_symm_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 449
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 449
    functionName: pgp::ECDHTestKeyMaterial::set_key_wrap_alg
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_key_wrap_alg(pgp_symm_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 451
    functionDepth: 0
    functionLinenumber: 451
    functionLinenumberEnd: 455
    functionName: "&\n    ec()"
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ec::Key
    signature: "ec::Key &\n    ec()"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::secure_bytes::insert
      Src: /src/rnp/src/tests/cipher.cpp:462,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/tests/cipher.cpp:462,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/tests/cipher.cpp:462,1
    - Dst: rnp::KeygenParams::set_hash
      Src: /src/rnp/src/tests/cipher.cpp:466,1
    - Dst: dynamic_cast<pgp::ECCKeyParams &>
      Src: /src/rnp/src/tests/cipher.cpp:467,1
    - Dst: rnp::KeygenParams::key_params
      Src: /src/rnp/src/tests/cipher.cpp:467,1
    - Dst: auto::set_curve
      Src: /src/rnp/src/tests/cipher.cpp:468,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:470,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:471,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/cipher.cpp:471,1
    - Dst: pgp::Fingerprint::vec
      Src: /src/rnp/src/tests/cipher.cpp:475,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:476,1
    - Dst: pgp_key_pkt_t::material::encrypt
      Src: /src/rnp/src/tests/cipher.cpp:476,1
    - Dst: pgp::ECDHEncMaterial::enc::m::resize
      Src: /src/rnp/src/tests/cipher.cpp:479,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:480,1
    - Dst: pgp_key_pkt_t::material::decrypt
      Src: /src/rnp/src/tests/cipher.cpp:480,1
    - Dst: pgp::ECDHEncMaterial::enc::m::assign
      Src: /src/rnp/src/tests/cipher.cpp:482,1
    - Dst: auto::begin
      Src: /src/rnp/src/tests/cipher.cpp:482,1
    - Dst: auto::end
      Src: /src/rnp/src/tests/cipher.cpp:482,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:483,1
    - Dst: pgp_key_pkt_t::material::decrypt
      Src: /src/rnp/src/tests/cipher.cpp:483,1
    - Dst: dynamic_cast<pgp::ECDHKeyMaterial &>
      Src: /src/rnp/src/tests/cipher.cpp:486,1
    - Dst: pgp::ECDHTestKeyMaterial::set_key_wrap_alg
      Src: /src/rnp/src/tests/cipher.cpp:487,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:488,1
    - Dst: pgp::ECDHTestKeyMaterial::decrypt
      Src: /src/rnp/src/tests/cipher.cpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 489
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - pgp::ECDHEncMaterial::enc::m::assign
    - pgp::Fingerprint::vec
    - dynamic_cast<pgp::ECDHKeyMaterial &>
    - rnp::secure_bytes::size
    - auto::set_curve
    - dynamic_cast<pgp::ECCKeyParams &>
    - rnp::secure_bytes::insert
    - rnp::KeygenParams::generate
    - pgp_key_pkt_t::material::encrypt
    - auto::end
    - rnp::secure_bytes::end
    - auto::begin
    - assert_true
    - assert_rnp_success
    - pgp::ECDHTestKeyMaterial::decrypt
    - pgp_key_pkt_t::material::decrypt
    - assert_int_equal
    - pgp::ECDHEncMaterial::enc::m::resize
    - pgp::ECDHTestKeyMaterial::set_key_wrap_alg
    - rnp::KeygenParams::key_params
    - pgp_key_pkt_t::pgp_key_pkt_t
    - rnp::KeygenParams::set_hash
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, ecdh_decryptionNegativeCases)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeygenParams::set_hash
      Src: /src/rnp/src/tests/cipher.cpp:494,1
    - Dst: rng::get
      Src: /src/rnp/src/tests/cipher.cpp:497,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/tests/cipher.cpp:497,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/tests/cipher.cpp:497,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:499,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:501,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/cipher.cpp:501,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/cipher.cpp:508,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:510,1
    - Dst: auto::encrypt
      Src: /src/rnp/src/tests/cipher.cpp:510,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:511,1
    - Dst: auto::decrypt
      Src: /src/rnp/src/tests/cipher.cpp:511,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:512,1
    - Dst: auto::encrypt
      Src: /src/rnp/src/tests/cipher.cpp:512,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:513,1
    - Dst: auto::decrypt
      Src: /src/rnp/src/tests/cipher.cpp:513,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:514,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:517,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/cipher.cpp:517,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 519
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - rnp::KeygenParams::set_hash
    - rnp::secure_bytes::size
    - assert_true
    - assert_rnp_failure
    - rng::get
    - rnp::KeygenParams::generate
    - assert_rnp_success
    - auto::encrypt
    - pgp_key_pkt_t::pgp_key_pkt_t
    - ARRAY_SIZE
    - assert_false
    - auto::decrypt
    - rnp::secure_bytes::data
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, sm2_roundtrip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/tests/cipher.cpp:530,1
    - Dst: hex2mpi
      Src: /src/rnp/src/tests/cipher.cpp:534,1
    - Dst: hex2mpi
      Src: /src/rnp/src/tests/cipher.cpp:537,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:539,1
    - Dst: pgp::sm2::validate_key
      Src: /src/rnp/src/tests/cipher.cpp:539,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/tests/cipher.cpp:541,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:543,1
    - Dst: pgp::sm2::compute_za
      Src: /src/rnp/src/tests/cipher.cpp:543,1
    - Dst: auto::add
      Src: /src/rnp/src/tests/cipher.cpp:544,1
    - Dst: strlen
      Src: /src/rnp/src/tests/cipher.cpp:544,1
    - Dst: auto::sec_finish
      Src: /src/rnp/src/tests/cipher.cpp:545,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:546,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/tests/cipher.cpp:546,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:549,1
    - Dst: pgp::sm2::sign
      Src: /src/rnp/src/tests/cipher.cpp:549,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:550,1
    - Dst: pgp::sm2::verify
      Src: /src/rnp/src/tests/cipher.cpp:550,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:554,1
    - Dst: pgp::sm2::verify
      Src: /src/rnp/src/tests/cipher.cpp:554,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:557,1
    - Dst: pgp::sm2::verify
      Src: /src/rnp/src/tests/cipher.cpp:557,1
    - Dst: hex2mpi
      Src: /src/rnp/src/tests/cipher.cpp:560,1
    - Dst: hex2mpi
      Src: /src/rnp/src/tests/cipher.cpp:561,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:562,1
    - Dst: pgp::sm2::verify
      Src: /src/rnp/src/tests/cipher.cpp:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 522
    functionDepth: 1
    functionLinenumber: 522
    functionLinenumberEnd: 563
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - auto::sec_finish
    - pgp::sm2::validate_key
    - pgp::sm2::sign
    - rnp::secure_bytes::size
    - assert_rnp_failure
    - rnp::Hash::size
    - hex2mpi
    - pgp::sm2::compute_za
    - assert_int_equal
    - assert_rnp_success
    - strlen
    - pgp::sm2::verify
    - rnp::Hash::create
    - auto::add
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, sm2_sm3_signature_test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/tests/cipher.cpp:573,1
    - Dst: hex2mpi
      Src: /src/rnp/src/tests/cipher.cpp:576,1
    - Dst: hex2mpi
      Src: /src/rnp/src/tests/cipher.cpp:579,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:581,1
    - Dst: pgp::sm2::validate_key
      Src: /src/rnp/src/tests/cipher.cpp:581,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/tests/cipher.cpp:583,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:584,1
    - Dst: pgp::sm2::compute_za
      Src: /src/rnp/src/tests/cipher.cpp:584,1
    - Dst: auto::add
      Src: /src/rnp/src/tests/cipher.cpp:585,1
    - Dst: strlen
      Src: /src/rnp/src/tests/cipher.cpp:585,1
    - Dst: auto::sec_finish
      Src: /src/rnp/src/tests/cipher.cpp:586,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:587,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/tests/cipher.cpp:587,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:590,1
    - Dst: pgp::sm2::sign
      Src: /src/rnp/src/tests/cipher.cpp:590,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:591,1
    - Dst: pgp::sm2::verify
      Src: /src/rnp/src/tests/cipher.cpp:591,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:595,1
    - Dst: pgp::sm2::verify
      Src: /src/rnp/src/tests/cipher.cpp:595,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:598,1
    - Dst: pgp::sm2::verify
      Src: /src/rnp/src/tests/cipher.cpp:598,1
    - Dst: hex2mpi
      Src: /src/rnp/src/tests/cipher.cpp:601,1
    - Dst: hex2mpi
      Src: /src/rnp/src/tests/cipher.cpp:602,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:603,1
    - Dst: pgp::sm2::verify
      Src: /src/rnp/src/tests/cipher.cpp:603,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 604
      start: 567
    functionDepth: 1
    functionLinenumber: 567
    functionLinenumberEnd: 604
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - auto::sec_finish
    - pgp::sm2::validate_key
    - pgp::sm2::sign
    - rnp::secure_bytes::size
    - assert_rnp_failure
    - rnp::Hash::size
    - hex2mpi
    - pgp::sm2::compute_za
    - assert_int_equal
    - assert_rnp_success
    - strlen
    - pgp::sm2::verify
    - rnp::Hash::create
    - auto::add
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, sm2_sha256_signature_test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rng::get
      Src: /src/rnp/src/tests/cipher.cpp:630,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/cipher.cpp:632,1
    - Dst: rnp::KeygenParams::set_hash
      Src: /src/rnp/src/tests/cipher.cpp:634,1
    - Dst: dynamic_cast<pgp::DSAKeyParams &>
      Src: /src/rnp/src/tests/cipher.cpp:635,1
    - Dst: rnp::KeygenParams::key_params
      Src: /src/rnp/src/tests/cipher.cpp:635,1
    - Dst: auto::set_bits
      Src: /src/rnp/src/tests/cipher.cpp:636,1
    - Dst: auto::set_qbits
      Src: /src/rnp/src/tests/cipher.cpp:637,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:639,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:640,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/cipher.cpp:640,1
    - Dst: printf
      Src: /src/rnp/src/tests/cipher.cpp:642,1
    - Dst: auto::bits
      Src: /src/rnp/src/tests/cipher.cpp:643,1
    - Dst: auto::qbits
      Src: /src/rnp/src/tests/cipher.cpp:643,1
    - Dst: rnp::Hash::name
      Src: /src/rnp/src/tests/cipher.cpp:643,1
    - Dst: rnp::KeygenParams::hash
      Src: /src/rnp/src/tests/cipher.cpp:643,1
    - Dst: fflush
      Src: /src/rnp/src/tests/cipher.cpp:644,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:649,1
    - Dst: pgp_key_pkt_t::material::encrypt
      Src: /src/rnp/src/tests/cipher.cpp:649,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:650,1
    - Dst: pgp_key_pkt_t::material::decrypt
      Src: /src/rnp/src/tests/cipher.cpp:650,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/tests/cipher.cpp:653,1
    - Dst: rnp::KeygenParams::hash
      Src: /src/rnp/src/tests/cipher.cpp:653,1
    - Dst: rnp::KeygenParams::hash
      Src: /src/rnp/src/tests/cipher.cpp:654,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:655,1
    - Dst: sign
      Src: /src/rnp/src/tests/cipher.cpp:655,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:656,1
    - Dst: verify
      Src: /src/rnp/src/tests/cipher.cpp:656,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 607
    functionDepth: 1
    functionLinenumber: 607
    functionLinenumberEnd: 658
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - auto::set_qbits
    - assert_rnp_failure
    - rnp::Hash::size
    - rng::get
    - rnp::KeygenParams::generate
    - verify
    - pgp_key_pkt_t::material::encrypt
    - ARRAY_SIZE
    - assert_true
    - assert_rnp_success
    - sign
    - printf
    - rnp::KeygenParams::hash
    - rnp::Hash::name
    - pgp_key_pkt_t::material::decrypt
    - rnp::KeygenParams::key_params
    - pgp_key_pkt_t::pgp_key_pkt_t
    - dynamic_cast<pgp::DSAKeyParams &>
    - rnp::KeygenParams::set_hash
    - fflush
    - auto::bits
    - auto::qbits
    - auto::set_bits
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_dsa_roundtrip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:663,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:664,1
    - Dst: rng::get
      Src: /src/rnp/src/tests/cipher.cpp:666,1
    - Dst: rnp::KeygenParams::set_hash
      Src: /src/rnp/src/tests/cipher.cpp:669,1
    - Dst: dynamic_cast<pgp::DSAKeyParams &>
      Src: /src/rnp/src/tests/cipher.cpp:670,1
    - Dst: rnp::KeygenParams::key_params
      Src: /src/rnp/src/tests/cipher.cpp:670,1
    - Dst: auto::set_bits
      Src: /src/rnp/src/tests/cipher.cpp:671,1
    - Dst: auto::set_qbits
      Src: /src/rnp/src/tests/cipher.cpp:672,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:674,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/cipher.cpp:674,1
    - Dst: printf
      Src: /src/rnp/src/tests/cipher.cpp:676,1
    - Dst: auto::bits
      Src: /src/rnp/src/tests/cipher.cpp:676,1
    - Dst: auto::qbits
      Src: /src/rnp/src/tests/cipher.cpp:676,1
    - Dst: rnp::Hash::name
      Src: /src/rnp/src/tests/cipher.cpp:676,1
    - Dst: rnp::KeygenParams::hash
      Src: /src/rnp/src/tests/cipher.cpp:676,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:677,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/cipher.cpp:677,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/tests/cipher.cpp:682,1
    - Dst: rnp::KeygenParams::hash
      Src: /src/rnp/src/tests/cipher.cpp:682,1
    - Dst: rnp::KeygenParams::hash
      Src: /src/rnp/src/tests/cipher.cpp:683,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:684,1
    - Dst: auto::sign
      Src: /src/rnp/src/tests/cipher.cpp:684,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:686,1
    - Dst: auto::verify
      Src: /src/rnp/src/tests/cipher.cpp:686,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:689,1
    - Dst: auto::verify
      Src: /src/rnp/src/tests/cipher.cpp:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 690
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 690
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - auto::set_qbits
    - rnp::Hash::size
    - rng::get
    - rnp::KeygenParams::generate
    - auto::verify
    - assert_true
    - assert_rnp_success
    - auto::sign
    - printf
    - rnp::KeygenParams::hash
    - rnp::Hash::name
    - assert_int_equal
    - rnp::KeygenParams::key_params
    - pgp_key_pkt_t::pgp_key_pkt_t
    - dynamic_cast<pgp::DSAKeyParams &>
    - rnp::KeygenParams::set_hash
    - auto::bits
    - auto::qbits
    - auto::set_bits
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_dsa_verify_negative)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: defined
      Src: /src/rnp/src/tests/cipher.cpp:697,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/tests/cipher.cpp:708,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/cipher.cpp:712,1
    - Dst: rnp::KeygenParams::set_hash
      Src: /src/rnp/src/tests/cipher.cpp:714,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:716,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:717,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/cipher.cpp:717,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:720,1
    - Dst: pgp_key_pkt_t::material::encrypt
      Src: /src/rnp/src/tests/cipher.cpp:720,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:721,1
    - Dst: pgp_key_pkt_t::material::decrypt
      Src: /src/rnp/src/tests/cipher.cpp:721,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:723,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/tests/cipher.cpp:723,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/tests/cipher.cpp:723,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:724,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 693
    functionDepth: 1
    functionLinenumber: 693
    functionLinenumberEnd: 726
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - rnp::KeygenParams::set_hash
    - rnp::secure_bytes::size
    - assert_true
    - pgp_key_pkt_t::material::decrypt
    - assert_int_equal
    - rnp::KeygenParams::generate
    - assert_rnp_success
    - defined
    - pgp_key_pkt_t::pgp_key_pkt_t
    - ARRAY_SIZE
    - pgp_key_pkt_t::material::encrypt
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, kyber_ecdh_roundtrip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/cipher.cpp:742,1
    - Dst: rng::get
      Src: /src/rnp/src/tests/cipher.cpp:744,1
    - Dst: rnp::KeygenParams::set_hash
      Src: /src/rnp/src/tests/cipher.cpp:747,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:749,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:750,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:752,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/cipher.cpp:752,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:753,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/cipher.cpp:753,1
    - Dst: rnp::KeygenParams::alg
      Src: /src/rnp/src/tests/cipher.cpp:758,1
    - Dst: rnp::KeygenParams::hash
      Src: /src/rnp/src/tests/cipher.cpp:758,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:761,1
    - Dst: auto::sign
      Src: /src/rnp/src/tests/cipher.cpp:761,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:762,1
    - Dst: auto::verify
      Src: /src/rnp/src/tests/cipher.cpp:762,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:765,1
    - Dst: auto::verify
      Src: /src/rnp/src/tests/cipher.cpp:765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 767
      start: 730
    functionDepth: 1
    functionLinenumber: 730
    functionLinenumberEnd: 767
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - rnp::KeygenParams::set_hash
    - assert_rnp_failure
    - assert_true
    - rng::get
    - rnp::KeygenParams::generate
    - assert_rnp_success
    - pgp_key_pkt_t::pgp_key_pkt_t
    - ARRAY_SIZE
    - auto::sign
    - rnp::KeygenParams::alg
    - auto::verify
    - rnp::KeygenParams::hash
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, dilithium_exdsa_signverify_success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/cipher.cpp:776,1
    - Dst: rng::get
      Src: /src/rnp/src/tests/cipher.cpp:779,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:783,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:784,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:786,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/cipher.cpp:786,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:787,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/tests/cipher.cpp:787,1
    - Dst: rnp::KeygenParams::hash
      Src: /src/rnp/src/tests/cipher.cpp:792,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:793,1
    - Dst: sign
      Src: /src/rnp/src/tests/cipher.cpp:793,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:794,1
    - Dst: verify
      Src: /src/rnp/src/tests/cipher.cpp:794,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/cipher.cpp:797,1
    - Dst: verify
      Src: /src/rnp/src/tests/cipher.cpp:797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 769
    functionDepth: 1
    functionLinenumber: 769
    functionLinenumberEnd: 799
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - assert_rnp_failure
    - assert_true
    - rng::get
    - rnp::KeygenParams::generate
    - assert_rnp_success
    - sign
    - pgp_key_pkt_t::pgp_key_pkt_t
    - ARRAY_SIZE
    - verify
    - rnp::KeygenParams::hash
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, sphincsplus_signverify_success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_s2k_compute_iters
      Src: /src/rnp/src/tests/cipher.cpp:818,1
    - Dst: pgp_s2k_compute_iters
      Src: /src/rnp/src/tests/cipher.cpp:819,1
    - Dst: static_cast<double>
      Src: /src/rnp/src/tests/cipher.cpp:821,1
    - Dst: printf
      Src: /src/rnp/src/tests/cipher.cpp:822,1
    - Dst: assert_greater_than
      Src: /src/rnp/src/tests/cipher.cpp:824,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:827,1
    - Dst: pgp_s2k_compute_iters
      Src: /src/rnp/src/tests/cipher.cpp:827,1
    - Dst: s2k_iterations
      Src: /src/rnp/src/tests/cipher.cpp:830,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:831,1
    - Dst: s2k_iterations
      Src: /src/rnp/src/tests/cipher.cpp:831,1
    - Dst: s2k_iterations
      Src: /src/rnp/src/tests/cipher.cpp:832,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:833,1
    - Dst: s2k_iterations
      Src: /src/rnp/src/tests/cipher.cpp:833,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:834,1
    - Dst: s2k_iterations
      Src: /src/rnp/src/tests/cipher.cpp:834,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 808
    functionDepth: 1
    functionLinenumber: 808
    functionLinenumberEnd: 835
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - s2k_iterations
    - assert_int_equal
    - pgp_s2k_compute_iters
    - static_cast<double>
    - printf
    - assert_greater_than
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, s2k_iteration_tuning)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:841,1
    - Dst: pgp_s2k_encode_iterations
      Src: /src/rnp/src/tests/cipher.cpp:841,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:842,1
    - Dst: pgp_s2k_encode_iterations
      Src: /src/rnp/src/tests/cipher.cpp:842,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:843,1
    - Dst: pgp_s2k_encode_iterations
      Src: /src/rnp/src/tests/cipher.cpp:843,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:844,1
    - Dst: pgp_s2k_encode_iterations
      Src: /src/rnp/src/tests/cipher.cpp:844,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:845,1
    - Dst: pgp_s2k_encode_iterations
      Src: /src/rnp/src/tests/cipher.cpp:845,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:846,1
    - Dst: pgp_s2k_encode_iterations
      Src: /src/rnp/src/tests/cipher.cpp:846,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:847,1
    - Dst: pgp_s2k_encode_iterations
      Src: /src/rnp/src/tests/cipher.cpp:847,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:848,1
    - Dst: pgp_s2k_encode_iterations
      Src: /src/rnp/src/tests/cipher.cpp:848,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:849,1
    - Dst: pgp_s2k_encode_iterations
      Src: /src/rnp/src/tests/cipher.cpp:849,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:850,1
    - Dst: pgp_s2k_encode_iterations
      Src: /src/rnp/src/tests/cipher.cpp:850,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:851,1
    - Dst: pgp_s2k_encode_iterations
      Src: /src/rnp/src/tests/cipher.cpp:851,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:852,1
    - Dst: pgp_s2k_encode_iterations
      Src: /src/rnp/src/tests/cipher.cpp:852,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:854,1
    - Dst: pgp_s2k_decode_iterations
      Src: /src/rnp/src/tests/cipher.cpp:854,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:855,1
    - Dst: pgp_s2k_decode_iterations
      Src: /src/rnp/src/tests/cipher.cpp:855,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:856,1
    - Dst: pgp_s2k_decode_iterations
      Src: /src/rnp/src/tests/cipher.cpp:856,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:857,1
    - Dst: pgp_s2k_decode_iterations
      Src: /src/rnp/src/tests/cipher.cpp:857,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 837
    functionDepth: 1
    functionLinenumber: 837
    functionLinenumberEnd: 858
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - assert_int_equal
    - pgp_s2k_decode_iterations
    - pgp_s2k_encode_iterations
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, s2k_iteration_encode_decode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_file_src
      Src: /src/rnp/src/tests/cipher.cpp:864,1
    - Dst: pgp_key_pkt_t*::parse
      Src: /src/rnp/src/tests/cipher.cpp:867,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/cipher.cpp:868,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key
    - path
    argTypes:
    - pgp_key_pkt_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 860
    functionDepth: 1
    functionLinenumber: 860
    functionLinenumberEnd: 870
    functionName: read_key_pkt
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - init_file_src
    - pgp_source_t::close
    - pgp_key_pkt_t*::parse
    linkageType: ''
    returnType: bool
    signature: bool read_key_pkt(pgp_key_pkt_t *key, const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - src
    argTypes:
    - RSAKeyMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 877
    functionName: pgp::RSATestKeyMaterial::RSATestKeyMaterial
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSATestKeyMaterial(const RSAKeyMaterial &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 883
    functionName: "&\n    rsa()"
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rsa::Key
    signature: "rsa::Key &\n    rsa()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - src
    argTypes:
    - DSAKeyMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 890
    functionName: pgp::DSATestKeyMaterial::DSATestKeyMaterial
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSATestKeyMaterial(const DSAKeyMaterial &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 896
    functionName: "&\n    dsa()"
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dsa::Key
    signature: "dsa::Key &\n    dsa()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - src
    argTypes:
    - EGKeyMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 903
    functionName: pgp::EGTestKeyMaterial::EGTestKeyMaterial
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EGTestKeyMaterial(const EGKeyMaterial &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 909
    functionName: "&\n    eg()"
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: eg::Key
    signature: "eg::Key &\n    eg()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - src
    argTypes:
    - ECDSAKeyMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 916
    functionName: pgp::ECDSATestKeyMaterial::ECDSATestKeyMaterial
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSATestKeyMaterial(const ECDSAKeyMaterial &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 922
    functionName: "&\n    ec()"
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ec::Key
    signature: "ec::Key &\n    ec()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - src
    argTypes:
    - EDDSAKeyMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 929
    functionName: pgp::EDDSATestKeyMaterial::EDDSATestKeyMaterial
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EDDSATestKeyMaterial(const EDDSAKeyMaterial &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 935
    functionName: "&\n    ec()"
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ec::Key
    signature: "ec::Key &\n    ec()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - src
    argTypes:
    - RSAKeyMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 877
    functionName: pgp::RSATestKeyMaterial::RSATestKeyMaterial
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSATestKeyMaterial(const RSAKeyMaterial &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 879
    functionDepth: 0
    functionLinenumber: 879
    functionLinenumberEnd: 883
    functionName: "&\n    rsa()"
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rsa::Key
    signature: "rsa::Key &\n    rsa()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - src
    argTypes:
    - DSAKeyMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 890
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 890
    functionName: pgp::DSATestKeyMaterial::DSATestKeyMaterial
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSATestKeyMaterial(const DSAKeyMaterial &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 896
      start: 892
    functionDepth: 0
    functionLinenumber: 892
    functionLinenumberEnd: 896
    functionName: "&\n    dsa()"
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dsa::Key
    signature: "dsa::Key &\n    dsa()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - src
    argTypes:
    - EGKeyMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 901
    functionDepth: 0
    functionLinenumber: 901
    functionLinenumberEnd: 903
    functionName: pgp::EGTestKeyMaterial::EGTestKeyMaterial
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EGTestKeyMaterial(const EGKeyMaterial &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 909
      start: 905
    functionDepth: 0
    functionLinenumber: 905
    functionLinenumberEnd: 909
    functionName: "&\n    eg()"
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: eg::Key
    signature: "eg::Key &\n    eg()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - src
    argTypes:
    - ECDSAKeyMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 916
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 916
    functionName: pgp::ECDSATestKeyMaterial::ECDSATestKeyMaterial
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSATestKeyMaterial(const ECDSAKeyMaterial &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 922
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 922
    functionName: "&\n    ec()"
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ec::Key
    signature: "ec::Key &\n    ec()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - src
    argTypes:
    - EDDSAKeyMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 929
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 929
    functionName: pgp::EDDSATestKeyMaterial::EDDSATestKeyMaterial
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EDDSATestKeyMaterial(const EDDSAKeyMaterial &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 935
      start: 931
    functionDepth: 0
    functionLinenumber: 931
    functionLinenumberEnd: 935
    functionName: "&\n    ec()"
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ec::Key
    signature: "ec::Key &\n    ec()"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:944,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:947,1
    - Dst: read_key_pkt
      Src: /src/rnp/src/tests/cipher.cpp:947,1
    - Dst: pgp_key_pkt_t::material::validate
      Src: /src/rnp/src/tests/cipher.cpp:948,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:949,1
    - Dst: pgp_key_pkt_t::material::valid
      Src: /src/rnp/src/tests/cipher.cpp:949,1
    - Dst: dynamic_cast<pgp::RSAKeyMaterial &>
      Src: /src/rnp/src/tests/cipher.cpp:950,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:951,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:951,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:951,1
    - Dst: pgp::RSATestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:952,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:953,1
    - Dst: pgp::RSATestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:953,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:954,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:954,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:954,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:955,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:955,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:955,1
    - Dst: pgp::RSATestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:956,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:957,1
    - Dst: pgp::RSATestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:957,1
    - Dst: pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:958,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:960,1
    - Dst: read_key_pkt
      Src: /src/rnp/src/tests/cipher.cpp:960,1
    - Dst: pgp_key_pkt_t::material::validate
      Src: /src/rnp/src/tests/cipher.cpp:961,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:962,1
    - Dst: pgp_key_pkt_t::material::valid
      Src: /src/rnp/src/tests/cipher.cpp:962,1
    - Dst: pgp::RSATestKeyMaterial::RSATestKeyMaterial
      Src: /src/rnp/src/tests/cipher.cpp:963,1
    - Dst: dynamic_cast<pgp::RSAKeyMaterial &>
      Src: /src/rnp/src/tests/cipher.cpp:963,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:964,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:964,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:964,1
    - Dst: pgp::RSATestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:965,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:966,1
    - Dst: pgp::RSATestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:966,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:967,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:967,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:967,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:968,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:968,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:968,1
    - Dst: pgp::RSATestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:969,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:970,1
    - Dst: pgp::RSATestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:970,1
    - Dst: pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:971,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:973,1
    - Dst: read_key_pkt
      Src: /src/rnp/src/tests/cipher.cpp:973,1
    - Dst: pgp_key_pkt_t::material::validate
      Src: /src/rnp/src/tests/cipher.cpp:974,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:975,1
    - Dst: pgp_key_pkt_t::material::valid
      Src: /src/rnp/src/tests/cipher.cpp:975,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:976,1
    - Dst: pgp_key_pkt_t::material::validity
      Src: /src/rnp/src/tests/cipher.cpp:976,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:977,1
    - Dst: pgp_key_pkt_t::material::validity
      Src: /src/rnp/src/tests/cipher.cpp:977,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:978,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/cipher.cpp:978,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:980,1
    - Dst: pgp_key_pkt_t::material::validity
      Src: /src/rnp/src/tests/cipher.cpp:980,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:981,1
    - Dst: pgp_key_pkt_t::material::validity
      Src: /src/rnp/src/tests/cipher.cpp:981,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:982,1
    - Dst: pgp_key_pkt_t::material::secret
      Src: /src/rnp/src/tests/cipher.cpp:982,1
    - Dst: pgp_key_pkt_t::material::validate
      Src: /src/rnp/src/tests/cipher.cpp:983,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:984,1
    - Dst: pgp_key_pkt_t::material::valid
      Src: /src/rnp/src/tests/cipher.cpp:984,1
    - Dst: pgp::RSATestKeyMaterial::RSATestKeyMaterial
      Src: /src/rnp/src/tests/cipher.cpp:985,1
    - Dst: dynamic_cast<pgp::RSAKeyMaterial &>
      Src: /src/rnp/src/tests/cipher.cpp:985,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:986,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:986,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:986,1
    - Dst: pgp::RSATestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:987,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:988,1
    - Dst: pgp::RSATestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:988,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:989,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:989,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:989,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:990,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:990,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:990,1
    - Dst: pgp::RSATestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:991,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:992,1
    - Dst: pgp::RSATestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:992,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:993,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:993,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:993,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:994,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:994,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:994,1
    - Dst: pgp::RSATestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:995,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:996,1
    - Dst: pgp::RSATestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:996,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:997,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:997,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:997,1
    - Dst: pgp::RSATestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:998,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:999,1
    - Dst: pgp::RSATestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:999,1
    - Dst: pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:1000,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1002,1
    - Dst: read_key_pkt
      Src: /src/rnp/src/tests/cipher.cpp:1002,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1003,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/cipher.cpp:1003,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1004,1
    - Dst: pgp_key_pkt_t::material::secret
      Src: /src/rnp/src/tests/cipher.cpp:1004,1
    - Dst: pgp_key_pkt_t::material::validate
      Src: /src/rnp/src/tests/cipher.cpp:1005,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1006,1
    - Dst: pgp_key_pkt_t::material::valid
      Src: /src/rnp/src/tests/cipher.cpp:1006,1
    - Dst: pgp::RSATestKeyMaterial::RSATestKeyMaterial
      Src: /src/rnp/src/tests/cipher.cpp:1007,1
    - Dst: dynamic_cast<pgp::RSAKeyMaterial &>
      Src: /src/rnp/src/tests/cipher.cpp:1007,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:1008,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:1008,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:1008,1
    - Dst: pgp::RSATestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:1009,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1010,1
    - Dst: pgp::RSATestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:1010,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:1011,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:1011,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:1011,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:1012,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:1012,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:1012,1
    - Dst: pgp::RSATestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:1013,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1014,1
    - Dst: pgp::RSATestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:1014,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:1015,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:1015,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:1015,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:1016,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:1016,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:1016,1
    - Dst: pgp::RSATestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:1017,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1018,1
    - Dst: pgp::RSATestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:1018,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:1019,1
    - Dst: pgp::RSATestKeyMaterial::rsa
      Src: /src/rnp/src/tests/cipher.cpp:1019,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:1019,1
    - Dst: pgp::RSATestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:1020,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1021,1
    - Dst: pgp::RSATestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:1021,1
    - Dst: pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:1022,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1025,1
    - Dst: read_key_pkt
      Src: /src/rnp/src/tests/cipher.cpp:1025,1
    - Dst: dynamic_cast<pgp::DSAKeyMaterial &>
      Src: /src/rnp/src/tests/cipher.cpp:1026,1
    - Dst: pgp::DSATestKeyMaterial::dsa
      Src: /src/rnp/src/tests/cipher.cpp:1027,1
    - Dst: pgp::DSATestKeyMaterial::dsa
      Src: /src/rnp/src/tests/cipher.cpp:1027,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:1027,1
    - Dst: pgp::DSATestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:1028,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1029,1
    - Dst: pgp::DSATestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:1029,1
    - Dst: pgp::DSATestKeyMaterial::dsa
      Src: /src/rnp/src/tests/cipher.cpp:1030,1
    - Dst: pgp::DSATestKeyMaterial::dsa
      Src: /src/rnp/src/tests/cipher.cpp:1030,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:1030,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1031,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/cipher.cpp:1031,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1032,1
    - Dst: pgp_key_pkt_t::material::secret
      Src: /src/rnp/src/tests/cipher.cpp:1032,1
    - Dst: pgp_key_pkt_t::material::validate
      Src: /src/rnp/src/tests/cipher.cpp:1033,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1034,1
    - Dst: pgp_key_pkt_t::material::valid
      Src: /src/rnp/src/tests/cipher.cpp:1034,1
    - Dst: pgp::DSATestKeyMaterial::DSATestKeyMaterial
      Src: /src/rnp/src/tests/cipher.cpp:1035,1
    - Dst: dynamic_cast<pgp::DSAKeyMaterial &>
      Src: /src/rnp/src/tests/cipher.cpp:1035,1
    - Dst: pgp::DSATestKeyMaterial::dsa
      Src: /src/rnp/src/tests/cipher.cpp:1036,1
    - Dst: pgp::DSATestKeyMaterial::dsa
      Src: /src/rnp/src/tests/cipher.cpp:1036,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:1036,1
    - Dst: pgp::DSATestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:1037,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1038,1
    - Dst: pgp::DSATestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:1038,1
    - Dst: pgp::DSATestKeyMaterial::dsa
      Src: /src/rnp/src/tests/cipher.cpp:1039,1
    - Dst: pgp::DSATestKeyMaterial::dsa
      Src: /src/rnp/src/tests/cipher.cpp:1039,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:1039,1
    - Dst: pgp::DSATestKeyMaterial::dsa
      Src: /src/rnp/src/tests/cipher.cpp:1040,1
    - Dst: pgp::DSATestKeyMaterial::dsa
      Src: /src/rnp/src/tests/cipher.cpp:1040,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:1040,1
    - Dst: pgp::DSATestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:1041,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1042,1
    - Dst: pgp::DSATestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:1042,1
    - Dst: pgp::DSATestKeyMaterial::dsa
      Src: /src/rnp/src/tests/cipher.cpp:1043,1
    - Dst: pgp::DSATestKeyMaterial::dsa
      Src: /src/rnp/src/tests/cipher.cpp:1043,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:1043,1
    - Dst: pgp::DSATestKeyMaterial::dsa
      Src: /src/rnp/src/tests/cipher.cpp:1045,1
    - Dst: pgp::DSATestKeyMaterial::dsa
      Src: /src/rnp/src/tests/cipher.cpp:1045,1
    - Dst: pgp::DSATestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:1046,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1047,1
    - Dst: pgp::DSATestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:1047,1
    - Dst: pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:1048,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1050,1
    - Dst: read_key_pkt
      Src: /src/rnp/src/tests/cipher.cpp:1050,1
    - Dst: dynamic_cast<pgp::EGKeyMaterial &>
      Src: /src/rnp/src/tests/cipher.cpp:1051,1
    - Dst: pgp::EGTestKeyMaterial::eg
      Src: /src/rnp/src/tests/cipher.cpp:1052,1
    - Dst: pgp::EGTestKeyMaterial::eg
      Src: /src/rnp/src/tests/cipher.cpp:1052,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:1052,1
    - Dst: pgp::EGTestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:1053,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1054,1
    - Dst: pgp::EGTestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:1054,1
    - Dst: pgp::EGTestKeyMaterial::eg
      Src: /src/rnp/src/tests/cipher.cpp:1055,1
    - Dst: pgp::EGTestKeyMaterial::eg
      Src: /src/rnp/src/tests/cipher.cpp:1055,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:1055,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1056,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/cipher.cpp:1056,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1057,1
    - Dst: pgp_key_pkt_t::material::secret
      Src: /src/rnp/src/tests/cipher.cpp:1057,1
    - Dst: pgp::EGTestKeyMaterial::EGTestKeyMaterial
      Src: /src/rnp/src/tests/cipher.cpp:1058,1
    - Dst: dynamic_cast<pgp::EGKeyMaterial &>
      Src: /src/rnp/src/tests/cipher.cpp:1058,1
    - Dst: pgp::EGTestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:1059,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1060,1
    - Dst: pgp::EGTestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:1060,1
    - Dst: pgp::EGTestKeyMaterial::eg
      Src: /src/rnp/src/tests/cipher.cpp:1061,1
    - Dst: pgp::EGTestKeyMaterial::eg
      Src: /src/rnp/src/tests/cipher.cpp:1061,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:1061,1
    - Dst: pgp::EGTestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:1062,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1063,1
    - Dst: pgp::EGTestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:1063,1
    - Dst: pgp::EGTestKeyMaterial::eg
      Src: /src/rnp/src/tests/cipher.cpp:1064,1
    - Dst: pgp::EGTestKeyMaterial::eg
      Src: /src/rnp/src/tests/cipher.cpp:1064,1
    - Dst: size
      Src: /src/rnp/src/tests/cipher.cpp:1064,1
    - Dst: pgp::EGTestKeyMaterial::eg
      Src: /src/rnp/src/tests/cipher.cpp:1066,1
    - Dst: pgp::EGTestKeyMaterial::eg
      Src: /src/rnp/src/tests/cipher.cpp:1066,1
    - Dst: pgp::EGTestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:1067,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1068,1
    - Dst: pgp::EGTestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:1068,1
    - Dst: pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:1069,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1072,1
    - Dst: read_key_pkt
      Src: /src/rnp/src/tests/cipher.cpp:1072,1
    - Dst: pgp_key_pkt_t::material::validate
      Src: /src/rnp/src/tests/cipher.cpp:1073,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1074,1
    - Dst: pgp_key_pkt_t::material::valid
      Src: /src/rnp/src/tests/cipher.cpp:1074,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1075,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/cipher.cpp:1075,1
    - Dst: pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:1076,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1078,1
    - Dst: read_key_pkt
      Src: /src/rnp/src/tests/cipher.cpp:1078,1
    - Dst: pgp_key_pkt_t::material::validate
      Src: /src/rnp/src/tests/cipher.cpp:1079,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1080,1
    - Dst: pgp_key_pkt_t::material::valid
      Src: /src/rnp/src/tests/cipher.cpp:1080,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1081,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/cipher.cpp:1081,1
    - Dst: pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:1082,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1085,1
    - Dst: read_key_pkt
      Src: /src/rnp/src/tests/cipher.cpp:1085,1
    - Dst: pgp_key_pkt_t::material::validate
      Src: /src/rnp/src/tests/cipher.cpp:1086,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1087,1
    - Dst: pgp_key_pkt_t::material::valid
      Src: /src/rnp/src/tests/cipher.cpp:1087,1
    - Dst: dynamic_cast<pgp::ECDSAKeyMaterial &>
      Src: /src/rnp/src/tests/cipher.cpp:1088,1
    - Dst: pgp::ECDSATestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:1089,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1090,1
    - Dst: pgp::ECDSATestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:1090,1
    - Dst: pgp::ECDSATestKeyMaterial::ec
      Src: /src/rnp/src/tests/cipher.cpp:1091,1
    - Dst: pgp::ECDSATestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:1092,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1093,1
    - Dst: pgp::ECDSATestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:1093,1
    - Dst: pgp::ECDSATestKeyMaterial::ec
      Src: /src/rnp/src/tests/cipher.cpp:1094,1
    - Dst: pgp::ECDSATestKeyMaterial::ec
      Src: /src/rnp/src/tests/cipher.cpp:1095,1
    - Dst: pgp::ECDSATestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:1096,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1097,1
    - Dst: pgp::ECDSATestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:1097,1
    - Dst: pgp::ECDSATestKeyMaterial::ec
      Src: /src/rnp/src/tests/cipher.cpp:1098,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1099,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/cipher.cpp:1099,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1100,1
    - Dst: pgp_key_pkt_t::material::secret
      Src: /src/rnp/src/tests/cipher.cpp:1100,1
    - Dst: pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:1101,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1104,1
    - Dst: read_key_pkt
      Src: /src/rnp/src/tests/cipher.cpp:1104,1
    - Dst: pgp_key_pkt_t::material::validate
      Src: /src/rnp/src/tests/cipher.cpp:1105,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1106,1
    - Dst: pgp_key_pkt_t::material::valid
      Src: /src/rnp/src/tests/cipher.cpp:1106,1
    - Dst: dynamic_cast<pgp::ECDHKeyMaterial &>
      Src: /src/rnp/src/tests/cipher.cpp:1107,1
    - Dst: pgp::ECDHTestKeyMaterial::ec
      Src: /src/rnp/src/tests/cipher.cpp:1108,1
    - Dst: pgp::ECDHTestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:1109,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1110,1
    - Dst: pgp::ECDHTestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:1110,1
    - Dst: pgp::ECDHTestKeyMaterial::ec
      Src: /src/rnp/src/tests/cipher.cpp:1111,1
    - Dst: pgp::ECDHTestKeyMaterial::ec
      Src: /src/rnp/src/tests/cipher.cpp:1112,1
    - Dst: pgp::ECDHTestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:1113,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1114,1
    - Dst: pgp::ECDHTestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:1114,1
    - Dst: pgp::ECDHTestKeyMaterial::ec
      Src: /src/rnp/src/tests/cipher.cpp:1115,1
    - Dst: pgp::ECDHTestKeyMaterial::ec
      Src: /src/rnp/src/tests/cipher.cpp:1117,1
    - Dst: pgp::ECDHTestKeyMaterial::ec
      Src: /src/rnp/src/tests/cipher.cpp:1118,1
    - Dst: resize
      Src: /src/rnp/src/tests/cipher.cpp:1118,1
    - Dst: pgp::ECDHTestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:1119,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1120,1
    - Dst: pgp::ECDHTestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:1120,1
    - Dst: pgp::ECDHTestKeyMaterial::ec
      Src: /src/rnp/src/tests/cipher.cpp:1121,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1122,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/cipher.cpp:1122,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1123,1
    - Dst: pgp_key_pkt_t::material::secret
      Src: /src/rnp/src/tests/cipher.cpp:1123,1
    - Dst: pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:1124,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1127,1
    - Dst: read_key_pkt
      Src: /src/rnp/src/tests/cipher.cpp:1127,1
    - Dst: pgp_key_pkt_t::material::validate
      Src: /src/rnp/src/tests/cipher.cpp:1128,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1129,1
    - Dst: pgp_key_pkt_t::material::valid
      Src: /src/rnp/src/tests/cipher.cpp:1129,1
    - Dst: dynamic_cast<pgp::EDDSAKeyMaterial &>
      Src: /src/rnp/src/tests/cipher.cpp:1130,1
    - Dst: pgp::EDDSATestKeyMaterial::ec
      Src: /src/rnp/src/tests/cipher.cpp:1131,1
    - Dst: pgp::EDDSATestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:1132,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1133,1
    - Dst: pgp::EDDSATestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:1133,1
    - Dst: pgp::EDDSATestKeyMaterial::ec
      Src: /src/rnp/src/tests/cipher.cpp:1134,1
    - Dst: pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:1135,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1138,1
    - Dst: read_key_pkt
      Src: /src/rnp/src/tests/cipher.cpp:1138,1
    - Dst: pgp_key_pkt_t::material::validate
      Src: /src/rnp/src/tests/cipher.cpp:1139,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1140,1
    - Dst: pgp_key_pkt_t::material::valid
      Src: /src/rnp/src/tests/cipher.cpp:1140,1
    - Dst: pgp::ECDHTestKeyMaterial::ECDHTestKeyMaterial
      Src: /src/rnp/src/tests/cipher.cpp:1141,1
    - Dst: dynamic_cast<pgp::ECDHKeyMaterial &>
      Src: /src/rnp/src/tests/cipher.cpp:1141,1
    - Dst: pgp::ECDHTestKeyMaterial::ec
      Src: /src/rnp/src/tests/cipher.cpp:1142,1
    - Dst: pgp::ECDHTestKeyMaterial::validate
      Src: /src/rnp/src/tests/cipher.cpp:1143,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1144,1
    - Dst: pgp::ECDHTestKeyMaterial::valid
      Src: /src/rnp/src/tests/cipher.cpp:1144,1
    - Dst: pgp::ECDHTestKeyMaterial::ec
      Src: /src/rnp/src/tests/cipher.cpp:1145,1
    - Dst: pgp_key_pkt_t
      Src: /src/rnp/src/tests/cipher.cpp:1146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 173
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 942
    functionDepth: 2
    functionLinenumber: 942
    functionLinenumberEnd: 1147
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<pgp::ECDHKeyMaterial &>
    - pgp::RSATestKeyMaterial::valid
    - pgp::RSATestKeyMaterial::validate
    - pgp::DSATestKeyMaterial::valid
    - pgp_key_pkt_t::material::validity
    - pgp::EDDSATestKeyMaterial::valid
    - dynamic_cast<pgp::ECDSAKeyMaterial &>
    - pgp::ECDHTestKeyMaterial::valid
    - pgp::EGTestKeyMaterial::EGTestKeyMaterial
    - size
    - pgp::EDDSATestKeyMaterial::ec
    - assert_true
    - pgp::ECDHTestKeyMaterial::ECDHTestKeyMaterial
    - assert_rnp_success
    - pgp_key_pkt_t
    - pgp_key_pkt_t::material::secret
    - pgp::RSATestKeyMaterial::rsa
    - pgp::ECDSATestKeyMaterial::valid
    - dynamic_cast<pgp::DSAKeyMaterial &>
    - pgp::DSATestKeyMaterial::DSATestKeyMaterial
    - pgp::EGTestKeyMaterial::validate
    - pgp::ECDSATestKeyMaterial::ec
    - resize
    - pgp_key_pkt_t::material::valid
    - pgp_key_pkt_t::pgp_key_pkt_t
    - pgp::RSATestKeyMaterial::RSATestKeyMaterial
    - dynamic_cast<pgp::RSAKeyMaterial &>
    - pgp::EGTestKeyMaterial::eg
    - pgp::ECDHTestKeyMaterial::ec
    - read_key_pkt
    - pgp::DSATestKeyMaterial::dsa
    - dynamic_cast<pgp::EDDSAKeyMaterial &>
    - pgp::EDDSATestKeyMaterial::validate
    - pgp::EGTestKeyMaterial::valid
    - pgp::DSATestKeyMaterial::validate
    - pgp::ECDHTestKeyMaterial::validate
    - assert_false
    - dynamic_cast<pgp::EGKeyMaterial &>
    - pgp_key_pkt_t::material::validate
    - pgp::ECDSATestKeyMaterial::validate
    - decrypt_secret_key
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_validate_key_material)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1155,1
    - Dst: sm2_enabled
      Src: /src/rnp/src/tests/cipher.cpp:1155,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1157,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/cipher.cpp:1157,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/cipher.cpp:1158,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1159,1
    - Dst: string
      Src: /src/rnp/src/tests/cipher.cpp:1159,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/cipher.cpp:1160,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1161,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/cipher.cpp:1161,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1162,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1164,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/cipher.cpp:1164,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/cipher.cpp:1165,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1166,1
    - Dst: string
      Src: /src/rnp/src/tests/cipher.cpp:1166,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/cipher.cpp:1167,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1169,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/cipher.cpp:1169,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1170,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1172,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/cipher.cpp:1172,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/cipher.cpp:1173,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1174,1
    - Dst: string
      Src: /src/rnp/src/tests/cipher.cpp:1174,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/cipher.cpp:1175,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1177,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/cipher.cpp:1177,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1178,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1180,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/cipher.cpp:1180,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/cipher.cpp:1181,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1182,1
    - Dst: string
      Src: /src/rnp/src/tests/cipher.cpp:1182,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/cipher.cpp:1183,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1185,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/cipher.cpp:1185,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1186,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1188,1
    - Dst: sm2_enabled
      Src: /src/rnp/src/tests/cipher.cpp:1188,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1190,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/cipher.cpp:1190,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/cipher.cpp:1191,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1192,1
    - Dst: string
      Src: /src/rnp/src/tests/cipher.cpp:1192,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/cipher.cpp:1193,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1195,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/cipher.cpp:1195,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1196,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1198,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/cipher.cpp:1198,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/cipher.cpp:1199,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1200,1
    - Dst: string
      Src: /src/rnp/src/tests/cipher.cpp:1200,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/cipher.cpp:1201,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1203,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/cipher.cpp:1203,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1204,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1206,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/cipher.cpp:1206,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/cipher.cpp:1207,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1208,1
    - Dst: string
      Src: /src/rnp/src/tests/cipher.cpp:1208,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/cipher.cpp:1209,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1211,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/cipher.cpp:1211,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1212,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1214,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/cipher.cpp:1214,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/cipher.cpp:1215,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1216,1
    - Dst: string
      Src: /src/rnp/src/tests/cipher.cpp:1216,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/cipher.cpp:1217,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1219,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/cipher.cpp:1219,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 58
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1149
    functionDepth: 1
    functionLinenumber: 1149
    functionLinenumberEnd: 1222
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - sm2_enabled
    - assert_true
    - string
    - rnp_buffer_destroy
    - assert_rnp_success
    - rnp_supports_feature
    - rnp_supported_features
    - assert_false
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_sm2_enabled)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aead_eax_enabled
      Src: /src/rnp/src/tests/cipher.cpp:1230,1
    - Dst: aead_ocb_enabled
      Src: /src/rnp/src/tests/cipher.cpp:1231,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1232,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1233,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/cipher.cpp:1233,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/cipher.cpp:1234,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1235,1
    - Dst: string
      Src: /src/rnp/src/tests/cipher.cpp:1235,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1236,1
    - Dst: string
      Src: /src/rnp/src/tests/cipher.cpp:1236,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/cipher.cpp:1237,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1238,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/cipher.cpp:1238,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1239,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1240,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/cipher.cpp:1240,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1241,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1243,1
    - Dst: aead_eax_enabled
      Src: /src/rnp/src/tests/cipher.cpp:1243,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1244,1
    - Dst: aead_ocb_enabled
      Src: /src/rnp/src/tests/cipher.cpp:1244,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1245,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/cipher.cpp:1245,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/cipher.cpp:1246,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1247,1
    - Dst: string
      Src: /src/rnp/src/tests/cipher.cpp:1247,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1248,1
    - Dst: string
      Src: /src/rnp/src/tests/cipher.cpp:1248,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/cipher.cpp:1249,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1250,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/cipher.cpp:1250,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1251,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1252,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/cipher.cpp:1252,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1253,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1255
      start: 1224
    functionDepth: 1
    functionLinenumber: 1224
    functionLinenumberEnd: 1255
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - assert_true
    - string
    - aead_ocb_enabled
    - rnp_buffer_destroy
    - assert_rnp_success
    - rnp_supports_feature
    - rnp_supported_features
    - assert_false
    - aead_eax_enabled
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_aead_enabled)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1263,1
    - Dst: idea_enabled
      Src: /src/rnp/src/tests/cipher.cpp:1263,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1264,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/cipher.cpp:1264,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/cipher.cpp:1265,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1266,1
    - Dst: string
      Src: /src/rnp/src/tests/cipher.cpp:1266,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/cipher.cpp:1267,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1268,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/cipher.cpp:1268,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1269,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1271,1
    - Dst: idea_enabled
      Src: /src/rnp/src/tests/cipher.cpp:1271,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1272,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/cipher.cpp:1272,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/cipher.cpp:1273,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1274,1
    - Dst: string
      Src: /src/rnp/src/tests/cipher.cpp:1274,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/cipher.cpp:1275,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1276,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/cipher.cpp:1276,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1257
    functionDepth: 1
    functionLinenumber: 1257
    functionLinenumberEnd: 1279
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - idea_enabled
    - assert_true
    - string
    - rnp_buffer_destroy
    - assert_rnp_success
    - rnp_supports_feature
    - rnp_supported_features
    - assert_false
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_idea_enabled)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1287,1
    - Dst: twofish_enabled
      Src: /src/rnp/src/tests/cipher.cpp:1287,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1288,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/cipher.cpp:1288,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/cipher.cpp:1289,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1290,1
    - Dst: string
      Src: /src/rnp/src/tests/cipher.cpp:1290,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/cipher.cpp:1291,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1292,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/cipher.cpp:1292,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1293,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1295,1
    - Dst: twofish_enabled
      Src: /src/rnp/src/tests/cipher.cpp:1295,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1296,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/cipher.cpp:1296,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/cipher.cpp:1297,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1298,1
    - Dst: string
      Src: /src/rnp/src/tests/cipher.cpp:1298,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/cipher.cpp:1299,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1300,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/cipher.cpp:1300,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1303
      start: 1281
    functionDepth: 1
    functionLinenumber: 1281
    functionLinenumberEnd: 1303
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - assert_true
    - twofish_enabled
    - string
    - rnp_buffer_destroy
    - assert_rnp_success
    - rnp_supports_feature
    - rnp_supported_features
    - assert_false
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_twofish_enabled)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1311,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/cipher.cpp:1311,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1312,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/cipher.cpp:1312,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/cipher.cpp:1313,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1314,1
    - Dst: string
      Src: /src/rnp/src/tests/cipher.cpp:1314,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/cipher.cpp:1315,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1316,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/cipher.cpp:1316,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1317,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1318,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/cipher.cpp:1318,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1319,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1320,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/cipher.cpp:1320,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1321,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1323,1
    - Dst: brainpool_enabled
      Src: /src/rnp/src/tests/cipher.cpp:1323,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1324,1
    - Dst: rnp_supported_features
      Src: /src/rnp/src/tests/cipher.cpp:1324,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/cipher.cpp:1325,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/cipher.cpp:1326,1
    - Dst: string
      Src: /src/rnp/src/tests/cipher.cpp:1326,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/cipher.cpp:1327,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1328,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/cipher.cpp:1328,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1329,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1330,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/cipher.cpp:1330,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1331,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/cipher.cpp:1332,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/cipher.cpp:1332,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/cipher.cpp:1333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1305
    functionDepth: 1
    functionLinenumber: 1305
    functionLinenumberEnd: 1335
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - assert_true
    - string
    - rnp_buffer_destroy
    - assert_rnp_success
    - rnp_supports_feature
    - rnp_supported_features
    - brainpool_enabled
    - assert_false
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_brainpool_enabled)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/cipher.cpp:1343,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/cipher.cpp:1346,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:1356,1
    - Dst: botan_cipher_init
      Src: /src/rnp/src/tests/cipher.cpp:1356,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:1360,1
    - Dst: rnp::hex_decode
      Src: /src/rnp/src/tests/cipher.cpp:1360,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:1361,1
    - Dst: botan_cipher_set_key
      Src: /src/rnp/src/tests/cipher.cpp:1361,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:1364,1
    - Dst: rnp::hex_decode
      Src: /src/rnp/src/tests/cipher.cpp:1364,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:1365,1
    - Dst: botan_cipher_set_associated_data
      Src: /src/rnp/src/tests/cipher.cpp:1365,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:1368,1
    - Dst: rnp::hex_decode
      Src: /src/rnp/src/tests/cipher.cpp:1368,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:1369,1
    - Dst: botan_cipher_start
      Src: /src/rnp/src/tests/cipher.cpp:1369,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:1371,1
    - Dst: botan_cipher_update
      Src: /src/rnp/src/tests/cipher.cpp:1372,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:1376,1
    - Dst: botan_cipher_update
      Src: /src/rnp/src/tests/cipher.cpp:1377,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:1381,1
    - Dst: botan_cipher_update
      Src: /src/rnp/src/tests/cipher.cpp:1382,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:1386,1
    - Dst: botan_cipher_update
      Src: /src/rnp/src/tests/cipher.cpp:1387,1
    - Dst: botan_version_major
      Src: /src/rnp/src/tests/cipher.cpp:1391,1
    - Dst: botan_version_minor
      Src: /src/rnp/src/tests/cipher.cpp:1392,1
    - Dst: botan_version_patch
      Src: /src/rnp/src/tests/cipher.cpp:1393,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:1407,1
    - Dst: botan_cipher_update
      Src: /src/rnp/src/tests/cipher.cpp:1407,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:1418,1
    - Dst: botan_cipher_reset
      Src: /src/rnp/src/tests/cipher.cpp:1418,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/cipher.cpp:1419,1
    - Dst: botan_cipher_destroy
      Src: /src/rnp/src/tests/cipher.cpp:1419,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1420
      start: 1338
    functionDepth: 1
    functionLinenumber: 1338
    functionLinenumberEnd: 1420
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/cipher.cpp
    functionUses: 0
    functionsReached:
    - botan_cipher_set_associated_data
    - botan_cipher_start
    - botan_version_major
    - auto::data
    - rnp::hex_decode
    - assert_int_equal
    - botan_cipher_reset
    - botan_version_minor
    - botan_cipher_destroy
    - botan_version_patch
    - botan_cipher_update
    - file_to_vec
    - botan_cipher_set_key
    - botan_cipher_init
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_windows_botan_crash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: fopen
      Src: /src/rnp/src/tests/log-switch.cpp:34,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/log-switch.cpp:35,1
    - Dst: rnp_log_switch
      Src: /src/rnp/src/tests/log-switch.cpp:36,1
    - Dst: set_rnp_log_switch
      Src: /src/rnp/src/tests/log-switch.cpp:39,1
    - Dst: RNP_LOG_FD
      Src: /src/rnp/src/tests/log-switch.cpp:40,1
    - Dst: fflush
      Src: /src/rnp/src/tests/log-switch.cpp:41,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/log-switch.cpp:42,1
    - Dst: ftell
      Src: /src/rnp/src/tests/log-switch.cpp:42,1
    - Dst: set_rnp_log_switch
      Src: /src/rnp/src/tests/log-switch.cpp:45,1
    - Dst: RNP_LOG_FD
      Src: /src/rnp/src/tests/log-switch.cpp:46,1
    - Dst: fflush
      Src: /src/rnp/src/tests/log-switch.cpp:47,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/log-switch.cpp:48,1
    - Dst: ftell
      Src: /src/rnp/src/tests/log-switch.cpp:48,1
    - Dst: fclose
      Src: /src/rnp/src/tests/log-switch.cpp:50,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/log-switch.cpp:51,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/log-switch.cpp:51,1
    - Dst: fopen
      Src: /src/rnp/src/tests/log-switch.cpp:53,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/log-switch.cpp:54,1
    - Dst: getenv
      Src: /src/rnp/src/tests/log-switch.cpp:56,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/log-switch.cpp:59,1
    - Dst: unsetenv
      Src: /src/rnp/src/tests/log-switch.cpp:59,1
    - Dst: set_rnp_log_switch
      Src: /src/rnp/src/tests/log-switch.cpp:60,1
    - Dst: RNP_LOG_FD
      Src: /src/rnp/src/tests/log-switch.cpp:61,1
    - Dst: fflush
      Src: /src/rnp/src/tests/log-switch.cpp:62,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/log-switch.cpp:63,1
    - Dst: ftell
      Src: /src/rnp/src/tests/log-switch.cpp:63,1
    - Dst: setenv
      Src: /src/rnp/src/tests/log-switch.cpp:66,1
    - Dst: set_rnp_log_switch
      Src: /src/rnp/src/tests/log-switch.cpp:67,1
    - Dst: RNP_LOG_FD
      Src: /src/rnp/src/tests/log-switch.cpp:68,1
    - Dst: fflush
      Src: /src/rnp/src/tests/log-switch.cpp:69,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/log-switch.cpp:70,1
    - Dst: ftell
      Src: /src/rnp/src/tests/log-switch.cpp:70,1
    - Dst: setenv
      Src: /src/rnp/src/tests/log-switch.cpp:73,1
    - Dst: set_rnp_log_switch
      Src: /src/rnp/src/tests/log-switch.cpp:74,1
    - Dst: RNP_LOG_FD
      Src: /src/rnp/src/tests/log-switch.cpp:75,1
    - Dst: fflush
      Src: /src/rnp/src/tests/log-switch.cpp:76,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/log-switch.cpp:77,1
    - Dst: ftell
      Src: /src/rnp/src/tests/log-switch.cpp:77,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/log-switch.cpp:81,1
    - Dst: setenv
      Src: /src/rnp/src/tests/log-switch.cpp:81,1
    - Dst: unsetenv
      Src: /src/rnp/src/tests/log-switch.cpp:83,1
    - Dst: fclose
      Src: /src/rnp/src/tests/log-switch.cpp:87,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/log-switch.cpp:88,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/log-switch.cpp:88,1
    - Dst: fopen
      Src: /src/rnp/src/tests/log-switch.cpp:89,1
    - Dst: set_rnp_log_switch
      Src: /src/rnp/src/tests/log-switch.cpp:91,1
    - Dst: rnp_log_continue
      Src: /src/rnp/src/tests/log-switch.cpp:93,1
    - Dst: RNP_LOG_FD
      Src: /src/rnp/src/tests/log-switch.cpp:94,1
    - Dst: fflush
      Src: /src/rnp/src/tests/log-switch.cpp:95,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/log-switch.cpp:96,1
    - Dst: ftell
      Src: /src/rnp/src/tests/log-switch.cpp:96,1
    - Dst: set_rnp_log_switch
      Src: /src/rnp/src/tests/log-switch.cpp:98,1
    - Dst: rnp_log_stop
      Src: /src/rnp/src/tests/log-switch.cpp:99,1
    - Dst: RNP_LOG_FD
      Src: /src/rnp/src/tests/log-switch.cpp:100,1
    - Dst: fflush
      Src: /src/rnp/src/tests/log-switch.cpp:101,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/log-switch.cpp:102,1
    - Dst: ftell
      Src: /src/rnp/src/tests/log-switch.cpp:102,1
    - Dst: rnp_log_continue
      Src: /src/rnp/src/tests/log-switch.cpp:104,1
    - Dst: RNP_LOG_FD
      Src: /src/rnp/src/tests/log-switch.cpp:105,1
    - Dst: fflush
      Src: /src/rnp/src/tests/log-switch.cpp:106,1
    - Dst: ftell
      Src: /src/rnp/src/tests/log-switch.cpp:107,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/log-switch.cpp:108,1
    - Dst: rnp::LogStop::LogStop
      Src: /src/rnp/src/tests/log-switch.cpp:111,1
    - Dst: RNP_LOG_FD
      Src: /src/rnp/src/tests/log-switch.cpp:112,1
    - Dst: fflush
      Src: /src/rnp/src/tests/log-switch.cpp:113,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/log-switch.cpp:114,1
    - Dst: ftell
      Src: /src/rnp/src/tests/log-switch.cpp:114,1
    - Dst: RNP_LOG_FD
      Src: /src/rnp/src/tests/log-switch.cpp:120,1
    - Dst: fflush
      Src: /src/rnp/src/tests/log-switch.cpp:121,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/log-switch.cpp:122,1
    - Dst: ftell
      Src: /src/rnp/src/tests/log-switch.cpp:122,1
    - Dst: ftell
      Src: /src/rnp/src/tests/log-switch.cpp:123,1
    - Dst: rnp_log_stop
      Src: /src/rnp/src/tests/log-switch.cpp:126,1
    - Dst: rnp::LogStop::LogStop
      Src: /src/rnp/src/tests/log-switch.cpp:128,1
    - Dst: RNP_LOG_FD
      Src: /src/rnp/src/tests/log-switch.cpp:129,1
    - Dst: fflush
      Src: /src/rnp/src/tests/log-switch.cpp:130,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/log-switch.cpp:131,1
    - Dst: ftell
      Src: /src/rnp/src/tests/log-switch.cpp:131,1
    - Dst: rnp_log_continue
      Src: /src/rnp/src/tests/log-switch.cpp:134,1
    - Dst: RNP_LOG_FD
      Src: /src/rnp/src/tests/log-switch.cpp:135,1
    - Dst: fflush
      Src: /src/rnp/src/tests/log-switch.cpp:136,1
    - Dst: ftell
      Src: /src/rnp/src/tests/log-switch.cpp:137,1
    - Dst: assert_int_not_equal
      Src: /src/rnp/src/tests/log-switch.cpp:138,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/log-switch.cpp:139,1
    - Dst: set_rnp_log_switch
      Src: /src/rnp/src/tests/log-switch.cpp:142,1
    - Dst: fclose
      Src: /src/rnp/src/tests/log-switch.cpp:144,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/log-switch.cpp:145,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/log-switch.cpp:145,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 73
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 146
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/log-switch.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_log_switch
    - RNP_LOG_FD
    - fopen
    - assert_true
    - fflush
    - assert_int_equal
    - fclose
    - getenv
    - rnp_unlink
    - rnp_log_continue
    - rnp::LogStop::LogStop
    - rnp_log_stop
    - ftell
    - setenv
    - set_rnp_log_switch
    - unsetenv
    - assert_int_not_equal
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_log_switch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:44,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:44,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:46,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:46,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:49,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:49,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:53,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:53,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:54,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:54,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:55,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:55,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:56,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:56,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:57,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:57,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:58,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:58,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:60,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:60,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:61,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:64,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:64,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:65,1
    - Dst: rnp_uid_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:65,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:66,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:67,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:67,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:68,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:68,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:70,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:70,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:71,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:71,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:72,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:72,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:73,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:74,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:76,1
    - Dst: rnp_signature_get_creation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:76,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:77,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:79,1
    - Dst: rnp_signature_get_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:79,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:80,1
    - Dst: rnp_signature_get_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:80,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:81,1
    - Dst: rnp_signature_get_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:81,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:82,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:83,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:84,1
    - Dst: rnp_signature_get_hash_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:84,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:85,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:86,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:88,1
    - Dst: rnp_signature_get_keyid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:88,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:89,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:90,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:91,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:93,1
    - Dst: rnp_signature_get_key_fprint
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:93,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:94,1
    - Dst: rnp_signature_get_key_fprint
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:94,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:95,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:96,1
    - Dst: rnp_signature_get_key_fprint
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:96,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:97,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:98,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:100,1
    - Dst: rnp_signature_get_signer
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:100,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:101,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:102,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:102,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:103,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:104,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:105,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:106,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:107,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:107,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:108,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:108,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:109,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:109,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:111,1
    - Dst: rnp_signature_error_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:111,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:112,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:114,1
    - Dst: rnp_signature_error_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:114,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:115,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:115,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:118,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:118,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:119,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:119,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:120,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:121,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:121,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:124,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:124,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:125,1
    - Dst: rnp_signature_export
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:125,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:126,1
    - Dst: rnp_signature_export
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:126,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:127,1
    - Dst: rnp_signature_export
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:127,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:128,1
    - Dst: rnp_signature_export
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:128,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:131,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:131,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:132,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:134,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:134,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:136,1
    - Dst: rnp_import_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:136,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:137,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:138,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:139,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:139,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:140,1
    - Dst: nlohmann::ordered_json::is_object
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:140,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:142,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:142,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:143,1
    - Dst: nlohmann::ordered_json::is_array
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:143,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:144,1
    - Dst: nlohmann::ordered_json::size
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:144,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:145,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:146,1
    - Dst: check_sig_status
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:146,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:148,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:149,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:149,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:150,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:150,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:153,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:153,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:154,1
    - Dst: rnp_signature_export
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:154,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:157,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:157,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:158,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:160,1
    - Dst: starts_with
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:160,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:161,1
    - Dst: ends_with
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:161,1
    - Dst: strip_eol
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:161,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:163,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:163,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:164,1
    - Dst: rnp_import_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:164,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:165,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:165,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:166,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:166,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:168,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:168,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:169,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:170,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:171,1
    - Dst: rnp_signature_get_creation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:171,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:172,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:173,1
    - Dst: rnp_signature_get_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:173,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:174,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:175,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:176,1
    - Dst: rnp_signature_get_hash_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:176,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:177,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:178,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:179,1
    - Dst: rnp_signature_get_keyid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:179,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:180,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:181,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:182,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:183,1
    - Dst: rnp_signature_get_signer
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:183,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:184,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:185,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:185,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:186,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:187,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:188,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:189,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:190,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:191,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:191,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:192,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:192,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:193,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:193,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:196,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:196,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:197,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:197,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:198,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:198,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:199,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:200,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:200,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:201,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:201,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:202,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:203,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:204,1
    - Dst: rnp_signature_get_key_fprint
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:204,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:205,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:206,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:207,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 131
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 211
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_key_get_subkey_at
    - rnp_output_memory_get_buf
    - nlohmann::ordered_json::is_array
    - assert_rnp_failure
    - rnp_key_get_uid_handle_at
    - ends_with
    - assert_string_equal
    - nlohmann::ordered_json::is_object
    - nlohmann::ordered_json::size
    - rnp_signature_get_alg
    - rnp_import_signatures
    - rnp_key_get_keyid
    - assert_true
    - assert_null
    - starts_with
    - assert_rnp_success
    - rnp_signature_get_creation
    - pgp::pkt::Signature::parse
    - rnp_signature_get_keyid
    - rnp_key_handle_destroy
    - rnp_uid_get_signature_at
    - rnp_signature_is_valid
    - rnp_signature_get_type
    - rnp_output_to_memory
    - rnp_locate_key
    - rnp_input_from_memory
    - rnp_uid_handle_destroy
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_key_get_signature_count
    - nlohmann::ordered_json::contains
    - nlohmann::ordered_json::is_null
    - rnp_ffi_create
    - strip_eol
    - rnp_key_get_signature_at
    - rnp_signature_handle_destroy
    - rnp_signature_export
    - rnp_input_destroy
    - nlohmann::ordered_json::at
    - rnp_signature_get_key_fprint
    - rnp_signature_get_signer
    - check_sig_status
    - rnp_buffer_destroy
    - load_keys_gpg
    - rnp_uid_get_signature_count
    - rnp_signature_error_count
    - rnp_signature_error_at
    - rnp_signature_get_hash_alg
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_signatures)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:220,1
    - Dst: rnp_import_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:227,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:234,1
    - Dst: nlohmann::ordered_json*::is_object
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:238,1
    - Dst: nlohmann::ordered_json*::value
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:241,1
    - Dst: add_key_to_array
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:241,1
    - Dst: nlohmann::ordered_json*::contains
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:242,1
    - Dst: nlohmann::ordered_json*::is_array
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:245,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:254,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:255,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 4
    argNames:
    - ffi
    - jso
    - sigarr
    - sigpath
    argTypes:
    - rnp_ffi_t
    - nlohmann::ordered_json*
    - nlohmann::ordered_json*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 257
    functionName: check_import_sigs
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - nlohmann::ordered_json*::value
    - add_key_to_array
    - rnp_input_from_path
    - nlohmann::ordered_json*::is_object
    - rnp_buffer_destroy
    - pgp::pkt::Signature::parse
    - rnp_import_signatures
    - nlohmann::ordered_json*::contains
    - nlohmann::ordered_json*::is_array
    - rnp_input_destroy
    linkageType: ''
    returnType: bool
    signature: "bool check_import_sigs(rnp_ffi_t               ffi,\n                  nlohmann::ordered_json
      *jso,\n                  nlohmann::ordered_json *sigarr,\n                  const
      char *            sigpath)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:262,1
    - Dst: nlohmann::ordered_json::is_object
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:265,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:269,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:272,1
    - Dst: nlohmann::ordered_json::get_ref
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:272,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:275,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:278,1
    - Dst: nlohmann::ordered_json::get_ref
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:278,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:281,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:286,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:290,1
    - Dst: nlohmann::ordered_json::get_ref
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:290,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 4
    argNames:
    - sig
    - pub
    - sec
    - fp
    argTypes:
    - nlohmann::ordered_json
    - char*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 295
    functionName: check_sig_status
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 1
    functionsReached:
    - nlohmann::ordered_json::get_ref
    - nlohmann::ordered_json::is_object
    - strcmp
    - nlohmann::ordered_json::contains
    - nlohmann::ordered_json::is_null
    linkageType: ''
    returnType: bool
    signature: bool check_sig_status(nlohmann::ordered_json sig, const char *pub,
      const char *sec, const char *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:303,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:303,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:304,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:304,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:307,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:307,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:309,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:309,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:310,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:313,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:313,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:314,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:316,1
    - Dst: rnp_import_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:316,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:320,1
    - Dst: check_import_sigs
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:321,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:322,1
    - Dst: nlohmann::ordered_json::size
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:322,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:323,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:324,1
    - Dst: check_sig_status
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:324,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:328,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:328,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:329,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:331,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:331,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:332,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:335,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:335,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:337,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:337,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:338,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:339,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:340,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:340,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:342,1
    - Dst: rnp_signature_get_creation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:342,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:343,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:344,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:347,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:347,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:348,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:350,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:350,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:351,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:353,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:353,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:354,1
    - Dst: rnp_import_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:354,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:355,1
    - Dst: rnp_import_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:355,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:356,1
    - Dst: rnp_import_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:356,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:357,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:357,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:359,1
    - Dst: check_import_sigs
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:360,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:361,1
    - Dst: nlohmann::ordered_json::size
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:361,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:362,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:363,1
    - Dst: check_sig_status
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:363,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:367,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:367,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:368,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:369,1
    - Dst: reload_pubring
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:371,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:373,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:373,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:374,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:374,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:375,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:376,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:376,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:377,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:378,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:378,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:379,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:380,1
    - Dst: rnp_key_valid_till
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:380,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:381,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:382,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:382,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:385,1
    - Dst: check_import_sigs
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:386,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:387,1
    - Dst: nlohmann::ordered_json::size
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:387,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:388,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:389,1
    - Dst: check_sig_status
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:389,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:393,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:393,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:394,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:394,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:395,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:395,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:396,1
    - Dst: check_import_sigs
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:397,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:398,1
    - Dst: nlohmann::ordered_json::size
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:398,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:399,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:400,1
    - Dst: check_sig_status
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:401,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:405,1
    - Dst: check_import_sigs
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:406,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:407,1
    - Dst: nlohmann::ordered_json::size
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:407,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:408,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:409,1
    - Dst: check_sig_status
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:410,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:412,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:412,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:413,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:413,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:414,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:415,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:415,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:416,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:417,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:417,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:418,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:418,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:419,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:420,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:421,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:421,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:422,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:423,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:423,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:426,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:426,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:427,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:427,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:429,1
    - Dst: check_import_sigs
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:430,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:431,1
    - Dst: nlohmann::ordered_json::size
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:431,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:432,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:433,1
    - Dst: check_sig_status
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:433,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:435,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:436,1
    - Dst: check_sig_status
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:436,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:439,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:439,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:440,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:440,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:441,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:442,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:442,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:443,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:444,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:444,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:447,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:447,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:448,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:448,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:450,1
    - Dst: check_import_sigs
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:451,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:452,1
    - Dst: nlohmann::ordered_json::size
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:452,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:453,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:455,1
    - Dst: check_sig_status
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:456,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:457,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:458,1
    - Dst: check_sig_status
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:459,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:461,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:461,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:462,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:462,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:463,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:464,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:464,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:465,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:466,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:466,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:468,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:468,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:470,1
    - Dst: rnp_import_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:470,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:471,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:472,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:472,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:475,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:475,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:476,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:476,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:477,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:478,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:480,1
    - Dst: rnp_import_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:480,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:481,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:482,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:482,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:483,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:483,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:484,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:484,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:485,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:486,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:486,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:487,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:488,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:488,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:489,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:489,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 125
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 297
    functionDepth: 2
    functionLinenumber: 297
    functionLinenumberEnd: 490
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - assert_rnp_failure
    - rnp_key_is_valid
    - assert_string_equal
    - nlohmann::ordered_json::size
    - rnp_import_signatures
    - rnp_key_valid_till
    - rnp_input_from_path
    - assert_true
    - assert_null
    - assert_rnp_success
    - rnp_signature_get_creation
    - rnp_key_handle_destroy
    - rnp_key_is_revoked
    - rnp_signature_is_valid
    - check_import_sigs
    - rnp_signature_get_type
    - rnp_locate_key
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_key_get_signature_count
    - reload_pubring
    - import_pub_keys
    - rnp_ffi_create
    - rnp_key_get_signature_at
    - rnp_signature_handle_destroy
    - rnp_input_destroy
    - nlohmann::ordered_json::at
    - check_sig_status
    - rnp_buffer_destroy
    - assert_false
    - rnp_unload_keys
    - import_sec_keys
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_import_signatures)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:495,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:495,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:496,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:496,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:499,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:499,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:502,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:502,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:504,1
    - Dst: rnp_key_export_revocation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:504,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:506,1
    - Dst: rnp_key_export_revocation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:506,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:507,1
    - Dst: rnp_key_export_revocation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:508,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:509,1
    - Dst: rnp_key_export_revocation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:510,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:511,1
    - Dst: rnp_key_export_revocation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:511,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:513,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:513,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:515,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:515,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:516,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:516,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:517,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:517,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:518,1
    - Dst: rnp_key_export_revocation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:518,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:520,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:520,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:522,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:522,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:523,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:523,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:524,1
    - Dst: rnp_key_export_revocation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:524,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:526,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:526,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:528,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:528,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:529,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:529,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:531,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:532,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:533,1
    - Dst: rnp_key_export_revocation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:533,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:535,1
    - Dst: rnp_key_export_revocation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:535,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:543,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:543,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:544,1
    - Dst: rnp_key_export_revocation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:545,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:546,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:546,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:549,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:549,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:551,1
    - Dst: rnp_key_lock
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:551,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:552,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:553,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:554,1
    - Dst: rnp_key_export_revocation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:554,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:556,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:556,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:559,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:560,1
    - Dst: starts_with
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:560,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:561,1
    - Dst: ends_with
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:561,1
    - Dst: strip_eol
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:561,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:565,1
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:565,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:566,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:567,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:567,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:571,1
    - Dst: check_import_sigs
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:571,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:572,1
    - Dst: nlohmann::ordered_json::size
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:572,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:573,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:574,1
    - Dst: check_sig_status
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:575,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:578,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:578,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:580,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:580,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:581,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:584,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:584,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:585,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:586,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:586,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:590,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:590,1
    - Dst: pgp::pkt::Signature::Signature
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:591,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:592,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:592,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:593,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:594,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:594,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:595,1
    - Dst: pgp::pkt::Signature::has_subpkt
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:595,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:596,1
    - Dst: pgp::pkt::Signature::has_keyfp
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:596,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:597,1
    - Dst: pgp::pkt::Signature::revocation_code
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:597,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:598,1
    - Dst: pgp::pkt::Signature::revocation_reason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:598,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:600,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:600,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:601,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:601,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:606,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:606,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:607,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:607,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:610,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:610,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:614,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:614,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:615,1
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:615,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:616,1
    - Dst: rnp_key_export_revocation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:616,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:622,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:622,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:623,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:623,1
    - Dst: file_to_str
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:625,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:626,1
    - Dst: starts_with
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:626,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:627,1
    - Dst: ends_with
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:627,1
    - Dst: strip_eol
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:627,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:630,1
    - Dst: check_import_sigs
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:630,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:631,1
    - Dst: nlohmann::ordered_json::size
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:631,1
    - Dst: nlohmann::ordered_json::at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:632,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:633,1
    - Dst: check_sig_status
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:634,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:639,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:639,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:640,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:640,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:641,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:642,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:642,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:644,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:644,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:645,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:645,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 80
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 646
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_to_path
    - pgp::pkt::Signature::Signature
    - assert_rnp_failure
    - pgp_source_t::close
    - ends_with
    - assert_string_equal
    - nlohmann::ordered_json::size
    - rnp_unlink
    - rnp_ffi_set_pass_provider
    - pgp::pkt::Signature::revocation_code
    - pgp::pkt::Signature::type
    - assert_true
    - starts_with
    - assert_rnp_success
    - file_to_str
    - pgp::pkt::Signature::parse
    - init_file_src
    - rnp_key_handle_destroy
    - rnp_key_export_revocation
    - rnp_key_is_revoked
    - pgp::pkt::Signature::has_keyfp
    - check_import_sigs
    - rnp_key_lock
    - rnp_locate_key
    - pgp::pkt::Signature::revocation_reason
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_key_get_signature_count
    - pgp::pkt::Signature::has_subpkt
    - rnp_key_unlock
    - rnp_ffi_create
    - strip_eol
    - nlohmann::ordered_json::at
    - check_sig_status
    - rnp_key_is_locked
    - assert_false
    - import_sec_keys
    - rnp_unload_keys
    - rnp_output_to_null
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_export_revocation)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:653,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:653,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:660,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:660,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:662,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:662,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:664,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:664,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:666,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:666,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:667,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:670,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:670,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:672,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:672,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:673,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:674,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:675,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:675,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:676,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:678,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:678,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:679,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:679,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:680,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:681,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:682,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:682,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:684,1
    - Dst: rnp_signature_error_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:684,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:685,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:687,1
    - Dst: rnp_signature_error_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:687,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:688,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:690,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:690,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:692,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:692,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:693,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:693,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:694,1
    - Dst: rnp_signature_error_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:694,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:695,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:696,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:697,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:698,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:706,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:706,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:707,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:707,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:710,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:710,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:711,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:713,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:714,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:715,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:715,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:716,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:716,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:717,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:719,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:719,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:720,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:720,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:721,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:722,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:723,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:723,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:724,1
    - Dst: rnp_signature_error_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:724,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:725,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:726,1
    - Dst: rnp_signature_error_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:726,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:727,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:728,1
    - Dst: rnp_signature_error_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:728,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:729,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:730,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:732,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:732,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:733,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:733,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:734,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:735,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:736,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:736,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:737,1
    - Dst: rnp_signature_error_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:737,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:738,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:739,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:740,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:741,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:743,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:743,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:744,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:744,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:745,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:745,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:746,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:748,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:748,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:749,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:749,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:750,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:751,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:752,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:752,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:753,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:755,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:755,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:756,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:756,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:757,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:758,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:759,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:759,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:760,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:761,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:762,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:769,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:769,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:770,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:770,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:773,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:773,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:774,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:776,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:777,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:778,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:778,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:779,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:779,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:780,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:782,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:782,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:783,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:783,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:784,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:785,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:786,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:786,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:787,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:788,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:789,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:796,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:796,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:797,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:797,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:798,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:798,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:800,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:801,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:802,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:802,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:803,1
    - Dst: rnp_signature_error_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:803,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:804,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:805,1
    - Dst: rnp_signature_error_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:805,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:806,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:807,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:808,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:809,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:816,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:816,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:817,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:817,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:818,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:818,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:819,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:820,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:821,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:821,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:822,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:823,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:824,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:824,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:825,1
    - Dst: rnp_signature_error_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:825,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:826,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:827,1
    - Dst: rnp_signature_error_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:827,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:828,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:829,1
    - Dst: rnp_signature_error_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:829,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:830,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:831,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:832,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:839,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:839,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:840,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:840,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:842,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:842,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:843,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:844,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:844,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:845,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:846,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:847,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:847,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:848,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:850,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:851,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:852,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:852,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:853,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:854,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:855,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:855,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:856,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:857,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:858,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:865,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:865,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:866,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:866,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:868,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:868,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:869,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:870,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:871,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:871,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:872,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:873,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:874,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:874,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:875,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:877,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:878,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:878,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:879,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:880,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:881,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:881,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:882,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:883,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:884,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:900,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:900,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:901,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:901,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:903,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:903,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:904,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:904,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:905,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:905,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:906,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:908,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:908,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:909,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:909,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:910,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:911,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:912,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:912,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:913,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:915,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:915,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:916,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:916,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:917,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:918,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:919,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:919,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:920,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:921,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:922,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:925,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:925,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:926,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:926,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:927,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:927,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:928,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:928,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:929,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:929,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:930,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:930,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:931,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:933,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:933,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:934,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:934,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:935,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:936,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:937,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:937,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:938,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:940,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:940,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:941,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:941,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:942,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:943,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:944,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:944,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:945,1
    - Dst: rnp_signature_error_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:945,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:946,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:947,1
    - Dst: rnp_signature_error_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:947,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:948,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:950,1
    - Dst: rnp_signature_get_expiration
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:950,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:951,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:953,1
    - Dst: rnp_signature_get_features
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:953,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:954,1
    - Dst: rnp_signature_get_features
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:954,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:955,1
    - Dst: rnp_signature_get_features
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:955,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:956,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:957,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:958,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:959,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:961,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:961,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 212
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 650
    functionDepth: 1
    functionLinenumber: 650
    functionLinenumberEnd: 962
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - rnp_key_get_subkey_at
    - assert_rnp_failure
    - rnp_key_get_uid_handle_at
    - assert_string_equal
    - assert_true
    - assert_null
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_uid_get_signature_at
    - rnp_signature_is_valid
    - rnp_signature_get_type
    - rnp_locate_key
    - rnp_uid_handle_destroy
    - assert_int_equal
    - rnp_uid_is_valid
    - rnp_ffi_destroy
    - rnp_signature_get_expiration
    - import_pub_keys
    - rnp_ffi_create
    - rnp_key_get_signature_at
    - rnp_signature_handle_destroy
    - rnp_signature_get_features
    - rnp_buffer_destroy
    - rnp_signature_error_count
    - assert_false
    - rnp_signature_error_at
    - rnp_unload_keys
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_sig_validity)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:967,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:967,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:968,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:968,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:969,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:969,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:972,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:972,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:974,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:974,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:977,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:977,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:979,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:979,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:980,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:981,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:982,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:982,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:983,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:985,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:985,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:986,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:986,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:987,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:988,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:989,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:989,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:990,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:992,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:992,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:993,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:993,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:994,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:995,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:996,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:996,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:998,1
    - Dst: rnp_signature_error_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:998,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:999,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1001,1
    - Dst: rnp_signature_error_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1001,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1002,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1003,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1004,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1004,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1005,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1005,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1006,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1007,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1008,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1008,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1009,1
    - Dst: rnp_signature_error_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1009,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1010,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1011,1
    - Dst: rnp_signature_error_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1011,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1012,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1013,1
    - Dst: rnp_signature_error_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1013,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1014,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1015,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1016,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1016,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1017,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1017,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1018,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1019,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1020,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1020,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1021,1
    - Dst: rnp_signature_error_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1021,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1022,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1023,1
    - Dst: rnp_signature_error_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1023,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1024,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1025,1
    - Dst: rnp_signature_error_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1025,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1026,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1027,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1028,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1028,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1029,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1029,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1030,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1031,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1032,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1032,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1033,1
    - Dst: rnp_signature_error_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1033,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1034,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1035,1
    - Dst: rnp_signature_error_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1035,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1036,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1037,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1038,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1038,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1039,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1039,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1040,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1041,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1042,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1042,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1043,1
    - Dst: rnp_signature_error_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1043,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1044,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1045,1
    - Dst: rnp_signature_error_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1045,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1046,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1047,1
    - Dst: rnp_signature_error_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1047,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1048,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1049,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1051,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1052,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1054,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1054,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 77
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1055
      start: 964
    functionDepth: 1
    functionLinenumber: 964
    functionLinenumberEnd: 1055
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - rnp_key_get_uid_handle_at
    - assert_string_equal
    - assert_true
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_uid_get_signature_at
    - rnp_signature_is_valid
    - rnp_signature_get_type
    - rnp_locate_key
    - rnp_uid_handle_destroy
    - assert_int_equal
    - rnp_ffi_destroy
    - import_pub_keys
    - rnp_ffi_create
    - rnp_signature_handle_destroy
    - rnp_buffer_destroy
    - load_keys_gpg
    - rnp_signature_error_count
    - rnp_signature_error_at
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_get_signature_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1060,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1060,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1061,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1061,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1062,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1062,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1065,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1065,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1067,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1067,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1068,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1070,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1070,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1072,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1072,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1073,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1076,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1076,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1078,1
    - Dst: rnp_uid_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1078,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1079,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1081,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1081,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1082,1
    - Dst: rnp_signature_remove
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1082,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1083,1
    - Dst: rnp_signature_remove
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1083,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1085,1
    - Dst: rnp_signature_remove
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1085,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1086,1
    - Dst: rnp_signature_remove
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1086,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1087,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1088,1
    - Dst: rnp_uid_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1088,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1089,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1091,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1091,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1093,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1093,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1094,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1095,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1096,1
    - Dst: rnp_signature_remove
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1096,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1097,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1098,1
    - Dst: rnp_uid_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1098,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1099,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1101,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1101,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1102,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1102,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1103,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1104,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1105,1
    - Dst: rnp_signature_remove
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1105,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1106,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1107,1
    - Dst: rnp_uid_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1107,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1108,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1111,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1111,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1112,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1114,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1114,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1115,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1116,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1117,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1118,1
    - Dst: reload_pubring
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1121,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1122,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1122,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1124,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1124,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1125,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1126,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1126,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1128,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1128,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1129,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1130,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1130,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1131,1
    - Dst: rnp_uid_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1131,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1132,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1135,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1135,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1136,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1138,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1138,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1139,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1140,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1140,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1141,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1141,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1142,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1143,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1144,1
    - Dst: rnp_signature_remove
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1144,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1145,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1147,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1147,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1148,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1150,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1150,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1151,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1152,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1153,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1154,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1157,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1157,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1158,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1158,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1159,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1159,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1161,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1161,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1162,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1164,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1164,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1166,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1166,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1167,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1170,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1170,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1171,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1172,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1172,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1173,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1174,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1174,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1175,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1175,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1176,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1177,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1178,1
    - Dst: rnp_signature_remove
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1178,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1179,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1181,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1181,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1182,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1184,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1184,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1185,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1186,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1187,1
    - Dst: reload_pubring
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1189,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1190,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1190,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1191,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1191,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1193,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1193,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1194,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1195,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1195,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1196,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1196,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1197,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1198,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1199,1
    - Dst: rnp_signature_remove
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1199,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1200,1
    - Dst: rnp_signature_remove
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1200,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1201,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1202,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1202,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1203,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1204,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1204,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1205,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1205,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1206,1
    - Dst: rnp_signature_remove
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1206,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1207,1
    - Dst: rnp_signature_remove
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1207,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1208,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1209,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1210,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1211,1
    - Dst: reload_pubring
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1213,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1214,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1214,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1216,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1216,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1217,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1218,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1218,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1220,1
    - Dst: rnp_uid_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1220,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1221,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1222,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1222,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1224,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1224,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1225,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1226,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1227,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1228,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1231,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1231,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1232,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1232,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1235,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1235,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1238,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1238,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1239,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1240,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1240,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1241,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1241,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1242,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1244,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1244,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1245,1
    - Dst: rnp_signature_remove
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1245,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1246,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1247,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1247,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1248,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1248,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1249,1
    - Dst: rnp_signature_remove
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1249,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1250,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1251,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1252,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1253,1
    - Dst: reload_keyrings
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1254,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1255,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1255,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1257,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1257,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1258,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1260,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1260,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1261,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1262,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1262,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1264,1
    - Dst: rnp_uid_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1264,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1265,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1266,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1266,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1268,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1268,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1269,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1271,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1271,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1272,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1273,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1274,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1275,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1277,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1277,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 187
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1057
    functionDepth: 1
    functionLinenumber: 1057
    functionLinenumberEnd: 1278
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - rnp_key_get_subkey_at
    - assert_rnp_failure
    - rnp_key_get_uid_handle_at
    - rnp_key_is_valid
    - assert_string_equal
    - rnp_signature_remove
    - assert_true
    - assert_rnp_success
    - rnp_key_get_subkey_count
    - rnp_key_handle_destroy
    - rnp_uid_get_signature_at
    - rnp_signature_get_type
    - rnp_locate_key
    - rnp_uid_handle_destroy
    - assert_int_equal
    - rnp_uid_is_valid
    - rnp_ffi_destroy
    - rnp_key_get_signature_count
    - reload_pubring
    - import_pub_keys
    - rnp_ffi_create
    - rnp_key_get_signature_at
    - rnp_signature_handle_destroy
    - reload_keyrings
    - rnp_key_have_secret
    - rnp_buffer_destroy
    - load_keys_gpg
    - rnp_uid_get_signature_count
    - assert_false
    - rnp_unload_keys
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_remove_signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1284,1
    - Dst: rnp_key_is_primary
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1286,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1290,1
    - Dst: string
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1291,1
    - Dst: string
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1291,1
    - Dst: string
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1291,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - rnp_key_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1294
      start: 1280
    functionDepth: 1
    functionLinenumber: 1280
    functionLinenumberEnd: 1294
    functionName: key_info
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - rnp_key_have_secret
    - rnp_buffer_destroy
    - string
    - rnp_key_is_primary
    - rnp_key_get_keyid
    linkageType: ''
    returnType: std::string
    signature: std::string key_info(rnp_key_handle_t key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_signature_handle_t::sig::sig::type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1299,1
    - Dst: rnp_signature_get_keyid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1302,1
    - Dst: string
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1304,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1305,1
    - Dst: std::stringstream::str
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - sig
    argTypes:
    - rnp_signature_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1296
    functionDepth: 1
    functionLinenumber: 1296
    functionLinenumberEnd: 1307
    functionName: sig_info
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - std::stringstream::str
    - rnp_buffer_destroy
    - string
    - rnp_signature_get_keyid
    - rnp_signature_handle_t::sig::sig::type
    linkageType: ''
    returnType: std::string
    signature: std::string sig_info(rnp_signature_handle_t sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_uid_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1314,1
    - Dst: rnp_uid_get_data
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1320,1
    - Dst: string
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1321,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1322,1
    - Dst: rnp_uid_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1326,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1329,1
    - Dst: sig_info
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1330,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - uid
    argTypes:
    - rnp_uid_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1334
      start: 1309
    functionDepth: 2
    functionLinenumber: 1309
    functionLinenumberEnd: 1334
    functionName: uid_info
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - string
    - rnp_buffer_destroy
    - rnp_uid_get_data
    - rnp_uid_get_signature_count
    - rnp_uid_get_type
    - rnp_uid_get_signature_at
    - sig_info
    - rnp_signature_handle_destroy
    linkageType: ''
    returnType: std::string
    signature: std::string uid_info(rnp_uid_handle_t uid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: key_info
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1339,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1341,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1344,1
    - Dst: sig_info
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1345,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1346,1
    - Dst: rnp_key_is_primary
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1350,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1356,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1359,1
    - Dst: uid_info
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1360,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1361,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1365,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1368,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1369,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1370,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - key
    argTypes:
    - rnp_key_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1373
      start: 1336
    functionDepth: 3
    functionLinenumber: 1336
    functionLinenumberEnd: 1373
    functionName: key_packets
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 1
    functionsReached:
    - rnp_key_get_uid_count
    - rnp_key_get_subkey_at
    - rnp_key_get_uid_handle_at
    - rnp_uid_handle_destroy
    - rnp_key_get_signature_count
    - rnp_key_get_subkey_count
    - rnp_key_is_primary
    - rnp_key_handle_destroy
    - key_info
    - sig_info
    - rnp_key_get_signature_at
    - uid_info
    - rnp_signature_handle_destroy
    - key_packets
    linkageType: ''
    returnType: std::string
    signature: std::string key_packets(rnp_key_handle_t key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1378,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1379,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1380,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - ffi
    - app_ctx
    - sig
    - action
    argTypes:
    - rnp_ffi_t
    - void*
    - rnp_signature_handle_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1383
      start: 1375
    functionDepth: 1
    functionLinenumber: 1375
    functionLinenumberEnd: 1383
    functionName: sigremove_leave
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - assert_true
    linkageType: ''
    returnType: void
    signature: void sigremove_leave(rnp_ffi_t ffi, void *app_ctx, rnp_signature_handle_t
      sig, uint32_t *action)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1388,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1389,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1390,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 4
    argNames:
    - ffi
    - app_ctx
    - sig
    - action
    argTypes:
    - rnp_ffi_t
    - void*
    - rnp_signature_handle_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1392
      start: 1385
    functionDepth: 1
    functionLinenumber: 1385
    functionLinenumberEnd: 1392
    functionName: sigremove_unchanged
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - assert_true
    linkageType: ''
    returnType: void
    signature: void sigremove_unchanged(rnp_ffi_t ffi, void *app_ctx, rnp_signature_handle_t
      sig, uint32_t *action)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1397,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ffi
    - app_ctx
    - sig
    - action
    argTypes:
    - rnp_ffi_t
    - void*
    - rnp_signature_handle_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1399
      start: 1394
    functionDepth: 1
    functionLinenumber: 1394
    functionLinenumberEnd: 1399
    functionName: sigremove_remove
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - assert_true
    linkageType: ''
    returnType: void
    signature: void sigremove_remove(rnp_ffi_t ffi, void *app_ctx, rnp_signature_handle_t
      sig, uint32_t *action)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1407,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1409,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1409,1
    - Dst: string
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1410,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 4
    argNames:
    - ffi
    - app_ctx
    - sig
    - action
    argTypes:
    - rnp_ffi_t
    - void*
    - rnp_signature_handle_t
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1416
      start: 1401
    functionDepth: 1
    functionLinenumber: 1401
    functionLinenumberEnd: 1416
    functionName: sigremove_revocation
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - assert_true
    - string
    - rnp_buffer_destroy
    - assert_rnp_success
    - rnp_signature_get_type
    linkageType: ''
    returnType: void
    signature: "void sigremove_revocation(rnp_ffi_t              ffi,\n                     void
      *                 app_ctx,\n                     rnp_signature_handle_t sig,\n
      \                    uint32_t *             action)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1421,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1421,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1423,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1423,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1425,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1425,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1426,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1427,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1430,1
    - Dst: rnp_key_remove_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1430,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1431,1
    - Dst: rnp_key_remove_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1431,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1432,1
    - Dst: rnp_key_remove_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1432,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1433,1
    - Dst: rnp_key_remove_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1433,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1435,1
    - Dst: rnp_key_remove_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1436,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1438,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1438,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1441,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1441,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1442,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1442,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1443,1
    - Dst: rnp_key_remove_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1444,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1446,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1447,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1450,1
    - Dst: rnp_key_remove_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1451,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1452,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1452,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1454,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1456,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1456,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1457,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1457,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1458,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1458,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1459,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1460,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1463,1
    - Dst: rnp_key_remove_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1463,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1464,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1464,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1467,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1467,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1468,1
    - Dst: rnp_key_remove_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1468,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1470,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1470,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1472,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1473,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1473,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1475,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1475,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1476,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1476,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1478,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1478,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1479,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1480,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1483,1
    - Dst: rnp_key_remove
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1483,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1484,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1486,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1486,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1487,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1487,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1490,1
    - Dst: rnp_key_remove_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1490,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1492,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1492,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1494,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1495,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1495,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1498,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1498,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1499,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1499,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1500,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1500,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1501,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1501,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1504,1
    - Dst: rnp_key_remove_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1504,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1505,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1505,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1508,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1508,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1509,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1509,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1510,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1510,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1513,1
    - Dst: rnp_key_remove_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1514,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1515,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1516,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1519,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1519,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1520,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1520,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1521,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1521,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1522,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1523,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1526,1
    - Dst: rnp_key_remove_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1526,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1527,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1527,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1532,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1532,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1533,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1533,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1534,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1534,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1535,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1535,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1536,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1536,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1537,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1537,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1538,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1538,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1539,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1540,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1546,1
    - Dst: rnp_key_remove_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1546,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1552,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1553,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1559,1
    - Dst: rnp_key_remove_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1560,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1561,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1562,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1567,1
    - Dst: rnp_key_remove_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1567,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1569,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1569,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1575,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1576,1
    - Dst: import_sec_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1576,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1577,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1577,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1578,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1578,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1582,1
    - Dst: rnp_key_remove_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1583,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1584,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1584,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1586,1
    - Dst: reload_keyrings
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1589,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1590,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1590,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1591,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1591,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1593,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1595,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1595,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1596,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1596,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1597,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1597,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1598,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1598,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1599,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1599,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1600,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1600,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1602,1
    - Dst: rnp_key_remove_signatures
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1602,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1603,1
    - Dst: key_packets
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1603,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1604,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1605,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 93
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1418
    functionDepth: 4
    functionLinenumber: 1418
    functionLinenumberEnd: 1606
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - rnp_locate_key
    - rnp_key_remove
    - assert_rnp_failure
    - assert_true
    - assert_string_equal
    - rnp_ffi_destroy
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_unload_keys
    - import_pub_keys
    - rnp_ffi_create
    - import_sec_keys
    - rnp_key_remove_signatures
    - key_packets
    - reload_keyrings
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_remove_signatures)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1611,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1611,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1612,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1612,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1614,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1614,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1616,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1616,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1618,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1618,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1619,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1620,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1621,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1622,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1623
      start: 1608
    functionDepth: 1
    functionLinenumber: 1608
    functionLinenumberEnd: 1623
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - rnp_locate_key
    - assert_true
    - rnp_key_get_uid_handle_at
    - rnp_uid_handle_destroy
    - rnp_uid_is_valid
    - rnp_ffi_destroy
    - assert_rnp_success
    - rnp_key_handle_destroy
    - import_pub_keys
    - rnp_ffi_create
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_rsa_small_sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1628,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1628,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1631,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1631,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1634,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1634,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1635,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1636,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1636,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1637,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1638,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1638,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1640,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1640,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1641,1
    - Dst: check_sub_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1641,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1642,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1643,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1645,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1645,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1647,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1647,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1649,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1649,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1650,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1651,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1651,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1652,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1653,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1653,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1654,1
    - Dst: check_uid_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1654,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1655,1
    - Dst: check_sub_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1655,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1656,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1657,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1660,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1660,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1661,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1661,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1663,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1664,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1666,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1666,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1668,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1668,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1669,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1669,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1671,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1671,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1672,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1674,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1674,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1675,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1675,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1676,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1677,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1678,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1679,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 37
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1680
      start: 1625
    functionDepth: 1
    functionLinenumber: 1625
    functionLinenumberEnd: 1680
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - check_key_valid
    - assert_rnp_failure
    - check_uid_valid
    - rnp_op_verify_get_signature_at
    - rnp_op_verify_execute
    - rnp_input_from_path
    - import_all_keys
    - assert_true
    - assert_null
    - assert_rnp_success
    - rnp_op_verify_destroy
    - rnp_key_handle_destroy
    - check_sub_valid
    - rnp_locate_key
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_op_verify_create
    - rnp_ffi_create
    - rnp_op_verify_get_signature_count
    - rnp_input_destroy
    - load_keys_gpg
    - rnp_output_to_null
    - rnp_output_destroy
    - rnp_op_verify_signature_get_status
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_critical_notations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1685,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1685,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1689,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1690,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1694,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1694,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1695,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1696,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1699,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1699,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1700,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1701,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1702,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1702,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1703,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1704,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1706,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1682
    functionDepth: 1
    functionLinenumber: 1682
    functionLinenumberEnd: 1707
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - rnp_input_from_path
    - rnp_buffer_destroy
    - rnp_ffi_destroy
    - rnp_import_keys
    - assert_rnp_success
    - rnp_unload_keys
    - rnp_ffi_create
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_import_invalid_issuer)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1712,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1712,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1713,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1713,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1714,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1714,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1715,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1715,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1718,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1718,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1720,1
    - Dst: rnp_key_get_revoker_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1720,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1721,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1724,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1724,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1727,1
    - Dst: rnp_key_direct_signature_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1727,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1728,1
    - Dst: rnp_key_direct_signature_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1728,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1729,1
    - Dst: rnp_key_direct_signature_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1729,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1730,1
    - Dst: rnp_key_direct_signature_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1730,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1732,1
    - Dst: rnp_key_signature_set_revoker
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1732,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1733,1
    - Dst: rnp_key_signature_set_revoker
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1733,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1734,1
    - Dst: rnp_key_signature_set_revoker
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1734,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1735,1
    - Dst: rnp_key_signature_set_revoker
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1735,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1736,1
    - Dst: rnp_key_signature_set_revoker
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1736,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1738,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1738,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1740,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1740,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1741,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1741,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1742,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1743,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1743,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1744,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1745,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1745,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1748,1
    - Dst: rnp_signature_get_revoker
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1748,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1749,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1750,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1751,1
    - Dst: rnp_key_get_revoker_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1751,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1752,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1753,1
    - Dst: rnp_key_get_revoker_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1753,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1754,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1755,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1756,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1756,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1758,1
    - Dst: rnp_key_signature_set_revoker
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1758,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1759,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1759,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1760,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1762,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1762,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1763,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1763,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1765,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1765,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1766,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1767,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1768,1
    - Dst: rnp_signature_get_revoker
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1768,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1769,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1770,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1771,1
    - Dst: export_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1773,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1774,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1775,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1777,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1777,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1778,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1778,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1778,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1778,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1779,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1779,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1780,1
    - Dst: rnp_key_get_revoker_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1780,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1781,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1782,1
    - Dst: rnp_key_get_revoker_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1782,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1783,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1784,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1785,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1785,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1786,1
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1786,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1787,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1788,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1789,1
    - Dst: rnp_signature_get_revoker
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1789,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1790,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1791,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1792,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1793,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1795,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1795,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1796,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1798,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1798,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1799,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1799,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1800,1
    - Dst: rnp_key_direct_signature_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1800,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1801,1
    - Dst: rnp_key_signature_set_revoker
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1801,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1802,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1802,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1803,1
    - Dst: rnp_signature_get_revoker
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1803,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1804,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1805,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1806,1
    - Dst: rnp_key_get_revoker_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1806,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1807,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1808,1
    - Dst: rnp_key_get_revoker_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1808,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1809,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1810,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1811,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1811,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1812,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1813,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1814,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1817,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1818,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1819,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1819,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1820,1
    - Dst: rnp_key_direct_signature_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1820,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1821,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1823,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1823,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1824,1
    - Dst: rnp_key_direct_signature_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1824,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1825,1
    - Dst: rnp_key_signature_set_revoker
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1825,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1826,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1826,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1827,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1828,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1829,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 96
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1833
      start: 1709
    functionDepth: 1
    functionLinenumber: 1709
    functionLinenumberEnd: 1833
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - rnp_key_signature_sign
    - assert_rnp_failure
    - assert_string_equal
    - rnp_ffi_set_pass_provider
    - rnp_signature_get_revoker
    - export_key
    - import_all_keys
    - assert_true
    - assert_rnp_success
    - rnp_key_signature_set_revoker
    - rnp_key_get_revoker_count
    - rnp_key_handle_destroy
    - rnp_signature_is_valid
    - rnp_signature_get_type
    - rnp_locate_key
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_key_direct_signature_create
    - import_pub_keys
    - rnp_ffi_create
    - rnp_key_get_signature_at
    - rnp_signature_handle_destroy
    - auto::size
    - auto::data
    - rnp_buffer_destroy
    - rnp_unload_keys
    - rnp_key_get_revoker_at
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_add_revoker_signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1838,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1838,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1839,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1839,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1840,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1840,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1842,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1842,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1845,1
    - Dst: rnp_key_revocation_signature_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1845,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1846,1
    - Dst: rnp_key_revocation_signature_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1846,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1847,1
    - Dst: rnp_key_revocation_signature_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1847,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1848,1
    - Dst: rnp_key_revocation_signature_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1848,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1852,1
    - Dst: rnp_key_signature_set_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1852,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1853,1
    - Dst: rnp_key_signature_set_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1853,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1854,1
    - Dst: rnp_key_signature_set_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1854,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1855,1
    - Dst: rnp_key_signature_set_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1855,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1856,1
    - Dst: rnp_key_signature_set_revocation_reason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1856,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1857,1
    - Dst: rnp_key_signature_set_revocation_reason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1857,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1858,1
    - Dst: rnp_key_signature_set_revocation_reason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1858,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1859,1
    - Dst: rnp_key_signature_set_revocation_reason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1859,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1860,1
    - Dst: rnp_key_signature_set_revocation_reason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1860,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1861,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1861,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1862,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1863,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1863,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1864,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1866,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1866,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1867,1
    - Dst: check_sig_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1867,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1868,1
    - Dst: check_sig_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1868,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1872,1
    - Dst: rnp_signature_get_revocation_reason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1872,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1873,1
    - Dst: rnp_signature_get_revocation_reason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1873,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1874,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1875,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1876,1
    - Dst: rnp_signature_get_revocation_reason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1876,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1877,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1878,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1879,1
    - Dst: check_sig_revreason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1879,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1880,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1881,1
    - Dst: check_key_revoked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1881,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1882,1
    - Dst: check_key_revreason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1882,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1884,1
    - Dst: rnp_key_is_compromised
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1884,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1885,1
    - Dst: export_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1887,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1888,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1890,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1890,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1891,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1891,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1891,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1891,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1892,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1892,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1893,1
    - Dst: check_key_revoked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1893,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1894,1
    - Dst: check_key_revreason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1894,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1895,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1895,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1896,1
    - Dst: check_sig_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1896,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1897,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1898,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1899,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1901,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1902,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1902,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1903,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1904,1
    - Dst: get_key_by_uid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1905,1
    - Dst: get_key_by_uid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1906,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1907,1
    - Dst: check_key_locked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1907,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1908,1
    - Dst: check_key_revoked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1908,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1909,1
    - Dst: rnp_key_revocation_signature_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1909,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1910,1
    - Dst: rnp_key_signature_set_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1910,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1911,1
    - Dst: rnp_key_signature_set_revocation_reason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1911,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1912,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1912,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1913,1
    - Dst: check_key_locked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1913,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1914,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1915,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1916,1
    - Dst: check_key_revoked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1916,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1917,1
    - Dst: check_key_revreason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1917,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1918,1
    - Dst: rnp_key_is_compromised
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1918,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1919,1
    - Dst: export_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1921,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1922,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1923,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1923,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1924,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1924,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1924,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1924,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1925,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1925,1
    - Dst: get_key_by_uid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1926,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1927,1
    - Dst: check_key_revoked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1927,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1928,1
    - Dst: check_key_revreason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1928,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1929,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1929,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1930,1
    - Dst: check_sig_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1930,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1931,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1932,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1933,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1935,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1936,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1936,1
    - Dst: get_key_by_uid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1937,1
    - Dst: get_key_by_fp
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1938,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1939,1
    - Dst: rnp_key_revocation_signature_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1939,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1940,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1940,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1941,1
    - Dst: check_key_revoked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1941,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1942,1
    - Dst: check_key_revreason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1942,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1943,1
    - Dst: rnp_key_is_compromised
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1943,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1944,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1945,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1946,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1946,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1947,1
    - Dst: check_sig_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1947,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1948,1
    - Dst: rnp_signature_get_revocation_reason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1948,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1949,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1950,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1951,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1952,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1953,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1954,1
    - Dst: export_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1956,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1957,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1958,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1958,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1959,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1959,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1959,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1959,1
    - Dst: get_key_by_fp
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1960,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1961,1
    - Dst: check_key_revoked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1961,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1962,1
    - Dst: check_key_revreason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1962,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1963,1
    - Dst: rnp_key_is_compromised
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1963,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1964,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1965,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1966,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1968,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1969,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1969,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1970,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1970,1
    - Dst: get_key_by_uid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1971,1
    - Dst: get_key_by_fp
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1972,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1973,1
    - Dst: rnp_key_revocation_signature_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1973,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1974,1
    - Dst: rnp_key_signature_set_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1974,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1975,1
    - Dst: rnp_key_signature_set_revocation_reason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1975,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1976,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1976,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1977,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1978,1
    - Dst: check_key_revoked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1978,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1979,1
    - Dst: check_key_revreason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1979,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1980,1
    - Dst: rnp_key_is_compromised
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1980,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1981,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1982,1
    - Dst: export_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1984,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1985,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1986,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1986,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1987,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1987,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1987,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1987,1
    - Dst: get_key_by_uid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1988,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1989,1
    - Dst: check_key_revoked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1989,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1990,1
    - Dst: check_key_revreason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1990,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1991,1
    - Dst: rnp_key_is_compromised
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1991,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1992,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1993,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1994,1
    - Dst: get_key_by_uid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1996,1
    - Dst: get_key_by_fp
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1997,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1998,1
    - Dst: rnp_key_revocation_signature_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1998,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1999,1
    - Dst: rnp_key_signature_set_revocation_reason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:1999,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2000,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2000,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2001,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2002,1
    - Dst: check_key_revoked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2002,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2003,1
    - Dst: export_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2005,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2006,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2007,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2007,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2008,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2008,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2008,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2008,1
    - Dst: get_key_by_uid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2009,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2010,1
    - Dst: check_key_revoked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2010,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2011,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2012,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2014,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2015,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2016,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2017,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2017,1
    - Dst: get_key_by_uid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2018,1
    - Dst: get_key_by_fp
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2019,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2020,1
    - Dst: rnp_key_revocation_signature_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2020,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2021,1
    - Dst: rnp_key_signature_set_revocation_reason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2021,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2022,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2022,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2023,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2024,1
    - Dst: check_key_revoked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2024,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2025,1
    - Dst: check_key_revreason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2025,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2026,1
    - Dst: rnp_key_is_compromised
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2026,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2027,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2028,1
    - Dst: export_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2030,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2031,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2032,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2032,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2033,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2033,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2033,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2033,1
    - Dst: get_key_by_uid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2034,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2035,1
    - Dst: check_key_revoked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2035,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2036,1
    - Dst: check_key_revreason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2036,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2037,1
    - Dst: rnp_key_is_compromised
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2037,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2038,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2039,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2040,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2042,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2043,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2043,1
    - Dst: get_key_by_fp
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2044,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2045,1
    - Dst: rnp_key_revocation_signature_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2045,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2046,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2046,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2047,1
    - Dst: check_key_revoked
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2047,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2048,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2049,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2049,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2050,1
    - Dst: check_sig_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2050,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2051,1
    - Dst: rnp_signature_get_revocation_reason
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2051,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2052,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2053,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2054,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2055,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2056,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2057,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2059,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 193
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 1835
    functionDepth: 1
    functionLinenumber: 1835
    functionLinenumberEnd: 2060
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - rnp_key_signature_sign
    - get_key_by_uid
    - assert_rnp_failure
    - rnp_signature_get_revocation_reason
    - assert_string_equal
    - rnp_ffi_set_pass_provider
    - export_key
    - import_all_keys
    - assert_true
    - assert_rnp_success
    - rnp_key_handle_destroy
    - check_sig_hash
    - check_sig_revreason
    - check_key_locked
    - rnp_locate_key
    - check_key_revreason
    - rnp_key_signature_set_revocation_reason
    - rnp_ffi_destroy
    - get_key_by_fp
    - rnp_key_revocation_signature_create
    - import_pub_keys
    - rnp_ffi_create
    - rnp_key_is_compromised
    - rnp_key_get_signature_at
    - rnp_signature_handle_destroy
    - check_sig_type
    - auto::size
    - auto::data
    - check_key_revoked
    - rnp_buffer_destroy
    - rnp_key_signature_set_hash
    - assert_false
    - rnp_unload_keys
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_create_revocation_signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2065,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2065,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2066,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2066,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2068,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2068,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2070,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2070,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2073,1
    - Dst: rnp_key_certification_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2074,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2075,1
    - Dst: rnp_key_certification_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2076,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2077,1
    - Dst: rnp_key_certification_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2078,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2079,1
    - Dst: rnp_key_certification_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2079,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2080,1
    - Dst: rnp_key_certification_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2080,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2082,1
    - Dst: rnp_key_signature_set_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2082,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2083,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2083,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2084,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2084,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2085,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2086,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2086,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2087,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2087,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2088,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2088,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2089,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2091,1
    - Dst: rnp_key_certification_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2092,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2094,1
    - Dst: rnp_key_signature_set_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2094,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2095,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2095,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2096,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2099,1
    - Dst: rnp_uid_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2099,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2100,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2101,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2101,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2102,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2102,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2103,1
    - Dst: check_sig_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2103,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2104,1
    - Dst: check_sig_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2104,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2105,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2106,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2106,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2107,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2107,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2108,1
    - Dst: check_sig_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2108,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2109,1
    - Dst: check_sig_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2109,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2110,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2111,1
    - Dst: export_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2113,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2114,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2116,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2116,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2117,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2117,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2117,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2117,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2118,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2118,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2119,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2119,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2120,1
    - Dst: rnp_uid_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2120,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2121,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2122,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2122,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2123,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2123,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2124,1
    - Dst: check_sig_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2124,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2125,1
    - Dst: check_sig_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2125,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2126,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2127,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2127,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2128,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2128,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2129,1
    - Dst: check_sig_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2129,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2130,1
    - Dst: check_sig_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2130,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2131,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2132,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2133,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2134,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 56
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2137
      start: 2062
    functionDepth: 1
    functionLinenumber: 2062
    functionLinenumberEnd: 2137
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - rnp_key_signature_sign
    - assert_rnp_failure
    - rnp_key_get_uid_handle_at
    - rnp_ffi_set_pass_provider
    - export_key
    - import_all_keys
    - assert_true
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_uid_get_signature_at
    - rnp_signature_is_valid
    - check_sig_hash
    - rnp_locate_key
    - rnp_uid_handle_destroy
    - rnp_key_certification_create
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_ffi_create
    - rnp_signature_handle_destroy
    - check_sig_type
    - auto::size
    - auto::data
    - rnp_uid_get_signature_count
    - rnp_key_signature_set_hash
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_create_self_certification_signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2142,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2142,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2143,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2143,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2144,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2144,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2146,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2146,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2148,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2148,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2150,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2150,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2153,1
    - Dst: rnp_key_certification_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2153,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2155,1
    - Dst: rnp_key_signature_set_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2155,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2156,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2156,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2157,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2158,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2158,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2159,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2161,1
    - Dst: rnp_key_certification_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2162,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2164,1
    - Dst: rnp_key_signature_set_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2164,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2165,1
    - Dst: rnp_key_signature_set_trust_level
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2165,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2166,1
    - Dst: rnp_key_signature_set_trust_level
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2166,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2167,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2167,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2168,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2171,1
    - Dst: rnp_uid_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2171,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2172,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2173,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2173,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2174,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2174,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2175,1
    - Dst: check_sig_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2175,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2176,1
    - Dst: check_sig_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2176,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2179,1
    - Dst: rnp_signature_get_trust_level
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2179,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2180,1
    - Dst: rnp_signature_get_trust_level
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2180,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2181,1
    - Dst: rnp_signature_get_trust_level
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2181,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2182,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2183,1
    - Dst: rnp_signature_get_trust_level
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2183,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2184,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2186,1
    - Dst: rnp_signature_get_trust_level
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2186,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2187,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2188,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2189,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2190,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2190,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2191,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2191,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2192,1
    - Dst: rnp_key_signature_set_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2192,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2193,1
    - Dst: check_sig_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2193,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2194,1
    - Dst: check_sig_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2194,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2195,1
    - Dst: rnp_key_signature_set_trust_level
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2195,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2196,1
    - Dst: rnp_signature_get_trust_level
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2196,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2197,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2198,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2199,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2200,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2201,1
    - Dst: export_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2203,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2204,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2206,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2206,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2207,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2207,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2207,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2207,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2208,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2208,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2209,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2209,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2210,1
    - Dst: rnp_uid_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2210,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2211,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2212,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2212,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2213,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2213,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2215,1
    - Dst: rnp_signature_error_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2215,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2216,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2218,1
    - Dst: rnp_signature_error_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2218,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2219,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2220,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2220,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2221,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2221,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2222,1
    - Dst: check_sig_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2222,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2223,1
    - Dst: check_sig_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2223,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2224,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2225,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2225,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2226,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2226,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2227,1
    - Dst: check_sig_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2227,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2228,1
    - Dst: check_sig_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2228,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2229,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2230,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2231,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2232,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2235
      start: 2139
    functionDepth: 1
    functionLinenumber: 2139
    functionLinenumberEnd: 2235
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - rnp_key_signature_sign
    - assert_rnp_failure
    - rnp_key_get_uid_handle_at
    - rnp_key_signature_set_trust_level
    - rnp_signature_get_trust_level
    - rnp_ffi_set_pass_provider
    - export_key
    - import_all_keys
    - assert_true
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_uid_get_signature_at
    - rnp_signature_is_valid
    - check_sig_hash
    - rnp_locate_key
    - rnp_uid_handle_destroy
    - rnp_key_certification_create
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_ffi_create
    - rnp_signature_handle_destroy
    - check_sig_type
    - auto::size
    - auto::data
    - rnp_uid_get_signature_count
    - rnp_signature_error_count
    - rnp_key_signature_set_hash
    - rnp_signature_error_at
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_create_key_certification_signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2240,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2240,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2241,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2243,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2243,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2245,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2245,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2247,1
    - Dst: rnp_key_get_creation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2247,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2251,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2251,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2254,1
    - Dst: rnp_key_certification_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2254,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2255,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2255,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2256,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2258,1
    - Dst: rnp_key_certification_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2258,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2260,1
    - Dst: rnp_key_signature_set_creation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2260,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2261,1
    - Dst: rnp_key_signature_set_creation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2261,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2264,1
    - Dst: rnp_key_signature_set_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2264,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2266,1
    - Dst: rnp_key_signature_set_key_flags
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2266,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2267,1
    - Dst: rnp_key_signature_set_key_flags
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2267,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2268,1
    - Dst: rnp_key_signature_set_key_flags
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2268,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2271,1
    - Dst: rnp_key_signature_set_key_expiration
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2271,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2272,1
    - Dst: rnp_key_signature_set_key_expiration
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2272,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2273,1
    - Dst: rnp_key_signature_set_key_expiration
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2273,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2275,1
    - Dst: rnp_key_signature_set_primary_uid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2275,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2276,1
    - Dst: rnp_key_signature_set_primary_uid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2276,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2277,1
    - Dst: rnp_key_signature_set_primary_uid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2277,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2280,1
    - Dst: rnp_key_signature_set_key_server
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2280,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2281,1
    - Dst: rnp_key_signature_set_key_server
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2281,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2282,1
    - Dst: rnp_key_signature_set_key_server
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2282,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2283,1
    - Dst: rnp_key_signature_set_key_server
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2283,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2284,1
    - Dst: rnp_key_signature_set_key_server
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2284,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2286,1
    - Dst: rnp_key_signature_set_key_server_prefs
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2286,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2287,1
    - Dst: rnp_key_signature_set_key_server_prefs
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2288,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2289,1
    - Dst: rnp_key_signature_set_key_server_prefs
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2289,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2290,1
    - Dst: rnp_key_signature_set_key_server_prefs
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2291,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2294,1
    - Dst: rnp_key_signature_set_features
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2294,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2295,1
    - Dst: rnp_key_signature_set_features
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2295,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2296,1
    - Dst: rnp_key_signature_set_features
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2296,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2297,1
    - Dst: rnp_key_signature_set_features
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2297,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2299,1
    - Dst: rnp_key_signature_add_preferred_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2299,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2300,1
    - Dst: rnp_key_signature_add_preferred_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2300,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2301,1
    - Dst: rnp_key_signature_add_preferred_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2301,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2302,1
    - Dst: rnp_key_signature_add_preferred_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2302,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2303,1
    - Dst: rnp_key_signature_add_preferred_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2303,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2304,1
    - Dst: rnp_key_signature_add_preferred_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2304,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2305,1
    - Dst: rnp_key_signature_add_preferred_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2305,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2307,1
    - Dst: rnp_key_signature_add_preferred_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2307,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2308,1
    - Dst: rnp_key_signature_add_preferred_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2308,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2309,1
    - Dst: rnp_key_signature_add_preferred_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2309,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2310,1
    - Dst: rnp_key_signature_add_preferred_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2310,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2311,1
    - Dst: rnp_key_signature_add_preferred_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2311,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2312,1
    - Dst: rnp_key_signature_add_preferred_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2312,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2314,1
    - Dst: rnp_key_signature_add_preferred_zalg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2314,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2315,1
    - Dst: rnp_key_signature_add_preferred_zalg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2315,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2316,1
    - Dst: rnp_key_signature_add_preferred_zalg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2316,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2317,1
    - Dst: rnp_key_signature_add_preferred_zalg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2317,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2318,1
    - Dst: rnp_key_signature_add_preferred_zalg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2318,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2320,1
    - Dst: rnp_key_signature_sign
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2320,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2321,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2324,1
    - Dst: rnp_uid_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2324,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2325,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2329,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2329,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2330,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2330,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2331,1
    - Dst: check_sig_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2331,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2332,1
    - Dst: check_sig_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2332,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2333,1
    - Dst: rnp_signature_get_creation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2333,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2334,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2335,1
    - Dst: rnp_signature_get_key_expiration
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2335,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2336,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2337,1
    - Dst: rnp_signature_get_primary_uid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2337,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2338,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2339,1
    - Dst: rnp_signature_get_features
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2339,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2340,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2341,1
    - Dst: rnp_signature_get_key_flags
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2341,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2342,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2343,1
    - Dst: rnp_signature_get_key_server_prefs
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2343,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2344,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2346,1
    - Dst: rnp_signature_get_preferred_alg_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2346,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2347,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2349,1
    - Dst: rnp_signature_get_preferred_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2349,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2350,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2351,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2352,1
    - Dst: rnp_signature_get_preferred_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2352,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2353,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2354,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2355,1
    - Dst: rnp_signature_get_preferred_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2355,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2356,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2357,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2358,1
    - Dst: rnp_signature_get_preferred_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2358,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2359,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2360,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2361,1
    - Dst: rnp_signature_get_preferred_hash_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2361,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2362,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2363,1
    - Dst: rnp_signature_get_preferred_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2363,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2364,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2365,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2366,1
    - Dst: rnp_signature_get_preferred_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2366,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2367,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2368,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2369,1
    - Dst: rnp_signature_get_preferred_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2369,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2370,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2371,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2372,1
    - Dst: rnp_signature_get_preferred_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2372,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2373,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2374,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2375,1
    - Dst: rnp_signature_get_preferred_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2375,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2376,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2377,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2378,1
    - Dst: rnp_signature_get_preferred_zalg_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2378,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2379,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2380,1
    - Dst: rnp_signature_get_preferred_zalg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2380,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2381,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2382,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2383,1
    - Dst: rnp_signature_get_preferred_zalg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2383,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2384,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2385,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2386,1
    - Dst: rnp_signature_get_preferred_zalg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2386,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2387,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2388,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2390,1
    - Dst: rnp_signature_subpacket_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2390,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2391,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2392,1
    - Dst: rnp_signature_subpacket_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2392,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2396,1
    - Dst: rnp_signature_subpacket_info
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2396,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2397,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2398,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2399,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2402,1
    - Dst: rnp_signature_subpacket_data
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2402,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2403,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2404,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2405,1
    - Dst: rnp_signature_subpacket_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2406,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2407,1
    - Dst: rnp_signature_subpacket_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2407,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2408,1
    - Dst: rnp_signature_subpacket_info
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2408,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2409,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2410,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2411,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2412,1
    - Dst: rnp_signature_subpacket_data
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2412,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2413,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2414,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2415,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2416,1
    - Dst: rnp_signature_subpacket_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2417,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2418,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2420,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2420,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2421,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2421,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2422,1
    - Dst: check_sig_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2422,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2423,1
    - Dst: check_sig_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2423,1
    - Dst: rnp_cfg::time
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2424,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2425,1
    - Dst: rnp_signature_get_creation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2425,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2426,1
    - Dst: rnp_signature_get_creation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2426,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2427,1
    - Dst: rnp_key_signature_set_creation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2427,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2428,1
    - Dst: rnp_signature_get_creation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2428,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2429,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2430,1
    - Dst: rnp_signature_get_key_expiration
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2430,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2431,1
    - Dst: rnp_signature_get_key_expiration
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2431,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2432,1
    - Dst: rnp_key_signature_set_key_expiration
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2432,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2433,1
    - Dst: rnp_signature_get_key_expiration
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2433,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2434,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2435,1
    - Dst: rnp_signature_get_primary_uid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2435,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2436,1
    - Dst: rnp_signature_get_primary_uid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2436,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2437,1
    - Dst: rnp_key_signature_set_primary_uid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2437,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2438,1
    - Dst: rnp_signature_get_primary_uid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2438,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2439,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2441,1
    - Dst: rnp_signature_get_key_server
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2441,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2442,1
    - Dst: rnp_signature_get_key_server
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2442,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2443,1
    - Dst: rnp_key_signature_set_key_server
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2443,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2444,1
    - Dst: rnp_signature_get_key_server
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2444,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2445,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2446,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2447,1
    - Dst: rnp_signature_get_features
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2447,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2448,1
    - Dst: rnp_signature_get_features
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2448,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2449,1
    - Dst: rnp_key_signature_set_features
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2449,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2450,1
    - Dst: rnp_signature_get_features
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2450,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2451,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2452,1
    - Dst: rnp_signature_get_key_flags
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2452,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2453,1
    - Dst: rnp_signature_get_key_flags
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2453,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2454,1
    - Dst: rnp_key_signature_set_key_flags
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2454,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2455,1
    - Dst: rnp_signature_get_features
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2455,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2456,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2457,1
    - Dst: rnp_signature_get_key_server_prefs
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2457,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2458,1
    - Dst: rnp_signature_get_key_server_prefs
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2458,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2459,1
    - Dst: rnp_key_signature_set_key_server_prefs
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2460,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2461,1
    - Dst: rnp_signature_get_key_server_prefs
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2461,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2462,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2463,1
    - Dst: rnp_signature_get_preferred_alg_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2463,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2464,1
    - Dst: rnp_signature_get_preferred_alg_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2464,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2465,1
    - Dst: rnp_key_signature_add_preferred_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2465,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2466,1
    - Dst: rnp_signature_get_preferred_alg_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2466,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2467,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2468,1
    - Dst: rnp_signature_get_preferred_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2468,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2469,1
    - Dst: rnp_signature_get_preferred_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2469,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2470,1
    - Dst: rnp_signature_get_preferred_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2470,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2471,1
    - Dst: rnp_signature_get_preferred_hash_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2471,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2472,1
    - Dst: rnp_signature_get_preferred_hash_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2472,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2473,1
    - Dst: rnp_key_signature_add_preferred_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2473,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2474,1
    - Dst: rnp_signature_get_preferred_hash_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2474,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2475,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2476,1
    - Dst: rnp_signature_get_preferred_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2476,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2477,1
    - Dst: rnp_signature_get_preferred_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2477,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2478,1
    - Dst: rnp_signature_get_preferred_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2478,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2479,1
    - Dst: rnp_signature_get_preferred_zalg_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2479,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2480,1
    - Dst: rnp_signature_get_preferred_zalg_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2480,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2481,1
    - Dst: rnp_key_signature_add_preferred_zalg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2481,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2482,1
    - Dst: rnp_signature_get_preferred_zalg_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2482,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2483,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2484,1
    - Dst: rnp_signature_get_preferred_zalg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2484,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2485,1
    - Dst: rnp_signature_get_preferred_zalg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2485,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2486,1
    - Dst: rnp_signature_get_preferred_zalg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2486,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2488,1
    - Dst: rnp_signature_subpacket_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2488,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2489,1
    - Dst: rnp_signature_subpacket_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2489,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2490,1
    - Dst: rnp_signature_subpacket_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2490,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2491,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2492,1
    - Dst: rnp_signature_subpacket_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2492,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2493,1
    - Dst: rnp_signature_subpacket_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2493,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2494,1
    - Dst: rnp_signature_subpacket_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2494,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2495,1
    - Dst: rnp_signature_subpacket_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2495,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2496,1
    - Dst: rnp_signature_subpacket_info
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2496,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2497,1
    - Dst: rnp_signature_subpacket_info
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2497,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2498,1
    - Dst: rnp_signature_subpacket_info
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2498,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2499,1
    - Dst: rnp_signature_subpacket_info
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2499,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2500,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2501,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2502,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2503,1
    - Dst: rnp_signature_subpacket_data
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2503,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2504,1
    - Dst: rnp_signature_subpacket_data
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2504,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2505,1
    - Dst: rnp_signature_subpacket_data
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2505,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2506,1
    - Dst: rnp_signature_subpacket_data
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2506,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2507,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2508,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2509,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2510,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2511,1
    - Dst: rnp_signature_subpacket_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2512,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2513,1
    - Dst: rnp_signature_subpacket_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2513,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2514,1
    - Dst: rnp_signature_subpacket_info
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2514,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2515,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2516,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2517,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2518,1
    - Dst: rnp_signature_subpacket_data
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2518,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2519,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2520,1
    - Dst: rnp_signature_subpacket_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2521,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2522,1
    - Dst: rnp_signature_subpacket_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2522,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2523,1
    - Dst: rnp_signature_subpacket_info
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2523,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2524,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2525,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2526,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2527,1
    - Dst: rnp_signature_subpacket_data
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2527,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2528,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2529,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2530,1
    - Dst: rnp_signature_subpacket_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2531,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2532,1
    - Dst: rnp_signature_subpacket_find
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2532,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2533,1
    - Dst: rnp_signature_subpacket_find
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2533,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2534,1
    - Dst: rnp_signature_subpacket_find
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2534,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2536,1
    - Dst: rnp_signature_subpacket_find
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2536,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2538,1
    - Dst: rnp_signature_subpacket_find
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2538,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2539,1
    - Dst: rnp_signature_subpacket_info
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2539,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2540,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2541,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2542,1
    - Dst: rnp_signature_subpacket_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2543,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2544,1
    - Dst: rnp_signature_subpacket_find
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2544,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2545,1
    - Dst: rnp_signature_subpacket_info
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2545,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2546,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2547,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2548,1
    - Dst: rnp_signature_subpacket_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2549,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2550,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2552,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2552,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2553,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2553,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2554,1
    - Dst: check_sig_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2554,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2555,1
    - Dst: rnp_signature_get_creation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2555,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2556,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2557,1
    - Dst: check_sig_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2557,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2558,1
    - Dst: rnp_signature_get_key_expiration
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2558,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2559,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2560,1
    - Dst: rnp_signature_get_primary_uid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2560,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2561,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2562,1
    - Dst: rnp_signature_get_key_server
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2562,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2563,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2564,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2565,1
    - Dst: rnp_signature_get_key_server_prefs
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2565,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2566,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2567,1
    - Dst: rnp_signature_get_features
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2567,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2568,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2569,1
    - Dst: rnp_signature_get_key_flags
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2569,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2570,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2571,1
    - Dst: rnp_signature_get_preferred_alg_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2571,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2572,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2573,1
    - Dst: rnp_signature_get_preferred_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2573,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2574,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2575,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2576,1
    - Dst: rnp_signature_get_preferred_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2576,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2577,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2578,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2579,1
    - Dst: rnp_signature_get_preferred_alg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2579,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2580,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2581,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2582,1
    - Dst: rnp_signature_get_preferred_hash_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2582,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2583,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2584,1
    - Dst: rnp_signature_get_preferred_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2584,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2585,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2586,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2587,1
    - Dst: rnp_signature_get_preferred_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2587,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2588,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2589,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2590,1
    - Dst: rnp_signature_get_preferred_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2590,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2591,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2592,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2593,1
    - Dst: rnp_signature_get_preferred_zalg_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2593,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2594,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2595,1
    - Dst: rnp_signature_get_preferred_zalg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2595,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2596,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2597,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2598,1
    - Dst: rnp_signature_get_preferred_zalg
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2598,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2599,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2600,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2601,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2602,1
    - Dst: export_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2604,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2605,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2607,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2607,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2608,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2608,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2608,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2608,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2609,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2609,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2610,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2610,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2611,1
    - Dst: rnp_uid_get_signature_count
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2611,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2612,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2613,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2613,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2614,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2614,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2615,1
    - Dst: check_sig_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2615,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2616,1
    - Dst: check_sig_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2616,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2617,1
    - Dst: rnp_signature_get_creation
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2617,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2618,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2619,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2621,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2621,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2622,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2622,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2623,1
    - Dst: check_sig_hash
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2623,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2624,1
    - Dst: check_sig_type
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2624,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2625,1
    - Dst: rnp_signature_get_key_server
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2625,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2626,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2627,1
    - Dst: rnp_signature_get_key_flags
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2627,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2628,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2629,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2630,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2631,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2632,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2633,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 345
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2636
      start: 2237
    functionDepth: 1
    functionLinenumber: 2237
    functionLinenumberEnd: 2636
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - rnp_key_signature_sign
    - rnp_signature_get_preferred_hash_count
    - assert_rnp_failure
    - rnp_key_get_uid_handle_at
    - rnp_key_signature_set_creation
    - assert_string_equal
    - rnp_signature_get_preferred_alg_count
    - rnp_signature_subpacket_data
    - rnp_ffi_set_pass_provider
    - rnp_signature_get_preferred_hash
    - rnp_key_signature_add_preferred_hash
    - rnp_signature_subpacket_at
    - rnp_signature_subpacket_count
    - export_key
    - import_all_keys
    - assert_true
    - rnp_signature_get_preferred_alg
    - rnp_signature_subpacket_destroy
    - rnp_signature_get_primary_uid
    - assert_rnp_success
    - rnp_signature_get_creation
    - rnp_key_get_creation
    - rnp_cfg::time
    - rnp_key_handle_destroy
    - rnp_uid_get_signature_at
    - rnp_key_signature_add_preferred_alg
    - rnp_signature_is_valid
    - rnp_signature_get_key_flags
    - check_sig_hash
    - rnp_signature_get_preferred_zalg_count
    - rnp_locate_key
    - rnp_uid_handle_destroy
    - rnp_key_certification_create
    - assert_int_equal
    - rnp_signature_get_key_server_prefs
    - rnp_signature_subpacket_info
    - rnp_ffi_destroy
    - rnp_key_signature_set_key_server_prefs
    - rnp_signature_get_key_expiration
    - rnp_key_signature_add_preferred_zalg
    - rnp_ffi_create
    - rnp_key_signature_set_key_server
    - rnp_signature_handle_destroy
    - check_sig_type
    - rnp_signature_get_key_server
    - rnp_signature_get_preferred_zalg
    - rnp_signature_get_features
    - auto::size
    - auto::data
    - rnp_buffer_destroy
    - rnp_uid_get_signature_count
    - rnp_key_signature_set_hash
    - rnp_key_signature_set_key_flags
    - assert_false
    - rnp_key_signature_set_features
    - rnp_key_signature_set_key_expiration
    - rnp_signature_subpacket_find
    - rnp_key_signature_set_primary_uid
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_key_self_certification_features)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2660,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2660,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2661,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2661,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2662,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2663,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2663,1
    - Dst: std::string::length
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2663,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2664,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2665,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2665,1
    - Dst: second::c_str
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2665,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2666,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2668,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2668,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2669,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2669,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2670,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2670,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2671,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2671,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2672,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2672,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2673,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/ffi-key-sig.cpp:2673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2675
      start: 2639
    functionDepth: 1
    functionLinenumber: 2639
    functionLinenumberEnd: 2675
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/ffi-key-sig.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - std::string::length
    - rnp_input_from_memory
    - rnp_input_from_path
    - import_all_keys
    - assert_true
    - rnp_ffi_destroy
    - std::string::c_str
    - rnp_op_verify_detached_create
    - assert_rnp_success
    - rnp_op_verify_destroy
    - second::c_str
    - rnp_ffi_create
    - rnp_op_verify_execute
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_verify_detached_pqc_test_vector)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kyber_generate_keypair
      Src: /src/rnp/src/tests/pqc.cpp:42,1
    - Dst: auto::first::encapsulate
      Src: /src/rnp/src/tests/pqc.cpp:45,1
    - Dst: auto::second::decapsulate
      Src: /src/rnp/src/tests/pqc.cpp:47,1
    - Dst: kyber_encap_result_t::ciphertext::data
      Src: /src/rnp/src/tests/pqc.cpp:48,1
    - Dst: kyber_encap_result_t::ciphertext::size
      Src: /src/rnp/src/tests/pqc.cpp:48,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/pqc.cpp:49,1
    - Dst: kyber_encap_result_t::symmetric_key::size
      Src: /src/rnp/src/tests/pqc.cpp:49,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/pqc.cpp:49,1
    - Dst: assert_memory_equal
      Src: /src/rnp/src/tests/pqc.cpp:50,1
    - Dst: kyber_encap_result_t::symmetric_key::data
      Src: /src/rnp/src/tests/pqc.cpp:51,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/pqc.cpp:51,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/pqc.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 53
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/pqc.cpp
    functionUses: 0
    functionsReached:
    - auto::second::decapsulate
    - assert_memory_equal
    - kyber_encap_result_t::ciphertext::size
    - auto::first::encapsulate
    - kyber_encap_result_t::symmetric_key::data
    - assert_int_equal
    - kyber_encap_result_t::symmetric_key::size
    - kyber_generate_keypair
    - kyber_encap_result_t::ciphertext::data
    - std::vector::size
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_kyber_key_function)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dilithium_generate_keypair
      Src: /src/rnp/src/tests/pqc.cpp:60,1
    - Dst: auto::second::sign
      Src: /src/rnp/src/tests/pqc.cpp:65,1
    - Dst: std::array::data
      Src: /src/rnp/src/tests/pqc.cpp:65,1
    - Dst: std::array::size
      Src: /src/rnp/src/tests/pqc.cpp:65,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/pqc.cpp:67,1
    - Dst: auto::first::verify_signature
      Src: /src/rnp/src/tests/pqc.cpp:67,1
    - Dst: std::array::data
      Src: /src/rnp/src/tests/pqc.cpp:68,1
    - Dst: std::array::size
      Src: /src/rnp/src/tests/pqc.cpp:68,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/pqc.cpp:68,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/pqc.cpp:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 70
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/pqc.cpp
    functionUses: 0
    functionsReached:
    - dilithium_generate_keypair
    - std::array::data
    - auto::second::sign
    - assert_true
    - auto::first::verify_signature
    - std::vector::size
    - std::array::size
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_dilithium_key_function)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sphincsplus_generate_keypair
      Src: /src/rnp/src/tests/pqc.cpp:79,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pqc.cpp:84,1
    - Dst: auto::second::sign
      Src: /src/rnp/src/tests/pqc.cpp:85,1
    - Dst: std::array::data
      Src: /src/rnp/src/tests/pqc.cpp:85,1
    - Dst: std::array::size
      Src: /src/rnp/src/tests/pqc.cpp:85,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pqc.cpp:87,1
    - Dst: auto::first::verify
      Src: /src/rnp/src/tests/pqc.cpp:87,1
    - Dst: std::array::data
      Src: /src/rnp/src/tests/pqc.cpp:87,1
    - Dst: std::array::size
      Src: /src/rnp/src/tests/pqc.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 89
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/pqc.cpp
    functionUses: 0
    functionsReached:
    - std::array::data
    - auto::second::sign
    - auto::first::verify
    - sphincsplus_generate_keypair
    - assert_rnp_success
    - std::array::size
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_sphincsplus_key_function)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/tests/pqc.cpp:100,1
    - Dst: rng::get
      Src: /src/rnp/src/tests/pqc.cpp:104,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pqc.cpp:109,1
    - Dst: pgp_dilithium_exdsa_composite_key_t::gen_keypair
      Src: /src/rnp/src/tests/pqc.cpp:110,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pqc.cpp:112,1
    - Dst: pgp_dilithium_exdsa_key_t::priv::sign
      Src: /src/rnp/src/tests/pqc.cpp:113,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/pqc.cpp:114,1
    - Dst: pgp_dilithium_exdsa_key_t::pub::verify
      Src: /src/rnp/src/tests/pqc.cpp:114,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/pqc.cpp:118,1
    - Dst: pgp_dilithium_exdsa_key_t::pub::verify
      Src: /src/rnp/src/tests/pqc.cpp:118,1
    - Dst: pgp_dilithium_exdsa_signature_t::sig::data
      Src: /src/rnp/src/tests/pqc.cpp:122,1
    - Dst: pgp_dilithium_exdsa_signature_t::sig::data
      Src: /src/rnp/src/tests/pqc.cpp:122,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/pqc.cpp:123,1
    - Dst: pgp_dilithium_exdsa_key_t::pub::verify
      Src: /src/rnp/src/tests/pqc.cpp:123,1
    - Dst: pgp_dilithium_exdsa_signature_t::sig::data
      Src: /src/rnp/src/tests/pqc.cpp:124,1
    - Dst: pgp_dilithium_exdsa_signature_t::sig::data
      Src: /src/rnp/src/tests/pqc.cpp:124,1
    - Dst: pgp_dilithium_exdsa_signature_t::sig::data
      Src: /src/rnp/src/tests/pqc.cpp:127,1
    - Dst: pgp_dilithium_exdsa_signature_t::sig::size
      Src: /src/rnp/src/tests/pqc.cpp:127,1
    - Dst: pgp_dilithium_exdsa_signature_t::sig::data
      Src: /src/rnp/src/tests/pqc.cpp:127,1
    - Dst: pgp_dilithium_exdsa_signature_t::sig::size
      Src: /src/rnp/src/tests/pqc.cpp:127,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/pqc.cpp:128,1
    - Dst: pgp_dilithium_exdsa_key_t::pub::verify
      Src: /src/rnp/src/tests/pqc.cpp:128,1
    - Dst: pgp_dilithium_exdsa_signature_t::sig::data
      Src: /src/rnp/src/tests/pqc.cpp:129,1
    - Dst: pgp_dilithium_exdsa_signature_t::sig::size
      Src: /src/rnp/src/tests/pqc.cpp:129,1
    - Dst: pgp_dilithium_exdsa_signature_t::sig::data
      Src: /src/rnp/src/tests/pqc.cpp:129,1
    - Dst: pgp_dilithium_exdsa_signature_t::sig::size
      Src: /src/rnp/src/tests/pqc.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 131
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/pqc.cpp
    functionUses: 0
    functionsReached:
    - assert_rnp_failure
    - pgp_dilithium_exdsa_signature_t::sig::data
    - pgp_dilithium_exdsa_signature_t::sig::size
    - rng::get
    - assert_rnp_success
    - pgp_dilithium_exdsa_key_t::priv::sign
    - ARRAY_SIZE
    - pgp_dilithium_exdsa_composite_key_t::gen_keypair
    - pgp_dilithium_exdsa_key_t::pub::verify
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_dilithium_exdsa_direct)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-add-userid.cpp:48,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-add-userid.cpp:50,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/key-add-userid.cpp:50,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-add-userid.cpp:51,1
    - Dst: auto::load_pgp
      Src: /src/rnp/src/tests/key-add-userid.cpp:51,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/key-add-userid.cpp:52,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-add-userid.cpp:55,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-add-userid.cpp:55,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-add-userid.cpp:56,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-add-userid.cpp:60,1
    - Dst: rnp::Key*::unlock
      Src: /src/rnp/src/tests/key-add-userid.cpp:60,1
    - Dst: rnp::Key*::uid_count
      Src: /src/rnp/src/tests/key-add-userid.cpp:63,1
    - Dst: rnp::Key*::sig_count
      Src: /src/rnp/src/tests/key-add-userid.cpp:64,1
    - Dst: time
      Src: /src/rnp/src/tests/key-add-userid.cpp:72,1
    - Dst: set_time
      Src: /src/rnp/src/tests/key-add-userid.cpp:73,1
    - Dst: rnp::Key*::add_uid_cert
      Src: /src/rnp/src/tests/key-add-userid.cpp:74,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:77,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-add-userid.cpp:77,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:78,1
    - Dst: rnp::Key*::flags
      Src: /src/rnp/src/tests/key-add-userid.cpp:78,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-add-userid.cpp:79,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:79,1
    - Dst: rnp::Key*::del_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:81,1
    - Dst: set_time
      Src: /src/rnp/src/tests/key-add-userid.cpp:82,1
    - Dst: rnp::Key*::add_uid_cert
      Src: /src/rnp/src/tests/key-add-userid.cpp:83,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:84,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-add-userid.cpp:84,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:85,1
    - Dst: rnp::Key*::flags
      Src: /src/rnp/src/tests/key-add-userid.cpp:85,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-add-userid.cpp:86,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:86,1
    - Dst: set_time
      Src: /src/rnp/src/tests/key-add-userid.cpp:87,1
    - Dst: rnp::Key*::del_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:88,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:89,1
    - Dst: rnp::Key*::uid_count
      Src: /src/rnp/src/tests/key-add-userid.cpp:89,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:90,1
    - Dst: rnp::Key*::sig_count
      Src: /src/rnp/src/tests/key-add-userid.cpp:90,1
    - Dst: rnp::Key*::add_uid_cert
      Src: /src/rnp/src/tests/key-add-userid.cpp:91,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/key-add-userid.cpp:93,1
    - Dst: rnp::Key*::has_primary_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:93,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:95,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-add-userid.cpp:95,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:96,1
    - Dst: rnp::Key*::flags
      Src: /src/rnp/src/tests/key-add-userid.cpp:96,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-add-userid.cpp:97,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:97,1
    - Dst: rnp::Key*::add_uid_cert
      Src: /src/rnp/src/tests/key-add-userid.cpp:105,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:108,1
    - Dst: rnp::Key*::uid_count
      Src: /src/rnp/src/tests/key-add-userid.cpp:108,1
    - Dst: rnp::Key*::get_primary_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:108,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:110,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-add-userid.cpp:110,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:111,1
    - Dst: rnp::Key*::flags
      Src: /src/rnp/src/tests/key-add-userid.cpp:111,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-add-userid.cpp:112,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:112,1
    - Dst: assert_throw
      Src: /src/rnp/src/tests/key-add-userid.cpp:117,1
    - Dst: rnp::Key*::add_uid_cert
      Src: /src/rnp/src/tests/key-add-userid.cpp:117,1
    - Dst: assert_throw
      Src: /src/rnp/src/tests/key-add-userid.cpp:123,1
    - Dst: rnp::Key*::add_uid_cert
      Src: /src/rnp/src/tests/key-add-userid.cpp:123,1
    - Dst: rnp::Key*::add_uid_cert
      Src: /src/rnp/src/tests/key-add-userid.cpp:130,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:133,1
    - Dst: rnp::Key*::uid_count
      Src: /src/rnp/src/tests/key-add-userid.cpp:133,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:134,1
    - Dst: rnp::Key*::sig_count
      Src: /src/rnp/src/tests/key-add-userid.cpp:134,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-add-userid.cpp:135,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:135,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:138,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-add-userid.cpp:138,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:139,1
    - Dst: rnp::Key*::flags
      Src: /src/rnp/src/tests/key-add-userid.cpp:139,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:142,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:142,1
    - Dst: c_str
      Src: /src/rnp/src/tests/key-add-userid.cpp:142,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:143,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/key-add-userid.cpp:143,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:144,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/key-add-userid.cpp:144,1
    - Dst: key_flags
      Src: /src/rnp/src/tests/key-add-userid.cpp:144,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:146,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:146,1
    - Dst: c_str
      Src: /src/rnp/src/tests/key-add-userid.cpp:146,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:147,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/key-add-userid.cpp:147,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:148,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/key-add-userid.cpp:148,1
    - Dst: key_flags
      Src: /src/rnp/src/tests/key-add-userid.cpp:148,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:150,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:150,1
    - Dst: c_str
      Src: /src/rnp/src/tests/key-add-userid.cpp:150,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:151,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/key-add-userid.cpp:151,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:152,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/key-add-userid.cpp:152,1
    - Dst: key_flags
      Src: /src/rnp/src/tests/key-add-userid.cpp:152,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-add-userid.cpp:155,1
    - Dst: init_mem_dest
      Src: /src/rnp/src/tests/key-add-userid.cpp:155,1
    - Dst: rnp::Key*::write
      Src: /src/rnp/src/tests/key-add-userid.cpp:156,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/key-add-userid.cpp:162,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-add-userid.cpp:163,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-add-userid.cpp:165,1
    - Dst: init_mem_src
      Src: /src/rnp/src/tests/key-add-userid.cpp:165,1
    - Dst: mem_dest_get_memory
      Src: /src/rnp/src/tests/key-add-userid.cpp:165,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/key-add-userid.cpp:166,1
    - Dst: auto::load_pgp
      Src: /src/rnp/src/tests/key-add-userid.cpp:166,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/key-add-userid.cpp:167,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/key-add-userid.cpp:168,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/key-add-userid.cpp:169,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/key-add-userid.cpp:169,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:172,1
    - Dst: rnp::Key*::uid_count
      Src: /src/rnp/src/tests/key-add-userid.cpp:172,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:173,1
    - Dst: rnp::Key*::sig_count
      Src: /src/rnp/src/tests/key-add-userid.cpp:173,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:176,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-add-userid.cpp:176,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:177,1
    - Dst: rnp::Key*::flags
      Src: /src/rnp/src/tests/key-add-userid.cpp:177,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:181,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:181,1
    - Dst: c_str
      Src: /src/rnp/src/tests/key-add-userid.cpp:181,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:182,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/key-add-userid.cpp:182,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:183,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/key-add-userid.cpp:183,1
    - Dst: key_flags
      Src: /src/rnp/src/tests/key-add-userid.cpp:183,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-add-userid.cpp:184,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:184,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:186,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:186,1
    - Dst: c_str
      Src: /src/rnp/src/tests/key-add-userid.cpp:186,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:187,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/key-add-userid.cpp:187,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:188,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/key-add-userid.cpp:188,1
    - Dst: key_flags
      Src: /src/rnp/src/tests/key-add-userid.cpp:188,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-add-userid.cpp:189,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:189,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:191,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:191,1
    - Dst: c_str
      Src: /src/rnp/src/tests/key-add-userid.cpp:191,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:192,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/key-add-userid.cpp:192,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:193,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/key-add-userid.cpp:193,1
    - Dst: key_flags
      Src: /src/rnp/src/tests/key-add-userid.cpp:193,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/key-add-userid.cpp:194,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:194,1
    - Dst: rnp::Key*::del_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:196,1
    - Dst: rnp::Key*::revalidate
      Src: /src/rnp/src/tests/key-add-userid.cpp:197,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:198,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:198,1
    - Dst: c_str
      Src: /src/rnp/src/tests/key-add-userid.cpp:198,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:199,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/key-add-userid.cpp:199,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:200,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/key-add-userid.cpp:200,1
    - Dst: key_flags
      Src: /src/rnp/src/tests/key-add-userid.cpp:200,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:201,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-add-userid.cpp:201,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:202,1
    - Dst: rnp::Key*::flags
      Src: /src/rnp/src/tests/key-add-userid.cpp:202,1
    - Dst: rnp::Key*::del_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:204,1
    - Dst: rnp::Key*::revalidate
      Src: /src/rnp/src/tests/key-add-userid.cpp:205,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:206,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:206,1
    - Dst: c_str
      Src: /src/rnp/src/tests/key-add-userid.cpp:206,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:207,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/key-add-userid.cpp:207,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:208,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/key-add-userid.cpp:208,1
    - Dst: key_flags
      Src: /src/rnp/src/tests/key-add-userid.cpp:208,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:209,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-add-userid.cpp:209,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:210,1
    - Dst: rnp::Key*::flags
      Src: /src/rnp/src/tests/key-add-userid.cpp:210,1
    - Dst: rnp::Key*::del_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:212,1
    - Dst: rnp::Key*::revalidate
      Src: /src/rnp/src/tests/key-add-userid.cpp:213,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:214,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:214,1
    - Dst: c_str
      Src: /src/rnp/src/tests/key-add-userid.cpp:214,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:215,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/key-add-userid.cpp:215,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:216,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/key-add-userid.cpp:216,1
    - Dst: key_flags
      Src: /src/rnp/src/tests/key-add-userid.cpp:216,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:217,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/key-add-userid.cpp:217,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/key-add-userid.cpp:218,1
    - Dst: rnp::Key*::flags
      Src: /src/rnp/src/tests/key-add-userid.cpp:218,1
    - Dst: rnp::Key*::del_uid
      Src: /src/rnp/src/tests/key-add-userid.cpp:220,1
    - Dst: rnp::Key*::revalidate
      Src: /src/rnp/src/tests/key-add-userid.cpp:221,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 114
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 34
    functionDepth: 1
    functionLinenumber: 34
    functionLinenumberEnd: 225
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/key-add-userid.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - pgp_source_t::close
    - assert_string_equal
    - rnp::Key*::get_primary_uid
    - dst_close
    - mem_dest_get_memory
    - rnp::Key*::flags
    - rnp::Key*::get_sig
    - init_mem_src
    - set_time
    - rnp::Key*::write
    - assert_true
    - assert_rnp_success
    - rnp::Key*::del_uid
    - rnp::Key*::revalidate
    - init_file_src
    - rnp::Key*::uid_count
    - init_mem_dest
    - key_flags
    - auto::load_pgp
    - assert_int_equal
    - assert_throw
    - rnp::Key*::get_uid
    - rnp::Key*::unlock
    - rnp::KeyStore::KeyStore
    - time
    - rnp::Key*::add_uid_cert
    - rnp::Key*::sig_count
    - rnp::Key*::expiration
    - rnp_tests_get_key_by_id
    - assert_false
    - c_str
    - rnp::Key*::has_primary_uid
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_key_add_userid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/rnp/src/tests/support.cpp:60,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/support.cpp:64,1
    - Dst: _putenv
      Src: /src/rnp/src/tests/support.cpp:65,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 3
    argNames:
    - name
    - value
    - overwrite
    argTypes:
    - char*
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 66
    functionName: setenv
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 4
    functionsReached:
    - _putenv
    - getenv
    - snprintf
    linkageType: ''
    returnType: int
    signature: int setenv(const char *name, const char *value, int overwrite)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/rnp/src/tests/support.cpp:72,1
    - Dst: _putenv
      Src: /src/rnp/src/tests/support.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 74
    functionName: unsetenv
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 3
    functionsReached:
    - _putenv
    - snprintf
    linkageType: ''
    returnType: int
    signature: int unsetenv(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string
      Src: /src/rnp/src/tests/support.cpp:82,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/rnp/src/tests/support.cpp:82,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/rnp/src/tests/support.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 84
    functionName: file_to_str
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 30
    functionsReached:
    - string
    - std::istreambuf_iterator<char>
    linkageType: ''
    returnType: std::string
    signature: std::string file_to_str(const std::string &path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/tests/support.cpp:91,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/rnp/src/tests/support.cpp:91,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/rnp/src/tests/support.cpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 93
    functionName: file_to_vec
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 12
    functionsReached:
    - std::vector<uint8_t>
    - std::istreambuf_iterator<char>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> file_to_vec(const std::string &path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::ofstream::write
      Src: /src/rnp/src/tests/support.cpp:99,1
    - Dst: strlen
      Src: /src/rnp/src/tests/support.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - str
    argTypes:
    - std::string
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: str_to_file
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 9
    functionsReached:
    - std::ofstream::write
    - strlen
    linkageType: ''
    returnType: void
    signature: void str_to_file(const std::string &path, const char *str)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp_stat
      Src: /src/rnp/src/tests/support.cpp:106,1
    - Dst: S_ISDIR
      Src: /src/rnp/src/tests/support.cpp:107,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 113
    functionName: file_size
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 4
    functionsReached:
    - rnp_stat
    - S_ISDIR
    linkageType: ''
    returnType: off_t
    signature: off_t file_size(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/rnp/src/tests/support.cpp:123,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/support.cpp:126,1
    - Dst: memset
      Src: /src/rnp/src/tests/support.cpp:128,1
    - Dst: strncpy
      Src: /src/rnp/src/tests/support.cpp:130,1
    - Dst: va_arg
      Src: /src/rnp/src/tests/support.cpp:131,1
    - Dst: strlen
      Src: /src/rnp/src/tests/support.cpp:132,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/support.cpp:133,1
    - Dst: strncat
      Src: /src/rnp/src/tests/support.cpp:134,1
    - Dst: strncat
      Src: /src/rnp/src/tests/support.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - buffer
    - buffer_size
    - first
    - ap
    argTypes:
    - char*
    - size_t
    - char*
    - va_list
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 137
    functionName: vpaths_concat
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 0
    functionsReached:
    - assert_true
    - strncat
    - memset
    - va_arg
    - strlen
    - strncpy
    linkageType: ''
    returnType: void
    signature: void vpaths_concat(char *buffer, size_t buffer_size, const char *first,
      va_list ap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/rnp/src/tests/support.cpp:147,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/tests/support.cpp:148,1
    - Dst: va_end
      Src: /src/rnp/src/tests/support.cpp:149,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - buffer
    - buffer_length
    - first
    argTypes:
    - char*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 142
    functionDepth: 2
    functionLinenumber: 142
    functionLinenumberEnd: 151
    functionName: paths_concat
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 1
    functionsReached:
    - va_end
    - va_start
    - vpaths_concat
    linkageType: ''
    returnType: char
    signature: 'char *

      paths_concat(char *buffer, size_t buffer_length, const char *first, ...)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/rnp/src/tests/support.cpp:163,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/tests/support.cpp:164,1
    - Dst: va_end
      Src: /src/rnp/src/tests/support.cpp:165,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/tests/support.cpp:166,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - first
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 167
    functionName: path_rnp_file_exists
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 2
    functionsReached:
    - va_end
    - va_start
    - vpaths_concat
    - rnp_file_exists
    linkageType: ''
    returnType: int
    signature: int path_rnp_file_exists(const char *first, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/rnp/src/tests/support.cpp:179,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/tests/support.cpp:180,1
    - Dst: va_end
      Src: /src/rnp/src/tests/support.cpp:181,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/support.cpp:183,1
    - Dst: RNP_MKDIR
      Src: /src/rnp/src/tests/support.cpp:183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - mode
    - first
    argTypes:
    - mode_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 184
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 184
    functionName: path_mkdir
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 3
    functionsReached:
    - va_start
    - assert_int_equal
    - RNP_MKDIR
    - va_end
    - vpaths_concat
    linkageType: ''
    returnType: void
    signature: void path_mkdir(mode_t mode, const char *first, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: remove
      Src: /src/rnp/src/tests/support.cpp:190,1
    - Dst: perror
      Src: /src/rnp/src/tests/support.cpp:192,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - fpath
    - sb
    - typeflag
    - ftwbuf
    argTypes:
    - char*
    - struct stat*
    - int
    - struct FTW*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 195
    functionName: remove_cb
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 0
    functionsReached:
    - remove
    - perror
    linkageType: ''
    returnType: int
    signature: int remove_cb(const char *fpath, const struct stat *sb, int typeflag,
      struct FTW *ftwbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/rnp/src/tests/support.cpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 198
    functionDepth: 0
    functionLinenumber: 198
    functionLinenumberEnd: 203
    functionName: get_tmp
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 0
    functionsReached:
    - getenv
    linkageType: ''
    returnType: char
    signature: 'char *

      get_tmp()'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: realpath
      Src: /src/rnp/src/tests/support.cpp:208,1
    - Dst: strdup
      Src: /src/rnp/src/tests/support.cpp:210,1
    - Dst: get_tmp
      Src: /src/rnp/src/tests/support.cpp:212,1
    - Dst: realpath
      Src: /src/rnp/src/tests/support.cpp:213,1
    - Dst: strdup
      Src: /src/rnp/src/tests/support.cpp:215,1
    - Dst: strncmp
      Src: /src/rnp/src/tests/support.cpp:217,1
    - Dst: strlen
      Src: /src/rnp/src/tests/support.cpp:217,1
    - Dst: free
      Src: /src/rnp/src/tests/support.cpp:218,1
    - Dst: free
      Src: /src/rnp/src/tests/support.cpp:219,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 205
    functionDepth: 1
    functionLinenumber: 205
    functionLinenumberEnd: 221
    functionName: is_tmp_path
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 0
    functionsReached:
    - realpath
    - strncmp
    - strdup
    - get_tmp
    - strlen
    - free
    linkageType: ''
    returnType: bool
    signature: bool is_tmp_path(const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: PathIsRelativeA
      Src: /src/rnp/src/tests/support.cpp:231,1
    - Dst: getcwd
      Src: /src/rnp/src/tests/support.cpp:237,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/tests/support.cpp:238,1
    - Dst: free
      Src: /src/rnp/src/tests/support.cpp:239,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/support.cpp:242,1
    - Dst: is_tmp_path
      Src: /src/rnp/src/tests/support.cpp:242,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/support.cpp:242,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/support.cpp:247,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/support.cpp:247,1
    - Dst: strcpy_s
      Src: /src/rnp/src/tests/support.cpp:249,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/support.cpp:249,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/support.cpp:250,1
    - Dst: SHFileOperationA
      Src: /src/rnp/src/tests/support.cpp:257,1
    - Dst: nftw
      Src: /src/rnp/src/tests/support.cpp:259,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 226
    functionDepth: 2
    functionLinenumber: 226
    functionLinenumberEnd: 261
    functionName: delete_recursively
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 3
    functionsReached:
    - assert_true
    - rnp::path::append
    - strcpy_s
    - std::string::c_str
    - PathIsRelativeA
    - std::string::size
    - getcwd
    - free
    - is_tmp_path
    - nftw
    - SHFileOperationA
    linkageType: ''
    returnType: void
    signature: void delete_recursively(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/rnp/src/tests/support.cpp:266,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/support.cpp:268,1
    - Dst: is_tmp_path
      Src: /src/rnp/src/tests/support.cpp:268,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/support.cpp:275,1
    - Dst: strlen
      Src: /src/rnp/src/tests/support.cpp:275,1
    - Dst: strcpy_s
      Src: /src/rnp/src/tests/support.cpp:277,1
    - Dst: strlen
      Src: /src/rnp/src/tests/support.cpp:278,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/support.cpp:280,1
    - Dst: strlen
      Src: /src/rnp/src/tests/support.cpp:280,1
    - Dst: strcpy_s
      Src: /src/rnp/src/tests/support.cpp:282,1
    - Dst: strlen
      Src: /src/rnp/src/tests/support.cpp:283,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/support.cpp:288,1
    - Dst: SHFileOperationA
      Src: /src/rnp/src/tests/support.cpp:288,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/support.cpp:293,1
    - Dst: snprintf
      Src: /src/rnp/src/tests/support.cpp:295,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/support.cpp:297,1
    - Dst: system
      Src: /src/rnp/src/tests/support.cpp:297,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 263
    functionDepth: 2
    functionLinenumber: 263
    functionLinenumberEnd: 299
    functionName: copy_recursively
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 1
    functionsReached:
    - system
    - assert_true
    - strcpy_s
    - assert_int_equal
    - strlen
    - is_tmp_path
    - snprintf
    - SHFileOperationA
    linkageType: ''
    returnType: void
    signature: void copy_recursively(const char *src, const char *dst)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: realpath
      Src: /src/rnp/src/tests/support.cpp:309,1
    - Dst: get_tmp
      Src: /src/rnp/src/tests/support.cpp:309,1
    - Dst: printf
      Src: /src/rnp/src/tests/support.cpp:310,1
    - Dst: calloc
      Src: /src/rnp/src/tests/support.cpp:315,1
    - Dst: strlen
      Src: /src/rnp/src/tests/support.cpp:315,1
    - Dst: strlen
      Src: /src/rnp/src/tests/support.cpp:315,1
    - Dst: memcpy
      Src: /src/rnp/src/tests/support.cpp:319,1
    - Dst: strlen
      Src: /src/rnp/src/tests/support.cpp:319,1
    - Dst: memcpy
      Src: /src/rnp/src/tests/support.cpp:320,1
    - Dst: strlen
      Src: /src/rnp/src/tests/support.cpp:320,1
    - Dst: strlen
      Src: /src/rnp/src/tests/support.cpp:320,1
    - Dst: strlen
      Src: /src/rnp/src/tests/support.cpp:321,1
    - Dst: strlen
      Src: /src/rnp/src/tests/support.cpp:321,1
    - Dst: mkdtemp
      Src: /src/rnp/src/tests/support.cpp:322,1
    - Dst: free
      Src: /src/rnp/src/tests/support.cpp:324,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 327
    functionName: make_temp_dir
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 3
    functionsReached:
    - realpath
    - memcpy
    - mkdtemp
    - get_tmp
    - strlen
    - printf
    - free
    - calloc
    linkageType: ''
    returnType: char
    signature: 'char *

      make_temp_dir()'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: _tempnam
      Src: /src/rnp/src/tests/support.cpp:334,1
    - Dst: fprintf
      Src: /src/rnp/src/tests/support.cpp:336,1
    - Dst: RNP_MKDIR
      Src: /src/rnp/src/tests/support.cpp:339,1
    - Dst: fprintf
      Src: /src/rnp/src/tests/support.cpp:340,1
    - Dst: free
      Src: /src/rnp/src/tests/support.cpp:341,1
    - Dst: fprintf
      Src: /src/rnp/src/tests/support.cpp:346,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 329
    functionDepth: 1
    functionLinenumber: 329
    functionLinenumberEnd: 348
    functionName: make_temp_dir
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 3
    functionsReached:
    - _tempnam
    - fprintf
    - RNP_MKDIR
    - free
    linkageType: ''
    returnType: char
    signature: 'char *

      make_temp_dir()'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/rnp/src/tests/support.cpp:356,1
    - Dst: delete_recursively
      Src: /src/rnp/src/tests/support.cpp:357,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 353
    functionDepth: 3
    functionLinenumber: 353
    functionLinenumberEnd: 359
    functionName: clean_temp_dir
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 3
    functionsReached:
    - getenv
    - delete_recursively
    linkageType: ''
    returnType: void
    signature: void clean_temp_dir(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::hex_to_bin
      Src: /src/rnp/src/tests/support.cpp:364,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/support.cpp:365,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/support.cpp:365,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/support.cpp:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - data
    - len
    - val
    argTypes:
    - uint8_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 366
    functionName: bin_eq_hex
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 5
    functionsReached:
    - rnp::hex_to_bin
    - auto::data
    - memcmp
    - auto::size
    linkageType: ''
    returnType: bool
    signature: bool bin_eq_hex(const uint8_t *data, size_t len, const char *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::hex_to_bin
      Src: /src/rnp/src/tests/support.cpp:371,1
    - Dst: pgp::mpi*::assign
      Src: /src/rnp/src/tests/support.cpp:372,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/support.cpp:372,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/support.cpp:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - val
    - hex
    argTypes:
    - pgp::mpi*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 374
    functionName: hex2mpi
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 3
    functionsReached:
    - rnp::hex_to_bin
    - auto::data
    - pgp::mpi*::assign
    - auto::size
    linkageType: ''
    returnType: bool
    signature: bool hex2mpi(pgp::mpi *val, const char *hex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bin_eq_hex
      Src: /src/rnp/src/tests/support.cpp:379,1
    - Dst: pgp::KeyID::data
      Src: /src/rnp/src/tests/support.cpp:379,1
    - Dst: pgp::KeyID::size
      Src: /src/rnp/src/tests/support.cpp:379,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/support.cpp:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - id
    - val
    argTypes:
    - pgp::KeyID
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 376
    functionDepth: 2
    functionLinenumber: 376
    functionLinenumberEnd: 380
    functionName: cmp_keyid
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 2
    functionsReached:
    - std::string::c_str
    - pgp::KeyID::data
    - bin_eq_hex
    - pgp::KeyID::size
    linkageType: ''
    returnType: bool
    signature: bool cmp_keyid(const pgp::KeyID &id, const std::string &val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bin_eq_hex
      Src: /src/rnp/src/tests/support.cpp:385,1
    - Dst: pgp::Fingerprint::data
      Src: /src/rnp/src/tests/support.cpp:385,1
    - Dst: pgp::Fingerprint::size
      Src: /src/rnp/src/tests/support.cpp:385,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/support.cpp:385,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - val
    argTypes:
    - pgp::Fingerprint
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 382
    functionDepth: 2
    functionLinenumber: 382
    functionLinenumberEnd: 386
    functionName: cmp_keyfp
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 1
    functionsReached:
    - pgp::Fingerprint::data
    - pgp::Fingerprint::size
    - bin_eq_hex
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: bool cmp_keyfp(const pgp::Fingerprint &fp, const std::string &val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:392,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/support.cpp:392,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/support.cpp:394,1
    - Dst: load_keys_gpg
      Src: /src/rnp/src/tests/support.cpp:395,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - rnp_ffi_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 396
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 396
    functionName: test_ffi_init
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 26
    functionsReached:
    - rnp_ffi_create
    - load_keys_gpg
    - assert_rnp_success
    - assert_true
    linkageType: ''
    returnType: void
    signature: void test_ffi_init(rnp_ffi_t *ffi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/tests/support.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - pgp::mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 398
    functionDepth: 0
    functionLinenumber: 398
    functionLinenumberEnd: 402
    functionName: mpi_empty
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 3
    functionsReached:
    - pgp::mpi::size
    linkageType: ''
    returnType: bool
    signature: bool mpi_empty(const pgp::mpi &val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/rnp/src/tests/support.cpp:410,1
    - Dst: write
      Src: /src/rnp/src/tests/support.cpp:413,1
    - Dst: perror
      Src: /src/rnp/src/tests/support.cpp:415,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - fd
    - count
    argTypes:
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 423
    functionName: write_pass_to_pipe
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 1
    functionsReached:
    - write
    - strlen
    - perror
    linkageType: ''
    returnType: bool
    signature: bool write_pass_to_pipe(int fd, size_t count)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pipe
      Src: /src/rnp/src/tests/support.cpp:430,1
    - Dst: perror
      Src: /src/rnp/src/tests/support.cpp:431,1
    - Dst: write_pass_to_pipe
      Src: /src/rnp/src/tests/support.cpp:435,1
    - Dst: close
      Src: /src/rnp/src/tests/support.cpp:436,1
    - Dst: close
      Src: /src/rnp/src/tests/support.cpp:442,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - pipefd
    argTypes:
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 425
    functionDepth: 1
    functionLinenumber: 425
    functionLinenumberEnd: 444
    functionName: setupPasswordfd
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 0
    functionsReached:
    - close
    - pipe
    - perror
    - write_pass_to_pipe
    linkageType: ''
    returnType: bool
    signature: bool setupPasswordfd(int *pipefd)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: setupPasswordfd
      Src: /src/rnp/src/tests/support.cpp:456,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/tests/support.cpp:459,1
    - Dst: getenv
      Src: /src/rnp/src/tests/support.cpp:466,1
    - Dst: paths_concat
      Src: /src/rnp/src/tests/support.cpp:467,1
    - Dst: rnp_dir_exists
      Src: /src/rnp/src/tests/support.cpp:468,1
    - Dst: path_mkdir
      Src: /src/rnp/src/tests/support.cpp:469,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/support.cpp:478,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/support.cpp:479,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/support.cpp:481,1
    - Dst: paths_concat
      Src: /src/rnp/src/tests/support.cpp:482,1
    - Dst: paths_concat
      Src: /src/rnp/src/tests/support.cpp:483,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/support.cpp:484,1
    - Dst: paths_concat
      Src: /src/rnp/src/tests/support.cpp:485,1
    - Dst: paths_concat
      Src: /src/rnp/src/tests/support.cpp:486,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/support.cpp:487,1
    - Dst: paths_concat
      Src: /src/rnp/src/tests/support.cpp:488,1
    - Dst: paths_concat
      Src: /src/rnp/src/tests/support.cpp:489,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/support.cpp:490,1
    - Dst: paths_concat
      Src: /src/rnp/src/tests/support.cpp:491,1
    - Dst: paths_concat
      Src: /src/rnp/src/tests/support.cpp:492,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/support.cpp:493,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/support.cpp:494,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/support.cpp:499,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/support.cpp:500,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 44
    argCount: 4
    argNames:
    - cfg
    - ks_format
    - homedir
    - pipefd
    argTypes:
    - rnp_cfg
    - char*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 446
    functionDepth: 3
    functionLinenumber: 446
    functionLinenumberEnd: 502
    functionName: setup_rnp_cfg
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 0
    functionsReached:
    - setupPasswordfd
    - getenv
    - strcmp
    - paths_concat
    - rnp_dir_exists
    - rnp_cfg::set_int
    - rnp_cfg::set_str
    - path_mkdir
    linkageType: ''
    returnType: bool
    signature: bool setup_rnp_cfg(rnp_cfg &cfg, const char *ks_format, const char
      *homedir, int *pipefd)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: setup_rnp_cfg
      Src: /src/rnp/src/tests/support.cpp:508,1
    - Dst: cli_rnp_t*::init
      Src: /src/rnp/src/tests/support.cpp:513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - rnp
    - ks_format
    - homedir
    - pipefd
    argTypes:
    - cli_rnp_t*
    - char*
    - char*
    - int*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 514
      start: 504
    functionDepth: 4
    functionLinenumber: 504
    functionLinenumberEnd: 514
    functionName: setup_cli_rnp_common
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 8
    functionsReached:
    - setup_rnp_cfg
    - cli_rnp_t*::init
    linkageType: ''
    returnType: bool
    signature: bool setup_cli_rnp_common(cli_rnp_t *rnp, const char *ks_format, const
      char *homedir, int *pipefd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/tests/support.cpp:519,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/support.cpp:520,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/tests/support.cpp:521,1
    - Dst: cli_rnp_set_generate_params
      Src: /src/rnp/src/tests/support.cpp:522,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - cfg
    - hashalg
    argTypes:
    - rnp_cfg
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 516
    functionDepth: 1
    functionLinenumber: 516
    functionLinenumberEnd: 523
    functionName: cli_set_default_rsa_key_desc
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 1
    functionsReached:
    - cli_rnp_set_generate_params
    - rnp_cfg::set_int
    - rnp_cfg::set_str
    linkageType: ''
    returnType: void
    signature: void cli_set_default_rsa_key_desc(rnp_cfg &cfg, const char *hashalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ctx
    - password
    - password_size
    - userdata
    argTypes:
    - pgp_password_ctx_t*
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 526
    functionDepth: 0
    functionLinenumber: 526
    functionLinenumberEnd: 533
    functionName: failing_password_callback
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool failing_password_callback(const pgp_password_ctx_t *ctx,\n                          char
      *                    password,\n                          size_t                    password_size,\n
      \                         void *                    userdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - ffi
    - app_ctx
    - key
    - pgp_context
    - buf
    - buf_len
    argTypes:
    - rnp_ffi_t
    - void*
    - rnp_key_handle_t
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 544
    functionName: ffi_failing_password_provider
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool ffi_failing_password_provider(rnp_ffi_t        ffi,\n                              void
      *           app_ctx,\n                              rnp_key_handle_t key,\n
      \                             const char *     pgp_context,\n                              char
      *           buf,\n                              size_t           buf_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/tests/support.cpp:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - ffi
    - app_ctx
    - key
    - pgp_context
    - buf
    - buf_len
    argTypes:
    - rnp_ffi_t
    - void*
    - rnp_key_handle_t
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 556
    functionName: ffi_asserting_password_provider
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: bool
    signature: "bool ffi_asserting_password_provider(rnp_ffi_t        ffi,\n                                void
      *           app_ctx,\n                                rnp_key_handle_t key,\n
      \                               const char *     pgp_context,\n                                char
      *           buf,\n                                size_t           buf_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/rnp/src/tests/support.cpp:566,1
    - Dst: memcpy
      Src: /src/rnp/src/tests/support.cpp:570,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - ffi
    - app_ctx
    - key
    - pgp_context
    - buf
    - buf_len
    argTypes:
    - rnp_ffi_t
    - void*
    - rnp_key_handle_t
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 572
      start: 558
    functionDepth: 0
    functionLinenumber: 558
    functionLinenumberEnd: 572
    functionName: ffi_string_password_provider
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - strlen
    linkageType: ''
    returnType: bool
    signature: "bool ffi_string_password_provider(rnp_ffi_t        ffi,\n                             void
      *           app_ctx,\n                             rnp_key_handle_t key,\n                             const
      char *     pgp_context,\n                             char *           buf,\n
      \                            size_t           buf_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/tests/support.cpp:581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - password
    - password_size
    - userdata
    argTypes:
    - pgp_password_ctx_t*
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 583
      start: 575
    functionDepth: 0
    functionLinenumber: 575
    functionLinenumberEnd: 583
    functionName: asserting_password_callback
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: bool
    signature: "bool asserting_password_callback(const pgp_password_ctx_t *ctx,\n
      \                           char *                    password,\n                            size_t
      \                   password_size,\n                            void *                    userdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/rnp/src/tests/support.cpp:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - ctx
    - password
    - password_size
    - userdata
    argTypes:
    - pgp_password_ctx_t*
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 587
    functionDepth: 0
    functionLinenumber: 587
    functionLinenumberEnd: 596
    functionName: string_copy_password_callback
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 0
    functionsReached:
    - strncpy
    linkageType: ''
    returnType: bool
    signature: "bool string_copy_password_callback(const pgp_password_ctx_t *ctx,\n
      \                             char *                    password,\n                              size_t
      \                   password_size,\n                              void *                    userdata)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/tests/support.cpp:605,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - ffi
    - app_ctx
    - identifier_type
    - identifier
    - secret
    argTypes:
    - rnp_ffi_t
    - void*
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 606
    functionName: unused_getkeycb
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: void
    signature: "void unused_getkeycb(rnp_ffi_t   ffi,\n                void *      app_ctx,\n
      \               const char *identifier_type,\n                const char *identifier,\n
      \               bool        secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/tests/support.cpp:616,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - ffi
    - app_ctx
    - key
    - pgp_context
    - buf
    - buf_len
    argTypes:
    - rnp_ffi_t
    - void*
    - rnp_key_handle_t
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 618
      start: 608
    functionDepth: 0
    functionLinenumber: 608
    functionLinenumberEnd: 618
    functionName: unused_getpasscb
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    linkageType: ''
    returnType: bool
    signature: "bool unused_getpasscb(rnp_ffi_t        ffi,\n                 void
      *           app_ctx,\n                 rnp_key_handle_t key,\n                 const
      char *     pgp_context,\n                 char *           buf,\n                 size_t
      \          buf_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find
      Src: /src/rnp/src/tests/support.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - match
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 620
    functionDepth: 1
    functionLinenumber: 620
    functionLinenumberEnd: 624
    functionName: starts_with
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 3
    functionsReached:
    - std::string::find
    linkageType: ''
    returnType: bool
    signature: bool starts_with(const std::string &data, const std::string &match)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/rnp/src/tests/support.cpp:629,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/support.cpp:629,1
    - Dst: std::string::substr
      Src: /src/rnp/src/tests/support.cpp:630,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/support.cpp:630,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/support.cpp:630,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/support.cpp:630,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - data
    - match
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 626
    functionDepth: 1
    functionLinenumber: 626
    functionLinenumberEnd: 631
    functionName: ends_with
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 3
    functionsReached:
    - std::string::substr
    - std::string::size
    linkageType: ''
    returnType: bool
    signature: bool ends_with(const std::string &data, const std::string &match)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/rnp/src/tests/support.cpp:639,1
    - Dst: vsnprintf
      Src: /src/rnp/src/tests/support.cpp:640,1
    - Dst: va_end
      Src: /src/rnp/src/tests/support.cpp:641,1
    - Dst: va_start
      Src: /src/rnp/src/tests/support.cpp:646,1
    - Dst: vsnprintf
      Src: /src/rnp/src/tests/support.cpp:647,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/support.cpp:647,1
    - Dst: va_end
      Src: /src/rnp/src/tests/support.cpp:648,1
    - Dst: std::string::resize
      Src: /src/rnp/src/tests/support.cpp:651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 1
    argNames:
    - format
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 653
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 653
    functionName: fmt
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 5
    functionsReached:
    - va_start
    - std::string::resize
    - va_end
    - vsnprintf
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string fmt(const char *format, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find_last_not_of
      Src: /src/rnp/src/tests/support.cpp:658,1
    - Dst: std::string::substr
      Src: /src/rnp/src/tests/support.cpp:660,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 663
    functionName: strip_eol
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 3
    functionsReached:
    - std::string::substr
    - std::string::find_last_not_of
    linkageType: ''
    returnType: std::string
    signature: std::string strip_eol(const std::string &str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/rnp/src/tests/support.cpp:669,1
    - Dst: std::string::begin
      Src: /src/rnp/src/tests/support.cpp:670,1
    - Dst: std::string::end
      Src: /src/rnp/src/tests/support.cpp:670,1
    - Dst: std::string::begin
      Src: /src/rnp/src/tests/support.cpp:670,1
    - Dst: std::tolower
      Src: /src/rnp/src/tests/support.cpp:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 672
    functionName: lowercase
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 2
    functionsReached:
    - std::transform
    - std::tolower
    - std::string::begin
    - std::string::end
    linkageType: ''
    returnType: std::string
    signature: std::string lowercase(const std::string &str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_object
      Src: /src/rnp/src/tests/support.cpp:679,1
    - Dst: contains
      Src: /src/rnp/src/tests/support.cpp:679,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ' obj'
    - fld
    - '            name'
    argTypes:
    - nlohmann::ordered_json
    - nlohmann::ordered_json*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 674
    functionDepth: 1
    functionLinenumber: 674
    functionLinenumberEnd: 685
    functionName: jso_get_field
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 0
    functionsReached:
    - contains
    - is_object
    linkageType: ''
    returnType: bool
    signature: "bool jso_get_field(const nlohmann::ordered_json & obj,\n              const
      nlohmann::ordered_json *&fld,\n              const std::string &            name)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: jso_get_field
      Src: /src/rnp/src/tests/support.cpp:693,1
    - Dst: nlohmann::ordered_json*::is_string
      Src: /src/rnp/src/tests/support.cpp:696,1
    - Dst: nlohmann::ordered_json*::get_ref
      Src: /src/rnp/src/tests/support.cpp:699,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - obj
    - '           field'
    - '           value'
    argTypes:
    - nlohmann::ordered_json
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 687
    functionDepth: 2
    functionLinenumber: 687
    functionLinenumberEnd: 700
    functionName: check_json_field_str
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 2
    functionsReached:
    - nlohmann::ordered_json*::get_ref
    - nlohmann::ordered_json*::is_string
    - jso_get_field
    linkageType: ''
    returnType: bool
    signature: "bool check_json_field_str(const nlohmann::ordered_json &obj,\n                     const
      std::string &           field,\n                     const std::string &           value)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: jso_get_field
      Src: /src/rnp/src/tests/support.cpp:706,1
    - Dst: nlohmann::ordered_json*::is_number_integer
      Src: /src/rnp/src/tests/support.cpp:709,1
    - Dst: nlohmann::ordered_json*::get
      Src: /src/rnp/src/tests/support.cpp:712,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - obj
    - field
    - value
    argTypes:
    - nlohmann::ordered_json
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 702
    functionDepth: 2
    functionLinenumber: 702
    functionLinenumberEnd: 713
    functionName: check_json_field_int
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 2
    functionsReached:
    - nlohmann::ordered_json*::get
    - nlohmann::ordered_json*::is_number_integer
    - jso_get_field
    linkageType: ''
    returnType: bool
    signature: bool check_json_field_int(const nlohmann::ordered_json &obj, const
      std::string &field, int value)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: jso_get_field
      Src: /src/rnp/src/tests/support.cpp:719,1
    - Dst: nlohmann::ordered_json*::is_boolean
      Src: /src/rnp/src/tests/support.cpp:722,1
    - Dst: nlohmann::ordered_json*::get
      Src: /src/rnp/src/tests/support.cpp:725,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - obj
    - field
    - value
    argTypes:
    - nlohmann::ordered_json
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 726
      start: 715
    functionDepth: 2
    functionLinenumber: 715
    functionLinenumberEnd: 726
    functionName: check_json_field_bool
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 1
    functionsReached:
    - nlohmann::ordered_json*::is_boolean
    - nlohmann::ordered_json*::get
    - jso_get_field
    linkageType: ''
    returnType: bool
    signature: bool check_json_field_bool(const nlohmann::ordered_json &obj, const
      std::string &field, bool value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::ordered_json::is_object
      Src: /src/rnp/src/tests/support.cpp:731,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/tests/support.cpp:731,1
    - Dst: is_object
      Src: /src/rnp/src/tests/support.cpp:731,1
    - Dst: check_json_field_int
      Src: /src/rnp/src/tests/support.cpp:734,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - pkt
    - tag
    argTypes:
    - nlohmann::ordered_json
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 728
    functionDepth: 3
    functionLinenumber: 728
    functionLinenumberEnd: 735
    functionName: check_json_pkt_type
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 2
    functionsReached:
    - nlohmann::ordered_json::contains
    - nlohmann::ordered_json::is_object
    - is_object
    - check_json_field_int
    linkageType: ''
    returnType: bool
    signature: bool check_json_pkt_type(const nlohmann::ordered_json &pkt, int tag)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/rnp/src/tests/support.cpp:740,1
    - Dst: rnp::is_hex
      Src: /src/rnp/src/tests/support.cpp:740,1
    - Dst: rnp::hex_decode
      Src: /src/rnp/src/tests/support.cpp:744,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/support.cpp:744,1
    - Dst: pgp::KeyID::data
      Src: /src/rnp/src/tests/support.cpp:744,1
    - Dst: pgp::KeyID::size
      Src: /src/rnp/src/tests/support.cpp:744,1
    - Dst: rnp::KeyStore*::search
      Src: /src/rnp/src/tests/support.cpp:749,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - keyring
    - keyid
    - after
    argTypes:
    - rnp::KeyStore*
    - std::string
    - rnp::Key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 750
    functionName: rnp_tests_get_key_by_id
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 10
    functionsReached:
    - rnp::KeyStore*::search
    - rnp::hex_decode
    - rnp::is_hex
    - std::string::c_str
    - std::string::empty
    - pgp::KeyID::data
    - pgp::KeyID::size
    linkageType: ''
    returnType: rnp::Key
    signature: 'rnp::Key *

      rnp_tests_get_key_by_id(rnp::KeyStore *keyring, const std::string &keyid, rnp::Key
      *after)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/rnp/src/tests/support.cpp:755,1
    - Dst: rnp::is_hex
      Src: /src/rnp/src/tests/support.cpp:755,1
    - Dst: rnp::hex_decode
      Src: /src/rnp/src/tests/support.cpp:759,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/support.cpp:759,1
    - Dst: pgp::KeyGrip::data
      Src: /src/rnp/src/tests/support.cpp:759,1
    - Dst: pgp::KeyGrip::size
      Src: /src/rnp/src/tests/support.cpp:759,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/support.cpp:763,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - keyring
    - grip
    argTypes:
    - rnp::KeyStore*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 752
    functionDepth: 1
    functionLinenumber: 752
    functionLinenumberEnd: 764
    functionName: rnp_tests_get_key_by_grip
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 3
    functionsReached:
    - rnp_tests_get_key_by_grip
    - rnp::hex_decode
    - rnp::is_hex
    - std::string::c_str
    - pgp::KeyGrip::size
    - pgp::KeyGrip::data
    - std::string::empty
    linkageType: ''
    returnType: rnp::Key
    signature: 'rnp::Key *

      rnp_tests_get_key_by_grip(rnp::KeyStore *keyring, const std::string &grip)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore*::search
      Src: /src/rnp/src/tests/support.cpp:772,1
    - Dst: rnp::KeyGripSearch::KeyGripSearch
      Src: /src/rnp/src/tests/support.cpp:772,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - keyring
    - grip
    argTypes:
    - rnp::KeyStore*
    - pgp::KeyGrip
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 773
      start: 766
    functionDepth: 1
    functionLinenumber: 766
    functionLinenumberEnd: 773
    functionName: rnp_tests_get_key_by_grip
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 3
    functionsReached:
    - rnp::KeyStore*::search
    - rnp::KeyGripSearch::KeyGripSearch
    linkageType: ''
    returnType: rnp::Key
    signature: 'rnp::Key *

      rnp_tests_get_key_by_grip(rnp::KeyStore *keyring, const pgp::KeyGrip &grip)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/rnp/src/tests/support.cpp:778,1
    - Dst: rnp::is_hex
      Src: /src/rnp/src/tests/support.cpp:778,1
    - Dst: rnp::hex_decode
      Src: /src/rnp/src/tests/support.cpp:782,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/support.cpp:782,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/support.cpp:782,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/support.cpp:782,1
    - Dst: std::vector::data
      Src: /src/rnp/src/tests/support.cpp:786,1
    - Dst: rnp::KeyStore*::get_key
      Src: /src/rnp/src/tests/support.cpp:787,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - keyring
    - fpstr
    argTypes:
    - rnp::KeyStore*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 788
      start: 775
    functionDepth: 1
    functionLinenumber: 775
    functionLinenumberEnd: 788
    functionName: rnp_tests_get_key_by_fpr
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 1
    functionsReached:
    - rnp::hex_decode
    - rnp::is_hex
    - std::string::c_str
    - rnp::KeyStore*::get_key
    - std::vector::size
    - std::string::empty
    - std::vector::data
    linkageType: ''
    returnType: rnp::Key
    signature: 'rnp::Key *

      rnp_tests_get_key_by_fpr(rnp::KeyStore *keyring, const std::string &fpstr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/rnp/src/tests/support.cpp:793,1
    - Dst: rnp::KeyStore*::search
      Src: /src/rnp/src/tests/support.cpp:796,1
    - Dst: rnp::KeyUIDSearch::KeyUIDSearch
      Src: /src/rnp/src/tests/support.cpp:796,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - keyring
    - uid
    argTypes:
    - rnp::KeyStore*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 790
    functionDepth: 1
    functionLinenumber: 790
    functionLinenumberEnd: 797
    functionName: rnp_tests_key_search
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 4
    functionsReached:
    - std::string::empty
    - rnp::KeyUIDSearch::KeyUIDSearch
    - rnp::KeyStore*::search
    linkageType: ''
    returnType: rnp::Key
    signature: 'rnp::Key *

      rnp_tests_key_search(rnp::KeyStore *keyring, const std::string &uid)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:803,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/support.cpp:803,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:804,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/tests/support.cpp:804,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:805,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/support.cpp:805,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:810,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/support.cpp:810,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:812,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/support.cpp:812,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:815,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/support.cpp:815,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:816,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/support.cpp:816,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:817,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/support.cpp:817,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:818,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/support.cpp:818,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - rnp_ffi_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 819
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 819
    functionName: reload_pubring
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 3
    functionsReached:
    - rnp_output_to_memory
    - rnp_output_memory_get_buf
    - rnp_save_keys
    - rnp_input_from_memory
    - rnp_ffi_destroy
    - assert_rnp_success
    - rnp_import_keys
    - rnp_ffi_create
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void reload_pubring(rnp_ffi_t *ffi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:825,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/support.cpp:825,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:826,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/tests/support.cpp:826,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:828,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/support.cpp:828,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:829,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/tests/support.cpp:829,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:830,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/support.cpp:830,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:832,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/support.cpp:832,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:836,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/support.cpp:836,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:838,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/support.cpp:838,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:839,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/support.cpp:839,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:840,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/support.cpp:840,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:841,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/support.cpp:841,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:843,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/support.cpp:843,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:844,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/support.cpp:844,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:845,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/support.cpp:845,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:846,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/support.cpp:846,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/support.cpp:847,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/support.cpp:847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - rnp_ffi_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 848
      start: 821
    functionDepth: 1
    functionLinenumber: 821
    functionLinenumberEnd: 848
    functionName: reload_keyrings
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 8
    functionsReached:
    - rnp_output_to_memory
    - rnp_output_memory_get_buf
    - rnp_save_keys
    - rnp_input_from_memory
    - rnp_ffi_destroy
    - assert_rnp_success
    - rnp_import_keys
    - rnp_ffi_create
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void reload_keyrings(rnp_ffi_t *ffi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/rnp/src/tests/support.cpp:856,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/support.cpp:860,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/support.cpp:860,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/tests/support.cpp:863,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/support.cpp:864,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/support.cpp:867,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - ffi
    - format
    - path
    - secret
    argTypes:
    - rnp_ffi_t
    - std::string
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 850
    functionDepth: 1
    functionLinenumber: 850
    functionLinenumberEnd: 869
    functionName: load_keys_internal
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 0
    functionsReached:
    - rnp_input_from_path
    - std::string::c_str
    - rnp_load_keys
    - std::string::empty
    - rnp_input_destroy
    linkageType: ''
    returnType: bool
    signature: "bool load_keys_internal(rnp_ffi_t          ffi,\n                   const
      std::string &format,\n                   const std::string &path,\n                   bool
      \              secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_keys_internal
      Src: /src/rnp/src/tests/support.cpp:874,1
    - Dst: load_keys_internal
      Src: /src/rnp/src/tests/support.cpp:875,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ffi
    - pub
    - sec
    argTypes:
    - rnp_ffi_t
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 871
    functionDepth: 2
    functionLinenumber: 871
    functionLinenumberEnd: 876
    functionName: load_keys_gpg
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 35
    functionsReached:
    - load_keys_internal
    linkageType: ''
    returnType: bool
    signature: bool load_keys_gpg(rnp_ffi_t ffi, const std::string &pub, const std::string
      &sec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: load_keys_internal
      Src: /src/rnp/src/tests/support.cpp:881,1
    - Dst: load_keys_internal
      Src: /src/rnp/src/tests/support.cpp:882,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - ffi
    - pub
    - sec
    argTypes:
    - rnp_ffi_t
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 878
    functionDepth: 2
    functionLinenumber: 878
    functionLinenumberEnd: 883
    functionName: load_keys_kbx_g10
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 7
    functionsReached:
    - load_keys_internal
    linkageType: ''
    returnType: bool
    signature: bool load_keys_kbx_g10(rnp_ffi_t ffi, const std::string &pub, const
      std::string &sec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/support.cpp:889,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/support.cpp:889,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/support.cpp:892,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/support.cpp:893,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ffi
    - path
    - flags
    argTypes:
    - rnp_ffi_t
    - std::string
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 895
    functionName: import_keys
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 19
    functionsReached:
    - rnp_input_destroy
    - rnp_input_from_path
    - rnp_import_keys
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: bool import_keys(rnp_ffi_t ffi, const std::string &path, uint32_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: import_keys
      Src: /src/rnp/src/tests/support.cpp:900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ffi
    - path
    argTypes:
    - rnp_ffi_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 901
    functionName: import_all_keys
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 25
    functionsReached:
    - import_keys
    linkageType: ''
    returnType: bool
    signature: bool import_all_keys(rnp_ffi_t ffi, const std::string &path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: import_keys
      Src: /src/rnp/src/tests/support.cpp:906,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ffi
    - path
    argTypes:
    - rnp_ffi_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 907
    functionName: import_pub_keys
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 30
    functionsReached:
    - import_keys
    linkageType: ''
    returnType: bool
    signature: bool import_pub_keys(rnp_ffi_t ffi, const std::string &path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: import_keys
      Src: /src/rnp/src/tests/support.cpp:912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ffi
    - path
    argTypes:
    - rnp_ffi_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 913
    functionName: import_sec_keys
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 17
    functionsReached:
    - import_keys
    linkageType: ''
    returnType: bool
    signature: bool import_sec_keys(rnp_ffi_t ffi, const std::string &path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/tests/support.cpp:919,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/support.cpp:922,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/support.cpp:923,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - ffi
    - data
    - len
    - flags
    argTypes:
    - rnp_ffi_t
    - uint8_t*
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 925
    functionName: import_keys
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 23
    functionsReached:
    - rnp_input_from_memory
    - rnp_import_keys
    - rnp_input_destroy
    linkageType: ''
    returnType: bool
    signature: bool import_keys(rnp_ffi_t ffi, const uint8_t *data, size_t len, uint32_t
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: import_keys
      Src: /src/rnp/src/tests/support.cpp:930,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - ffi
    - data
    - len
    - flags
    argTypes:
    - rnp_ffi_t
    - uint8_t*
    - size_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 932
    functionName: import_all_keys
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 25
    functionsReached:
    - import_keys
    linkageType: ''
    returnType: bool
    signature: bool import_all_keys(rnp_ffi_t ffi, const uint8_t *data, size_t len,
      uint32_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: import_keys
      Src: /src/rnp/src/tests/support.cpp:937,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ffi
    - data
    - len
    argTypes:
    - rnp_ffi_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 938
    functionName: import_pub_keys
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 30
    functionsReached:
    - import_keys
    linkageType: ''
    returnType: bool
    signature: bool import_pub_keys(rnp_ffi_t ffi, const uint8_t *data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: import_keys
      Src: /src/rnp/src/tests/support.cpp:943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ffi
    - data
    - len
    argTypes:
    - rnp_ffi_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 944
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 944
    functionName: import_sec_keys
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 17
    functionsReached:
    - import_keys
    linkageType: ''
    returnType: bool
    signature: bool import_sec_keys(rnp_ffi_t ffi, const uint8_t *data, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/support.cpp:959,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/tests/support.cpp:960,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/support.cpp:963,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/support.cpp:965,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 3
    argNames:
    - key
    - armored
    - secret
    argTypes:
    - rnp_key_handle_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 946
    functionDepth: 0
    functionLinenumber: 946
    functionLinenumberEnd: 967
    functionName: export_key
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 6
    functionsReached:
    - rnp_output_to_memory
    - rnp_output_memory_get_buf
    - rnp_output_destroy
    - rnp_key_export
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> export_key(rnp_key_handle_t key, bool armored,
      bool secret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: export_key
      Src: /src/rnp/src/tests/support.cpp:973,1
    - Dst: printf
      Src: /src/rnp/src/tests/support.cpp:974,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/support.cpp:974,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/support.cpp:974,1
    - Dst: export_key
      Src: /src/rnp/src/tests/support.cpp:978,1
    - Dst: printf
      Src: /src/rnp/src/tests/support.cpp:979,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/support.cpp:979,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/support.cpp:979,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key
    - secret
    argTypes:
    - rnp_key_handle_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 970
    functionDepth: 1
    functionLinenumber: 970
    functionLinenumberEnd: 980
    functionName: dump_key_stdout
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 0
    functionsReached:
    - auto::data
    - export_key
    - printf
    - auto::size
    linkageType: ''
    returnType: void
    signature: void dump_key_stdout(rnp_key_handle_t key, bool secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_sequence_t::keys::push_back
      Src: /src/rnp/src/tests/support.cpp:987,1
    - Dst: write_transferable_keys
      Src: /src/rnp/src/tests/support.cpp:988,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - dst
    - armor
    argTypes:
    - pgp_transferable_key_t
    - pgp_dest_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 989
      start: 983
    functionDepth: 1
    functionLinenumber: 983
    functionLinenumberEnd: 989
    functionName: write_transferable_key
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 1
    functionsReached:
    - write_transferable_keys
    - pgp_key_sequence_t::keys::push_back
    linkageType: ''
    returnType: bool
    signature: bool write_transferable_key(pgp_transferable_key_t &key, pgp_dest_t
      &dst, bool armor)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_sequence_t::keys::empty
      Src: /src/rnp/src/tests/support.cpp:997,1
    - Dst: is_secret_key_pkt
      Src: /src/rnp/src/tests/support.cpp:997,1
    - Dst: pgp_key_sequence_t::keys::front
      Src: /src/rnp/src/tests/support.cpp:997,1
    - Dst: std::unique_ptr<rnp::ArmoredDest>
      Src: /src/rnp/src/tests/support.cpp:1000,1
    - Dst: rnp::ArmoredDest::ArmoredDest
      Src: /src/rnp/src/tests/support.cpp:1000,1
    - Dst: std::unique_ptr::dst
      Src: /src/rnp/src/tests/support.cpp:1001,1
    - Dst: key::write
      Src: /src/rnp/src/tests/support.cpp:1006,1
    - Dst: write
      Src: /src/rnp/src/tests/support.cpp:1009,1
    - Dst: uid::write
      Src: /src/rnp/src/tests/support.cpp:1013,1
    - Dst: write
      Src: /src/rnp/src/tests/support.cpp:1015,1
    - Dst: subkey::write
      Src: /src/rnp/src/tests/support.cpp:1020,1
    - Dst: write
      Src: /src/rnp/src/tests/support.cpp:1022,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - keys
    - dst
    - armor
    argTypes:
    - pgp_key_sequence_t
    - pgp_dest_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 991
    functionDepth: 1
    functionLinenumber: 991
    functionLinenumberEnd: 1027
    functionName: write_transferable_keys
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 2
    functionsReached:
    - pgp_key_sequence_t::keys::front
    - uid::write
    - std::unique_ptr<rnp::ArmoredDest>
    - is_secret_key_pkt
    - std::unique_ptr::dst
    - pgp_key_sequence_t::keys::empty
    - rnp::ArmoredDest::ArmoredDest
    - key::write
    - subkey::write
    - write
    linkageType: ''
    returnType: bool
    signature: bool write_transferable_keys(pgp_key_sequence_t &keys, pgp_dest_t *dst,
      bool armor)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/support.cpp:1033,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/tests/support.cpp:1037,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/support.cpp:1038,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - key
    - idx
    - valid
    argTypes:
    - rnp_key_handle_t
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1040
    functionName: check_uid_valid
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 6
    functionsReached:
    - rnp_uid_handle_destroy
    - rnp_uid_is_valid
    - rnp_key_get_uid_handle_at
    linkageType: ''
    returnType: bool
    signature: bool check_uid_valid(rnp_key_handle_t key, size_t idx, bool valid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/tests/support.cpp:1046,1
    - Dst: rnp_uid_is_primary
      Src: /src/rnp/src/tests/support.cpp:1050,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/tests/support.cpp:1051,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - key
    - idx
    - primary
    argTypes:
    - rnp_key_handle_t
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1053
      start: 1042
    functionDepth: 0
    functionLinenumber: 1042
    functionLinenumberEnd: 1053
    functionName: check_uid_primary
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 3
    functionsReached:
    - rnp_uid_is_primary
    - rnp_uid_handle_destroy
    - rnp_key_get_uid_handle_at
    linkageType: ''
    returnType: bool
    signature: bool check_uid_primary(rnp_key_handle_t key, size_t idx, bool primary)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/support.cpp:1059,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - key
    - validity
    argTypes:
    - rnp_key_handle_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1063
      start: 1055
    functionDepth: 0
    functionLinenumber: 1055
    functionLinenumberEnd: 1063
    functionName: check_key_valid
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 6
    functionsReached:
    - rnp_key_is_valid
    linkageType: ''
    returnType: bool
    signature: bool check_key_valid(rnp_key_handle_t key, bool validity)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/tests/support.cpp:1069,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - key
    - revoked
    argTypes:
    - rnp_key_handle_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1073
      start: 1065
    functionDepth: 0
    functionLinenumber: 1065
    functionLinenumberEnd: 1073
    functionName: check_key_revoked
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 2
    functionsReached:
    - rnp_key_is_revoked
    linkageType: ''
    returnType: bool
    signature: bool check_key_revoked(rnp_key_handle_t key, bool revoked)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_is_locked
      Src: /src/rnp/src/tests/support.cpp:1079,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - key
    - locked
    argTypes:
    - rnp_key_handle_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1075
    functionDepth: 0
    functionLinenumber: 1075
    functionLinenumberEnd: 1083
    functionName: check_key_locked
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 1
    functionsReached:
    - rnp_key_is_locked
    linkageType: ''
    returnType: bool
    signature: bool check_key_locked(rnp_key_handle_t key, bool locked)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/support.cpp:1089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - rnp_key_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1091
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1091
    functionName: get_key_expiry
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 2
    functionsReached:
    - rnp_key_get_expiration
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_key_expiry(rnp_key_handle_t key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/support.cpp:1097,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - key
    argTypes:
    - rnp_key_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1099
      start: 1093
    functionDepth: 0
    functionLinenumber: 1093
    functionLinenumberEnd: 1099
    functionName: get_key_uids
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 2
    functionsReached:
    - rnp_key_get_uid_count
    linkageType: ''
    returnType: size_t
    signature: size_t get_key_uids(rnp_key_handle_t key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/tests/support.cpp:1105,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/tests/support.cpp:1109,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/support.cpp:1110,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - key
    - idx
    - validity
    argTypes:
    - rnp_key_handle_t
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1112
      start: 1101
    functionDepth: 0
    functionLinenumber: 1101
    functionLinenumberEnd: 1112
    functionName: check_sub_valid
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 2
    functionsReached:
    - rnp_key_is_valid
    - rnp_key_get_subkey_at
    - rnp_key_handle_destroy
    linkageType: ''
    returnType: bool
    signature: bool check_sub_valid(rnp_key_handle_t key, size_t idx, bool validity)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_get_grip
      Src: /src/rnp/src/tests/support.cpp:1118,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/support.cpp:1121,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/support.cpp:1121,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/support.cpp:1122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key
    - expected
    argTypes:
    - rnp_key_handle_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1124
      start: 1114
    functionDepth: 1
    functionLinenumber: 1114
    functionLinenumberEnd: 1124
    functionName: check_key_grip
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 1
    functionsReached:
    - strcmp
    - rnp_key_get_grip
    - rnp_buffer_destroy
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: bool check_key_grip(rnp_key_handle_t key, const std::string &expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_get_fprint
      Src: /src/rnp/src/tests/support.cpp:1130,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/support.cpp:1133,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/support.cpp:1133,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/support.cpp:1134,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key
    - expected
    argTypes:
    - rnp_key_handle_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1126
    functionDepth: 1
    functionLinenumber: 1126
    functionLinenumberEnd: 1136
    functionName: check_key_fp
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 1
    functionsReached:
    - strcmp
    - rnp_key_get_fprint
    - std::string::c_str
    - rnp_buffer_destroy
    linkageType: ''
    returnType: bool
    signature: bool check_key_fp(rnp_key_handle_t key, const std::string &expected)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_get_revocation_reason
      Src: /src/rnp/src/tests/support.cpp:1142,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/support.cpp:1145,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/support.cpp:1146,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key
    - reason
    argTypes:
    - rnp_key_handle_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1138
    functionDepth: 1
    functionLinenumber: 1138
    functionLinenumberEnd: 1148
    functionName: check_key_revreason
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 1
    functionsReached:
    - strcmp
    - rnp_buffer_destroy
    - rnp_key_get_revocation_reason
    linkageType: ''
    returnType: bool
    signature: bool check_key_revreason(rnp_key_handle_t key, const char *reason)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/rnp/src/tests/support.cpp:1154,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/support.cpp:1158,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/support.cpp:1158,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/support.cpp:1168,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/support.cpp:1168,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/support.cpp:1173,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/tests/support.cpp:1173,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/tests/support.cpp:1179,1
    - Dst: check_key_valid
      Src: /src/rnp/src/tests/support.cpp:1182,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/support.cpp:1183,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 4
    argNames:
    - ffi
    - id
    - secret
    - valid
    argTypes:
    - rnp_ffi_t
    - std::string
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1150
    functionDepth: 1
    functionLinenumber: 1150
    functionLinenumberEnd: 1185
    functionName: check_has_key
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 2
    functionsReached:
    - rnp_locate_key
    - check_key_valid
    - rnp_key_have_secret
    - std::string::c_str
    - rnp_key_handle_destroy
    - std::string::size
    linkageType: ''
    returnType: bool
    signature: bool check_has_key(rnp_ffi_t ffi, const std::string &id, bool secret,
      bool valid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_signature_get_hash_alg
      Src: /src/rnp/src/tests/support.cpp:1191,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/support.cpp:1194,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/support.cpp:1195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sig
    - hash
    argTypes:
    - rnp_signature_handle_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1187
    functionDepth: 1
    functionLinenumber: 1187
    functionLinenumberEnd: 1197
    functionName: check_sig_hash
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 4
    functionsReached:
    - strcmp
    - rnp_buffer_destroy
    - rnp_signature_get_hash_alg
    linkageType: ''
    returnType: bool
    signature: bool check_sig_hash(rnp_signature_handle_t sig, const char *hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_signature_get_type
      Src: /src/rnp/src/tests/support.cpp:1203,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/support.cpp:1206,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/support.cpp:1207,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - sig
    - type
    argTypes:
    - rnp_signature_handle_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1199
    functionDepth: 1
    functionLinenumber: 1199
    functionLinenumberEnd: 1209
    functionName: check_sig_type
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 4
    functionsReached:
    - strcmp
    - rnp_buffer_destroy
    - rnp_signature_get_type
    linkageType: ''
    returnType: bool
    signature: bool check_sig_type(rnp_signature_handle_t sig, const char *type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_signature_get_revocation_reason
      Src: /src/rnp/src/tests/support.cpp:1216,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/support.cpp:1219,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/support.cpp:1219,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/support.cpp:1220,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/support.cpp:1221,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - sig
    - revcode
    - revreason
    argTypes:
    - rnp_signature_handle_t
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1223
      start: 1211
    functionDepth: 1
    functionLinenumber: 1211
    functionLinenumberEnd: 1223
    functionName: check_sig_revreason
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 1
    functionsReached:
    - strcmp
    - rnp_signature_get_revocation_reason
    - rnp_buffer_destroy
    linkageType: ''
    returnType: bool
    signature: bool check_sig_revreason(rnp_signature_handle_t sig, const char *revcode,
      const char *revreason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/support.cpp:1229,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ffi
    - fp
    argTypes:
    - rnp_ffi_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1225
    functionDepth: 0
    functionLinenumber: 1225
    functionLinenumberEnd: 1231
    functionName: get_key_by_fp
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 1
    functionsReached:
    - rnp_locate_key
    linkageType: ''
    returnType: rnp_key_handle_t
    signature: rnp_key_handle_t get_key_by_fp(rnp_ffi_t ffi, const char *fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/support.cpp:1237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ffi
    - uid
    argTypes:
    - rnp_ffi_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1239
      start: 1233
    functionDepth: 0
    functionLinenumber: 1233
    functionLinenumberEnd: 1239
    functionName: get_key_by_uid
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 1
    functionsReached:
    - rnp_locate_key
    linkageType: ''
    returnType: rnp_key_handle_t
    signature: rnp_key_handle_t get_key_by_uid(rnp_ffi_t ffi, const char *uid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_handle_st::rnp_key_handle_st
      Src: /src/rnp/src/tests/support.cpp:1244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ffi
    argTypes:
    - rnp_ffi_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1245
      start: 1241
    functionDepth: 1
    functionLinenumber: 1241
    functionLinenumberEnd: 1245
    functionName: bogus_key_handle
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 1
    functionsReached:
    - rnp_key_handle_st::rnp_key_handle_st
    linkageType: ''
    returnType: rnp_key_handle_t
    signature: rnp_key_handle_t bogus_key_handle(rnp_ffi_t ffi)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/support.cpp:1251,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1247
    functionDepth: 0
    functionLinenumber: 1247
    functionLinenumberEnd: 1252
    functionName: sm2_enabled
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 12
    functionsReached:
    - rnp_supports_feature
    linkageType: ''
    returnType: bool
    signature: bool sm2_enabled()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/support.cpp:1258,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1259
      start: 1254
    functionDepth: 0
    functionLinenumber: 1254
    functionLinenumberEnd: 1259
    functionName: aead_eax_enabled
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 9
    functionsReached:
    - rnp_supports_feature
    linkageType: ''
    returnType: bool
    signature: bool aead_eax_enabled()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/support.cpp:1265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1261
    functionDepth: 0
    functionLinenumber: 1261
    functionLinenumberEnd: 1266
    functionName: aead_ocb_enabled
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 5
    functionsReached:
    - rnp_supports_feature
    linkageType: ''
    returnType: bool
    signature: bool aead_ocb_enabled()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: aead_ocb_enabled
      Src: /src/rnp/src/tests/support.cpp:1271,1
    - Dst: strcmp
      Src: /src/rnp/src/tests/support.cpp:1271,1
    - Dst: rnp_backend_string
      Src: /src/rnp/src/tests/support.cpp:1271,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1272
      start: 1268
    functionDepth: 1
    functionLinenumber: 1268
    functionLinenumberEnd: 1272
    functionName: aead_ocb_aes_only
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 2
    functionsReached:
    - strcmp
    - aead_ocb_enabled
    - rnp_backend_string
    linkageType: ''
    returnType: bool
    signature: bool aead_ocb_aes_only()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/support.cpp:1278,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1279
      start: 1274
    functionDepth: 0
    functionLinenumber: 1274
    functionLinenumberEnd: 1279
    functionName: twofish_enabled
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 5
    functionsReached:
    - rnp_supports_feature
    linkageType: ''
    returnType: bool
    signature: bool twofish_enabled()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/support.cpp:1285,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1286
      start: 1281
    functionDepth: 0
    functionLinenumber: 1281
    functionLinenumberEnd: 1286
    functionName: idea_enabled
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 6
    functionsReached:
    - rnp_supports_feature
    linkageType: ''
    returnType: bool
    signature: bool idea_enabled()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/support.cpp:1292,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1293
      start: 1288
    functionDepth: 0
    functionLinenumber: 1288
    functionLinenumberEnd: 1293
    functionName: brainpool_enabled
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 7
    functionsReached:
    - rnp_supports_feature
    linkageType: ''
    returnType: bool
    signature: bool brainpool_enabled()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/support.cpp:1299,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1300
      start: 1295
    functionDepth: 0
    functionLinenumber: 1295
    functionLinenumberEnd: 1300
    functionName: blowfish_enabled
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 6
    functionsReached:
    - rnp_supports_feature
    linkageType: ''
    returnType: bool
    signature: bool blowfish_enabled()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/support.cpp:1306,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1307
      start: 1302
    functionDepth: 0
    functionLinenumber: 1302
    functionLinenumberEnd: 1307
    functionName: cast5_enabled
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 9
    functionsReached:
    - rnp_supports_feature
    linkageType: ''
    returnType: bool
    signature: bool cast5_enabled()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/support.cpp:1313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1314
      start: 1309
    functionDepth: 0
    functionLinenumber: 1309
    functionLinenumberEnd: 1314
    functionName: ripemd160_enabled
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 2
    functionsReached:
    - rnp_supports_feature
    linkageType: ''
    returnType: bool
    signature: bool ripemd160_enabled()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/tests/support.cpp:1320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1316
    functionDepth: 0
    functionLinenumber: 1316
    functionLinenumberEnd: 1321
    functionName: bzip2_enabled
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 8
    functionsReached:
    - rnp_supports_feature
    linkageType: ''
    returnType: bool
    signature: bool bzip2_enabled()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/support.cpp:1326,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/support.cpp:1330,1
    - Dst: rnp::Key*::is_protected
      Src: /src/rnp/src/tests/support.cpp:1334,1
    - Dst: rnp::Key*::unlock
      Src: /src/rnp/src/tests/support.cpp:1334,1
    - Dst: rnp::Key*::lock
      Src: /src/rnp/src/tests/support.cpp:1334,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - pub
    - sec
    - id
    argTypes:
    - rnp::KeyStore*
    - rnp::KeyStore*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1323
    functionDepth: 2
    functionLinenumber: 1323
    functionLinenumberEnd: 1335
    functionName: test_load_gpg_check_key
    functionSourceFile: /src/rnp/src/tests/support.cpp
    functionUses: 2
    functionsReached:
    - rnp::Key*::lock
    - rnp::Key*::is_protected
    - rnp::Key*::unlock
    - rnp_tests_get_key_by_id
    linkageType: ''
    returnType: bool
    signature: bool test_load_gpg_check_key(rnp::KeyStore *pub, rnp::KeyStore *sec,
      const char *id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_keyring_g10.cpp:37,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_keyring_g10.cpp:38,1
    - Dst: keyring_g10_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_keyring_g10.cpp:38,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_keyring_g10.cpp:38,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_keyring_g10.cpp:38,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_keyring_g10.cpp:40,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_keyring_g10.cpp:41,1
    - Dst: keyring_g10_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_keyring_g10.cpp:41,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_keyring_g10.cpp:41,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_keyring_g10.cpp:41,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_keyring_g10.cpp:43,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_keyring_g10.cpp:44,1
    - Dst: keyring_g10_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_keyring_g10.cpp:44,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_keyring_g10.cpp:44,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_keyring_g10.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 45
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/fuzz_keyring_g10.cpp
    functionUses: 0
    functionsReached:
    - keyring_g10_LLVMFuzzerTestOneInput
    - auto::size
    - auto::data
    - assert_int_equal
    - file_to_vec
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_fuzz_keyring_g10)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key*::uid_count
      Src: /src/rnp/src/tests/user-prefs.cpp:39,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/user-prefs.cpp:40,1
    - Dst: rnp::Key*::sig_count
      Src: /src/rnp/src/tests/user-prefs.cpp:49,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/user-prefs.cpp:50,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 2
    argNames:
    - key
    - userid
    argTypes:
    - rnp::Key*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 56
    functionName: find_subsig
    functionSourceFile: /src/rnp/src/tests/user-prefs.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key*::get_sig
    - rnp::Key*::uid_count
    - rnp::Key*::sig_count
    - rnp::Key*::get_uid
    linkageType: ''
    returnType: rnp::Signature
    signature: 'rnp::Signature *

      find_subsig(const rnp::Key *key, const char *userid)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/user-prefs.cpp:60,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/user-prefs.cpp:61,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/user-prefs.cpp:61,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/user-prefs.cpp:62,1
    - Dst: auto::key_count
      Src: /src/rnp/src/tests/user-prefs.cpp:62,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/user-prefs.cpp:69,1
    - Dst: rnp_tests_key_search
      Src: /src/rnp/src/tests/user-prefs.cpp:69,1
    - Dst: find_subsig
      Src: /src/rnp/src/tests/user-prefs.cpp:71,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/user-prefs.cpp:72,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/user-prefs.cpp:78,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/user-prefs.cpp:81,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/user-prefs.cpp:84,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/user-prefs.cpp:87,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/user-prefs.cpp:89,1
    - Dst: rnp::UserPrefs::key_server::c_str
      Src: /src/rnp/src/tests/user-prefs.cpp:89,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/user-prefs.cpp:97,1
    - Dst: rnp_tests_key_search
      Src: /src/rnp/src/tests/user-prefs.cpp:97,1
    - Dst: find_subsig
      Src: /src/rnp/src/tests/user-prefs.cpp:99,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/user-prefs.cpp:100,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/user-prefs.cpp:110,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/user-prefs.cpp:114,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/user-prefs.cpp:117,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/user-prefs.cpp:120,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/user-prefs.cpp:122,1
    - Dst: rnp::UserPrefs::key_server::empty
      Src: /src/rnp/src/tests/user-prefs.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 127
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/user-prefs.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - auto::key_count
    - assert_true
    - rnp_tests_key_search
    - assert_int_equal
    - assert_string_equal
    - auto::load
    - rnp::UserPrefs::key_server::empty
    - rnp::KeyStore::KeyStore
    - rnp::UserPrefs::key_server::c_str
    - find_subsig
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_load_user_prefs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:37,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:38,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:38,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:39,1
    - Dst: keyring_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:39,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:39,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:39,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:41,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:42,1
    - Dst: keyring_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:42,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:42,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:42,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:45,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:46,1
    - Dst: keyring_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:46,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:46,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:46,1
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:49,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:50,1
    - Dst: keyring_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:50,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:50,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 51
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/fuzz_keyring.cpp
    functionUses: 0
    functionsReached:
    - keyring_LLVMFuzzerTestOneInput
    - auto::size
    - auto::data
    - assert_int_equal
    - file_to_vec
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_fuzz_keyring)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_to_vec
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:59,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:60,1
    - Dst: keyring_LLVMFuzzerTestOneInput
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:60,1
    - Dst: auto::data
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:60,1
    - Dst: auto::size
      Src: /src/rnp/src/tests/fuzz_keyring.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/fuzz_keyring.cpp
    functionUses: 0
    functionsReached:
    - keyring_LLVMFuzzerTestOneInput
    - auto::size
    - auto::data
    - assert_int_equal
    - file_to_vec
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_fuzz_keyring_slow)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/load-pgp.cpp:42,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:45,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/load-pgp.cpp:45,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:46,1
    - Dst: auto::load_pgp
      Src: /src/rnp/src/tests/load-pgp.cpp:46,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/load-pgp.cpp:47,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:48,1
    - Dst: auto::key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:48,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:51,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:52,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:55,1
    - Dst: rnp::Key*::flags
      Src: /src/rnp/src/tests/load-pgp.cpp:55,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:59,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/load-pgp.cpp:59,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/load-pgp.cpp:65,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:67,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/load-pgp.cpp:67,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:68,1
    - Dst: auto::load_pgp
      Src: /src/rnp/src/tests/load-pgp.cpp:68,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/load-pgp.cpp:69,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:70,1
    - Dst: auto::key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:70,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:72,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:73,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:76,1
    - Dst: rnp::Key*::flags
      Src: /src/rnp/src/tests/load-pgp.cpp:76,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:80,1
    - Dst: rnp::Key*::is_secret
      Src: /src/rnp/src/tests/load-pgp.cpp:80,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:81,1
    - Dst: rnp::Key*::is_locked
      Src: /src/rnp/src/tests/load-pgp.cpp:81,1
    - Dst: pgp_decrypt_seckey_pgp
      Src: /src/rnp/src/tests/load-pgp.cpp:84,1
    - Dst: rnp::Key*::rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:84,1
    - Dst: rnp::Key*::pkt
      Src: /src/rnp/src/tests/load-pgp.cpp:84,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:86,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/load-pgp.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 94
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/load-pgp.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - auto::load_pgp
    - pgp_source_t::close
    - auto::key_count
    - assert_true
    - rnp::Key*::rawpkt
    - assert_int_equal
    - rnp::Key*::is_locked
    - rnp::Key*::expiration
    - rnp::Key*::pkt
    - assert_rnp_success
    - rnp_tests_get_key_by_id
    - pgp_decrypt_seckey_pgp
    - assert_null
    - init_file_src
    - rnp::Key*::is_secret
    - rnp::KeyStore::KeyStore
    - rnp::Key*::flags
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_load_v3_keyring_pgp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/load-pgp.cpp:104,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:107,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/load-pgp.cpp:107,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:108,1
    - Dst: auto::load_pgp
      Src: /src/rnp/src/tests/load-pgp.cpp:108,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/load-pgp.cpp:109,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:110,1
    - Dst: auto::key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:110,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:114,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:115,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:118,1
    - Dst: rnp::Key*::flags
      Src: /src/rnp/src/tests/load-pgp.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 122
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/load-pgp.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - auto::load_pgp
    - pgp_source_t::close
    - auto::key_count
    - assert_int_equal
    - assert_rnp_success
    - rnp_tests_get_key_by_id
    - init_file_src
    - rnp::KeyStore::KeyStore
    - rnp::Key*::flags
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_load_v4_keyring_pgp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/load-pgp.cpp:132,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:135,1
    - Dst: init_file_src
      Src: /src/rnp/src/tests/load-pgp.cpp:135,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:136,1
    - Dst: auto::load_pgp
      Src: /src/rnp/src/tests/load-pgp.cpp:136,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/load-pgp.cpp:137,1
    - Dst: is_primary
      Src: /src/rnp/src/tests/load-pgp.cpp:142,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:146,1
    - Dst: is_primary
      Src: /src/rnp/src/tests/load-pgp.cpp:152,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:154,1
    - Dst: subkey_count
      Src: /src/rnp/src/tests/load-pgp.cpp:154,1
    - Dst: is_subkey
      Src: /src/rnp/src/tests/load-pgp.cpp:155,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:161,1
    - Dst: auto::key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:161,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 4
    argNames:
    - path
    - primary_count
    - subkey_counts
    - global_ctx
    argTypes:
    - char*
    - unsigned
    - unsigned[]
    - rnp::SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 125
    functionDepth: 1
    functionLinenumber: 125
    functionLinenumberEnd: 165
    functionName: check_pgp_keyring_counts
    functionSourceFile: /src/rnp/src/tests/load-pgp.cpp
    functionUses: 0
    functionsReached:
    - auto::load_pgp
    - pgp_source_t::close
    - auto::key_count
    - assert_int_equal
    - assert_rnp_success
    - init_file_src
    - subkey_count
    - rnp::KeyStore::KeyStore
    - is_subkey
    - is_primary
    linkageType: ''
    returnType: void
    signature: "void check_pgp_keyring_counts(const char *          path,\n                         unsigned
      \             primary_count,\n                         const unsigned        subkey_counts[],\n
      \                        rnp::SecurityContext &global_ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: check_pgp_keyring_counts
      Src: /src/rnp/src/tests/load-pgp.cpp:177,1
    - Dst: check_pgp_keyring_counts
      Src: /src/rnp/src/tests/load-pgp.cpp:181,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 183
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/load-pgp.cpp
    functionUses: 0
    functionsReached:
    - check_pgp_keyring_counts
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_load_keyring_and_count_pgp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/load-pgp.cpp:194,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:195,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/load-pgp.cpp:195,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:199,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:200,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:202,1
    - Dst: rnp::Key*::sig_count
      Src: /src/rnp/src/tests/load-pgp.cpp:202,1
    - Dst: rnp::Key*::sig_count
      Src: /src/rnp/src/tests/load-pgp.cpp:204,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:205,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:208,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/load-pgp.cpp:208,1
    - Dst: pgp::pkt::Signature*::keyid
      Src: /src/rnp/src/tests/load-pgp.cpp:208,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:210,1
    - Dst: pgp::pkt::Signature*::creation
      Src: /src/rnp/src/tests/load-pgp.cpp:210,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:212,1
    - Dst: pgp::pkt::Signature*::expiration
      Src: /src/rnp/src/tests/load-pgp.cpp:212,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:215,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/load-pgp.cpp:215,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:219,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:220,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:222,1
    - Dst: rnp::Key*::sig_count
      Src: /src/rnp/src/tests/load-pgp.cpp:222,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:223,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:225,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/load-pgp.cpp:225,1
    - Dst: pgp::pkt::Signature*::keyid
      Src: /src/rnp/src/tests/load-pgp.cpp:225,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:227,1
    - Dst: pgp::pkt::Signature*::creation
      Src: /src/rnp/src/tests/load-pgp.cpp:227,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:228,1
    - Dst: pgp::pkt::Signature*::creation
      Src: /src/rnp/src/tests/load-pgp.cpp:228,1
    - Dst: rnp::Key*::creation
      Src: /src/rnp/src/tests/load-pgp.cpp:228,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:230,1
    - Dst: pgp::pkt::Signature*::expiration
      Src: /src/rnp/src/tests/load-pgp.cpp:230,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:232,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/load-pgp.cpp:232,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:236,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:237,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:239,1
    - Dst: rnp::Key*::sig_count
      Src: /src/rnp/src/tests/load-pgp.cpp:239,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:240,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:242,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/load-pgp.cpp:242,1
    - Dst: pgp::pkt::Signature*::keyid
      Src: /src/rnp/src/tests/load-pgp.cpp:242,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:244,1
    - Dst: pgp::pkt::Signature*::creation
      Src: /src/rnp/src/tests/load-pgp.cpp:244,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:245,1
    - Dst: pgp::pkt::Signature*::creation
      Src: /src/rnp/src/tests/load-pgp.cpp:245,1
    - Dst: rnp::Key*::creation
      Src: /src/rnp/src/tests/load-pgp.cpp:245,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:247,1
    - Dst: pgp::pkt::Signature*::expiration
      Src: /src/rnp/src/tests/load-pgp.cpp:247,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:249,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/load-pgp.cpp:249,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:253,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:254,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:256,1
    - Dst: rnp::Key*::sig_count
      Src: /src/rnp/src/tests/load-pgp.cpp:256,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:257,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:259,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/load-pgp.cpp:259,1
    - Dst: pgp::pkt::Signature*::keyid
      Src: /src/rnp/src/tests/load-pgp.cpp:259,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:261,1
    - Dst: pgp::pkt::Signature*::creation
      Src: /src/rnp/src/tests/load-pgp.cpp:261,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:262,1
    - Dst: pgp::pkt::Signature*::creation
      Src: /src/rnp/src/tests/load-pgp.cpp:262,1
    - Dst: rnp::Key*::creation
      Src: /src/rnp/src/tests/load-pgp.cpp:262,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:264,1
    - Dst: pgp::pkt::Signature*::expiration
      Src: /src/rnp/src/tests/load-pgp.cpp:264,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:266,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/load-pgp.cpp:266,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:270,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:271,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:273,1
    - Dst: rnp::Key*::sig_count
      Src: /src/rnp/src/tests/load-pgp.cpp:273,1
    - Dst: rnp::Key*::sig_count
      Src: /src/rnp/src/tests/load-pgp.cpp:275,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:276,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:280,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/load-pgp.cpp:280,1
    - Dst: pgp::pkt::Signature*::keyid
      Src: /src/rnp/src/tests/load-pgp.cpp:280,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:282,1
    - Dst: pgp::pkt::Signature*::creation
      Src: /src/rnp/src/tests/load-pgp.cpp:282,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:284,1
    - Dst: pgp::pkt::Signature*::expiration
      Src: /src/rnp/src/tests/load-pgp.cpp:284,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:287,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/load-pgp.cpp:287,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:291,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:292,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:294,1
    - Dst: rnp::Key*::sig_count
      Src: /src/rnp/src/tests/load-pgp.cpp:294,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:295,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:297,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/load-pgp.cpp:297,1
    - Dst: pgp::pkt::Signature*::keyid
      Src: /src/rnp/src/tests/load-pgp.cpp:297,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:299,1
    - Dst: pgp::pkt::Signature*::creation
      Src: /src/rnp/src/tests/load-pgp.cpp:299,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:300,1
    - Dst: pgp::pkt::Signature*::creation
      Src: /src/rnp/src/tests/load-pgp.cpp:300,1
    - Dst: rnp::Key*::creation
      Src: /src/rnp/src/tests/load-pgp.cpp:300,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:302,1
    - Dst: pgp::pkt::Signature*::expiration
      Src: /src/rnp/src/tests/load-pgp.cpp:302,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:304,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/load-pgp.cpp:304,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:308,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:309,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:311,1
    - Dst: rnp::Key*::sig_count
      Src: /src/rnp/src/tests/load-pgp.cpp:311,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:312,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:314,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/load-pgp.cpp:314,1
    - Dst: pgp::pkt::Signature*::keyid
      Src: /src/rnp/src/tests/load-pgp.cpp:314,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:316,1
    - Dst: pgp::pkt::Signature*::creation
      Src: /src/rnp/src/tests/load-pgp.cpp:316,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:317,1
    - Dst: pgp::pkt::Signature*::creation
      Src: /src/rnp/src/tests/load-pgp.cpp:317,1
    - Dst: rnp::Key*::creation
      Src: /src/rnp/src/tests/load-pgp.cpp:317,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:319,1
    - Dst: pgp::pkt::Signature*::expiration
      Src: /src/rnp/src/tests/load-pgp.cpp:319,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:321,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/load-pgp.cpp:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 75
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 188
    functionDepth: 3
    functionLinenumber: 188
    functionLinenumberEnd: 325
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/load-pgp.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - pgp::pkt::Signature*::creation
    - rnp::Key*::sig_count
    - assert_true
    - pgp::pkt::Signature*::keyid
    - assert_int_equal
    - auto::load
    - rnp::Key*::expiration
    - rnp_tests_get_key_by_id
    - rnp::Key*::creation
    - cmp_keyid
    - rnp::KeyStore::KeyStore
    - pgp::pkt::Signature*::expiration
    - rnp::Key*::get_sig
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_load_check_bitfields_and_times)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/load-pgp.cpp:337,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:338,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/load-pgp.cpp:338,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:342,1
    - Dst: rnp::hex_decode
      Src: /src/rnp/src/tests/load-pgp.cpp:342,1
    - Dst: pgp::KeyID::data
      Src: /src/rnp/src/tests/load-pgp.cpp:342,1
    - Dst: pgp::KeyID::size
      Src: /src/rnp/src/tests/load-pgp.cpp:342,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:343,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:344,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:346,1
    - Dst: rnp::Key*::version
      Src: /src/rnp/src/tests/load-pgp.cpp:346,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:348,1
    - Dst: rnp::Key*::sig_count
      Src: /src/rnp/src/tests/load-pgp.cpp:348,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:349,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:351,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:353,1
    - Dst: rnp::hex_decode
      Src: /src/rnp/src/tests/load-pgp.cpp:353,1
    - Dst: pgp::KeyID::data
      Src: /src/rnp/src/tests/load-pgp.cpp:353,1
    - Dst: pgp::KeyID::size
      Src: /src/rnp/src/tests/load-pgp.cpp:353,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:354,1
    - Dst: pgp::pkt::Signature*::keyid
      Src: /src/rnp/src/tests/load-pgp.cpp:354,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:356,1
    - Dst: pgp::pkt::Signature*::creation
      Src: /src/rnp/src/tests/load-pgp.cpp:356,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:357,1
    - Dst: pgp::pkt::Signature*::creation
      Src: /src/rnp/src/tests/load-pgp.cpp:357,1
    - Dst: rnp::Key*::creation
      Src: /src/rnp/src/tests/load-pgp.cpp:357,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:359,1
    - Dst: pgp::pkt::Signature*::expiration
      Src: /src/rnp/src/tests/load-pgp.cpp:359,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:361,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/tests/load-pgp.cpp:361,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:362,1
    - Dst: rnp::Key*::pkt
      Src: /src/rnp/src/tests/load-pgp.cpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 366
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/load-pgp.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - pgp::pkt::Signature*::creation
    - rnp::Key*::sig_count
    - assert_true
    - pgp::pkt::Signature*::keyid
    - rnp::hex_decode
    - assert_int_equal
    - rnp::Key*::pkt
    - auto::load
    - rnp::Key*::expiration
    - rnp_tests_get_key_by_id
    - rnp::Key*::version
    - rnp::Key*::creation
    - rnp::KeyStore::KeyStore
    - pgp::pkt::Signature*::expiration
    - rnp::Key*::get_sig
    - pgp::KeyID::data
    - pgp::KeyID::size
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_load_check_bitfields_and_times_v3)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/load-pgp.cpp:372,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:373,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/load-pgp.cpp:373,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:376,1
    - Dst: auto::key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:376,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:379,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:379,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:380,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/load-pgp.cpp:380,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:381,1
    - Dst: rnp::Key*::is_primary
      Src: /src/rnp/src/tests/load-pgp.cpp:381,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:382,1
    - Dst: rnp::Key*::is_secret
      Src: /src/rnp/src/tests/load-pgp.cpp:382,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:383,1
    - Dst: rnp::Key*::rawpkt_count
      Src: /src/rnp/src/tests/load-pgp.cpp:383,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:384,1
    - Dst: rnp::Key*::rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:384,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:385,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/load-pgp.cpp:385,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:385,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:386,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:386,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:386,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:387,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/load-pgp.cpp:387,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:387,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:388,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:388,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:388,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:390,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:390,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:391,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/load-pgp.cpp:391,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:392,1
    - Dst: rnp::Key*::is_subkey
      Src: /src/rnp/src/tests/load-pgp.cpp:392,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:393,1
    - Dst: rnp::Key*::is_secret
      Src: /src/rnp/src/tests/load-pgp.cpp:393,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:394,1
    - Dst: rnp::Key*::rawpkt_count
      Src: /src/rnp/src/tests/load-pgp.cpp:394,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:395,1
    - Dst: rnp::Key*::rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:395,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:396,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:396,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:396,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:398,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:398,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:399,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/load-pgp.cpp:399,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:400,1
    - Dst: rnp::Key*::is_subkey
      Src: /src/rnp/src/tests/load-pgp.cpp:400,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:401,1
    - Dst: rnp::Key*::is_secret
      Src: /src/rnp/src/tests/load-pgp.cpp:401,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:402,1
    - Dst: rnp::Key*::rawpkt_count
      Src: /src/rnp/src/tests/load-pgp.cpp:402,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:403,1
    - Dst: rnp::Key*::rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:403,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:404,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:404,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:404,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/load-pgp.cpp:407,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:407,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/load-pgp.cpp:408,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:408,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/load-pgp.cpp:409,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:409,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:412,1
    - Dst: rnp_tests_key_search
      Src: /src/rnp/src/tests/load-pgp.cpp:412,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:413,1
    - Dst: rnp_tests_key_search
      Src: /src/rnp/src/tests/load-pgp.cpp:413,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 33
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 370
    functionDepth: 2
    functionLinenumber: 370
    functionLinenumberEnd: 416
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/load-pgp.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp::Key*::valid
    - rnp::Key*::rawpkt_count
    - auto::key_count
    - assert_true
    - rnp::Key*::is_primary
    - rnp::Key*::rawpkt
    - assert_int_equal
    - rnp::Key*::get_sig
    - auto::load
    - assert_null
    - rnp_tests_get_key_by_id
    - rnp::Key*::get_uid
    - rnp::Key*::is_subkey
    - rnp_tests_key_search
    - rnp::Key*::is_secret
    - rnp::KeyStore::KeyStore
    - tag
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_load_armored_pub_sec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_file_src
      Src: /src/rnp/src/tests/load-pgp.cpp:422,1
    - Dst: process_pgp_key
      Src: /src/rnp/src/tests/load-pgp.cpp:422,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/load-pgp.cpp:423,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - key
    - fname
    argTypes:
    - pgp_transferable_key_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 418
    functionDepth: 1
    functionLinenumber: 418
    functionLinenumberEnd: 425
    functionName: load_transferable_key
    functionSourceFile: /src/rnp/src/tests/load-pgp.cpp
    functionUses: 0
    functionsReached:
    - process_pgp_key
    - init_file_src
    - pgp_source_t::close
    linkageType: ''
    returnType: bool
    signature: bool load_transferable_key(pgp_transferable_key_t *key, const char
      *fname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_file_src
      Src: /src/rnp/src/tests/load-pgp.cpp:431,1
    - Dst: process_pgp_subkey
      Src: /src/rnp/src/tests/load-pgp.cpp:431,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/load-pgp.cpp:432,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - key
    - fname
    argTypes:
    - pgp_transferable_subkey_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 434
    functionName: load_transferable_subkey
    functionSourceFile: /src/rnp/src/tests/load-pgp.cpp
    functionUses: 0
    functionsReached:
    - init_file_src
    - process_pgp_subkey
    - pgp_source_t::close
    linkageType: ''
    returnType: bool
    signature: bool load_transferable_subkey(pgp_transferable_subkey_t *key, const
      char *fname)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_file_src
      Src: /src/rnp/src/tests/load-pgp.cpp:440,1
    - Dst: rnp::KeyStore*::load_pgp
      Src: /src/rnp/src/tests/load-pgp.cpp:440,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/load-pgp.cpp:441,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - keystore
    - fname
    argTypes:
    - rnp::KeyStore*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 436
    functionDepth: 1
    functionLinenumber: 436
    functionLinenumberEnd: 443
    functionName: load_keystore
    functionSourceFile: /src/rnp/src/tests/load-pgp.cpp
    functionUses: 0
    functionsReached:
    - init_file_src
    - pgp_source_t::close
    - rnp::KeyStore*::load_pgp
    linkageType: ''
    returnType: bool
    signature: bool load_keystore(rnp::KeyStore *keystore, const char *fname)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key*::get_subkey_fp
      Src: /src/rnp/src/tests/load-pgp.cpp:448,1
    - Dst: rnp::Key*::fp
      Src: /src/rnp/src/tests/load-pgp.cpp:448,1
    - Dst: rnp::Key*::has_primary_fp
      Src: /src/rnp/src/tests/load-pgp.cpp:451,1
    - Dst: rnp::Key*::fp
      Src: /src/rnp/src/tests/load-pgp.cpp:454,1
    - Dst: rnp::Key*::primary_fp
      Src: /src/rnp/src/tests/load-pgp.cpp:454,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - key
    - subkey
    - index
    argTypes:
    - rnp::Key*
    - rnp::Key*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 455
    functionName: check_subkey_fp
    functionSourceFile: /src/rnp/src/tests/load-pgp.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key*::has_primary_fp
    - rnp::Key*::primary_fp
    - rnp::Key*::get_subkey_fp
    - rnp::Key*::fp
    linkageType: ''
    returnType: bool
    signature: bool check_subkey_fp(rnp::Key *key, rnp::Key *subkey, size_t index)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/load-pgp.cpp:466,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:472,1
    - Dst: load_transferable_key
      Src: /src/rnp/src/tests/load-pgp.cpp:472,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:473,1
    - Dst: auto::add_ts_key
      Src: /src/rnp/src/tests/load-pgp.cpp:473,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:474,1
    - Dst: auto::key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:474,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:475,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:475,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:476,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/load-pgp.cpp:476,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:477,1
    - Dst: rnp::Key*::rawpkt_count
      Src: /src/rnp/src/tests/load-pgp.cpp:477,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:478,1
    - Dst: rnp::Key*::rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:478,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:481,1
    - Dst: load_transferable_key
      Src: /src/rnp/src/tests/load-pgp.cpp:481,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:482,1
    - Dst: auto::add_ts_key
      Src: /src/rnp/src/tests/load-pgp.cpp:482,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:483,1
    - Dst: auto::key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:483,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:484,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:484,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:485,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/load-pgp.cpp:485,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:486,1
    - Dst: rnp::Key*::uid_count
      Src: /src/rnp/src/tests/load-pgp.cpp:486,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:487,1
    - Dst: rnp::Key*::rawpkt_count
      Src: /src/rnp/src/tests/load-pgp.cpp:487,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:488,1
    - Dst: rnp::Key*::rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:488,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:489,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/load-pgp.cpp:489,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:489,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/load-pgp.cpp:490,1
    - Dst: rnp_tests_key_search
      Src: /src/rnp/src/tests/load-pgp.cpp:490,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:491,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:491,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:494,1
    - Dst: load_transferable_key
      Src: /src/rnp/src/tests/load-pgp.cpp:494,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:495,1
    - Dst: auto::add_ts_key
      Src: /src/rnp/src/tests/load-pgp.cpp:495,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:496,1
    - Dst: auto::key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:496,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:497,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:497,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:498,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/load-pgp.cpp:498,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:499,1
    - Dst: rnp::Key*::uid_count
      Src: /src/rnp/src/tests/load-pgp.cpp:499,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:500,1
    - Dst: rnp::Key*::rawpkt_count
      Src: /src/rnp/src/tests/load-pgp.cpp:500,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:501,1
    - Dst: rnp::Key*::rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:501,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:502,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/load-pgp.cpp:502,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:502,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:503,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:503,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:503,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:504,1
    - Dst: rnp_tests_key_search
      Src: /src/rnp/src/tests/load-pgp.cpp:504,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:507,1
    - Dst: load_transferable_key
      Src: /src/rnp/src/tests/load-pgp.cpp:507,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:508,1
    - Dst: auto::add_ts_key
      Src: /src/rnp/src/tests/load-pgp.cpp:508,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:510,1
    - Dst: auto::add_ts_key
      Src: /src/rnp/src/tests/load-pgp.cpp:510,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:511,1
    - Dst: auto::key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:511,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:512,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:512,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:513,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/load-pgp.cpp:513,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:514,1
    - Dst: rnp::Key*::uid_count
      Src: /src/rnp/src/tests/load-pgp.cpp:514,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:515,1
    - Dst: rnp::Key*::rawpkt_count
      Src: /src/rnp/src/tests/load-pgp.cpp:515,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:516,1
    - Dst: rnp::Key*::rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:516,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:517,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/load-pgp.cpp:517,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:517,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:518,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:518,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:518,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:519,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/load-pgp.cpp:519,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:519,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:520,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:520,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:520,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:521,1
    - Dst: rnp_tests_key_search
      Src: /src/rnp/src/tests/load-pgp.cpp:521,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:522,1
    - Dst: rnp_tests_key_search
      Src: /src/rnp/src/tests/load-pgp.cpp:522,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:525,1
    - Dst: load_transferable_key
      Src: /src/rnp/src/tests/load-pgp.cpp:525,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:526,1
    - Dst: auto::add_ts_key
      Src: /src/rnp/src/tests/load-pgp.cpp:526,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:527,1
    - Dst: auto::key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:527,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:528,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:528,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:529,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:529,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:530,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/load-pgp.cpp:530,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:531,1
    - Dst: valid
      Src: /src/rnp/src/tests/load-pgp.cpp:531,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:532,1
    - Dst: rnp::Key*::uid_count
      Src: /src/rnp/src/tests/load-pgp.cpp:532,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:533,1
    - Dst: rnp::Key*::subkey_count
      Src: /src/rnp/src/tests/load-pgp.cpp:533,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:534,1
    - Dst: check_subkey_fp
      Src: /src/rnp/src/tests/load-pgp.cpp:534,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:535,1
    - Dst: rnp::Key*::rawpkt_count
      Src: /src/rnp/src/tests/load-pgp.cpp:535,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:536,1
    - Dst: rnp::Key*::rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:536,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:537,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/load-pgp.cpp:537,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:537,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:538,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:538,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:538,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:539,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/load-pgp.cpp:539,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:539,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:540,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:540,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:540,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:541,1
    - Dst: uid_count
      Src: /src/rnp/src/tests/load-pgp.cpp:541,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:542,1
    - Dst: rawpkt_count
      Src: /src/rnp/src/tests/load-pgp.cpp:542,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:543,1
    - Dst: rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:543,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:546,1
    - Dst: load_transferable_subkey
      Src: /src/rnp/src/tests/load-pgp.cpp:546,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:547,1
    - Dst: auto::add_ts_subkey
      Src: /src/rnp/src/tests/load-pgp.cpp:547,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:549,1
    - Dst: auto::add_ts_subkey
      Src: /src/rnp/src/tests/load-pgp.cpp:549,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:550,1
    - Dst: auto::key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:550,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:551,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:551,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:552,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:552,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:553,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/load-pgp.cpp:553,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:554,1
    - Dst: valid
      Src: /src/rnp/src/tests/load-pgp.cpp:554,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:555,1
    - Dst: rnp::Key*::uid_count
      Src: /src/rnp/src/tests/load-pgp.cpp:555,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:556,1
    - Dst: rnp::Key*::subkey_count
      Src: /src/rnp/src/tests/load-pgp.cpp:556,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:557,1
    - Dst: check_subkey_fp
      Src: /src/rnp/src/tests/load-pgp.cpp:557,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:558,1
    - Dst: rnp::Key*::rawpkt_count
      Src: /src/rnp/src/tests/load-pgp.cpp:558,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:559,1
    - Dst: rnp::Key*::rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:559,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:560,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/load-pgp.cpp:560,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:560,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:561,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:561,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:561,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:562,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/load-pgp.cpp:562,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:562,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:563,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:563,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:563,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:564,1
    - Dst: uid_count
      Src: /src/rnp/src/tests/load-pgp.cpp:564,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:565,1
    - Dst: rawpkt_count
      Src: /src/rnp/src/tests/load-pgp.cpp:565,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:566,1
    - Dst: rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:566,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:567,1
    - Dst: get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:567,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:567,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:570,1
    - Dst: load_transferable_key
      Src: /src/rnp/src/tests/load-pgp.cpp:570,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:571,1
    - Dst: auto::add_ts_key
      Src: /src/rnp/src/tests/load-pgp.cpp:571,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:573,1
    - Dst: auto::add_ts_key
      Src: /src/rnp/src/tests/load-pgp.cpp:573,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:574,1
    - Dst: auto::key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:574,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:575,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:575,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:576,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:576,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:577,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:577,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:578,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/load-pgp.cpp:578,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:579,1
    - Dst: valid
      Src: /src/rnp/src/tests/load-pgp.cpp:579,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:580,1
    - Dst: valid
      Src: /src/rnp/src/tests/load-pgp.cpp:580,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:581,1
    - Dst: rnp::Key*::uid_count
      Src: /src/rnp/src/tests/load-pgp.cpp:581,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:582,1
    - Dst: rnp::Key*::subkey_count
      Src: /src/rnp/src/tests/load-pgp.cpp:582,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:583,1
    - Dst: check_subkey_fp
      Src: /src/rnp/src/tests/load-pgp.cpp:583,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:584,1
    - Dst: check_subkey_fp
      Src: /src/rnp/src/tests/load-pgp.cpp:584,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:585,1
    - Dst: rnp::Key*::rawpkt_count
      Src: /src/rnp/src/tests/load-pgp.cpp:585,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:586,1
    - Dst: rnp::Key*::rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:586,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:587,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/load-pgp.cpp:587,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:587,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:588,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:588,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:588,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:589,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/load-pgp.cpp:589,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:589,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:590,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:590,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:590,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:591,1
    - Dst: uid_count
      Src: /src/rnp/src/tests/load-pgp.cpp:591,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:592,1
    - Dst: rawpkt_count
      Src: /src/rnp/src/tests/load-pgp.cpp:592,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:593,1
    - Dst: rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:593,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:594,1
    - Dst: get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:594,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:594,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:595,1
    - Dst: uid_count
      Src: /src/rnp/src/tests/load-pgp.cpp:595,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:596,1
    - Dst: rawpkt_count
      Src: /src/rnp/src/tests/load-pgp.cpp:596,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:597,1
    - Dst: rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:597,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:598,1
    - Dst: get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:598,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:598,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:601,1
    - Dst: load_transferable_key
      Src: /src/rnp/src/tests/load-pgp.cpp:601,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:602,1
    - Dst: auto::add_ts_key
      Src: /src/rnp/src/tests/load-pgp.cpp:602,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:604,1
    - Dst: auto::add_ts_key
      Src: /src/rnp/src/tests/load-pgp.cpp:604,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:605,1
    - Dst: auto::key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:605,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:606,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:606,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:607,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:607,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:608,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:608,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:609,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/load-pgp.cpp:609,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:610,1
    - Dst: valid
      Src: /src/rnp/src/tests/load-pgp.cpp:610,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:611,1
    - Dst: valid
      Src: /src/rnp/src/tests/load-pgp.cpp:611,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:612,1
    - Dst: rnp::Key*::uid_count
      Src: /src/rnp/src/tests/load-pgp.cpp:612,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:613,1
    - Dst: rnp::Key*::subkey_count
      Src: /src/rnp/src/tests/load-pgp.cpp:613,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:614,1
    - Dst: check_subkey_fp
      Src: /src/rnp/src/tests/load-pgp.cpp:614,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:615,1
    - Dst: check_subkey_fp
      Src: /src/rnp/src/tests/load-pgp.cpp:615,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:616,1
    - Dst: rnp::Key*::rawpkt_count
      Src: /src/rnp/src/tests/load-pgp.cpp:616,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:617,1
    - Dst: rnp::Key*::rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:617,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:618,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/load-pgp.cpp:618,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:618,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:619,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:619,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:619,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:620,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/load-pgp.cpp:620,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:620,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:621,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:621,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:621,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:622,1
    - Dst: uid_count
      Src: /src/rnp/src/tests/load-pgp.cpp:622,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:623,1
    - Dst: rawpkt_count
      Src: /src/rnp/src/tests/load-pgp.cpp:623,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:624,1
    - Dst: rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:624,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:625,1
    - Dst: get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:625,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:625,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:626,1
    - Dst: uid_count
      Src: /src/rnp/src/tests/load-pgp.cpp:626,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:627,1
    - Dst: rawpkt_count
      Src: /src/rnp/src/tests/load-pgp.cpp:627,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:628,1
    - Dst: rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:628,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:629,1
    - Dst: get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:629,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:629,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:631,1
    - Dst: rnp::Key*::unlock
      Src: /src/rnp/src/tests/load-pgp.cpp:631,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:632,1
    - Dst: unlock
      Src: /src/rnp/src/tests/load-pgp.cpp:632,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:633,1
    - Dst: unlock
      Src: /src/rnp/src/tests/load-pgp.cpp:633,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:636,1
    - Dst: load_transferable_key
      Src: /src/rnp/src/tests/load-pgp.cpp:636,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:637,1
    - Dst: auto::add_ts_key
      Src: /src/rnp/src/tests/load-pgp.cpp:637,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:638,1
    - Dst: load_transferable_key
      Src: /src/rnp/src/tests/load-pgp.cpp:638,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:639,1
    - Dst: auto::add_ts_key
      Src: /src/rnp/src/tests/load-pgp.cpp:639,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:640,1
    - Dst: auto::key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:640,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:641,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:641,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:642,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:642,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:643,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:643,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:644,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/load-pgp.cpp:644,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:645,1
    - Dst: valid
      Src: /src/rnp/src/tests/load-pgp.cpp:645,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:646,1
    - Dst: valid
      Src: /src/rnp/src/tests/load-pgp.cpp:646,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:647,1
    - Dst: rnp::Key*::uid_count
      Src: /src/rnp/src/tests/load-pgp.cpp:647,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:648,1
    - Dst: rnp::Key*::subkey_count
      Src: /src/rnp/src/tests/load-pgp.cpp:648,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:649,1
    - Dst: check_subkey_fp
      Src: /src/rnp/src/tests/load-pgp.cpp:649,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:650,1
    - Dst: check_subkey_fp
      Src: /src/rnp/src/tests/load-pgp.cpp:650,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:651,1
    - Dst: rnp::Key*::rawpkt_count
      Src: /src/rnp/src/tests/load-pgp.cpp:651,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:652,1
    - Dst: rnp::Key*::rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:652,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:653,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/load-pgp.cpp:653,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:653,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:654,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:654,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:654,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:655,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/load-pgp.cpp:655,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:655,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:656,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:656,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:656,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:657,1
    - Dst: uid_count
      Src: /src/rnp/src/tests/load-pgp.cpp:657,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:658,1
    - Dst: rawpkt_count
      Src: /src/rnp/src/tests/load-pgp.cpp:658,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:659,1
    - Dst: rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:659,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:660,1
    - Dst: get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:660,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:660,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:661,1
    - Dst: uid_count
      Src: /src/rnp/src/tests/load-pgp.cpp:661,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:662,1
    - Dst: rawpkt_count
      Src: /src/rnp/src/tests/load-pgp.cpp:662,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:663,1
    - Dst: rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:663,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:664,1
    - Dst: get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:664,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:664,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:665,1
    - Dst: rnp_tests_key_search
      Src: /src/rnp/src/tests/load-pgp.cpp:665,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:666,1
    - Dst: rnp_tests_key_search
      Src: /src/rnp/src/tests/load-pgp.cpp:666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 178
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 669
      start: 457
    functionDepth: 2
    functionLinenumber: 457
    functionLinenumberEnd: 669
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/load-pgp.cpp
    functionUses: 0
    functionsReached:
    - load_transferable_key
    - assert_non_null
    - auto::key_count
    - rnp_tests_key_search
    - valid
    - check_subkey_fp
    - uid_count
    - rnp::Key*::get_sig
    - get_sig
    - assert_true
    - assert_null
    - rawpkt
    - rnp::Key*::uid_count
    - unlock
    - tag
    - auto::add_ts_subkey
    - rnp::Key*::rawpkt
    - assert_int_equal
    - load_transferable_subkey
    - rnp::Key*::get_uid
    - rnp::Key*::unlock
    - rnp::KeyStore::KeyStore
    - rnp::Key*::valid
    - rnp::Key*::rawpkt_count
    - rawpkt_count
    - auto::add_ts_key
    - rnp_tests_get_key_by_id
    - assert_false
    - rnp::Key*::subkey_count
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_load_merge)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/load-pgp.cpp:673,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:674,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/load-pgp.cpp:674,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/load-pgp.cpp:675,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:682,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:682,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:683,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:683,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:684,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:684,1
    - Dst: rnpffi::Key::Key
      Src: /src/rnp/src/tests/load-pgp.cpp:687,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:688,1
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/tests/load-pgp.cpp:688,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:689,1
    - Dst: rnp::Key::subkey_count
      Src: /src/rnp/src/tests/load-pgp.cpp:689,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:690,1
    - Dst: rnp::Key::get_subkey_fp
      Src: /src/rnp/src/tests/load-pgp.cpp:690,1
    - Dst: fp
      Src: /src/rnp/src/tests/load-pgp.cpp:690,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:691,1
    - Dst: rnp::Key::get_subkey_fp
      Src: /src/rnp/src/tests/load-pgp.cpp:691,1
    - Dst: fp
      Src: /src/rnp/src/tests/load-pgp.cpp:691,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:692,1
    - Dst: rnp::Key::grip
      Src: /src/rnp/src/tests/load-pgp.cpp:692,1
    - Dst: rnp::Key*::grip
      Src: /src/rnp/src/tests/load-pgp.cpp:692,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:693,1
    - Dst: rnp::Key::rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:693,1
    - Dst: rnpffi::Key::Key
      Src: /src/rnp/src/tests/load-pgp.cpp:696,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:697,1
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/tests/load-pgp.cpp:697,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:698,1
    - Dst: rnp::Key::subkey_count
      Src: /src/rnp/src/tests/load-pgp.cpp:698,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:699,1
    - Dst: check_subkey_fp
      Src: /src/rnp/src/tests/load-pgp.cpp:699,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:700,1
    - Dst: check_subkey_fp
      Src: /src/rnp/src/tests/load-pgp.cpp:700,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:701,1
    - Dst: rnp::Key::grip
      Src: /src/rnp/src/tests/load-pgp.cpp:701,1
    - Dst: rnp::Key*::grip
      Src: /src/rnp/src/tests/load-pgp.cpp:701,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:702,1
    - Dst: rnp::Key::rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:702,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:703,1
    - Dst: rnp::Key::pkt
      Src: /src/rnp/src/tests/load-pgp.cpp:703,1
    - Dst: empty
      Src: /src/rnp/src/tests/load-pgp.cpp:703,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:704,1
    - Dst: rnp::Key::pkt
      Src: /src/rnp/src/tests/load-pgp.cpp:704,1
    - Dst: secret
      Src: /src/rnp/src/tests/load-pgp.cpp:704,1
    - Dst: auto::add_key
      Src: /src/rnp/src/tests/load-pgp.cpp:705,1
    - Dst: rnpffi::Key::Key
      Src: /src/rnp/src/tests/load-pgp.cpp:707,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:708,1
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/tests/load-pgp.cpp:708,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:709,1
    - Dst: rnp::Key::subkey_count
      Src: /src/rnp/src/tests/load-pgp.cpp:709,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:710,1
    - Dst: check_subkey_fp
      Src: /src/rnp/src/tests/load-pgp.cpp:710,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:711,1
    - Dst: rnp::Key::grip
      Src: /src/rnp/src/tests/load-pgp.cpp:711,1
    - Dst: grip
      Src: /src/rnp/src/tests/load-pgp.cpp:711,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:712,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/load-pgp.cpp:712,1
    - Dst: rnp::Key::keyid
      Src: /src/rnp/src/tests/load-pgp.cpp:712,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:713,1
    - Dst: rnp::Key::rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:713,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:714,1
    - Dst: rnp::Key::pkt
      Src: /src/rnp/src/tests/load-pgp.cpp:714,1
    - Dst: empty
      Src: /src/rnp/src/tests/load-pgp.cpp:714,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:715,1
    - Dst: rnp::Key::pkt
      Src: /src/rnp/src/tests/load-pgp.cpp:715,1
    - Dst: secret
      Src: /src/rnp/src/tests/load-pgp.cpp:715,1
    - Dst: auto::add_key
      Src: /src/rnp/src/tests/load-pgp.cpp:716,1
    - Dst: rnpffi::Key::Key
      Src: /src/rnp/src/tests/load-pgp.cpp:718,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:719,1
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/tests/load-pgp.cpp:719,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:720,1
    - Dst: rnp::Key::subkey_count
      Src: /src/rnp/src/tests/load-pgp.cpp:720,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:721,1
    - Dst: check_subkey_fp
      Src: /src/rnp/src/tests/load-pgp.cpp:721,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:722,1
    - Dst: rnp::Key::grip
      Src: /src/rnp/src/tests/load-pgp.cpp:722,1
    - Dst: grip
      Src: /src/rnp/src/tests/load-pgp.cpp:722,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:723,1
    - Dst: cmp_keyid
      Src: /src/rnp/src/tests/load-pgp.cpp:723,1
    - Dst: rnp::Key::keyid
      Src: /src/rnp/src/tests/load-pgp.cpp:723,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:724,1
    - Dst: rnp::Key::rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:724,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:725,1
    - Dst: rnp::Key::pkt
      Src: /src/rnp/src/tests/load-pgp.cpp:725,1
    - Dst: empty
      Src: /src/rnp/src/tests/load-pgp.cpp:725,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:726,1
    - Dst: rnp::Key::pkt
      Src: /src/rnp/src/tests/load-pgp.cpp:726,1
    - Dst: secret
      Src: /src/rnp/src/tests/load-pgp.cpp:726,1
    - Dst: auto::add_key
      Src: /src/rnp/src/tests/load-pgp.cpp:727,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:729,1
    - Dst: auto::write
      Src: /src/rnp/src/tests/load-pgp.cpp:729,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/load-pgp.cpp:732,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:733,1
    - Dst: auto::load
      Src: /src/rnp/src/tests/load-pgp.cpp:733,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:734,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:734,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:735,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:735,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:736,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:736,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 50
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 740
      start: 671
    functionDepth: 3
    functionLinenumber: 671
    functionLinenumberEnd: 740
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/load-pgp.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp::Key::get_subkey_fp
    - rnp::Key::grip
    - auto::add_key
    - rnp::Key::rawpkt
    - check_subkey_fp
    - empty
    - assert_true
    - rnp::Key::pkt
    - fp
    - grip
    - auto::write
    - rnp::Key::keyid
    - rnp::Key::is_secret
    - rnpffi::Key::Key
    - secret
    - rnp::Key::subkey_count
    - assert_int_equal
    - cmp_keyid
    - rnp::KeyStore::KeyStore
    - auto::load
    - rnp_tests_get_key_by_id
    - assert_false
    - rnp::Key*::grip
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_load_public_from_secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:749,1
    - Dst: RNP_MKDIR
      Src: /src/rnp/src/tests/load-pgp.cpp:749,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:750,1
    - Dst: setup_cli_rnp_common
      Src: /src/rnp/src/tests/load-pgp.cpp:750,1
    - Dst: cli_rnp_t::cfg
      Src: /src/rnp/src/tests/load-pgp.cpp:753,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/load-pgp.cpp:754,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:755,1
    - Dst: cli_rnp_add_key
      Src: /src/rnp/src/tests/load-pgp.cpp:755,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:756,1
    - Dst: cli_rnp_save_keyrings
      Src: /src/rnp/src/tests/load-pgp.cpp:756,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:758,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:758,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:759,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:760,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:760,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:761,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:763,1
    - Dst: load_transferable_key
      Src: /src/rnp/src/tests/load-pgp.cpp:763,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:764,1
    - Dst: pgp_transferable_key_t::subkeys::empty
      Src: /src/rnp/src/tests/load-pgp.cpp:764,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:765,1
    - Dst: pgp_transferable_key_t::signatures::empty
      Src: /src/rnp/src/tests/load-pgp.cpp:765,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:766,1
    - Dst: pgp_transferable_key_t::userids::empty
      Src: /src/rnp/src/tests/load-pgp.cpp:766,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:767,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/load-pgp.cpp:770,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:771,1
    - Dst: cli_rnp_add_key
      Src: /src/rnp/src/tests/load-pgp.cpp:771,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:772,1
    - Dst: cli_rnp_save_keyrings
      Src: /src/rnp/src/tests/load-pgp.cpp:772,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:773,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:773,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:774,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:775,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:775,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:776,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:778,1
    - Dst: load_transferable_key
      Src: /src/rnp/src/tests/load-pgp.cpp:778,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:779,1
    - Dst: pgp_transferable_key_t::subkeys::empty
      Src: /src/rnp/src/tests/load-pgp.cpp:779,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:780,1
    - Dst: pgp_transferable_key_t::signatures::empty
      Src: /src/rnp/src/tests/load-pgp.cpp:780,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:781,1
    - Dst: pgp_transferable_key_t::userids::size
      Src: /src/rnp/src/tests/load-pgp.cpp:781,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:782,1
    - Dst: pgp_transferable_key_t::userids::front
      Src: /src/rnp/src/tests/load-pgp.cpp:782,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:783,1
    - Dst: pgp_transferable_userid_t*::signatures::empty
      Src: /src/rnp/src/tests/load-pgp.cpp:783,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:784,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/load-pgp.cpp:784,1
    - Dst: pgp_transferable_userid_t*::uid::uid::data
      Src: /src/rnp/src/tests/load-pgp.cpp:784,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:785,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:786,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/load-pgp.cpp:789,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:790,1
    - Dst: cli_rnp_add_key
      Src: /src/rnp/src/tests/load-pgp.cpp:790,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:791,1
    - Dst: cli_rnp_save_keyrings
      Src: /src/rnp/src/tests/load-pgp.cpp:791,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:792,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:792,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:793,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:794,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:794,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:795,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:797,1
    - Dst: load_transferable_key
      Src: /src/rnp/src/tests/load-pgp.cpp:797,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:798,1
    - Dst: pgp_transferable_key_t::subkeys::empty
      Src: /src/rnp/src/tests/load-pgp.cpp:798,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:799,1
    - Dst: pgp_transferable_key_t::signatures::empty
      Src: /src/rnp/src/tests/load-pgp.cpp:799,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:800,1
    - Dst: pgp_transferable_key_t::userids::size
      Src: /src/rnp/src/tests/load-pgp.cpp:800,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:801,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:802,1
    - Dst: pgp_transferable_key_t::userids::front
      Src: /src/rnp/src/tests/load-pgp.cpp:802,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:803,1
    - Dst: pgp_transferable_userid_t*::signatures::size
      Src: /src/rnp/src/tests/load-pgp.cpp:803,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:804,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/load-pgp.cpp:804,1
    - Dst: pgp_transferable_userid_t*::uid::uid::data
      Src: /src/rnp/src/tests/load-pgp.cpp:804,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:805,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/load-pgp.cpp:808,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:809,1
    - Dst: cli_rnp_add_key
      Src: /src/rnp/src/tests/load-pgp.cpp:809,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:810,1
    - Dst: cli_rnp_save_keyrings
      Src: /src/rnp/src/tests/load-pgp.cpp:810,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:811,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:811,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:812,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:813,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:813,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:814,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:816,1
    - Dst: load_transferable_key
      Src: /src/rnp/src/tests/load-pgp.cpp:816,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:817,1
    - Dst: pgp_transferable_key_t::subkeys::size
      Src: /src/rnp/src/tests/load-pgp.cpp:817,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:818,1
    - Dst: pgp_transferable_key_t::signatures::empty
      Src: /src/rnp/src/tests/load-pgp.cpp:818,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:819,1
    - Dst: pgp_transferable_key_t::userids::size
      Src: /src/rnp/src/tests/load-pgp.cpp:819,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:820,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:821,1
    - Dst: pgp_transferable_key_t::userids::front
      Src: /src/rnp/src/tests/load-pgp.cpp:821,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:822,1
    - Dst: pgp_transferable_userid_t*::signatures::size
      Src: /src/rnp/src/tests/load-pgp.cpp:822,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:823,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/load-pgp.cpp:823,1
    - Dst: pgp_transferable_userid_t*::uid::uid::data
      Src: /src/rnp/src/tests/load-pgp.cpp:823,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:824,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:825,1
    - Dst: pgp_transferable_key_t::subkeys::front
      Src: /src/rnp/src/tests/load-pgp.cpp:825,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:826,1
    - Dst: pgp_transferable_subkey_t*::signatures::size
      Src: /src/rnp/src/tests/load-pgp.cpp:826,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:827,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/load-pgp.cpp:830,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:831,1
    - Dst: cli_rnp_add_key
      Src: /src/rnp/src/tests/load-pgp.cpp:831,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:832,1
    - Dst: cli_rnp_save_keyrings
      Src: /src/rnp/src/tests/load-pgp.cpp:832,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:833,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:833,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:834,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:835,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:835,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:836,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:838,1
    - Dst: load_transferable_key
      Src: /src/rnp/src/tests/load-pgp.cpp:838,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:839,1
    - Dst: pgp_transferable_key_t::subkeys::size
      Src: /src/rnp/src/tests/load-pgp.cpp:839,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:840,1
    - Dst: pgp_transferable_key_t::signatures::empty
      Src: /src/rnp/src/tests/load-pgp.cpp:840,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:841,1
    - Dst: pgp_transferable_key_t::userids::size
      Src: /src/rnp/src/tests/load-pgp.cpp:841,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:842,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:843,1
    - Dst: pgp_transferable_key_t::userids::front
      Src: /src/rnp/src/tests/load-pgp.cpp:843,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:844,1
    - Dst: pgp_transferable_userid_t*::signatures::size
      Src: /src/rnp/src/tests/load-pgp.cpp:844,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:845,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/load-pgp.cpp:845,1
    - Dst: pgp_transferable_userid_t*::uid::uid::data
      Src: /src/rnp/src/tests/load-pgp.cpp:845,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:846,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:847,1
    - Dst: pgp_transferable_key_t::subkeys::front
      Src: /src/rnp/src/tests/load-pgp.cpp:847,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:848,1
    - Dst: pgp_transferable_subkey_t*::signatures::size
      Src: /src/rnp/src/tests/load-pgp.cpp:848,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:849,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:851,1
    - Dst: load_transferable_key
      Src: /src/rnp/src/tests/load-pgp.cpp:851,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:852,1
    - Dst: pgp_transferable_key_t::subkeys::size
      Src: /src/rnp/src/tests/load-pgp.cpp:852,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:853,1
    - Dst: pgp_transferable_key_t::signatures::empty
      Src: /src/rnp/src/tests/load-pgp.cpp:853,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:854,1
    - Dst: pgp_transferable_key_t::userids::size
      Src: /src/rnp/src/tests/load-pgp.cpp:854,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:855,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:856,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/load-pgp.cpp:856,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:857,1
    - Dst: pgp_transferable_key_t::userids::front
      Src: /src/rnp/src/tests/load-pgp.cpp:857,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:858,1
    - Dst: pgp_transferable_userid_t*::signatures::size
      Src: /src/rnp/src/tests/load-pgp.cpp:858,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:859,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/load-pgp.cpp:859,1
    - Dst: pgp_transferable_userid_t*::uid::uid::data
      Src: /src/rnp/src/tests/load-pgp.cpp:859,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:860,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:861,1
    - Dst: pgp_transferable_key_t::subkeys::front
      Src: /src/rnp/src/tests/load-pgp.cpp:861,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:862,1
    - Dst: pgp_transferable_subkey_t*::signatures::size
      Src: /src/rnp/src/tests/load-pgp.cpp:862,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:863,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:864,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/load-pgp.cpp:864,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/tests/load-pgp.cpp:867,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:868,1
    - Dst: cli_rnp_add_key
      Src: /src/rnp/src/tests/load-pgp.cpp:868,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:869,1
    - Dst: cli_rnp_save_keyrings
      Src: /src/rnp/src/tests/load-pgp.cpp:869,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:870,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:870,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:871,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:872,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:872,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:873,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:875,1
    - Dst: load_transferable_key
      Src: /src/rnp/src/tests/load-pgp.cpp:875,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:876,1
    - Dst: pgp_transferable_key_t::subkeys::size
      Src: /src/rnp/src/tests/load-pgp.cpp:876,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:877,1
    - Dst: pgp_transferable_key_t::signatures::empty
      Src: /src/rnp/src/tests/load-pgp.cpp:877,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:878,1
    - Dst: pgp_transferable_key_t::userids::size
      Src: /src/rnp/src/tests/load-pgp.cpp:878,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:879,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:880,1
    - Dst: pgp_transferable_key_t::userids::front
      Src: /src/rnp/src/tests/load-pgp.cpp:880,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:881,1
    - Dst: pgp_transferable_userid_t*::signatures::size
      Src: /src/rnp/src/tests/load-pgp.cpp:881,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:882,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/load-pgp.cpp:882,1
    - Dst: pgp_transferable_userid_t*::uid::uid::data
      Src: /src/rnp/src/tests/load-pgp.cpp:882,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:883,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:884,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:885,1
    - Dst: pgp_transferable_userid_t*::signatures::size
      Src: /src/rnp/src/tests/load-pgp.cpp:885,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:886,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/load-pgp.cpp:886,1
    - Dst: pgp_transferable_userid_t*::uid::uid::data
      Src: /src/rnp/src/tests/load-pgp.cpp:886,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:887,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:888,1
    - Dst: pgp_transferable_key_t::subkeys::front
      Src: /src/rnp/src/tests/load-pgp.cpp:888,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:889,1
    - Dst: pgp_transferable_subkey_t*::signatures::size
      Src: /src/rnp/src/tests/load-pgp.cpp:889,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:890,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:891,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:892,1
    - Dst: pgp_transferable_subkey_t*::signatures::size
      Src: /src/rnp/src/tests/load-pgp.cpp:892,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:893,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:895,1
    - Dst: load_transferable_key
      Src: /src/rnp/src/tests/load-pgp.cpp:895,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:896,1
    - Dst: pgp_transferable_key_t::subkeys::size
      Src: /src/rnp/src/tests/load-pgp.cpp:896,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:897,1
    - Dst: pgp_transferable_key_t::signatures::empty
      Src: /src/rnp/src/tests/load-pgp.cpp:897,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:898,1
    - Dst: pgp_transferable_key_t::userids::size
      Src: /src/rnp/src/tests/load-pgp.cpp:898,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:899,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:900,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/load-pgp.cpp:900,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:901,1
    - Dst: pgp_transferable_key_t::userids::front
      Src: /src/rnp/src/tests/load-pgp.cpp:901,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:902,1
    - Dst: pgp_transferable_userid_t*::signatures::size
      Src: /src/rnp/src/tests/load-pgp.cpp:902,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:903,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/load-pgp.cpp:903,1
    - Dst: pgp_transferable_userid_t*::uid::uid::data
      Src: /src/rnp/src/tests/load-pgp.cpp:903,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:904,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:905,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:906,1
    - Dst: pgp_transferable_userid_t*::signatures::size
      Src: /src/rnp/src/tests/load-pgp.cpp:906,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:907,1
    - Dst: memcmp
      Src: /src/rnp/src/tests/load-pgp.cpp:907,1
    - Dst: pgp_transferable_userid_t*::uid::uid::data
      Src: /src/rnp/src/tests/load-pgp.cpp:907,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:908,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:909,1
    - Dst: pgp_transferable_key_t::subkeys::front
      Src: /src/rnp/src/tests/load-pgp.cpp:909,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:910,1
    - Dst: pgp_transferable_subkey_t*::signatures::size
      Src: /src/rnp/src/tests/load-pgp.cpp:910,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:911,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:912,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/load-pgp.cpp:912,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:913,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:914,1
    - Dst: pgp_transferable_subkey_t*::signatures::size
      Src: /src/rnp/src/tests/load-pgp.cpp:914,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:915,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/load-pgp.cpp:916,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/load-pgp.cpp:916,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/load-pgp.cpp:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 148
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 742
    functionDepth: 5
    functionLinenumber: 742
    functionLinenumberEnd: 919
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/load-pgp.cpp
    functionUses: 0
    functionsReached:
    - load_transferable_key
    - assert_non_null
    - pgp_transferable_key_t::signatures::empty
    - pgp_transferable_key_t::userids::empty
    - pgp_transferable_userid_t*::signatures::empty
    - cli_rnp_add_key
    - assert_true
    - memcmp
    - assert_rnp_success
    - pgp_transferable_key_t::userids::size
    - rnp_get_secret_key_count
    - rnp_cfg::set_str
    - pgp_transferable_userid_t*::signatures::size
    - assert_int_equal
    - RNP_MKDIR
    - cli_rnp_t::cfg
    - pgp_transferable_subkey_t*::signatures::size
    - pgp_transferable_key_t::subkeys::front
    - pgp_transferable_key_t::subkeys::empty
    - rnp_get_public_key_count
    - cli_rnp_save_keyrings
    - pgp_transferable_userid_t*::uid::uid::data
    - pgp_transferable_key_t::subkeys::size
    - setup_cli_rnp_common
    - cli_rnp_t::end
    - assert_false
    - pgp_transferable_key_t::userids::front
    - decrypt_secret_key
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_key_import)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/tests/load-pgp.cpp:923,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:930,1
    - Dst: load_keystore
      Src: /src/rnp/src/tests/load-pgp.cpp:930,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:931,1
    - Dst: auto::key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:931,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:932,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:932,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:933,1
    - Dst: valid
      Src: /src/rnp/src/tests/load-pgp.cpp:933,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:934,1
    - Dst: rawpkt_count
      Src: /src/rnp/src/tests/load-pgp.cpp:934,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:935,1
    - Dst: rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:935,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:936,1
    - Dst: get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:936,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:936,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:937,1
    - Dst: has_primary_fp
      Src: /src/rnp/src/tests/load-pgp.cpp:937,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:940,1
    - Dst: load_keystore
      Src: /src/rnp/src/tests/load-pgp.cpp:940,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:941,1
    - Dst: auto::key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:941,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:942,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:942,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:943,1
    - Dst: valid
      Src: /src/rnp/src/tests/load-pgp.cpp:943,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:944,1
    - Dst: rawpkt_count
      Src: /src/rnp/src/tests/load-pgp.cpp:944,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:945,1
    - Dst: rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:945,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:946,1
    - Dst: has_primary_fp
      Src: /src/rnp/src/tests/load-pgp.cpp:946,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:947,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:950,1
    - Dst: load_keystore
      Src: /src/rnp/src/tests/load-pgp.cpp:950,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:951,1
    - Dst: auto::key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:951,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/load-pgp.cpp:952,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:952,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:953,1
    - Dst: rnp::Key*::valid
      Src: /src/rnp/src/tests/load-pgp.cpp:953,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:954,1
    - Dst: rnp::Key*::rawpkt_count
      Src: /src/rnp/src/tests/load-pgp.cpp:954,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:955,1
    - Dst: rnp::Key*::rawpkt
      Src: /src/rnp/src/tests/load-pgp.cpp:955,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:956,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/tests/load-pgp.cpp:956,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:956,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:957,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/tests/load-pgp.cpp:957,1
    - Dst: tag
      Src: /src/rnp/src/tests/load-pgp.cpp:957,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:958,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:958,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:959,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:959,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:960,1
    - Dst: has_primary_fp
      Src: /src/rnp/src/tests/load-pgp.cpp:960,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:961,1
    - Dst: check_subkey_fp
      Src: /src/rnp/src/tests/load-pgp.cpp:961,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:962,1
    - Dst: rnp::Key*::subkey_count
      Src: /src/rnp/src/tests/load-pgp.cpp:962,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:963,1
    - Dst: valid
      Src: /src/rnp/src/tests/load-pgp.cpp:963,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/load-pgp.cpp:964,1
    - Dst: valid
      Src: /src/rnp/src/tests/load-pgp.cpp:964,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:967,1
    - Dst: load_keystore
      Src: /src/rnp/src/tests/load-pgp.cpp:967,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:968,1
    - Dst: auto::key_count
      Src: /src/rnp/src/tests/load-pgp.cpp:968,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:969,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:969,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:970,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:970,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:971,1
    - Dst: rnp_tests_get_key_by_id
      Src: /src/rnp/src/tests/load-pgp.cpp:971,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:972,1
    - Dst: has_primary_fp
      Src: /src/rnp/src/tests/load-pgp.cpp:972,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:973,1
    - Dst: check_subkey_fp
      Src: /src/rnp/src/tests/load-pgp.cpp:973,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/load-pgp.cpp:974,1
    - Dst: rnp::Key*::subkey_count
      Src: /src/rnp/src/tests/load-pgp.cpp:974,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/load-pgp.cpp:975,1
    - Dst: valid
      Src: /src/rnp/src/tests/load-pgp.cpp:975,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 921
    functionDepth: 2
    functionLinenumber: 921
    functionLinenumberEnd: 978
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/load-pgp.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - auto::key_count
    - valid
    - check_subkey_fp
    - get_sig
    - rnp::Key*::get_sig
    - load_keystore
    - assert_true
    - rawpkt
    - tag
    - rnp::Key*::rawpkt
    - assert_int_equal
    - rnp::Key*::get_uid
    - rnp::KeyStore::KeyStore
    - has_primary_fp
    - rnp::Key*::valid
    - rnp::Key*::rawpkt_count
    - rawpkt_count
    - rnp_tests_get_key_by_id
    - assert_false
    - rnp::Key*::subkey_count
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_load_subkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/rnp/src/tests/exportkey.cpp:40,1
    - Dst: setup_cli_rnp_common
      Src: /src/rnp/src/tests/exportkey.cpp:40,1
    - Dst: cli_set_default_rsa_key_desc
      Src: /src/rnp/src/tests/exportkey.cpp:42,1
    - Dst: cli_rnp_t::cfg
      Src: /src/rnp/src/tests/exportkey.cpp:42,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/exportkey.cpp:43,1
    - Dst: cli_rnp_generate_key
      Src: /src/rnp/src/tests/exportkey.cpp:43,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/exportkey.cpp:46,1
    - Dst: cli_rnp_t::load_keyrings
      Src: /src/rnp/src/tests/exportkey.cpp:46,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/exportkey.cpp:48,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/exportkey.cpp:48,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/exportkey.cpp:49,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/exportkey.cpp:50,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/exportkey.cpp:50,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/exportkey.cpp:51,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/exportkey.cpp:54,1
    - Dst: cli_rnp_t::keys_matching
      Src: /src/rnp/src/tests/exportkey.cpp:54,1
    - Dst: getenv_logname
      Src: /src/rnp/src/tests/exportkey.cpp:54,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/exportkey.cpp:55,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/exportkey.cpp:55,1
    - Dst: clear_key_handles
      Src: /src/rnp/src/tests/exportkey.cpp:56,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/exportkey.cpp:59,1
    - Dst: cli_rnp_export_keys
      Src: /src/rnp/src/tests/exportkey.cpp:59,1
    - Dst: getenv_logname
      Src: /src/rnp/src/tests/exportkey.cpp:59,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/exportkey.cpp:62,1
    - Dst: cli_rnp_export_keys
      Src: /src/rnp/src/tests/exportkey.cpp:62,1
    - Dst: close
      Src: /src/rnp/src/tests/exportkey.cpp:65,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/exportkey.cpp:67,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 33
    functionDepth: 5
    functionLinenumber: 33
    functionLinenumberEnd: 68
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/exportkey.cpp
    functionUses: 0
    functionsReached:
    - clear_key_handles
    - std::vector::size
    - assert_true
    - assert_int_equal
    - cli_rnp_generate_key
    - cli_rnp_t::cfg
    - assert_rnp_success
    - close
    - setup_cli_rnp_common
    - cli_rnp_export_keys
    - getenv_logname
    - assert_false
    - cli_rnp_t::load_keyrings
    - cli_rnp_t::keys_matching
    - cli_set_default_rsa_key_desc
    - rnp_get_secret_key_count
    - rnp_get_public_key_count
    - cli_rnp_t::end
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, rnpkeys_exportkey_verifyUserId)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert_true
      Src: /src/rnp/src/tests/exportkey.cpp:76,1
    - Dst: setup_cli_rnp_common
      Src: /src/rnp/src/tests/exportkey.cpp:76,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/exportkey.cpp:77,1
    - Dst: cli_rnp_t::load_keyrings
      Src: /src/rnp/src/tests/exportkey.cpp:77,1
    - Dst: cli_rnp_t::cfg
      Src: /src/rnp/src/tests/exportkey.cpp:80,1
    - Dst: cli_rnp_t::cfg
      Src: /src/rnp/src/tests/exportkey.cpp:81,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/exportkey.cpp:82,1
    - Dst: cli_rnp_export_autocrypt_key
      Src: /src/rnp/src/tests/exportkey.cpp:82,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/exportkey.cpp:86,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/exportkey.cpp:86,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/exportkey.cpp:87,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/exportkey.cpp:87,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/exportkey.cpp:89,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/exportkey.cpp:89,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/exportkey.cpp:90,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/exportkey.cpp:91,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/exportkey.cpp:91,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/exportkey.cpp:92,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/exportkey.cpp:94,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/exportkey.cpp:94,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/exportkey.cpp:95,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/exportkey.cpp:97,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/exportkey.cpp:97,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/exportkey.cpp:98,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/exportkey.cpp:100,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/exportkey.cpp:100,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/exportkey.cpp:101,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/exportkey.cpp:103,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/tests/exportkey.cpp:103,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/exportkey.cpp:104,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/exportkey.cpp:105,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/exportkey.cpp:106,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/exportkey.cpp:107,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/exportkey.cpp:108,1
    - Dst: cli_rnp_t::cfg
      Src: /src/rnp/src/tests/exportkey.cpp:112,1
    - Dst: cli_rnp_t::cfg
      Src: /src/rnp/src/tests/exportkey.cpp:113,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/exportkey.cpp:114,1
    - Dst: cli_rnp_export_autocrypt_key
      Src: /src/rnp/src/tests/exportkey.cpp:114,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/exportkey.cpp:115,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/exportkey.cpp:115,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/exportkey.cpp:116,1
    - Dst: import_all_keys
      Src: /src/rnp/src/tests/exportkey.cpp:116,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/exportkey.cpp:117,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/exportkey.cpp:117,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/exportkey.cpp:118,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/exportkey.cpp:119,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/tests/exportkey.cpp:119,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/exportkey.cpp:120,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/exportkey.cpp:122,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/tests/exportkey.cpp:122,1
    - Dst: assert_string_equal
      Src: /src/rnp/src/tests/exportkey.cpp:123,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/tests/exportkey.cpp:124,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/exportkey.cpp:125,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/exportkey.cpp:126,1
    - Dst: cli_rnp_t::cfg
      Src: /src/rnp/src/tests/exportkey.cpp:129,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/exportkey.cpp:130,1
    - Dst: cli_rnp_export_autocrypt_key
      Src: /src/rnp/src/tests/exportkey.cpp:130,1
    - Dst: close
      Src: /src/rnp/src/tests/exportkey.cpp:133,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/exportkey.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 45
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 70
    functionDepth: 5
    functionLinenumber: 70
    functionLinenumberEnd: 136
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/exportkey.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - assert_string_equal
    - assert_true
    - import_all_keys
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_get_secret_key_count
    - rnp_locate_key
    - assert_int_equal
    - rnp_ffi_destroy
    - cli_rnp_t::cfg
    - cli_rnp_t::load_keyrings
    - rnp_ffi_create
    - rnp_get_public_key_count
    - cli_rnp_export_autocrypt_key
    - rnp_key_get_uid_count
    - rnp_buffer_destroy
    - close
    - setup_cli_rnp_common
    - rnp_key_get_uid_at
    - assert_false
    - cli_rnp_t::end
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, rnpkeys_exportkey_autocrypt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/1115.cpp:35,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/issues/1115.cpp:35,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/1115.cpp:36,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/tests/issues/1115.cpp:37,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/1115.cpp:38,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/tests/issues/1115.cpp:38,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/1115.cpp:39,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/tests/issues/1115.cpp:39,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/1115.cpp:41,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/issues/1115.cpp:41,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/1115.cpp:43,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/tests/issues/1115.cpp:43,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/issues/1115.cpp:44,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/1115.cpp:45,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/issues/1115.cpp:45,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/1115.cpp:46,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/issues/1115.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 47
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/issues/1115.cpp
    functionUses: 0
    functionsReached:
    - rnp_locate_key
    - rnp_input_from_path
    - rnp_key_get_expiration
    - assert_int_equal
    - rnp_ffi_destroy
    - rnp_import_keys
    - assert_rnp_success
    - rnp_key_handle_destroy
    - rnp_ffi_create
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_issue_1115)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mksxp
      Src: /src/rnp/src/tests/issues/oss-fuzz-25489.cpp:48,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/issues/oss-fuzz-25489.cpp:50,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/issues/oss-fuzz-25489.cpp:52,1
    - Dst: gnupg_sexp_t::parse
      Src: /src/rnp/src/tests/issues/oss-fuzz-25489.cpp:52,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/issues/oss-fuzz-25489.cpp:57,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/issues/oss-fuzz-25489.cpp:59,1
    - Dst: gnupg_sexp_t::parse
      Src: /src/rnp/src/tests/issues/oss-fuzz-25489.cpp:59,1
    - Dst: mksxp
      Src: /src/rnp/src/tests/issues/oss-fuzz-25489.cpp:62,1
    - Dst: std::string::size
      Src: /src/rnp/src/tests/issues/oss-fuzz-25489.cpp:64,1
    - Dst: assert_false
      Src: /src/rnp/src/tests/issues/oss-fuzz-25489.cpp:66,1
    - Dst: gnupg_sexp_t::parse
      Src: /src/rnp/src/tests/issues/oss-fuzz-25489.cpp:66,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 68
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/issues/oss-fuzz-25489.cpp
    functionUses: 0
    functionsReached:
    - mksxp
    - assert_true
    - gnupg_sexp_t::parse
    - assert_false
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_sxp_depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/1171.cpp:36,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/tests/issues/1171.cpp:36,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/issues/1171.cpp:37,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/issues/1171.cpp:37,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/1171.cpp:40,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/issues/1171.cpp:41,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/issues/1171.cpp:42,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/1171.cpp:43,1
    - Dst: rnp_key_remove
      Src: /src/rnp/src/tests/issues/1171.cpp:43,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/1171.cpp:44,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/issues/1171.cpp:44,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/1171.cpp:46,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/issues/1171.cpp:47,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/issues/1171.cpp:48,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/1171.cpp:50,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/tests/issues/1171.cpp:51,1
    - Dst: assert_non_null
      Src: /src/rnp/src/tests/issues/1171.cpp:52,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/1171.cpp:54,1
    - Dst: rnp_key_get_bits
      Src: /src/rnp/src/tests/issues/1171.cpp:54,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/issues/1171.cpp:55,1
    - Dst: rnp_tests_get_key_by_grip
      Src: /src/rnp/src/tests/issues/1171.cpp:58,1
    - Dst: rnp_key_handle_t::pub::grip
      Src: /src/rnp/src/tests/issues/1171.cpp:58,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/issues/1171.cpp:59,1
    - Dst: rnp::Key*::material
      Src: /src/rnp/src/tests/issues/1171.cpp:59,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/1171.cpp:60,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/tests/issues/1171.cpp:60,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/issues/1171.cpp:62,1
    - Dst: import_pub_keys
      Src: /src/rnp/src/tests/issues/1171.cpp:62,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/tests/issues/1171.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 33
    functionDepth: 2
    functionLinenumber: 33
    functionLinenumberEnd: 65
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/issues/1171.cpp
    functionUses: 0
    functionsReached:
    - assert_non_null
    - rnp_key_handle_t::pub::grip
    - rnp_locate_key
    - rnp_key_remove
    - rnp_tests_get_key_by_grip
    - assert_true
    - rnp_key_get_bits
    - rnp::Key*::material
    - assert_int_equal
    - rnp_ffi_destroy
    - assert_null
    - assert_rnp_success
    - rnp_key_handle_destroy
    - import_pub_keys
    - rnp_ffi_create
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_issue_1171_key_import_and_remove)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/2469.cpp:36,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/issues/2469.cpp:36,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/2469.cpp:40,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/issues/2469.cpp:40,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/issues/2469.cpp:41,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/issues/2469.cpp:42,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/issues/2469.cpp:43,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/2469.cpp:46,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/tests/issues/2469.cpp:46,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/2469.cpp:49,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/issues/2469.cpp:49,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/issues/2469.cpp:50,1
    - Dst: assert_null
      Src: /src/rnp/src/tests/issues/2469.cpp:51,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/issues/2469.cpp:52,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/2469.cpp:55,1
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/tests/issues/2469.cpp:55,1
    - Dst: assert_rnp_failure
      Src: /src/rnp/src/tests/issues/2469.cpp:56,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/tests/issues/2469.cpp:56,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/tests/issues/2469.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 58
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/issues/2469.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_to_memory
    - rnp_output_memory_get_buf
    - assert_rnp_failure
    - assert_int_equal
    - assert_null
    - assert_rnp_success
    - rnp_output_to_null
    - rnp_output_destroy
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, test_ffi_output_memory_get_buf_empty)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: make_temp_dir
      Src: /src/rnp/src/tests/issues/1030.cpp:38,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/issues/1030.cpp:39,1
    - Dst: setup_cli_rnp_common
      Src: /src/rnp/src/tests/issues/1030.cpp:39,1
    - Dst: cli_set_default_rsa_key_desc
      Src: /src/rnp/src/tests/issues/1030.cpp:40,1
    - Dst: cli_rnp_t::cfg
      Src: /src/rnp/src/tests/issues/1030.cpp:40,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/issues/1030.cpp:41,1
    - Dst: cli_rnp_generate_key
      Src: /src/rnp/src/tests/issues/1030.cpp:41,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/issues/1030.cpp:43,1
    - Dst: cli_rnp_t::load_keyrings
      Src: /src/rnp/src/tests/issues/1030.cpp:43,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/1030.cpp:44,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/tests/issues/1030.cpp:44,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/issues/1030.cpp:45,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/1030.cpp:46,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/tests/issues/1030.cpp:46,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/issues/1030.cpp:47,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/issues/1030.cpp:50,1
    - Dst: cli_rnp_t::keys_matching
      Src: /src/rnp/src/tests/issues/1030.cpp:50,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/issues/1030.cpp:51,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/issues/1030.cpp:51,1
    - Dst: clear_key_handles
      Src: /src/rnp/src/tests/issues/1030.cpp:52,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/issues/1030.cpp:54,1
    - Dst: cli_rnp_t::keys_matching
      Src: /src/rnp/src/tests/issues/1030.cpp:54,1
    - Dst: assert_int_equal
      Src: /src/rnp/src/tests/issues/1030.cpp:55,1
    - Dst: std::vector::size
      Src: /src/rnp/src/tests/issues/1030.cpp:55,1
    - Dst: assert_rnp_success
      Src: /src/rnp/src/tests/issues/1030.cpp:58,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/tests/issues/1030.cpp:58,1
    - Dst: assert_true
      Src: /src/rnp/src/tests/issues/1030.cpp:59,1
    - Dst: clear_key_handles
      Src: /src/rnp/src/tests/issues/1030.cpp:61,1
    - Dst: close
      Src: /src/rnp/src/tests/issues/1030.cpp:65,1
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/tests/issues/1030.cpp:67,1
    - Dst: clean_temp_dir
      Src: /src/rnp/src/tests/issues/1030.cpp:68,1
    - Dst: free
      Src: /src/rnp/src/tests/issues/1030.cpp:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 24
    argCount: 1
    argNames:
    - keystore
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 30
    functionDepth: 5
    functionLinenumber: 30
    functionLinenumberEnd: 70
    functionName: test_issue_1030
    functionSourceFile: /src/rnp/src/tests/issues/1030.cpp
    functionUses: 0
    functionsReached:
    - clear_key_handles
    - free
    - make_temp_dir
    - assert_true
    - assert_rnp_success
    - cli_rnp_t::keys_matching
    - rnp_get_secret_key_count
    - assert_int_equal
    - cli_rnp_generate_key
    - cli_rnp_t::cfg
    - rnp_key_is_protected
    - cli_rnp_t::load_keyrings
    - std::vector::size
    - rnp_get_public_key_count
    - clean_temp_dir
    - close
    - setup_cli_rnp_common
    - cli_set_default_rsa_key_desc
    - cli_rnp_t::end
    linkageType: ''
    returnType: void
    signature: void test_issue_1030(const char *keystore)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test_issue_1030
      Src: /src/rnp/src/tests/issues/1030.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 6
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/tests/issues/1030.cpp
    functionUses: 0
    functionsReached:
    - test_issue_1030
    linkageType: ''
    returnType: void
    signature: void TEST_F(rnp_tests, issue_1030_rnpkeys_secret_keys_unprotected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: init_file_src
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:39,1
    - Dst: process_pgp_key
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:39,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - key
    - fname
    argTypes:
    - pgp_transferable_key_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: load_transferable_key
    functionSourceFile: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp
    functionUses: 2
    functionsReached:
    - process_pgp_key
    - init_file_src
    - pgp_source_t::close
    linkageType: ''
    returnType: bool
    signature: bool load_transferable_key(pgp_transferable_key_t *key, const char
      *fname)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: load_transferable_key
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:63,1
    - Dst: load_transferable_key
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:68,1
    - Dst: list_front
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:74,1
    - Dst: list_front
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:75,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:77,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:78,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:81,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:82,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:88,1
    - Dst: free
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:90,1
    - Dst: pgp_keyid
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:94,1
    - Dst: pgp_fingerprint
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:95,1
    - Dst: pgp_transferable_key_t::key::material::adjust_hash
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:97,1
    - Dst: pgp::pkt::Signature*::set_keyfp
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:99,1
    - Dst: rnp::Hash::Hash
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:102,1
    - Dst: rnp::Hash::Hash
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:103,1
    - Dst: pgp::pkt::Signature*::fill_hashed_data
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:105,1
    - Dst: signature_hash_binding
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:106,1
    - Dst: pgp_hash_copy
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:107,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:108,1
    - Dst: signature_calculate
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:113,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:114,1
    - Dst: pgp::pkt::Signature*::key_flags
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:118,1
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:120,1
    - Dst: pgp::pkt::Signature::Signature
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:123,1
    - Dst: calculate_primary_binding
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:126,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:128,1
    - Dst: signature_set_embedded_sig
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:131,1
    - Dst: free_signature
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:132,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:134,1
    - Dst: pgp::pkt::Signature*::set_keyid
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:140,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:142,1
    - Dst: what
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:142,1
    - Dst: transferable_key_to_public
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:146,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:147,1
    - Dst: init_stdout_dest
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:152,1
    - Dst: write_transferable_key
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:153,1
    - Dst: dst_close
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:154,1
    - Dst: transferable_key_destroy
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:156,1
    - Dst: transferable_key_destroy
      Src: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp:157,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 69
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 160
    functionName: main
    functionSourceFile: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp
    functionUses: 1
    functionsReached:
    - load_transferable_key
    - pgp::pkt::Signature::Signature
    - pgp_keyid
    - pgp_hash_copy
    - dst_close
    - pgp_pk_alg_capabilities
    - write_transferable_key
    - free
    - signature_hash_binding
    - free_signature
    - signature_calculate
    - pgp::pkt::Signature*::set_keyid
    - pgp::pkt::Signature*::key_flags
    - pgp::pkt::Signature*::fill_hashed_data
    - init_stdout_dest
    - signature_set_embedded_sig
    - RNP_LOG
    - pgp::Fingerprint::Fingerprint
    - pgp_transferable_key_t::key::material::adjust_hash
    - calculate_primary_binding
    - pgp_fingerprint
    - transferable_key_to_public
    - rnp::Hash::Hash
    - what
    - pgp::pkt::Signature*::set_keyfp
    - transferable_key_destroy
    - list_front
    - decrypt_secret_key
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - 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: rnp::ArmoredSource::ArmoredSource
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ArmoredSource(const ArmoredSource &)
  - 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: rnp::ArmoredSource::ArmoredSource
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ArmoredSource(ArmoredSource &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: rnp::ArmoredSource::multiple
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool multiple()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: rnp::ArmoredDest::ArmoredDest
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ArmoredDest(const ArmoredDest &)
  - 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: rnp::ArmoredDest::ArmoredDest
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ArmoredDest(ArmoredDest &&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_armored_dst
      Src: /src/rnp/src/librepgp/stream-armor.h:140,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-armor.h:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - writedst
    - msgtype
    argTypes:
    - pgp_dest_t
    - pgp_armored_msg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: rnp::ArmoredDest::ArmoredDest
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.h
    functionUses: 1
    functionsReached:
    - init_armored_dst
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void ArmoredDest(pgp_dest_t &writedst, pgp_armored_msg_t msgtype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dst_finish
      Src: /src/rnp/src/librepgp/stream-armor.h:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: ~ArmoredDest()
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.h
    functionUses: 0
    functionsReached:
    - dst_finish
    linkageType: ''
    returnType: void
    signature: void ~ArmoredDest()
  - 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: rnp::ArmoredSource::ArmoredSource
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ArmoredSource(const ArmoredSource &)
  - 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: rnp::ArmoredSource::ArmoredSource
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ArmoredSource(ArmoredSource &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: rnp::ArmoredSource::multiple
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool multiple()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: rnp::ArmoredDest::ArmoredDest
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ArmoredDest(const ArmoredDest &)
  - 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: rnp::ArmoredDest::ArmoredDest
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ArmoredDest(ArmoredDest &&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_armored_dst
      Src: /src/rnp/src/librepgp/stream-armor.h:140,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-armor.h:142,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - writedst
    - msgtype
    argTypes:
    - pgp_dest_t
    - pgp_armored_msg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 144
    functionName: rnp::ArmoredDest::ArmoredDest
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.h
    functionUses: 1
    functionsReached:
    - init_armored_dst
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void ArmoredDest(pgp_dest_t &writedst, pgp_armored_msg_t msgtype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dst_finish
      Src: /src/rnp/src/librepgp/stream-armor.h:149,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 151
    functionName: ~ArmoredDest()
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.h
    functionUses: 0
    functionsReached:
    - dst_finish
    linkageType: ''
    returnType: void
    signature: void ~ArmoredDest()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hkdf::create
      Src: /src/rnp/src/librepgp/v2_seipd.cpp:38,1
    - Dst: pgp_key_size
      Src: /src/rnp/src/librepgp/v2_seipd.cpp:40,1
    - Dst: pgp_key_size
      Src: /src/rnp/src/librepgp/v2_seipd.cpp:42,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/v2_seipd.cpp:53,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/v2_seipd.cpp:54,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/librepgp/v2_seipd.cpp:57,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/librepgp/v2_seipd.cpp:58,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/librepgp/v2_seipd.cpp:59,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/librepgp/v2_seipd.cpp:60,1
    - Dst: auto::extract_expand
      Src: /src/rnp/src/librepgp/v2_seipd.cpp:64,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/v2_seipd.cpp:70,1
    - Dst: std::vector::size
      Src: /src/rnp/src/librepgp/v2_seipd.cpp:71,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/librepgp/v2_seipd.cpp:74,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/v2_seipd.cpp:74,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/v2_seipd.cpp:74,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/librepgp/v2_seipd.cpp:76,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/v2_seipd.cpp:76,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/v2_seipd.cpp:76,1
    - Dst: std::vector::size
      Src: /src/rnp/src/librepgp/v2_seipd.cpp:76,1
    - Dst: seipd_v2_aead_fields_t::nonce::push_back
      Src: /src/rnp/src/librepgp/v2_seipd.cpp:79,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - hdr
    - sesskey
    argTypes:
    - pgp_seipdv2_hdr_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 82
    functionName: seipd_v2_key_and_nonce_derivation
    functionSourceFile: /src/rnp/src/librepgp/v2_seipd.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>
    - rnp::Hkdf::create
    - seipd_v2_aead_fields_t::nonce::push_back
    - pgp_key_size
    - rnp::rnp_exception::rnp_exception
    - std::vector::size
    - auto::extract_expand
    - std::vector::data
    - static_cast<uint8_t>
    linkageType: ''
    returnType: seipd_v2_aead_fields_t
    signature: seipd_v2_aead_fields_t seipd_v2_key_and_nonce_derivation(pgp_seipdv2_hdr_t
      &hdr, uint8_t *sesskey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 75
    functionName: pgp_packet_body_t
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_packet_body_t(const pgp_packet_body_t &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: pgp_packet_body_t
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_packet_body_t(pgp_packet_body_t &&src)
  - 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: '&operator=(const pgp_packet_body_t &)'
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_packet_body_t
    signature: pgp_packet_body_t &operator=(const pgp_packet_body_t &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 78
    functionName: '&operator=(pgp_packet_body_t &&)'
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_packet_body_t
    signature: pgp_packet_body_t &operator=(pgp_packet_body_t &&)
  - 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: pgp_userid_pkt_t
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_userid_pkt_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - asrc
    argTypes:
    - pgp_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: rnp::DumpContext::DumpContext
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DumpContext(pgp_source_t &asrc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: ~DumpContext()
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~DumpContext()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: rnp::DumpContext::set_dump_grips
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_dump_grips(bool value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: rnp::DumpContext::set_dump_mpi
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_dump_mpi(bool value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: rnp::DumpContext::set_dump_packets
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_dump_packets(bool value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - asrc
    - ajson
    argTypes:
    - pgp_source_t
    - nlohmann::ordered_json*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: rnp::DumpContextJson::DumpContextJson
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DumpContextJson(pgp_source_t &asrc, nlohmann::ordered_json *ajson)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - asrc
    argTypes:
    - pgp_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 57
    functionName: rnp::DumpContext::DumpContext
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DumpContext(pgp_source_t &asrc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 58
    functionName: ~DumpContext()
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~DumpContext()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: rnp::DumpContext::set_dump_grips
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_dump_grips(bool value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: rnp::DumpContext::set_dump_mpi
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_dump_mpi(bool value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: rnp::DumpContext::set_dump_packets
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_dump_packets(bool value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - asrc
    - ajson
    argTypes:
    - pgp_source_t
    - nlohmann::ordered_json*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 132
    functionName: rnp::DumpContextJson::DumpContextJson
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DumpContextJson(pgp_source_t &asrc, nlohmann::ordered_json *ajson)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: pgp::pkt::Signature::Signature
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Signature()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: pgp::pkt::Signature::type
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: pgp_sig_type_t
    signature: pgp_sig_type_t type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - atype
    argTypes:
    - pgp_sig_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: pgp::pkt::Signature::set_type
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_type(pgp_sig_type_t atype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: pgp::pkt::Signature::is_document
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_document() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: pgp::pkt::Signature::Signature
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Signature()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: pgp::pkt::Signature::type
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: pgp_sig_type_t
    signature: pgp_sig_type_t type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - atype
    argTypes:
    - pgp_sig_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: pgp::pkt::Signature::set_type
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_type(pgp_sig_type_t atype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: pgp::pkt::Signature::is_document
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_document() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: pgp::pkt::Signature::Signature
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Signature()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: pgp::pkt::Signature::type
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: pgp_sig_type_t
    signature: pgp_sig_type_t type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - atype
    argTypes:
    - pgp_sig_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: pgp::pkt::Signature::set_type
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_type(pgp_sig_type_t atype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: pgp::pkt::Signature::is_document
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_document() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 81
    functionName: pgp::pkt::Signature::Signature
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Signature()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: pgp::pkt::Signature::type
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: pgp_sig_type_t
    signature: pgp_sig_type_t type() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - atype
    argTypes:
    - pgp_sig_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: pgp::pkt::Signature::set_type
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_type(pgp_sig_type_t atype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 101
    functionName: pgp::pkt::Signature::is_document
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_document() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_pkt_t::pub_data::empty
      Src: /src/rnp/src/librepgp/stream-sig.cpp:54,1
    - Dst: pgp_key_pkt_t::fill_hashed_data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:57,1
    - Dst: signature_hash_key
      Src: /src/rnp/src/librepgp/stream-sig.cpp:58,1
    - Dst: assert
      Src: /src/rnp/src/librepgp/stream-sig.cpp:68,1
    - Dst: pgp_key_pkt_t::pub_data::size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:68,1
    - Dst: write_uint16
      Src: /src/rnp/src/librepgp/stream-sig.cpp:70,1
    - Dst: pgp_key_pkt_t::pub_data::size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:70,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:71,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:72,1
    - Dst: assert
      Src: /src/rnp/src/librepgp/stream-sig.cpp:76,1
    - Dst: pgp_key_pkt_t::pub_data::size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:76,1
    - Dst: write_uint32
      Src: /src/rnp/src/librepgp/stream-sig.cpp:78,1
    - Dst: pgp_key_pkt_t::pub_data::size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:78,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:79,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:80,1
    - Dst: assert
      Src: /src/rnp/src/librepgp/stream-sig.cpp:85,1
    - Dst: pgp_key_pkt_t::pub_data::size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:85,1
    - Dst: write_uint32
      Src: /src/rnp/src/librepgp/stream-sig.cpp:87,1
    - Dst: pgp_key_pkt_t::pub_data::size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:87,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:88,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:89,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:94,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-sig.cpp:95,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 3
    argNames:
    - key
    - hash
    - pgpver
    argTypes:
    - pgp_key_pkt_t
    - rnp::Hash
    - pgp_version_t
    assertStmts:
    - condition: (key.pub_data.size() <= (size_t) 0xffffffffu)
      pos:
        line_end: 75
        line_start: 75
        source_file: /src/rnp/src/librepgp/stream-sig.cpp
    - condition: (key.pub_data.size() <= ((size_t) 0xffffu))
      pos:
        line_end: 67
        line_start: 67
        source_file: /src/rnp/src/librepgp/stream-sig.cpp
    - condition: (key.pub_data.size() <= (size_t) 0xffffffffu)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/rnp/src/librepgp/stream-sig.cpp
    constantsTouched: []
    func_position:
      end: 97
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 97
    functionName: signature_hash_key
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - signature_hash_key
    - pgp_key_pkt_t::fill_hashed_data
    - write_uint32
    - write_uint16
    - assert
    - rnp::rnp_exception::rnp_exception
    - pgp_key_pkt_t::pub_data::empty
    - rnp::Hash::add
    - pgp_key_pkt_t::pub_data::size
    linkageType: ''
    returnType: void
    signature: void signature_hash_key(const pgp_key_pkt_t &key, rnp::Hash &hash,
      pgp_version_t pgpver)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:103,1
    - Dst: pgp_userid_pkt_t::uid::data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:103,1
    - Dst: pgp_userid_pkt_t::uid::size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:103,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:116,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-sig.cpp:117,1
    - Dst: write_uint32
      Src: /src/rnp/src/librepgp/stream-sig.cpp:119,1
    - Dst: pgp_userid_pkt_t::uid::size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:119,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:120,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:121,1
    - Dst: pgp_userid_pkt_t::uid::data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:121,1
    - Dst: pgp_userid_pkt_t::uid::size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:121,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 3
    argNames:
    - uid
    - hash
    - sigver
    argTypes:
    - pgp_userid_pkt_t
    - rnp::Hash
    - pgp_version_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 122
    functionName: signature_hash_userid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - write_uint32
    - pgp_userid_pkt_t::uid::size
    - pgp_userid_pkt_t::uid::data
    - rnp::rnp_exception::rnp_exception
    - rnp::Hash::add
    linkageType: ''
    returnType: void
    signature: void signature_hash_userid(const pgp_userid_pkt_t &uid, rnp::Hash &hash,
      pgp_version_t sigver)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signature_init
      Src: /src/rnp/src/librepgp/stream-sig.cpp:129,1
    - Dst: signature_hash_key
      Src: /src/rnp/src/librepgp/stream-sig.cpp:130,1
    - Dst: signature_hash_userid
      Src: /src/rnp/src/librepgp/stream-sig.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - sig
    - '      key'
    - '   userid'
    argTypes:
    - pgp::pkt::Signature
    - pgp_key_pkt_t
    - pgp_userid_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 133
    functionName: signature_hash_certification
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - signature_init
    - signature_hash_key
    - signature_hash_userid
    linkageType: ''
    returnType: std::unique_ptr<rnp::Hash>
    signature: "std::unique_ptr<rnp::Hash> signature_hash_certification(const pgp::pkt::Signature
      &sig,\n                             const pgp_key_pkt_t &      key,\n                             const
      pgp_userid_pkt_t &   userid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signature_init
      Src: /src/rnp/src/librepgp/stream-sig.cpp:140,1
    - Dst: signature_hash_key
      Src: /src/rnp/src/librepgp/stream-sig.cpp:141,1
    - Dst: signature_hash_key
      Src: /src/rnp/src/librepgp/stream-sig.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - sig
    - '      key'
    - '      subkey'
    argTypes:
    - pgp::pkt::Signature
    - pgp_key_pkt_t
    - pgp_key_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 144
    functionName: signature_hash_binding
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - signature_init
    - signature_hash_key
    linkageType: ''
    returnType: std::unique_ptr<rnp::Hash>
    signature: "std::unique_ptr<rnp::Hash> signature_hash_binding(const pgp::pkt::Signature
      &sig,\n                       const pgp_key_pkt_t &      key,\n                       const
      pgp_key_pkt_t &      subkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signature_init
      Src: /src/rnp/src/librepgp/stream-sig.cpp:149,1
    - Dst: signature_hash_key
      Src: /src/rnp/src/librepgp/stream-sig.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - sig
    - key
    argTypes:
    - pgp::pkt::Signature
    - pgp_key_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 146
    functionDepth: 2
    functionLinenumber: 146
    functionLinenumberEnd: 152
    functionName: signature_hash_direct
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - signature_init
    - signature_hash_key
    linkageType: ''
    returnType: std::unique_ptr<rnp::Hash>
    signature: std::unique_ptr<rnp::Hash> signature_hash_direct(const pgp::pkt::Signature
      &sig, const pgp_key_pkt_t &key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signatures::clear
      Src: /src/rnp/src/librepgp/stream-sig.cpp:157,1
    - Dst: rnp::ArmoredSource::error
      Src: /src/rnp/src/librepgp/stream-sig.cpp:162,1
    - Dst: rnp::ArmoredSource::eof
      Src: /src/rnp/src/librepgp/stream-sig.cpp:163,1
    - Dst: rnp::ArmoredSource::multiple
      Src: /src/rnp/src/librepgp/stream-sig.cpp:163,1
    - Dst: rnp::ArmoredSource::restart
      Src: /src/rnp/src/librepgp/stream-sig.cpp:164,1
    - Dst: rnp::ArmoredSource::eof
      Src: /src/rnp/src/librepgp/stream-sig.cpp:166,1
    - Dst: stream_pkt_type
      Src: /src/rnp/src/librepgp/stream-sig.cpp:169,1
    - Dst: rnp::ArmoredSource::src
      Src: /src/rnp/src/librepgp/stream-sig.cpp:169,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:171,1
    - Dst: pgp::pkt::Signatures::clear
      Src: /src/rnp/src/librepgp/stream-sig.cpp:172,1
    - Dst: pgp::pkt::Signatures::emplace_back
      Src: /src/rnp/src/librepgp/stream-sig.cpp:176,1
    - Dst: pgp::pkt::Signatures::back
      Src: /src/rnp/src/librepgp/stream-sig.cpp:177,1
    - Dst: rnp::ArmoredSource::src
      Src: /src/rnp/src/librepgp/stream-sig.cpp:177,1
    - Dst: pgp::pkt::Signatures::clear
      Src: /src/rnp/src/librepgp/stream-sig.cpp:179,1
    - Dst: rnp::ArmoredSource::error
      Src: /src/rnp/src/librepgp/stream-sig.cpp:183,1
    - Dst: pgp::pkt::Signatures::clear
      Src: /src/rnp/src/librepgp/stream-sig.cpp:184,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 2
    argNames:
    - src
    - sigs
    argTypes:
    - pgp_source_t
    - pgp::pkt::Signatures
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 188
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 188
    functionName: process_pgp_signatures
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::pkt::Signatures::clear
    - pgp::pkt::Signatures::back
    - rnp::ArmoredSource::restart
    - rnp::ArmoredSource::multiple
    - pgp::pkt::Signatures::emplace_back
    - stream_pkt_type
    - rnp::ArmoredSource::src
    - rnp::ArmoredSource::eof
    - rnp::ArmoredSource::error
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t process_pgp_signatures(pgp_source_t &src, pgp::pkt::Signatures
      &sigs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: Signature::operator==(const Signature &src) const
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Signature::operator==(const Signature &src) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: Signature::operator!=(const Signature &src) const
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Signature::operator!=(const Signature &src) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/librepgp/stream-sig.cpp:210,1
    - Dst: auto::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:211,1
    - Dst: auto::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:212,1
    - Dst: auto::finish
      Src: /src/rnp/src/librepgp/stream-sig.cpp:216,1
    - Dst: SigID::data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 218
    functionName: pgp::pkt::Signature::get_id
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - rnp::Hash::create
    - SigID::data
    - auto::add
    - auto::finish
    linkageType: ''
    returnType: SigID
    signature: SigID Signature::get_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:223,1
    - Dst: get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stype
    - hashed
    argTypes:
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: pgp::pkt::Signature::get_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::find_subpkt
    - get
    linkageType: ''
    returnType: sigsub::Raw
    signature: 'sigsub::Raw *

      Signature::get_subpkt(uint8_t stype, bool hashed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:230,1
    - Dst: get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stype
    - hashed
    argTypes:
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: pgp::pkt::Signature::get_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::find_subpkt
    - get
    linkageType: ''
    returnType: sigsub::Raw
    signature: 'sigsub::Raw *

      Signature::get_subpkt(uint8_t stype, bool hashed) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:237,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - hashed
    argTypes:
    - sigsub::Type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: pgp::pkt::Signature::get_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - pgp::pkt::Signature::get_subpkt
    - static_cast<uint8_t>
    linkageType: ''
    returnType: sigsub::Raw
    signature: 'sigsub::Raw *

      Signature::get_subpkt(sigsub::Type type, bool hashed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:243,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - hashed
    argTypes:
    - sigsub::Type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: pgp::pkt::Signature::get_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - pgp::pkt::Signature::get_subpkt
    - static_cast<uint8_t>
    linkageType: ''
    returnType: sigsub::Raw
    signature: 'sigsub::Raw *

      Signature::get_subpkt(sigsub::Type type, bool hashed) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stype
    - hashed
    argTypes:
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 1
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: pgp::pkt::Signature::has_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - pgp::pkt::Signature::find_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::has_subpkt(uint8_t stype, bool hashed) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::has_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:255,1
    - Dst: pgp::pkt::Signature::has_keyfp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 2
    functionLinenumber: 252
    functionLinenumberEnd: 257
    functionName: pgp::pkt::Signature::has_keyid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::has_keyfp
    - pgp::pkt::Signature::has_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::has_keyid() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::IssuerKeyID *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:269,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:270,1
    - Dst: auto::keyid
      Src: /src/rnp/src/librepgp/stream-sig.cpp:272,1
    - Dst: pgp::pkt::Signature::keyfp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 277
    functionName: pgp::pkt::Signature::keyid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::keyid
    - pgp::pkt::Signature::get_subpkt
    - pgp::pkt::Signature::keyfp
    - dynamic_cast<const sigsub::IssuerKeyID *>
    linkageType: ''
    returnType: KeyID
    signature: KeyID Signature::keyid() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::IssuerKeyID>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:287,1
    - Dst: sigsub::IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/librepgp/stream-sig.cpp:287,1
    - Dst: auto::set_keyid
      Src: /src/rnp/src/librepgp/stream-sig.cpp:288,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:289,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - id
    argTypes:
    - KeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 290
    functionName: pgp::pkt::Signature::set_keyid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_keyid
    - std::unique_ptr<sigsub::IssuerKeyID>
    - sigsub::IssuerKeyID::IssuerKeyID
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_keyid(const KeyID &id)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::IssuerFingerprint *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:295,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:296,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:302,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 311
    functionName: pgp::pkt::Signature::has_keyfp
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - auto::fp
    - dynamic_cast<const sigsub::IssuerFingerprint *>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::has_keyfp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::IssuerFingerprint *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:316,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:317,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: pgp::pkt::Signature::keyfp
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - auto::fp
    - dynamic_cast<const sigsub::IssuerFingerprint *>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: Fingerprint
    signature: Fingerprint Signature::keyfp() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::IssuerFingerprint>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:324,1
    - Dst: sigsub::IssuerFingerprint::IssuerFingerprint
      Src: /src/rnp/src/librepgp/stream-sig.cpp:324,1
    - Dst: auto::set_version
      Src: /src/rnp/src/librepgp/stream-sig.cpp:326,1
    - Dst: auto::set_version
      Src: /src/rnp/src/librepgp/stream-sig.cpp:328,1
    - Dst: auto::set_fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:330,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:331,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fp
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 332
    functionName: pgp::pkt::Signature::set_keyfp
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - sigsub::IssuerFingerprint::IssuerFingerprint
    - pgp::pkt::Signature::add_subpkt
    - auto::set_fp
    - std::unique_ptr<sigsub::IssuerFingerprint>
    - auto::set_version
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_keyfp(const Fingerprint &fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::CreationTime *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:341,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:341,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 343
    functionName: pgp::pkt::Signature::creation
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - auto::time
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::CreationTime *>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Signature::creation() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::CreationTime>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:352,1
    - Dst: sigsub::CreationTime::CreationTime
      Src: /src/rnp/src/librepgp/stream-sig.cpp:352,1
    - Dst: auto::set_time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:353,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:354,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctime
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 345
    functionDepth: 1
    functionLinenumber: 345
    functionLinenumberEnd: 355
    functionName: pgp::pkt::Signature::set_creation
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_time
    - std::unique_ptr<sigsub::CreationTime>
    - sigsub::CreationTime::CreationTime
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_creation(uint32_t ctime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::ExpirationTime *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:361,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:361,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 363
    functionName: pgp::pkt::Signature::expiration
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - dynamic_cast<const sigsub::ExpirationTime *>
    - auto::time
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Signature::expiration() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::ExpirationTime>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:368,1
    - Dst: sigsub::ExpirationTime::ExpirationTime
      Src: /src/rnp/src/librepgp/stream-sig.cpp:368,1
    - Dst: auto::set_time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:369,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:370,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - etime
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 365
    functionDepth: 1
    functionLinenumber: 365
    functionLinenumberEnd: 371
    functionName: pgp::pkt::Signature::set_expiration
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_time
    - sigsub::ExpirationTime::ExpirationTime
    - std::unique_ptr<sigsub::ExpirationTime>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_expiration(uint32_t etime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::KeyExpirationTime *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:376,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:377,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 379
    functionName: pgp::pkt::Signature::key_expiration
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::time
    - dynamic_cast<const sigsub::KeyExpirationTime *>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Signature::key_expiration() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::KeyExpirationTime>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:384,1
    - Dst: sigsub::KeyExpirationTime::KeyExpirationTime
      Src: /src/rnp/src/librepgp/stream-sig.cpp:384,1
    - Dst: auto::set_time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:385,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:386,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - etime
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 381
    functionDepth: 1
    functionLinenumber: 381
    functionLinenumberEnd: 387
    functionName: pgp::pkt::Signature::set_key_expiration
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_time
    - sigsub::KeyExpirationTime::KeyExpirationTime
    - std::unique_ptr<sigsub::KeyExpirationTime>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_key_expiration(uint32_t etime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::KeyFlags *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:392,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:392,1
    - Dst: auto::flags
      Src: /src/rnp/src/librepgp/stream-sig.cpp:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 394
    functionName: pgp::pkt::Signature::key_flags
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::flags
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::KeyFlags *>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Signature::key_flags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::KeyFlags>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:399,1
    - Dst: sigsub::KeyFlags::KeyFlags
      Src: /src/rnp/src/librepgp/stream-sig.cpp:399,1
    - Dst: auto::set_flags
      Src: /src/rnp/src/librepgp/stream-sig.cpp:400,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:401,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 402
    functionName: pgp::pkt::Signature::set_key_flags
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_flags
    - sigsub::KeyFlags::KeyFlags
    - std::unique_ptr<sigsub::KeyFlags>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_key_flags(uint8_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::PrimaryUserID *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:408,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:408,1
    - Dst: auto::primary
      Src: /src/rnp/src/librepgp/stream-sig.cpp:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 410
    functionName: pgp::pkt::Signature::primary_uid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const sigsub::PrimaryUserID *>
    - pgp::pkt::Signature::get_subpkt
    - auto::primary
    linkageType: ''
    returnType: bool
    signature: bool Signature::primary_uid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::PrimaryUserID>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:415,1
    - Dst: sigsub::PrimaryUserID::PrimaryUserID
      Src: /src/rnp/src/librepgp/stream-sig.cpp:415,1
    - Dst: auto::set_primary
      Src: /src/rnp/src/librepgp/stream-sig.cpp:416,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:417,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - primary
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 418
    functionName: pgp::pkt::Signature::set_primary_uid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - sigsub::PrimaryUserID::PrimaryUserID
    - pgp::pkt::Signature::add_subpkt
    - auto::set_primary
    - std::unique_ptr<sigsub::PrimaryUserID>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_primary_uid(bool primary)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Preferred *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:423,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:423,1
    - Dst: auto::algs
      Src: /src/rnp/src/librepgp/stream-sig.cpp:424,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - sigsub::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 425
    functionName: pgp::pkt::Signature::preferred
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const sigsub::Preferred *>
    - auto::algs
    - std::vector<uint8_t>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::preferred(sigsub::Type type) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::empty
      Src: /src/rnp/src/librepgp/stream-sig.cpp:430,1
    - Dst: pgp::pkt::Signature::remove_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:432,1
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:432,1
    - Dst: pgp::pkt::Signature::remove_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:433,1
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:433,1
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/librepgp/stream-sig.cpp:437,1
    - Dst: dynamic_cast<sigsub::Preferred *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:438,1
    - Dst: auto::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:438,1
    - Dst: auto::set_algs
      Src: /src/rnp/src/librepgp/stream-sig.cpp:442,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:443,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - data
    - type
    argTypes:
    - std::vector<uint8_t>
    - sigsub::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 427
    functionDepth: 1
    functionLinenumber: 427
    functionLinenumberEnd: 444
    functionName: pgp::pkt::Signature::set_preferred
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::remove_subpkt
    - pgp::pkt::sigsub::Raw::create
    - pgp::pkt::Signature::add_subpkt
    - std::vector<uint8_t>::empty
    - auto::set_algs
    - pgp::pkt::Signature::find_subpkt
    - auto::get
    - dynamic_cast<sigsub::Preferred *>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_preferred(const std::vector<uint8_t> &data, sigsub::Type
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 446
    functionDepth: 3
    functionLinenumber: 446
    functionLinenumberEnd: 450
    functionName: pgp::pkt::Signature::preferred_symm_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::preferred
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::preferred_symm_algs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::set_preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 456
    functionName: pgp::pkt::Signature::set_preferred_symm_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::set_preferred
    linkageType: ''
    returnType: void
    signature: void Signature::set_preferred_symm_algs(const std::vector<uint8_t>
      &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 458
    functionDepth: 3
    functionLinenumber: 458
    functionLinenumberEnd: 462
    functionName: pgp::pkt::Signature::preferred_hash_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::preferred
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::preferred_hash_algs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::set_preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 468
    functionName: pgp::pkt::Signature::set_preferred_hash_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::set_preferred
    linkageType: ''
    returnType: void
    signature: void Signature::set_preferred_hash_algs(const std::vector<uint8_t>
      &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 470
    functionDepth: 3
    functionLinenumber: 470
    functionLinenumberEnd: 474
    functionName: pgp::pkt::Signature::preferred_z_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::preferred
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::preferred_z_algs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::set_preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 480
    functionName: pgp::pkt::Signature::set_preferred_z_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::set_preferred
    linkageType: ''
    returnType: void
    signature: void Signature::set_preferred_z_algs(const std::vector<uint8_t> &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::set_preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 487
    functionName: pgp::pkt::Signature::set_preferred_aead_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::set_preferred
    linkageType: ''
    returnType: void
    signature: void Signature::set_preferred_aead_algs(const std::vector<uint8_t>
      &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 489
    functionDepth: 3
    functionLinenumber: 489
    functionLinenumberEnd: 493
    functionName: pgp::pkt::Signature::preferred_aead_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::preferred
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::preferred_aead_algs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::KeyserverPrefs *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:500,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:500,1
    - Dst: auto::raw
      Src: /src/rnp/src/librepgp/stream-sig.cpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 502
    functionName: pgp::pkt::Signature::key_server_prefs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::raw
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::KeyserverPrefs *>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Signature::key_server_prefs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::KeyserverPrefs>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:507,1
    - Dst: sigsub::KeyserverPrefs::KeyserverPrefs
      Src: /src/rnp/src/librepgp/stream-sig.cpp:507,1
    - Dst: auto::set_raw
      Src: /src/rnp/src/librepgp/stream-sig.cpp:508,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:509,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - prefs
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 504
    functionDepth: 1
    functionLinenumber: 504
    functionLinenumberEnd: 510
    functionName: pgp::pkt::Signature::set_key_server_prefs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - sigsub::KeyserverPrefs::KeyserverPrefs
    - auto::set_raw
    - pgp::pkt::Signature::add_subpkt
    - std::move
    - std::unique_ptr<sigsub::KeyserverPrefs>
    linkageType: ''
    returnType: void
    signature: void Signature::set_key_server_prefs(uint8_t prefs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::PreferredKeyserver *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:515,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:516,1
    - Dst: auto::keyserver
      Src: /src/rnp/src/librepgp/stream-sig.cpp:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 518
    functionName: pgp::pkt::Signature::key_server
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const sigsub::PreferredKeyserver *>
    - pgp::pkt::Signature::get_subpkt
    - auto::keyserver
    linkageType: ''
    returnType: std::string
    signature: std::string Signature::key_server() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/rnp/src/librepgp/stream-sig.cpp:523,1
    - Dst: pgp::pkt::Signature::remove_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:524,1
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:524,1
    - Dst: pgp::pkt::Signature::remove_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:525,1
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:525,1
    - Dst: std::unique_ptr<sigsub::PreferredKeyserver>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:529,1
    - Dst: sigsub::PreferredKeyserver::PreferredKeyserver
      Src: /src/rnp/src/librepgp/stream-sig.cpp:529,1
    - Dst: auto::set_keyserver
      Src: /src/rnp/src/librepgp/stream-sig.cpp:530,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:531,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - uri
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 532
    functionName: pgp::pkt::Signature::set_key_server
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::remove_subpkt
    - pgp::pkt::Signature::add_subpkt
    - auto::set_keyserver
    - pgp::pkt::Signature::find_subpkt
    - std::string::empty
    - sigsub::PreferredKeyserver::PreferredKeyserver
    - std::unique_ptr<sigsub::PreferredKeyserver>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_key_server(const std::string &uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Trust *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:537,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:537,1
    - Dst: auto::level
      Src: /src/rnp/src/librepgp/stream-sig.cpp:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 539
    functionName: pgp::pkt::Signature::trust_level
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::level
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::Trust *>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Signature::trust_level() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Trust *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:544,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:544,1
    - Dst: auto::amount
      Src: /src/rnp/src/librepgp/stream-sig.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 546
    functionName: pgp::pkt::Signature::trust_amount
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::amount
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::Trust *>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Signature::trust_amount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::Trust>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:551,1
    - Dst: sigsub::Trust::Trust
      Src: /src/rnp/src/librepgp/stream-sig.cpp:551,1
    - Dst: auto::set_level
      Src: /src/rnp/src/librepgp/stream-sig.cpp:552,1
    - Dst: auto::set_amount
      Src: /src/rnp/src/librepgp/stream-sig.cpp:553,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:554,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - level
    - amount
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 548
    functionDepth: 1
    functionLinenumber: 548
    functionLinenumberEnd: 555
    functionName: pgp::pkt::Signature::set_trust
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<sigsub::Trust>
    - pgp::pkt::Signature::add_subpkt
    - sigsub::Trust::Trust
    - auto::set_level
    - auto::set_amount
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_trust(uint8_t level, uint8_t amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Revocable *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:560,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:560,1
    - Dst: auto::revocable
      Src: /src/rnp/src/librepgp/stream-sig.cpp:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 562
    functionName: pgp::pkt::Signature::revocable
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::revocable
    - dynamic_cast<const sigsub::Revocable *>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::revocable() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::Revocable>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:567,1
    - Dst: sigsub::Revocable::Revocable
      Src: /src/rnp/src/librepgp/stream-sig.cpp:567,1
    - Dst: auto::set_revocable
      Src: /src/rnp/src/librepgp/stream-sig.cpp:568,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:569,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - status
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 564
    functionDepth: 1
    functionLinenumber: 564
    functionLinenumberEnd: 570
    functionName: pgp::pkt::Signature::set_revocable
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - sigsub::Revocable::Revocable
    - auto::set_revocable
    - std::move
    - std::unique_ptr<sigsub::Revocable>
    linkageType: ''
    returnType: void
    signature: void Signature::set_revocable(bool status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::RevocationReason *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:575,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:576,1
    - Dst: auto::reason
      Src: /src/rnp/src/librepgp/stream-sig.cpp:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 578
    functionName: pgp::pkt::Signature::revocation_reason
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - auto::reason
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::RevocationReason *>
    linkageType: ''
    returnType: std::string
    signature: std::string Signature::revocation_reason() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::RevocationReason *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:583,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:584,1
    - Dst: auto::code
      Src: /src/rnp/src/librepgp/stream-sig.cpp:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 586
    functionName: pgp::pkt::Signature::revocation_code
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - auto::code
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::RevocationReason *>
    linkageType: ''
    returnType: pgp_revocation_type_t
    signature: pgp_revocation_type_t Signature::revocation_code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 592
    functionName: pgp::pkt::Signature::has_revocation_reason
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::has_revocation_reason() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::RevocationReason>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:597,1
    - Dst: sigsub::RevocationReason::RevocationReason
      Src: /src/rnp/src/librepgp/stream-sig.cpp:597,1
    - Dst: auto::set_code
      Src: /src/rnp/src/librepgp/stream-sig.cpp:598,1
    - Dst: auto::set_reason
      Src: /src/rnp/src/librepgp/stream-sig.cpp:599,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:600,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - code
    - reason
    argTypes:
    - pgp_revocation_type_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 601
    functionName: pgp::pkt::Signature::set_revocation_reason
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::set_reason
    - pgp::pkt::Signature::add_subpkt
    - auto::set_code
    - sigsub::RevocationReason::RevocationReason
    - std::unique_ptr<sigsub::RevocationReason>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_revocation_reason(pgp_revocation_type_t code, const
      std::string &reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Features *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:606,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:606,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-sig.cpp:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 608
    functionName: pgp::pkt::Signature::key_get_features
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::features
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::Features *>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Signature::key_get_features() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Features *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:613,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:613,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-sig.cpp:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 615
    functionName: pgp::pkt::Signature::key_has_features
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::features
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::Features *>
    linkageType: ''
    returnType: bool
    signature: bool Signature::key_has_features(uint32_t flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::Features>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:620,1
    - Dst: sigsub::Features::Features
      Src: /src/rnp/src/librepgp/stream-sig.cpp:620,1
    - Dst: auto::set_features
      Src: /src/rnp/src/librepgp/stream-sig.cpp:621,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:622,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 617
    functionDepth: 1
    functionLinenumber: 617
    functionLinenumberEnd: 623
    functionName: pgp::pkt::Signature::set_key_features
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_features
    - std::unique_ptr<sigsub::Features>
    - sigsub::Features::Features
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_key_features(uint32_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::SignersUserID *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:629,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:629,1
    - Dst: auto::signer
      Src: /src/rnp/src/librepgp/stream-sig.cpp:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 625
    functionDepth: 2
    functionLinenumber: 625
    functionLinenumberEnd: 631
    functionName: pgp::pkt::Signature::signer_uid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const sigsub::SignersUserID *>
    - auto::signer
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: std::string
    signature: std::string Signature::signer_uid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::SignersUserID>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:636,1
    - Dst: sigsub::SignersUserID::SignersUserID
      Src: /src/rnp/src/librepgp/stream-sig.cpp:636,1
    - Dst: auto::set_signer
      Src: /src/rnp/src/librepgp/stream-sig.cpp:637,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:638,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uid
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 633
    functionDepth: 1
    functionLinenumber: 633
    functionLinenumberEnd: 639
    functionName: pgp::pkt::Signature::set_signer_uid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::set_signer
    - std::unique_ptr<sigsub::SignersUserID>
    - pgp::pkt::Signature::add_subpkt
    - sigsub::SignersUserID::SignersUserID
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_signer_uid(const std::string &uid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:647,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:647,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:648,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-sig.cpp:649,1
    - Dst: std::unique_ptr<sigsub::NotationData>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:652,1
    - Dst: sigsub::NotationData::NotationData
      Src: /src/rnp/src/librepgp/stream-sig.cpp:652,1
    - Dst: auto::set_human_readable
      Src: /src/rnp/src/librepgp/stream-sig.cpp:653,1
    - Dst: auto::set_name
      Src: /src/rnp/src/librepgp/stream-sig.cpp:654,1
    - Dst: auto::set_value
      Src: /src/rnp/src/librepgp/stream-sig.cpp:655,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:656,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:656,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - '         name'
    - value
    - human
    - critical
    argTypes:
    - std::string
    - std::vector<uint8_t>
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 641
    functionDepth: 1
    functionLinenumber: 641
    functionLinenumberEnd: 657
    functionName: pgp::pkt::Signature::add_notation
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>::size
    - auto::set_value
    - pgp::pkt::Signature::add_subpkt
    - std::move
    - std::unique_ptr<sigsub::NotationData>
    - auto::set_human_readable
    - rnp::rnp_exception::rnp_exception
    - sigsub::NotationData::NotationData
    - auto::set_name
    - size
    linkageType: ''
    returnType: void
    signature: "void Signature::add_notation(const std::string &         name,\n                        const
      std::vector<uint8_t> &value,\n                        bool                        human,\n
      \                       bool                        critical)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::add_notation
      Src: /src/rnp/src/librepgp/stream-sig.cpp:662,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:662,1
    - Dst: std::string::begin
      Src: /src/rnp/src/librepgp/stream-sig.cpp:662,1
    - Dst: std::string::end
      Src: /src/rnp/src/librepgp/stream-sig.cpp:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - value
    - critical
    argTypes:
    - std::string
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 663
    functionName: pgp::pkt::Signature::add_notation
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - std::vector<uint8_t>
    - std::string::begin
    - pgp::pkt::Signature::add_notation
    - std::string::end
    linkageType: ''
    returnType: void
    signature: void Signature::add_notation(const std::string &name, const std::string
      &value, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::EmbeddedSignature>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:669,1
    - Dst: sigsub::EmbeddedSignature::EmbeddedSignature
      Src: /src/rnp/src/librepgp/stream-sig.cpp:669,1
    - Dst: auto::set_signature
      Src: /src/rnp/src/librepgp/stream-sig.cpp:670,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:671,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - esig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 665
    functionDepth: 1
    functionLinenumber: 665
    functionLinenumberEnd: 672
    functionName: pgp::pkt::Signature::set_embedded_sig
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - sigsub::EmbeddedSignature::EmbeddedSignature
    - std::unique_ptr<sigsub::EmbeddedSignature>
    - auto::set_signature
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_embedded_sig(const Signature &esig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::RevocationKey *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:677,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 674
    functionDepth: 2
    functionLinenumber: 674
    functionLinenumberEnd: 679
    functionName: pgp::pkt::Signature::revoker_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const sigsub::RevocationKey *>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: sigsub::RevocationKey
    signature: 'sigsub::RevocationKey *

      Signature::revoker_subpkt() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::revoker_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 681
    functionDepth: 3
    functionLinenumber: 681
    functionLinenumberEnd: 685
    functionName: pgp::pkt::Signature::has_revoker
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::revoker_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::has_revoker() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::revoker_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:690,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:691,1
    - Dst: Fingerprint
      Src: /src/rnp/src/librepgp/stream-sig.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 687
    functionDepth: 3
    functionLinenumber: 687
    functionLinenumberEnd: 692
    functionName: pgp::pkt::Signature::revoker
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::fp
    - pgp::pkt::Signature::revoker_subpkt
    - Fingerprint
    linkageType: ''
    returnType: Fingerprint
    signature: Fingerprint Signature::revoker() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::RevocationKey>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:697,1
    - Dst: sigsub::RevocationKey::RevocationKey
      Src: /src/rnp/src/librepgp/stream-sig.cpp:697,1
    - Dst: auto::set_rev_class
      Src: /src/rnp/src/librepgp/stream-sig.cpp:698,1
    - Dst: auto::set_alg
      Src: /src/rnp/src/librepgp/stream-sig.cpp:699,1
    - Dst: rnp::Key::alg
      Src: /src/rnp/src/librepgp/stream-sig.cpp:699,1
    - Dst: auto::set_fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:700,1
    - Dst: rnp::Key::fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:700,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:701,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - revoker
    - sensitive
    argTypes:
    - rnp::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 702
    functionName: pgp::pkt::Signature::set_revoker
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key::alg
    - pgp::pkt::Signature::add_subpkt
    - auto::set_fp
    - sigsub::RevocationKey::RevocationKey
    - rnp::Key::fp
    - auto::set_rev_class
    - auto::set_alg
    - std::unique_ptr<sigsub::RevocationKey>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_revoker(const rnp::Key &revoker, bool sensitive)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:708,1
    - Dst: std::invalid_argument
      Src: /src/rnp/src/librepgp/stream-sig.cpp:709,1
    - Dst: std::unique_ptr<sigsub::Raw>::write
      Src: /src/rnp/src/librepgp/stream-sig.cpp:712,1
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:714,1
    - Dst: std::unique_ptr<sigsub::Raw>::raw_type
      Src: /src/rnp/src/librepgp/stream-sig.cpp:714,1
    - Dst: std::unique_ptr<sigsub::Raw>::hashed
      Src: /src/rnp/src/librepgp/stream-sig.cpp:714,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:716,1
    - Dst: items::push_back
      Src: /src/rnp/src/librepgp/stream-sig.cpp:720,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:720,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - sub
    - replace
    argTypes:
    - std::unique_ptr<sigsub::Raw>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 721
    functionName: pgp::pkt::Signature::add_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 18
    functionsReached:
    - RNP_LOG
    - std::unique_ptr<sigsub::Raw>::hashed
    - std::invalid_argument
    - pgp::pkt::Signature::find_subpkt
    - std::move
    - std::unique_ptr<sigsub::Raw>::write
    - items::push_back
    - std::unique_ptr<sigsub::Raw>::raw_type
    linkageType: ''
    returnType: void
    signature: void Signature::add_subpkt(std::unique_ptr<sigsub::Raw> &&sub, bool
      replace)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:726,1
    - Dst: items::erase
      Src: /src/rnp/src/librepgp/stream-sig.cpp:727,1
    - Dst: begin
      Src: /src/rnp/src/librepgp/stream-sig.cpp:727,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 729
    functionName: pgp::pkt::Signature::remove_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - begin
    - size
    - items::erase
    linkageType: ''
    returnType: void
    signature: void Signature::remove_subpkt(size_t idx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::has_keyid
      Src: /src/rnp/src/librepgp/stream-sig.cpp:734,1
    - Dst: pgp::pkt::Signature::keyid
      Src: /src/rnp/src/librepgp/stream-sig.cpp:744,1
    - Dst: pgp::pkt::Signature::keyfp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:755,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 1
    argNames:
    - onepass
    argTypes:
    - pgp_one_pass_sig_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 731
    functionDepth: 3
    functionLinenumber: 731
    functionLinenumberEnd: 766
    functionName: pgp::pkt::Signature::matches_onepass
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::has_keyid
    - pgp::pkt::Signature::keyid
    - pgp::pkt::Signature::keyfp
    linkageType: ''
    returnType: bool
    signature: bool Signature::matches_onepass(const pgp_one_pass_sig_t &onepass)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - version
    argTypes:
    - pgp_version_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 779
    functionName: pgp::pkt::Signature::version_supported
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Signature::version_supported(pgp_version_t version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:786,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:787,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:792,1
    - Dst: assign
      Src: /src/rnp/src/librepgp/stream-sig.cpp:796,1
    - Dst: read_uint32
      Src: /src/rnp/src/librepgp/stream-sig.cpp:800,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-sig.cpp:804,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 810
    functionName: pgp::pkt::Signature::parse_v2v3
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - data
    - memcpy
    - pgp_packet_body_t::get
    - read_uint32
    - assign
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Signature::parse_v2v3(pgp_packet_body_t &pkt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:820,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:821,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:825,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:837,1
    - Dst: read_uint32
      Src: /src/rnp/src/librepgp/stream-sig.cpp:840,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:846,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:852,1
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/librepgp/stream-sig.cpp:856,1
    - Dst: items::push_back
      Src: /src/rnp/src/librepgp/stream-sig.cpp:860,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:860,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - buf
    - len
    - hashed
    argTypes:
    - uint8_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 866
    functionName: pgp::pkt::Signature::parse_subpackets
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::pkt::sigsub::Raw::create
    - read_uint32
    - std::move
    - items::push_back
    - size
    linkageType: ''
    returnType: bool
    signature: bool Signature::parse_subpackets(uint8_t *buf, size_t len, bool hashed)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:875,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:884,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:892,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - pkt
    - splen
    argTypes:
    - pgp_packet_body_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 895
    functionName: pgp::pkt::Signature::get_subpkt_len
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool Signature::get_subpkt_len(pgp_packet_body_t &pkt, size_t &splen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:903,1
    - Dst: raw_type
      Src: /src/rnp/src/librepgp/stream-sig.cpp:904,1
    - Dst: hashed
      Src: /src/rnp/src/librepgp/stream-sig.cpp:904,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - stype
    - hashed
    - skip
    argTypes:
    - uint8_t
    - bool
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 913
    functionName: pgp::pkt::Signature::find_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 6
    functionsReached:
    - raw_type
    - size
    - hashed
    linkageType: ''
    returnType: size_t
    signature: size_t Signature::find_subpkt(uint8_t stype, bool hashed, size_t skip)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:918,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - hashed
    - skip
    argTypes:
    - sigsub::Type
    - bool
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 919
    functionName: pgp::pkt::Signature::find_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 7
    functionsReached:
    - pgp::pkt::Signature::find_subpkt
    - static_cast<uint8_t>
    linkageType: ''
    returnType: size_t
    signature: size_t Signature::find_subpkt(sigsub::Type type, bool hashed, size_t
      skip) const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:926,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:927,1
    - Dst: pgp_packet_body_t::cur
      Src: /src/rnp/src/librepgp/stream-sig.cpp:940,1
    - Dst: pgp::pkt::Signature::get_subpkt_len
      Src: /src/rnp/src/librepgp/stream-sig.cpp:941,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:942,1
    - Dst: pgp_packet_body_t::cur
      Src: /src/rnp/src/librepgp/stream-sig.cpp:945,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-sig.cpp:947,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:948,1
    - Dst: resize
      Src: /src/rnp/src/librepgp/stream-sig.cpp:953,1
    - Dst: pgp_packet_body_t::skip_back
      Src: /src/rnp/src/librepgp/stream-sig.cpp:956,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:958,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:958,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:959,1
    - Dst: pgp::pkt::Signature::parse_subpackets
      Src: /src/rnp/src/librepgp/stream-sig.cpp:963,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:963,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:964,1
    - Dst: pgp::pkt::Signature::get_subpkt_len
      Src: /src/rnp/src/librepgp/stream-sig.cpp:969,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:970,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-sig.cpp:973,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:974,1
    - Dst: pgp::pkt::Signature::parse_subpackets
      Src: /src/rnp/src/librepgp/stream-sig.cpp:977,1
    - Dst: pgp_packet_body_t::cur
      Src: /src/rnp/src/librepgp/stream-sig.cpp:977,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:978,1
    - Dst: pgp_packet_body_t::skip
      Src: /src/rnp/src/librepgp/stream-sig.cpp:981,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 921
    functionDepth: 2
    functionLinenumber: 921
    functionLinenumberEnd: 983
    functionName: pgp::pkt::Signature::parse_v4up
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - data
    - pgp_packet_body_t::skip_back
    - pgp::pkt::Signature::get_subpkt_len
    - pgp_packet_body_t::cur
    - resize
    - pgp_packet_body_t::get
    - pgp_packet_body_t::left
    - pgp::pkt::Signature::parse_subpackets
    - pgp_packet_body_t::skip
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Signature::parse_v4up(pgp_packet_body_t &pkt)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:989,1
    - Dst: pgp::pkt::Signature::parse_v2v3
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1000,1
    - Dst: pgp::pkt::Signature::parse_v4up
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1009,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1012,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1021,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1021,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1022,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1029,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1030,1
    - Dst: pgp::pkt::Signature::v6_salt_size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1034,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1035,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1039,1
    - Dst: resize
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1042,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1043,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1043,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1044,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1052,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1052,1
    - Dst: pgp::pkt::Signature::parse_material
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1054,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 985
    functionDepth: 3
    functionLinenumber: 985
    functionLinenumberEnd: 1058
    functionName: pgp::pkt::Signature::parse
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 20
    functionsReached:
    - RNP_LOG
    - pgp::pkt::Signature::parse_material
    - data
    - pgp::pkt::Signature::parse_v4up
    - pgp::pkt::Signature::parse_v2v3
    - resize
    - pgp_packet_body_t::get
    - pgp_packet_body_t::left
    - pgp::pkt::Signature::v6_salt_size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Signature::parse(pgp_packet_body_t &pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::read
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1064,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1068,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1060
    functionDepth: 1
    functionLinenumber: 1060
    functionLinenumberEnd: 1069
    functionName: pgp::pkt::Signature::parse
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 21
    functionsReached:
    - pgp::pkt::Signature::parse
    - pgp_packet_body_t::read
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Signature::parse(pgp_source_t &src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::SigMaterial::create
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1074,1
    - Dst: auto::parse
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1079,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1082,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1083,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1083,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1087
    functionName: pgp::pkt::Signature::parse_material
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - auto::parse
    - pgp::SigMaterial::create
    - pgp_packet_body_t::left
    linkageType: ''
    returnType: std::unique_ptr<SigMaterial>
    signature: std::unique_ptr<SigMaterial> Signature::parse_material() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::version_supported
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1092,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1093,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1094,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1101,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1102,1
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1102,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1103,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1104,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1105,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1106,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1109,1
    - Dst: pgp_packet_body_t::add_subpackets
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1110,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1112,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1112,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1115,1
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1115,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1116,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1120,1
    - Dst: pgp_packet_body_t::write
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - dst
    - hdr
    argTypes:
    - pgp_dest_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1122
    functionName: pgp::pkt::Signature::write
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::write
    - data
    - pgp::pkt::Signature::version_supported
    - pgp_packet_body_t::add_byte
    - pgp_packet_body_t::add_subpackets
    - pgp_packet_body_t::add
    - rnp::rnp_exception::rnp_exception
    - size
    linkageType: ''
    returnType: void
    signature: void Signature::write(pgp_dest_t &dst, bool hdr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::MemoryDest::MemoryDest
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1127,1
    - Dst: pgp::pkt::Signature::write
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1128,1
    - Dst: rnp::MemoryDest::dst
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1128,1
    - Dst: rnp::MemoryDest::to_vector
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1124
    functionDepth: 1
    functionLinenumber: 1124
    functionLinenumberEnd: 1130
    functionName: pgp::pkt::Signature::write
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - rnp::MemoryDest::to_vector
    - pgp::pkt::Signature::write
    - rnp::MemoryDest::MemoryDest
    - rnp::MemoryDest::dst
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::write(bool hdr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SigMaterial::write
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1136,1
    - Dst: assign
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1137,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1137,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1137,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - material
    argTypes:
    - SigMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1138
    functionName: pgp::pkt::Signature::write_material
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::data
    - assign
    - pgp_packet_body_t::size
    - SigMaterial::write
    linkageType: ''
    returnType: void
    signature: void Signature::write_material(const SigMaterial &material)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::version_supported
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1144,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1145,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1146,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1150,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1150,1
    - Dst: pgp_packet_body_t::add_uint32
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1151,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1153,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1154,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1154,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1155,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1156,1
    - Dst: pgp_packet_body_t::add_subpackets
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1157,1
    - Dst: assign
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1159,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1159,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1159,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1160
    functionName: pgp::pkt::Signature::fill_hashed_data
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::add_uint32
    - pgp::pkt::Signature::version_supported
    - pgp_packet_body_t::add_byte
    - pgp_packet_body_t::add_subpackets
    - pgp_packet_body_t::data
    - pgp_packet_body_t::size
    - rnp::rnp_exception::rnp_exception
    - assign
    - pgp::pkt::Signature::type
    linkageType: ''
    returnType: void
    signature: void Signature::fill_hashed_data()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - halg
    - salt_size
    argTypes:
    - pgp_hash_alg_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1190
    functionName: pgp::pkt::Signature::v6_salt_size
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: bool
    signature: bool Signature::v6_salt_size(pgp_hash_alg_t halg, size_t *salt_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: Signature::operator==(const Signature &src) const
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Signature::operator==(const Signature &src) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: Signature::operator!=(const Signature &src) const
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Signature::operator!=(const Signature &src) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/librepgp/stream-sig.cpp:210,1
    - Dst: auto::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:211,1
    - Dst: auto::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:212,1
    - Dst: auto::finish
      Src: /src/rnp/src/librepgp/stream-sig.cpp:216,1
    - Dst: SigID::data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 218
    functionName: pgp::pkt::Signature::get_id
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - rnp::Hash::create
    - SigID::data
    - auto::add
    - auto::finish
    linkageType: ''
    returnType: SigID
    signature: SigID Signature::get_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:223,1
    - Dst: get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stype
    - hashed
    argTypes:
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: pgp::pkt::Signature::get_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 23
    functionsReached:
    - pgp::pkt::Signature::find_subpkt
    - get
    linkageType: ''
    returnType: sigsub::Raw
    signature: 'sigsub::Raw *

      Signature::get_subpkt(uint8_t stype, bool hashed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:230,1
    - Dst: get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stype
    - hashed
    argTypes:
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: pgp::pkt::Signature::get_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 23
    functionsReached:
    - pgp::pkt::Signature::find_subpkt
    - get
    linkageType: ''
    returnType: sigsub::Raw
    signature: 'sigsub::Raw *

      Signature::get_subpkt(uint8_t stype, bool hashed) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:237,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - hashed
    argTypes:
    - sigsub::Type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: pgp::pkt::Signature::get_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 24
    functionsReached:
    - pgp::pkt::Signature::get_subpkt
    - static_cast<uint8_t>
    linkageType: ''
    returnType: sigsub::Raw
    signature: 'sigsub::Raw *

      Signature::get_subpkt(sigsub::Type type, bool hashed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:243,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - hashed
    argTypes:
    - sigsub::Type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: pgp::pkt::Signature::get_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 25
    functionsReached:
    - pgp::pkt::Signature::get_subpkt
    - static_cast<uint8_t>
    linkageType: ''
    returnType: sigsub::Raw
    signature: 'sigsub::Raw *

      Signature::get_subpkt(sigsub::Type type, bool hashed) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stype
    - hashed
    argTypes:
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: pgp::pkt::Signature::has_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 3
    functionsReached:
    - pgp::pkt::Signature::find_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::has_subpkt(uint8_t stype, bool hashed) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::has_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:255,1
    - Dst: pgp::pkt::Signature::has_keyfp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 257
    functionName: pgp::pkt::Signature::has_keyid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - pgp::pkt::Signature::has_keyfp
    - pgp::pkt::Signature::has_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::has_keyid() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::IssuerKeyID *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:269,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:270,1
    - Dst: auto::keyid
      Src: /src/rnp/src/librepgp/stream-sig.cpp:272,1
    - Dst: pgp::pkt::Signature::keyfp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 277
    functionName: pgp::pkt::Signature::keyid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - auto::keyid
    - pgp::pkt::Signature::get_subpkt
    - pgp::pkt::Signature::keyfp
    - dynamic_cast<const sigsub::IssuerKeyID *>
    linkageType: ''
    returnType: KeyID
    signature: KeyID Signature::keyid() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::IssuerKeyID>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:287,1
    - Dst: sigsub::IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/librepgp/stream-sig.cpp:287,1
    - Dst: auto::set_keyid
      Src: /src/rnp/src/librepgp/stream-sig.cpp:288,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:289,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - id
    argTypes:
    - KeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 290
    functionName: pgp::pkt::Signature::set_keyid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_keyid
    - std::unique_ptr<sigsub::IssuerKeyID>
    - sigsub::IssuerKeyID::IssuerKeyID
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_keyid(const KeyID &id)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::IssuerFingerprint *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:295,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:296,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:302,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 311
    functionName: pgp::pkt::Signature::has_keyfp
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 3
    functionsReached:
    - auto::fp
    - dynamic_cast<const sigsub::IssuerFingerprint *>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::has_keyfp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::IssuerFingerprint *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:316,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:317,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: pgp::pkt::Signature::keyfp
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 4
    functionsReached:
    - auto::fp
    - dynamic_cast<const sigsub::IssuerFingerprint *>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: Fingerprint
    signature: Fingerprint Signature::keyfp() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::IssuerFingerprint>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:324,1
    - Dst: sigsub::IssuerFingerprint::IssuerFingerprint
      Src: /src/rnp/src/librepgp/stream-sig.cpp:324,1
    - Dst: auto::set_version
      Src: /src/rnp/src/librepgp/stream-sig.cpp:326,1
    - Dst: auto::set_version
      Src: /src/rnp/src/librepgp/stream-sig.cpp:328,1
    - Dst: auto::set_fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:330,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:331,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fp
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 332
    functionName: pgp::pkt::Signature::set_keyfp
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - sigsub::IssuerFingerprint::IssuerFingerprint
    - pgp::pkt::Signature::add_subpkt
    - auto::set_fp
    - std::unique_ptr<sigsub::IssuerFingerprint>
    - auto::set_version
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_keyfp(const Fingerprint &fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::CreationTime *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:341,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:341,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 343
    functionName: pgp::pkt::Signature::creation
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - auto::time
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::CreationTime *>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Signature::creation() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::CreationTime>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:352,1
    - Dst: sigsub::CreationTime::CreationTime
      Src: /src/rnp/src/librepgp/stream-sig.cpp:352,1
    - Dst: auto::set_time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:353,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:354,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctime
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 355
    functionName: pgp::pkt::Signature::set_creation
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_time
    - std::unique_ptr<sigsub::CreationTime>
    - sigsub::CreationTime::CreationTime
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_creation(uint32_t ctime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::ExpirationTime *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:361,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:361,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 363
    functionName: pgp::pkt::Signature::expiration
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - dynamic_cast<const sigsub::ExpirationTime *>
    - auto::time
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Signature::expiration() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::ExpirationTime>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:368,1
    - Dst: sigsub::ExpirationTime::ExpirationTime
      Src: /src/rnp/src/librepgp/stream-sig.cpp:368,1
    - Dst: auto::set_time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:369,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:370,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - etime
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 371
    functionName: pgp::pkt::Signature::set_expiration
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_time
    - sigsub::ExpirationTime::ExpirationTime
    - std::unique_ptr<sigsub::ExpirationTime>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_expiration(uint32_t etime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::KeyExpirationTime *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:376,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:377,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 379
    functionName: pgp::pkt::Signature::key_expiration
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::time
    - dynamic_cast<const sigsub::KeyExpirationTime *>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Signature::key_expiration() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::KeyExpirationTime>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:384,1
    - Dst: sigsub::KeyExpirationTime::KeyExpirationTime
      Src: /src/rnp/src/librepgp/stream-sig.cpp:384,1
    - Dst: auto::set_time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:385,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:386,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - etime
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 387
    functionName: pgp::pkt::Signature::set_key_expiration
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_time
    - sigsub::KeyExpirationTime::KeyExpirationTime
    - std::unique_ptr<sigsub::KeyExpirationTime>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_key_expiration(uint32_t etime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::KeyFlags *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:392,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:392,1
    - Dst: auto::flags
      Src: /src/rnp/src/librepgp/stream-sig.cpp:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 394
    functionName: pgp::pkt::Signature::key_flags
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::flags
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::KeyFlags *>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Signature::key_flags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::KeyFlags>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:399,1
    - Dst: sigsub::KeyFlags::KeyFlags
      Src: /src/rnp/src/librepgp/stream-sig.cpp:399,1
    - Dst: auto::set_flags
      Src: /src/rnp/src/librepgp/stream-sig.cpp:400,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:401,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 402
    functionName: pgp::pkt::Signature::set_key_flags
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_flags
    - sigsub::KeyFlags::KeyFlags
    - std::unique_ptr<sigsub::KeyFlags>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_key_flags(uint8_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::PrimaryUserID *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:408,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:408,1
    - Dst: auto::primary
      Src: /src/rnp/src/librepgp/stream-sig.cpp:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 410
    functionName: pgp::pkt::Signature::primary_uid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const sigsub::PrimaryUserID *>
    - pgp::pkt::Signature::get_subpkt
    - auto::primary
    linkageType: ''
    returnType: bool
    signature: bool Signature::primary_uid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::PrimaryUserID>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:415,1
    - Dst: sigsub::PrimaryUserID::PrimaryUserID
      Src: /src/rnp/src/librepgp/stream-sig.cpp:415,1
    - Dst: auto::set_primary
      Src: /src/rnp/src/librepgp/stream-sig.cpp:416,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:417,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - primary
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 418
    functionName: pgp::pkt::Signature::set_primary_uid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - sigsub::PrimaryUserID::PrimaryUserID
    - pgp::pkt::Signature::add_subpkt
    - auto::set_primary
    - std::unique_ptr<sigsub::PrimaryUserID>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_primary_uid(bool primary)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Preferred *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:423,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:423,1
    - Dst: auto::algs
      Src: /src/rnp/src/librepgp/stream-sig.cpp:424,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - sigsub::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 425
    functionName: pgp::pkt::Signature::preferred
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 4
    functionsReached:
    - dynamic_cast<const sigsub::Preferred *>
    - auto::algs
    - std::vector<uint8_t>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::preferred(sigsub::Type type) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::empty
      Src: /src/rnp/src/librepgp/stream-sig.cpp:430,1
    - Dst: pgp::pkt::Signature::remove_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:432,1
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:432,1
    - Dst: pgp::pkt::Signature::remove_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:433,1
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:433,1
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/librepgp/stream-sig.cpp:437,1
    - Dst: dynamic_cast<sigsub::Preferred *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:438,1
    - Dst: auto::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:438,1
    - Dst: auto::set_algs
      Src: /src/rnp/src/librepgp/stream-sig.cpp:442,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:443,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - data
    - type
    argTypes:
    - std::vector<uint8_t>
    - sigsub::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 444
    functionName: pgp::pkt::Signature::set_preferred
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 4
    functionsReached:
    - pgp::pkt::Signature::remove_subpkt
    - pgp::pkt::sigsub::Raw::create
    - pgp::pkt::Signature::add_subpkt
    - std::vector<uint8_t>::empty
    - auto::set_algs
    - pgp::pkt::Signature::find_subpkt
    - auto::get
    - dynamic_cast<sigsub::Preferred *>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_preferred(const std::vector<uint8_t> &data, sigsub::Type
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 446
    functionDepth: 3
    functionLinenumber: 446
    functionLinenumberEnd: 450
    functionName: pgp::pkt::Signature::preferred_symm_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::preferred
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::preferred_symm_algs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::set_preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 456
    functionName: pgp::pkt::Signature::set_preferred_symm_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::set_preferred
    linkageType: ''
    returnType: void
    signature: void Signature::set_preferred_symm_algs(const std::vector<uint8_t>
      &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 458
    functionDepth: 3
    functionLinenumber: 458
    functionLinenumberEnd: 462
    functionName: pgp::pkt::Signature::preferred_hash_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::preferred
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::preferred_hash_algs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::set_preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 468
    functionName: pgp::pkt::Signature::set_preferred_hash_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::set_preferred
    linkageType: ''
    returnType: void
    signature: void Signature::set_preferred_hash_algs(const std::vector<uint8_t>
      &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 470
    functionDepth: 3
    functionLinenumber: 470
    functionLinenumberEnd: 474
    functionName: pgp::pkt::Signature::preferred_z_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::preferred
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::preferred_z_algs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::set_preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 480
    functionName: pgp::pkt::Signature::set_preferred_z_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::set_preferred
    linkageType: ''
    returnType: void
    signature: void Signature::set_preferred_z_algs(const std::vector<uint8_t> &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::set_preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 487
    functionName: pgp::pkt::Signature::set_preferred_aead_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::set_preferred
    linkageType: ''
    returnType: void
    signature: void Signature::set_preferred_aead_algs(const std::vector<uint8_t>
      &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 489
    functionDepth: 3
    functionLinenumber: 489
    functionLinenumberEnd: 493
    functionName: pgp::pkt::Signature::preferred_aead_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::preferred
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::preferred_aead_algs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::KeyserverPrefs *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:500,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:500,1
    - Dst: auto::raw
      Src: /src/rnp/src/librepgp/stream-sig.cpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 502
    functionName: pgp::pkt::Signature::key_server_prefs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::raw
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::KeyserverPrefs *>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Signature::key_server_prefs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::KeyserverPrefs>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:507,1
    - Dst: sigsub::KeyserverPrefs::KeyserverPrefs
      Src: /src/rnp/src/librepgp/stream-sig.cpp:507,1
    - Dst: auto::set_raw
      Src: /src/rnp/src/librepgp/stream-sig.cpp:508,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:509,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - prefs
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 510
    functionName: pgp::pkt::Signature::set_key_server_prefs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - sigsub::KeyserverPrefs::KeyserverPrefs
    - auto::set_raw
    - pgp::pkt::Signature::add_subpkt
    - std::move
    - std::unique_ptr<sigsub::KeyserverPrefs>
    linkageType: ''
    returnType: void
    signature: void Signature::set_key_server_prefs(uint8_t prefs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::PreferredKeyserver *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:515,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:516,1
    - Dst: auto::keyserver
      Src: /src/rnp/src/librepgp/stream-sig.cpp:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 518
    functionName: pgp::pkt::Signature::key_server
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const sigsub::PreferredKeyserver *>
    - pgp::pkt::Signature::get_subpkt
    - auto::keyserver
    linkageType: ''
    returnType: std::string
    signature: std::string Signature::key_server() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/rnp/src/librepgp/stream-sig.cpp:523,1
    - Dst: pgp::pkt::Signature::remove_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:524,1
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:524,1
    - Dst: pgp::pkt::Signature::remove_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:525,1
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:525,1
    - Dst: std::unique_ptr<sigsub::PreferredKeyserver>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:529,1
    - Dst: sigsub::PreferredKeyserver::PreferredKeyserver
      Src: /src/rnp/src/librepgp/stream-sig.cpp:529,1
    - Dst: auto::set_keyserver
      Src: /src/rnp/src/librepgp/stream-sig.cpp:530,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:531,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - uri
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 532
    functionName: pgp::pkt::Signature::set_key_server
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::remove_subpkt
    - pgp::pkt::Signature::add_subpkt
    - auto::set_keyserver
    - pgp::pkt::Signature::find_subpkt
    - std::string::empty
    - sigsub::PreferredKeyserver::PreferredKeyserver
    - std::unique_ptr<sigsub::PreferredKeyserver>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_key_server(const std::string &uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Trust *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:537,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:537,1
    - Dst: auto::level
      Src: /src/rnp/src/librepgp/stream-sig.cpp:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 539
    functionName: pgp::pkt::Signature::trust_level
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::level
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::Trust *>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Signature::trust_level() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Trust *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:544,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:544,1
    - Dst: auto::amount
      Src: /src/rnp/src/librepgp/stream-sig.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 546
    functionName: pgp::pkt::Signature::trust_amount
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::amount
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::Trust *>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Signature::trust_amount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::Trust>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:551,1
    - Dst: sigsub::Trust::Trust
      Src: /src/rnp/src/librepgp/stream-sig.cpp:551,1
    - Dst: auto::set_level
      Src: /src/rnp/src/librepgp/stream-sig.cpp:552,1
    - Dst: auto::set_amount
      Src: /src/rnp/src/librepgp/stream-sig.cpp:553,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:554,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - level
    - amount
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 548
    functionDepth: 2
    functionLinenumber: 548
    functionLinenumberEnd: 555
    functionName: pgp::pkt::Signature::set_trust
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<sigsub::Trust>
    - pgp::pkt::Signature::add_subpkt
    - sigsub::Trust::Trust
    - auto::set_level
    - auto::set_amount
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_trust(uint8_t level, uint8_t amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Revocable *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:560,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:560,1
    - Dst: auto::revocable
      Src: /src/rnp/src/librepgp/stream-sig.cpp:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 562
    functionName: pgp::pkt::Signature::revocable
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::revocable
    - dynamic_cast<const sigsub::Revocable *>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::revocable() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::Revocable>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:567,1
    - Dst: sigsub::Revocable::Revocable
      Src: /src/rnp/src/librepgp/stream-sig.cpp:567,1
    - Dst: auto::set_revocable
      Src: /src/rnp/src/librepgp/stream-sig.cpp:568,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:569,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - status
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 570
    functionName: pgp::pkt::Signature::set_revocable
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - sigsub::Revocable::Revocable
    - auto::set_revocable
    - std::move
    - std::unique_ptr<sigsub::Revocable>
    linkageType: ''
    returnType: void
    signature: void Signature::set_revocable(bool status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::RevocationReason *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:575,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:576,1
    - Dst: auto::reason
      Src: /src/rnp/src/librepgp/stream-sig.cpp:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 578
    functionName: pgp::pkt::Signature::revocation_reason
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - auto::reason
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::RevocationReason *>
    linkageType: ''
    returnType: std::string
    signature: std::string Signature::revocation_reason() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::RevocationReason *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:583,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:584,1
    - Dst: auto::code
      Src: /src/rnp/src/librepgp/stream-sig.cpp:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 586
    functionName: pgp::pkt::Signature::revocation_code
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - auto::code
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::RevocationReason *>
    linkageType: ''
    returnType: pgp_revocation_type_t
    signature: pgp_revocation_type_t Signature::revocation_code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 592
    functionName: pgp::pkt::Signature::has_revocation_reason
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::has_revocation_reason() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::RevocationReason>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:597,1
    - Dst: sigsub::RevocationReason::RevocationReason
      Src: /src/rnp/src/librepgp/stream-sig.cpp:597,1
    - Dst: auto::set_code
      Src: /src/rnp/src/librepgp/stream-sig.cpp:598,1
    - Dst: auto::set_reason
      Src: /src/rnp/src/librepgp/stream-sig.cpp:599,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:600,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - code
    - reason
    argTypes:
    - pgp_revocation_type_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 601
    functionName: pgp::pkt::Signature::set_revocation_reason
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::set_reason
    - pgp::pkt::Signature::add_subpkt
    - auto::set_code
    - sigsub::RevocationReason::RevocationReason
    - std::unique_ptr<sigsub::RevocationReason>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_revocation_reason(pgp_revocation_type_t code, const
      std::string &reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Features *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:606,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:606,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-sig.cpp:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 608
    functionName: pgp::pkt::Signature::key_get_features
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::features
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::Features *>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Signature::key_get_features() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Features *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:613,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:613,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-sig.cpp:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 615
    functionName: pgp::pkt::Signature::key_has_features
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::features
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::Features *>
    linkageType: ''
    returnType: bool
    signature: bool Signature::key_has_features(uint32_t flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::Features>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:620,1
    - Dst: sigsub::Features::Features
      Src: /src/rnp/src/librepgp/stream-sig.cpp:620,1
    - Dst: auto::set_features
      Src: /src/rnp/src/librepgp/stream-sig.cpp:621,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:622,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 623
    functionName: pgp::pkt::Signature::set_key_features
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_features
    - std::unique_ptr<sigsub::Features>
    - sigsub::Features::Features
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_key_features(uint32_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::SignersUserID *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:629,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:629,1
    - Dst: auto::signer
      Src: /src/rnp/src/librepgp/stream-sig.cpp:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 625
    functionDepth: 2
    functionLinenumber: 625
    functionLinenumberEnd: 631
    functionName: pgp::pkt::Signature::signer_uid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const sigsub::SignersUserID *>
    - auto::signer
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: std::string
    signature: std::string Signature::signer_uid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::SignersUserID>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:636,1
    - Dst: sigsub::SignersUserID::SignersUserID
      Src: /src/rnp/src/librepgp/stream-sig.cpp:636,1
    - Dst: auto::set_signer
      Src: /src/rnp/src/librepgp/stream-sig.cpp:637,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:638,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uid
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 639
    functionName: pgp::pkt::Signature::set_signer_uid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::set_signer
    - std::unique_ptr<sigsub::SignersUserID>
    - pgp::pkt::Signature::add_subpkt
    - sigsub::SignersUserID::SignersUserID
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_signer_uid(const std::string &uid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:647,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:647,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:648,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-sig.cpp:649,1
    - Dst: std::unique_ptr<sigsub::NotationData>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:652,1
    - Dst: sigsub::NotationData::NotationData
      Src: /src/rnp/src/librepgp/stream-sig.cpp:652,1
    - Dst: auto::set_human_readable
      Src: /src/rnp/src/librepgp/stream-sig.cpp:653,1
    - Dst: auto::set_name
      Src: /src/rnp/src/librepgp/stream-sig.cpp:654,1
    - Dst: auto::set_value
      Src: /src/rnp/src/librepgp/stream-sig.cpp:655,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:656,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:656,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - '         name'
    - value
    - human
    - critical
    argTypes:
    - std::string
    - std::vector<uint8_t>
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 657
    functionName: pgp::pkt::Signature::add_notation
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>::size
    - auto::set_value
    - pgp::pkt::Signature::add_subpkt
    - std::move
    - std::unique_ptr<sigsub::NotationData>
    - auto::set_human_readable
    - rnp::rnp_exception::rnp_exception
    - sigsub::NotationData::NotationData
    - auto::set_name
    - size
    linkageType: ''
    returnType: void
    signature: "void Signature::add_notation(const std::string &         name,\n                        const
      std::vector<uint8_t> &value,\n                        bool                        human,\n
      \                       bool                        critical)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::add_notation
      Src: /src/rnp/src/librepgp/stream-sig.cpp:662,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:662,1
    - Dst: std::string::begin
      Src: /src/rnp/src/librepgp/stream-sig.cpp:662,1
    - Dst: std::string::end
      Src: /src/rnp/src/librepgp/stream-sig.cpp:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - value
    - critical
    argTypes:
    - std::string
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 663
    functionName: pgp::pkt::Signature::add_notation
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 3
    functionsReached:
    - std::vector<uint8_t>
    - std::string::begin
    - pgp::pkt::Signature::add_notation
    - std::string::end
    linkageType: ''
    returnType: void
    signature: void Signature::add_notation(const std::string &name, const std::string
      &value, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::EmbeddedSignature>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:669,1
    - Dst: sigsub::EmbeddedSignature::EmbeddedSignature
      Src: /src/rnp/src/librepgp/stream-sig.cpp:669,1
    - Dst: auto::set_signature
      Src: /src/rnp/src/librepgp/stream-sig.cpp:670,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:671,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - esig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 672
    functionName: pgp::pkt::Signature::set_embedded_sig
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - sigsub::EmbeddedSignature::EmbeddedSignature
    - std::unique_ptr<sigsub::EmbeddedSignature>
    - auto::set_signature
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_embedded_sig(const Signature &esig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::RevocationKey *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:677,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 674
    functionDepth: 2
    functionLinenumber: 674
    functionLinenumberEnd: 679
    functionName: pgp::pkt::Signature::revoker_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - dynamic_cast<const sigsub::RevocationKey *>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: sigsub::RevocationKey
    signature: 'sigsub::RevocationKey *

      Signature::revoker_subpkt() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::revoker_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 681
    functionDepth: 3
    functionLinenumber: 681
    functionLinenumberEnd: 685
    functionName: pgp::pkt::Signature::has_revoker
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::revoker_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::has_revoker() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::revoker_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:690,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:691,1
    - Dst: Fingerprint
      Src: /src/rnp/src/librepgp/stream-sig.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 687
    functionDepth: 3
    functionLinenumber: 687
    functionLinenumberEnd: 692
    functionName: pgp::pkt::Signature::revoker
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::fp
    - pgp::pkt::Signature::revoker_subpkt
    - Fingerprint
    linkageType: ''
    returnType: Fingerprint
    signature: Fingerprint Signature::revoker() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::RevocationKey>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:697,1
    - Dst: sigsub::RevocationKey::RevocationKey
      Src: /src/rnp/src/librepgp/stream-sig.cpp:697,1
    - Dst: auto::set_rev_class
      Src: /src/rnp/src/librepgp/stream-sig.cpp:698,1
    - Dst: auto::set_alg
      Src: /src/rnp/src/librepgp/stream-sig.cpp:699,1
    - Dst: rnp::Key::alg
      Src: /src/rnp/src/librepgp/stream-sig.cpp:699,1
    - Dst: auto::set_fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:700,1
    - Dst: rnp::Key::fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:700,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:701,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - revoker
    - sensitive
    argTypes:
    - rnp::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 694
    functionDepth: 2
    functionLinenumber: 694
    functionLinenumberEnd: 702
    functionName: pgp::pkt::Signature::set_revoker
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key::alg
    - pgp::pkt::Signature::add_subpkt
    - auto::set_fp
    - sigsub::RevocationKey::RevocationKey
    - rnp::Key::fp
    - auto::set_rev_class
    - auto::set_alg
    - std::unique_ptr<sigsub::RevocationKey>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_revoker(const rnp::Key &revoker, bool sensitive)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:708,1
    - Dst: std::invalid_argument
      Src: /src/rnp/src/librepgp/stream-sig.cpp:709,1
    - Dst: std::unique_ptr<sigsub::Raw>::write
      Src: /src/rnp/src/librepgp/stream-sig.cpp:712,1
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:714,1
    - Dst: std::unique_ptr<sigsub::Raw>::raw_type
      Src: /src/rnp/src/librepgp/stream-sig.cpp:714,1
    - Dst: std::unique_ptr<sigsub::Raw>::hashed
      Src: /src/rnp/src/librepgp/stream-sig.cpp:714,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:716,1
    - Dst: items::push_back
      Src: /src/rnp/src/librepgp/stream-sig.cpp:720,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:720,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - sub
    - replace
    argTypes:
    - std::unique_ptr<sigsub::Raw>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 704
    functionDepth: 2
    functionLinenumber: 704
    functionLinenumberEnd: 721
    functionName: pgp::pkt::Signature::add_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 36
    functionsReached:
    - RNP_LOG
    - std::unique_ptr<sigsub::Raw>::hashed
    - std::invalid_argument
    - pgp::pkt::Signature::find_subpkt
    - std::move
    - std::unique_ptr<sigsub::Raw>::write
    - items::push_back
    - std::unique_ptr<sigsub::Raw>::raw_type
    linkageType: ''
    returnType: void
    signature: void Signature::add_subpkt(std::unique_ptr<sigsub::Raw> &&sub, bool
      replace)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:726,1
    - Dst: items::erase
      Src: /src/rnp/src/librepgp/stream-sig.cpp:727,1
    - Dst: begin
      Src: /src/rnp/src/librepgp/stream-sig.cpp:727,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 729
    functionName: pgp::pkt::Signature::remove_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 4
    functionsReached:
    - begin
    - size
    - items::erase
    linkageType: ''
    returnType: void
    signature: void Signature::remove_subpkt(size_t idx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::has_keyid
      Src: /src/rnp/src/librepgp/stream-sig.cpp:734,1
    - Dst: pgp::pkt::Signature::keyid
      Src: /src/rnp/src/librepgp/stream-sig.cpp:744,1
    - Dst: pgp::pkt::Signature::keyfp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:755,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 1
    argNames:
    - onepass
    argTypes:
    - pgp_one_pass_sig_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 731
    functionDepth: 3
    functionLinenumber: 731
    functionLinenumberEnd: 766
    functionName: pgp::pkt::Signature::matches_onepass
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::has_keyid
    - pgp::pkt::Signature::keyid
    - pgp::pkt::Signature::keyfp
    linkageType: ''
    returnType: bool
    signature: bool Signature::matches_onepass(const pgp_one_pass_sig_t &onepass)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - version
    argTypes:
    - pgp_version_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 779
    functionName: pgp::pkt::Signature::version_supported
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Signature::version_supported(pgp_version_t version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:786,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:787,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:792,1
    - Dst: assign
      Src: /src/rnp/src/librepgp/stream-sig.cpp:796,1
    - Dst: read_uint32
      Src: /src/rnp/src/librepgp/stream-sig.cpp:800,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-sig.cpp:804,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 810
    functionName: pgp::pkt::Signature::parse_v2v3
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - data
    - memcpy
    - pgp_packet_body_t::get
    - read_uint32
    - assign
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Signature::parse_v2v3(pgp_packet_body_t &pkt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:820,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:821,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:825,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:837,1
    - Dst: read_uint32
      Src: /src/rnp/src/librepgp/stream-sig.cpp:840,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:846,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:852,1
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/librepgp/stream-sig.cpp:856,1
    - Dst: items::push_back
      Src: /src/rnp/src/librepgp/stream-sig.cpp:860,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:860,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - buf
    - len
    - hashed
    argTypes:
    - uint8_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 866
    functionName: pgp::pkt::Signature::parse_subpackets
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - pgp::pkt::sigsub::Raw::create
    - read_uint32
    - std::move
    - items::push_back
    - size
    linkageType: ''
    returnType: bool
    signature: bool Signature::parse_subpackets(uint8_t *buf, size_t len, bool hashed)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:875,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:884,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:892,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - pkt
    - splen
    argTypes:
    - pgp_packet_body_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 895
    functionName: pgp::pkt::Signature::get_subpkt_len
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool Signature::get_subpkt_len(pgp_packet_body_t &pkt, size_t &splen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:903,1
    - Dst: raw_type
      Src: /src/rnp/src/librepgp/stream-sig.cpp:904,1
    - Dst: hashed
      Src: /src/rnp/src/librepgp/stream-sig.cpp:904,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - stype
    - hashed
    - skip
    argTypes:
    - uint8_t
    - bool
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 913
    functionName: pgp::pkt::Signature::find_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 13
    functionsReached:
    - raw_type
    - size
    - hashed
    linkageType: ''
    returnType: size_t
    signature: size_t Signature::find_subpkt(uint8_t stype, bool hashed, size_t skip)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:918,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - hashed
    - skip
    argTypes:
    - sigsub::Type
    - bool
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 919
    functionName: pgp::pkt::Signature::find_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 14
    functionsReached:
    - pgp::pkt::Signature::find_subpkt
    - static_cast<uint8_t>
    linkageType: ''
    returnType: size_t
    signature: size_t Signature::find_subpkt(sigsub::Type type, bool hashed, size_t
      skip) const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:926,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:927,1
    - Dst: pgp_packet_body_t::cur
      Src: /src/rnp/src/librepgp/stream-sig.cpp:940,1
    - Dst: pgp::pkt::Signature::get_subpkt_len
      Src: /src/rnp/src/librepgp/stream-sig.cpp:941,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:942,1
    - Dst: pgp_packet_body_t::cur
      Src: /src/rnp/src/librepgp/stream-sig.cpp:945,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-sig.cpp:947,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:948,1
    - Dst: resize
      Src: /src/rnp/src/librepgp/stream-sig.cpp:953,1
    - Dst: pgp_packet_body_t::skip_back
      Src: /src/rnp/src/librepgp/stream-sig.cpp:956,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:958,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:958,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:959,1
    - Dst: pgp::pkt::Signature::parse_subpackets
      Src: /src/rnp/src/librepgp/stream-sig.cpp:963,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:963,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:964,1
    - Dst: pgp::pkt::Signature::get_subpkt_len
      Src: /src/rnp/src/librepgp/stream-sig.cpp:969,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:970,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-sig.cpp:973,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:974,1
    - Dst: pgp::pkt::Signature::parse_subpackets
      Src: /src/rnp/src/librepgp/stream-sig.cpp:977,1
    - Dst: pgp_packet_body_t::cur
      Src: /src/rnp/src/librepgp/stream-sig.cpp:977,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:978,1
    - Dst: pgp_packet_body_t::skip
      Src: /src/rnp/src/librepgp/stream-sig.cpp:981,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 921
    functionDepth: 2
    functionLinenumber: 921
    functionLinenumberEnd: 983
    functionName: pgp::pkt::Signature::parse_v4up
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - data
    - pgp_packet_body_t::skip_back
    - pgp::pkt::Signature::get_subpkt_len
    - pgp_packet_body_t::cur
    - resize
    - pgp_packet_body_t::get
    - pgp_packet_body_t::left
    - pgp::pkt::Signature::parse_subpackets
    - pgp_packet_body_t::skip
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Signature::parse_v4up(pgp_packet_body_t &pkt)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:989,1
    - Dst: pgp::pkt::Signature::parse_v2v3
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1000,1
    - Dst: pgp::pkt::Signature::parse_v4up
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1009,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1012,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1021,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1021,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1022,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1029,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1030,1
    - Dst: pgp::pkt::Signature::v6_salt_size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1034,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1035,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1039,1
    - Dst: resize
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1042,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1043,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1043,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1044,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1052,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1052,1
    - Dst: pgp::pkt::Signature::parse_material
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1054,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 985
    functionDepth: 3
    functionLinenumber: 985
    functionLinenumberEnd: 1058
    functionName: pgp::pkt::Signature::parse
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 21
    functionsReached:
    - RNP_LOG
    - pgp::pkt::Signature::parse_material
    - data
    - pgp::pkt::Signature::parse_v4up
    - pgp::pkt::Signature::parse_v2v3
    - resize
    - pgp_packet_body_t::get
    - pgp_packet_body_t::left
    - pgp::pkt::Signature::v6_salt_size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Signature::parse(pgp_packet_body_t &pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::read
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1064,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1068,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1060
    functionDepth: 1
    functionLinenumber: 1060
    functionLinenumberEnd: 1069
    functionName: pgp::pkt::Signature::parse
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 22
    functionsReached:
    - pgp::pkt::Signature::parse
    - pgp_packet_body_t::read
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Signature::parse(pgp_source_t &src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::SigMaterial::create
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1074,1
    - Dst: auto::parse
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1079,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1082,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1083,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1083,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1087
    functionName: pgp::pkt::Signature::parse_material
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - auto::parse
    - pgp::SigMaterial::create
    - pgp_packet_body_t::left
    linkageType: ''
    returnType: std::unique_ptr<SigMaterial>
    signature: std::unique_ptr<SigMaterial> Signature::parse_material() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::version_supported
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1092,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1093,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1094,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1101,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1102,1
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1102,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1103,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1104,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1105,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1106,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1109,1
    - Dst: pgp_packet_body_t::add_subpackets
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1110,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1112,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1112,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1115,1
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1115,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1116,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1120,1
    - Dst: pgp_packet_body_t::write
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - dst
    - hdr
    argTypes:
    - pgp_dest_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1122
    functionName: pgp::pkt::Signature::write
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::write
    - data
    - pgp::pkt::Signature::version_supported
    - pgp_packet_body_t::add_byte
    - pgp_packet_body_t::add_subpackets
    - pgp_packet_body_t::add
    - rnp::rnp_exception::rnp_exception
    - size
    linkageType: ''
    returnType: void
    signature: void Signature::write(pgp_dest_t &dst, bool hdr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::MemoryDest::MemoryDest
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1127,1
    - Dst: pgp::pkt::Signature::write
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1128,1
    - Dst: rnp::MemoryDest::dst
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1128,1
    - Dst: rnp::MemoryDest::to_vector
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1124
    functionDepth: 1
    functionLinenumber: 1124
    functionLinenumberEnd: 1130
    functionName: pgp::pkt::Signature::write
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - rnp::MemoryDest::to_vector
    - pgp::pkt::Signature::write
    - rnp::MemoryDest::MemoryDest
    - rnp::MemoryDest::dst
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::write(bool hdr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SigMaterial::write
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1136,1
    - Dst: assign
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1137,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1137,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1137,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - material
    argTypes:
    - SigMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1138
    functionName: pgp::pkt::Signature::write_material
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::data
    - assign
    - pgp_packet_body_t::size
    - SigMaterial::write
    linkageType: ''
    returnType: void
    signature: void Signature::write_material(const SigMaterial &material)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::version_supported
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1144,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1145,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1146,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1150,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1150,1
    - Dst: pgp_packet_body_t::add_uint32
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1151,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1153,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1154,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1154,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1155,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1156,1
    - Dst: pgp_packet_body_t::add_subpackets
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1157,1
    - Dst: assign
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1159,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1159,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1159,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1160
    functionName: pgp::pkt::Signature::fill_hashed_data
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::add_uint32
    - pgp::pkt::Signature::version_supported
    - pgp_packet_body_t::add_byte
    - pgp_packet_body_t::add_subpackets
    - pgp_packet_body_t::data
    - pgp_packet_body_t::size
    - rnp::rnp_exception::rnp_exception
    - assign
    - pgp::pkt::Signature::type
    linkageType: ''
    returnType: void
    signature: void Signature::fill_hashed_data()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - halg
    - salt_size
    argTypes:
    - pgp_hash_alg_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1190
    functionName: pgp::pkt::Signature::v6_salt_size
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: bool
    signature: bool Signature::v6_salt_size(pgp_hash_alg_t halg, size_t *salt_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: Signature::operator==(const Signature &src) const
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Signature::operator==(const Signature &src) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: Signature::operator!=(const Signature &src) const
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Signature::operator!=(const Signature &src) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/librepgp/stream-sig.cpp:210,1
    - Dst: auto::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:211,1
    - Dst: auto::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:212,1
    - Dst: auto::finish
      Src: /src/rnp/src/librepgp/stream-sig.cpp:216,1
    - Dst: SigID::data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 218
    functionName: pgp::pkt::Signature::get_id
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - rnp::Hash::create
    - SigID::data
    - auto::add
    - auto::finish
    linkageType: ''
    returnType: SigID
    signature: SigID Signature::get_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:223,1
    - Dst: get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stype
    - hashed
    argTypes:
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: pgp::pkt::Signature::get_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 46
    functionsReached:
    - pgp::pkt::Signature::find_subpkt
    - get
    linkageType: ''
    returnType: sigsub::Raw
    signature: 'sigsub::Raw *

      Signature::get_subpkt(uint8_t stype, bool hashed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:230,1
    - Dst: get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stype
    - hashed
    argTypes:
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: pgp::pkt::Signature::get_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 46
    functionsReached:
    - pgp::pkt::Signature::find_subpkt
    - get
    linkageType: ''
    returnType: sigsub::Raw
    signature: 'sigsub::Raw *

      Signature::get_subpkt(uint8_t stype, bool hashed) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:237,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - hashed
    argTypes:
    - sigsub::Type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: pgp::pkt::Signature::get_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 47
    functionsReached:
    - pgp::pkt::Signature::get_subpkt
    - static_cast<uint8_t>
    linkageType: ''
    returnType: sigsub::Raw
    signature: 'sigsub::Raw *

      Signature::get_subpkt(sigsub::Type type, bool hashed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:243,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - hashed
    argTypes:
    - sigsub::Type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: pgp::pkt::Signature::get_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 48
    functionsReached:
    - pgp::pkt::Signature::get_subpkt
    - static_cast<uint8_t>
    linkageType: ''
    returnType: sigsub::Raw
    signature: 'sigsub::Raw *

      Signature::get_subpkt(sigsub::Type type, bool hashed) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stype
    - hashed
    argTypes:
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: pgp::pkt::Signature::has_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 4
    functionsReached:
    - pgp::pkt::Signature::find_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::has_subpkt(uint8_t stype, bool hashed) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::has_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:255,1
    - Dst: pgp::pkt::Signature::has_keyfp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 257
    functionName: pgp::pkt::Signature::has_keyid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - pgp::pkt::Signature::has_keyfp
    - pgp::pkt::Signature::has_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::has_keyid() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::IssuerKeyID *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:269,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:270,1
    - Dst: auto::keyid
      Src: /src/rnp/src/librepgp/stream-sig.cpp:272,1
    - Dst: pgp::pkt::Signature::keyfp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 277
    functionName: pgp::pkt::Signature::keyid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - auto::keyid
    - pgp::pkt::Signature::get_subpkt
    - pgp::pkt::Signature::keyfp
    - dynamic_cast<const sigsub::IssuerKeyID *>
    linkageType: ''
    returnType: KeyID
    signature: KeyID Signature::keyid() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::IssuerKeyID>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:287,1
    - Dst: sigsub::IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/librepgp/stream-sig.cpp:287,1
    - Dst: auto::set_keyid
      Src: /src/rnp/src/librepgp/stream-sig.cpp:288,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:289,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - id
    argTypes:
    - KeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 290
    functionName: pgp::pkt::Signature::set_keyid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_keyid
    - std::unique_ptr<sigsub::IssuerKeyID>
    - sigsub::IssuerKeyID::IssuerKeyID
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_keyid(const KeyID &id)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::IssuerFingerprint *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:295,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:296,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:302,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 311
    functionName: pgp::pkt::Signature::has_keyfp
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 4
    functionsReached:
    - auto::fp
    - dynamic_cast<const sigsub::IssuerFingerprint *>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::has_keyfp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::IssuerFingerprint *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:316,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:317,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: pgp::pkt::Signature::keyfp
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 6
    functionsReached:
    - auto::fp
    - dynamic_cast<const sigsub::IssuerFingerprint *>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: Fingerprint
    signature: Fingerprint Signature::keyfp() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::IssuerFingerprint>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:324,1
    - Dst: sigsub::IssuerFingerprint::IssuerFingerprint
      Src: /src/rnp/src/librepgp/stream-sig.cpp:324,1
    - Dst: auto::set_version
      Src: /src/rnp/src/librepgp/stream-sig.cpp:326,1
    - Dst: auto::set_version
      Src: /src/rnp/src/librepgp/stream-sig.cpp:328,1
    - Dst: auto::set_fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:330,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:331,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fp
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 332
    functionName: pgp::pkt::Signature::set_keyfp
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - sigsub::IssuerFingerprint::IssuerFingerprint
    - pgp::pkt::Signature::add_subpkt
    - auto::set_fp
    - std::unique_ptr<sigsub::IssuerFingerprint>
    - auto::set_version
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_keyfp(const Fingerprint &fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::CreationTime *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:341,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:341,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 343
    functionName: pgp::pkt::Signature::creation
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - auto::time
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::CreationTime *>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Signature::creation() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::CreationTime>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:352,1
    - Dst: sigsub::CreationTime::CreationTime
      Src: /src/rnp/src/librepgp/stream-sig.cpp:352,1
    - Dst: auto::set_time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:353,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:354,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctime
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 355
    functionName: pgp::pkt::Signature::set_creation
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_time
    - std::unique_ptr<sigsub::CreationTime>
    - sigsub::CreationTime::CreationTime
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_creation(uint32_t ctime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::ExpirationTime *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:361,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:361,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 363
    functionName: pgp::pkt::Signature::expiration
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - dynamic_cast<const sigsub::ExpirationTime *>
    - auto::time
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Signature::expiration() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::ExpirationTime>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:368,1
    - Dst: sigsub::ExpirationTime::ExpirationTime
      Src: /src/rnp/src/librepgp/stream-sig.cpp:368,1
    - Dst: auto::set_time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:369,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:370,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - etime
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 371
    functionName: pgp::pkt::Signature::set_expiration
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_time
    - sigsub::ExpirationTime::ExpirationTime
    - std::unique_ptr<sigsub::ExpirationTime>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_expiration(uint32_t etime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::KeyExpirationTime *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:376,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:377,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 379
    functionName: pgp::pkt::Signature::key_expiration
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::time
    - dynamic_cast<const sigsub::KeyExpirationTime *>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Signature::key_expiration() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::KeyExpirationTime>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:384,1
    - Dst: sigsub::KeyExpirationTime::KeyExpirationTime
      Src: /src/rnp/src/librepgp/stream-sig.cpp:384,1
    - Dst: auto::set_time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:385,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:386,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - etime
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 387
    functionName: pgp::pkt::Signature::set_key_expiration
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_time
    - sigsub::KeyExpirationTime::KeyExpirationTime
    - std::unique_ptr<sigsub::KeyExpirationTime>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_key_expiration(uint32_t etime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::KeyFlags *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:392,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:392,1
    - Dst: auto::flags
      Src: /src/rnp/src/librepgp/stream-sig.cpp:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 394
    functionName: pgp::pkt::Signature::key_flags
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::flags
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::KeyFlags *>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Signature::key_flags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::KeyFlags>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:399,1
    - Dst: sigsub::KeyFlags::KeyFlags
      Src: /src/rnp/src/librepgp/stream-sig.cpp:399,1
    - Dst: auto::set_flags
      Src: /src/rnp/src/librepgp/stream-sig.cpp:400,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:401,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 402
    functionName: pgp::pkt::Signature::set_key_flags
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_flags
    - sigsub::KeyFlags::KeyFlags
    - std::unique_ptr<sigsub::KeyFlags>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_key_flags(uint8_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::PrimaryUserID *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:408,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:408,1
    - Dst: auto::primary
      Src: /src/rnp/src/librepgp/stream-sig.cpp:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 410
    functionName: pgp::pkt::Signature::primary_uid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const sigsub::PrimaryUserID *>
    - pgp::pkt::Signature::get_subpkt
    - auto::primary
    linkageType: ''
    returnType: bool
    signature: bool Signature::primary_uid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::PrimaryUserID>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:415,1
    - Dst: sigsub::PrimaryUserID::PrimaryUserID
      Src: /src/rnp/src/librepgp/stream-sig.cpp:415,1
    - Dst: auto::set_primary
      Src: /src/rnp/src/librepgp/stream-sig.cpp:416,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:417,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - primary
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 418
    functionName: pgp::pkt::Signature::set_primary_uid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - sigsub::PrimaryUserID::PrimaryUserID
    - pgp::pkt::Signature::add_subpkt
    - auto::set_primary
    - std::unique_ptr<sigsub::PrimaryUserID>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_primary_uid(bool primary)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Preferred *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:423,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:423,1
    - Dst: auto::algs
      Src: /src/rnp/src/librepgp/stream-sig.cpp:424,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - sigsub::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 425
    functionName: pgp::pkt::Signature::preferred
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 8
    functionsReached:
    - dynamic_cast<const sigsub::Preferred *>
    - auto::algs
    - std::vector<uint8_t>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::preferred(sigsub::Type type) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::empty
      Src: /src/rnp/src/librepgp/stream-sig.cpp:430,1
    - Dst: pgp::pkt::Signature::remove_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:432,1
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:432,1
    - Dst: pgp::pkt::Signature::remove_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:433,1
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:433,1
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/librepgp/stream-sig.cpp:437,1
    - Dst: dynamic_cast<sigsub::Preferred *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:438,1
    - Dst: auto::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:438,1
    - Dst: auto::set_algs
      Src: /src/rnp/src/librepgp/stream-sig.cpp:442,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:443,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - data
    - type
    argTypes:
    - std::vector<uint8_t>
    - sigsub::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 444
    functionName: pgp::pkt::Signature::set_preferred
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 8
    functionsReached:
    - pgp::pkt::Signature::remove_subpkt
    - pgp::pkt::sigsub::Raw::create
    - pgp::pkt::Signature::add_subpkt
    - std::vector<uint8_t>::empty
    - auto::set_algs
    - pgp::pkt::Signature::find_subpkt
    - auto::get
    - dynamic_cast<sigsub::Preferred *>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_preferred(const std::vector<uint8_t> &data, sigsub::Type
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 446
    functionDepth: 3
    functionLinenumber: 446
    functionLinenumberEnd: 450
    functionName: pgp::pkt::Signature::preferred_symm_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::preferred
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::preferred_symm_algs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::set_preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 456
    functionName: pgp::pkt::Signature::set_preferred_symm_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::set_preferred
    linkageType: ''
    returnType: void
    signature: void Signature::set_preferred_symm_algs(const std::vector<uint8_t>
      &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 458
    functionDepth: 3
    functionLinenumber: 458
    functionLinenumberEnd: 462
    functionName: pgp::pkt::Signature::preferred_hash_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::preferred
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::preferred_hash_algs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::set_preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 468
    functionName: pgp::pkt::Signature::set_preferred_hash_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::set_preferred
    linkageType: ''
    returnType: void
    signature: void Signature::set_preferred_hash_algs(const std::vector<uint8_t>
      &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 470
    functionDepth: 3
    functionLinenumber: 470
    functionLinenumberEnd: 474
    functionName: pgp::pkt::Signature::preferred_z_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::preferred
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::preferred_z_algs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::set_preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 480
    functionName: pgp::pkt::Signature::set_preferred_z_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::set_preferred
    linkageType: ''
    returnType: void
    signature: void Signature::set_preferred_z_algs(const std::vector<uint8_t> &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::set_preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 487
    functionName: pgp::pkt::Signature::set_preferred_aead_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::set_preferred
    linkageType: ''
    returnType: void
    signature: void Signature::set_preferred_aead_algs(const std::vector<uint8_t>
      &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 489
    functionDepth: 3
    functionLinenumber: 489
    functionLinenumberEnd: 493
    functionName: pgp::pkt::Signature::preferred_aead_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::preferred
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::preferred_aead_algs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::KeyserverPrefs *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:500,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:500,1
    - Dst: auto::raw
      Src: /src/rnp/src/librepgp/stream-sig.cpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 502
    functionName: pgp::pkt::Signature::key_server_prefs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::raw
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::KeyserverPrefs *>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Signature::key_server_prefs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::KeyserverPrefs>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:507,1
    - Dst: sigsub::KeyserverPrefs::KeyserverPrefs
      Src: /src/rnp/src/librepgp/stream-sig.cpp:507,1
    - Dst: auto::set_raw
      Src: /src/rnp/src/librepgp/stream-sig.cpp:508,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:509,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - prefs
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 510
    functionName: pgp::pkt::Signature::set_key_server_prefs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - sigsub::KeyserverPrefs::KeyserverPrefs
    - auto::set_raw
    - pgp::pkt::Signature::add_subpkt
    - std::move
    - std::unique_ptr<sigsub::KeyserverPrefs>
    linkageType: ''
    returnType: void
    signature: void Signature::set_key_server_prefs(uint8_t prefs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::PreferredKeyserver *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:515,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:516,1
    - Dst: auto::keyserver
      Src: /src/rnp/src/librepgp/stream-sig.cpp:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 518
    functionName: pgp::pkt::Signature::key_server
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const sigsub::PreferredKeyserver *>
    - pgp::pkt::Signature::get_subpkt
    - auto::keyserver
    linkageType: ''
    returnType: std::string
    signature: std::string Signature::key_server() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/rnp/src/librepgp/stream-sig.cpp:523,1
    - Dst: pgp::pkt::Signature::remove_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:524,1
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:524,1
    - Dst: pgp::pkt::Signature::remove_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:525,1
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:525,1
    - Dst: std::unique_ptr<sigsub::PreferredKeyserver>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:529,1
    - Dst: sigsub::PreferredKeyserver::PreferredKeyserver
      Src: /src/rnp/src/librepgp/stream-sig.cpp:529,1
    - Dst: auto::set_keyserver
      Src: /src/rnp/src/librepgp/stream-sig.cpp:530,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:531,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - uri
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 532
    functionName: pgp::pkt::Signature::set_key_server
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::remove_subpkt
    - pgp::pkt::Signature::add_subpkt
    - auto::set_keyserver
    - pgp::pkt::Signature::find_subpkt
    - std::string::empty
    - sigsub::PreferredKeyserver::PreferredKeyserver
    - std::unique_ptr<sigsub::PreferredKeyserver>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_key_server(const std::string &uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Trust *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:537,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:537,1
    - Dst: auto::level
      Src: /src/rnp/src/librepgp/stream-sig.cpp:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 539
    functionName: pgp::pkt::Signature::trust_level
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::level
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::Trust *>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Signature::trust_level() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Trust *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:544,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:544,1
    - Dst: auto::amount
      Src: /src/rnp/src/librepgp/stream-sig.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 546
    functionName: pgp::pkt::Signature::trust_amount
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::amount
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::Trust *>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Signature::trust_amount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::Trust>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:551,1
    - Dst: sigsub::Trust::Trust
      Src: /src/rnp/src/librepgp/stream-sig.cpp:551,1
    - Dst: auto::set_level
      Src: /src/rnp/src/librepgp/stream-sig.cpp:552,1
    - Dst: auto::set_amount
      Src: /src/rnp/src/librepgp/stream-sig.cpp:553,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:554,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - level
    - amount
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 548
    functionDepth: 2
    functionLinenumber: 548
    functionLinenumberEnd: 555
    functionName: pgp::pkt::Signature::set_trust
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<sigsub::Trust>
    - pgp::pkt::Signature::add_subpkt
    - sigsub::Trust::Trust
    - auto::set_level
    - auto::set_amount
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_trust(uint8_t level, uint8_t amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Revocable *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:560,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:560,1
    - Dst: auto::revocable
      Src: /src/rnp/src/librepgp/stream-sig.cpp:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 562
    functionName: pgp::pkt::Signature::revocable
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::revocable
    - dynamic_cast<const sigsub::Revocable *>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::revocable() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::Revocable>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:567,1
    - Dst: sigsub::Revocable::Revocable
      Src: /src/rnp/src/librepgp/stream-sig.cpp:567,1
    - Dst: auto::set_revocable
      Src: /src/rnp/src/librepgp/stream-sig.cpp:568,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:569,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - status
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 570
    functionName: pgp::pkt::Signature::set_revocable
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - sigsub::Revocable::Revocable
    - auto::set_revocable
    - std::move
    - std::unique_ptr<sigsub::Revocable>
    linkageType: ''
    returnType: void
    signature: void Signature::set_revocable(bool status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::RevocationReason *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:575,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:576,1
    - Dst: auto::reason
      Src: /src/rnp/src/librepgp/stream-sig.cpp:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 578
    functionName: pgp::pkt::Signature::revocation_reason
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - auto::reason
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::RevocationReason *>
    linkageType: ''
    returnType: std::string
    signature: std::string Signature::revocation_reason() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::RevocationReason *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:583,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:584,1
    - Dst: auto::code
      Src: /src/rnp/src/librepgp/stream-sig.cpp:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 586
    functionName: pgp::pkt::Signature::revocation_code
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - auto::code
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::RevocationReason *>
    linkageType: ''
    returnType: pgp_revocation_type_t
    signature: pgp_revocation_type_t Signature::revocation_code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 592
    functionName: pgp::pkt::Signature::has_revocation_reason
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::has_revocation_reason() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::RevocationReason>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:597,1
    - Dst: sigsub::RevocationReason::RevocationReason
      Src: /src/rnp/src/librepgp/stream-sig.cpp:597,1
    - Dst: auto::set_code
      Src: /src/rnp/src/librepgp/stream-sig.cpp:598,1
    - Dst: auto::set_reason
      Src: /src/rnp/src/librepgp/stream-sig.cpp:599,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:600,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - code
    - reason
    argTypes:
    - pgp_revocation_type_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 601
    functionName: pgp::pkt::Signature::set_revocation_reason
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::set_reason
    - pgp::pkt::Signature::add_subpkt
    - auto::set_code
    - sigsub::RevocationReason::RevocationReason
    - std::unique_ptr<sigsub::RevocationReason>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_revocation_reason(pgp_revocation_type_t code, const
      std::string &reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Features *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:606,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:606,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-sig.cpp:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 608
    functionName: pgp::pkt::Signature::key_get_features
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::features
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::Features *>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Signature::key_get_features() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Features *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:613,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:613,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-sig.cpp:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 615
    functionName: pgp::pkt::Signature::key_has_features
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::features
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::Features *>
    linkageType: ''
    returnType: bool
    signature: bool Signature::key_has_features(uint32_t flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::Features>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:620,1
    - Dst: sigsub::Features::Features
      Src: /src/rnp/src/librepgp/stream-sig.cpp:620,1
    - Dst: auto::set_features
      Src: /src/rnp/src/librepgp/stream-sig.cpp:621,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:622,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 623
    functionName: pgp::pkt::Signature::set_key_features
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_features
    - std::unique_ptr<sigsub::Features>
    - sigsub::Features::Features
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_key_features(uint32_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::SignersUserID *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:629,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:629,1
    - Dst: auto::signer
      Src: /src/rnp/src/librepgp/stream-sig.cpp:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 625
    functionDepth: 2
    functionLinenumber: 625
    functionLinenumberEnd: 631
    functionName: pgp::pkt::Signature::signer_uid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const sigsub::SignersUserID *>
    - auto::signer
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: std::string
    signature: std::string Signature::signer_uid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::SignersUserID>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:636,1
    - Dst: sigsub::SignersUserID::SignersUserID
      Src: /src/rnp/src/librepgp/stream-sig.cpp:636,1
    - Dst: auto::set_signer
      Src: /src/rnp/src/librepgp/stream-sig.cpp:637,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:638,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uid
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 639
    functionName: pgp::pkt::Signature::set_signer_uid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::set_signer
    - std::unique_ptr<sigsub::SignersUserID>
    - pgp::pkt::Signature::add_subpkt
    - sigsub::SignersUserID::SignersUserID
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_signer_uid(const std::string &uid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:647,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:647,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:648,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-sig.cpp:649,1
    - Dst: std::unique_ptr<sigsub::NotationData>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:652,1
    - Dst: sigsub::NotationData::NotationData
      Src: /src/rnp/src/librepgp/stream-sig.cpp:652,1
    - Dst: auto::set_human_readable
      Src: /src/rnp/src/librepgp/stream-sig.cpp:653,1
    - Dst: auto::set_name
      Src: /src/rnp/src/librepgp/stream-sig.cpp:654,1
    - Dst: auto::set_value
      Src: /src/rnp/src/librepgp/stream-sig.cpp:655,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:656,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:656,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - '         name'
    - value
    - human
    - critical
    argTypes:
    - std::string
    - std::vector<uint8_t>
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 657
    functionName: pgp::pkt::Signature::add_notation
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>::size
    - auto::set_value
    - pgp::pkt::Signature::add_subpkt
    - std::move
    - std::unique_ptr<sigsub::NotationData>
    - auto::set_human_readable
    - rnp::rnp_exception::rnp_exception
    - sigsub::NotationData::NotationData
    - auto::set_name
    - size
    linkageType: ''
    returnType: void
    signature: "void Signature::add_notation(const std::string &         name,\n                        const
      std::vector<uint8_t> &value,\n                        bool                        human,\n
      \                       bool                        critical)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::add_notation
      Src: /src/rnp/src/librepgp/stream-sig.cpp:662,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:662,1
    - Dst: std::string::begin
      Src: /src/rnp/src/librepgp/stream-sig.cpp:662,1
    - Dst: std::string::end
      Src: /src/rnp/src/librepgp/stream-sig.cpp:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - value
    - critical
    argTypes:
    - std::string
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 663
    functionName: pgp::pkt::Signature::add_notation
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 4
    functionsReached:
    - std::vector<uint8_t>
    - std::string::begin
    - pgp::pkt::Signature::add_notation
    - std::string::end
    linkageType: ''
    returnType: void
    signature: void Signature::add_notation(const std::string &name, const std::string
      &value, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::EmbeddedSignature>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:669,1
    - Dst: sigsub::EmbeddedSignature::EmbeddedSignature
      Src: /src/rnp/src/librepgp/stream-sig.cpp:669,1
    - Dst: auto::set_signature
      Src: /src/rnp/src/librepgp/stream-sig.cpp:670,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:671,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - esig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 672
    functionName: pgp::pkt::Signature::set_embedded_sig
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - sigsub::EmbeddedSignature::EmbeddedSignature
    - std::unique_ptr<sigsub::EmbeddedSignature>
    - auto::set_signature
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_embedded_sig(const Signature &esig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::RevocationKey *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:677,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 674
    functionDepth: 2
    functionLinenumber: 674
    functionLinenumberEnd: 679
    functionName: pgp::pkt::Signature::revoker_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 4
    functionsReached:
    - dynamic_cast<const sigsub::RevocationKey *>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: sigsub::RevocationKey
    signature: 'sigsub::RevocationKey *

      Signature::revoker_subpkt() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::revoker_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 681
    functionDepth: 3
    functionLinenumber: 681
    functionLinenumberEnd: 685
    functionName: pgp::pkt::Signature::has_revoker
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::revoker_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::has_revoker() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::revoker_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:690,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:691,1
    - Dst: Fingerprint
      Src: /src/rnp/src/librepgp/stream-sig.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 687
    functionDepth: 3
    functionLinenumber: 687
    functionLinenumberEnd: 692
    functionName: pgp::pkt::Signature::revoker
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::fp
    - pgp::pkt::Signature::revoker_subpkt
    - Fingerprint
    linkageType: ''
    returnType: Fingerprint
    signature: Fingerprint Signature::revoker() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::RevocationKey>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:697,1
    - Dst: sigsub::RevocationKey::RevocationKey
      Src: /src/rnp/src/librepgp/stream-sig.cpp:697,1
    - Dst: auto::set_rev_class
      Src: /src/rnp/src/librepgp/stream-sig.cpp:698,1
    - Dst: auto::set_alg
      Src: /src/rnp/src/librepgp/stream-sig.cpp:699,1
    - Dst: rnp::Key::alg
      Src: /src/rnp/src/librepgp/stream-sig.cpp:699,1
    - Dst: auto::set_fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:700,1
    - Dst: rnp::Key::fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:700,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:701,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - revoker
    - sensitive
    argTypes:
    - rnp::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 694
    functionDepth: 2
    functionLinenumber: 694
    functionLinenumberEnd: 702
    functionName: pgp::pkt::Signature::set_revoker
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key::alg
    - pgp::pkt::Signature::add_subpkt
    - auto::set_fp
    - sigsub::RevocationKey::RevocationKey
    - rnp::Key::fp
    - auto::set_rev_class
    - auto::set_alg
    - std::unique_ptr<sigsub::RevocationKey>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_revoker(const rnp::Key &revoker, bool sensitive)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:708,1
    - Dst: std::invalid_argument
      Src: /src/rnp/src/librepgp/stream-sig.cpp:709,1
    - Dst: std::unique_ptr<sigsub::Raw>::write
      Src: /src/rnp/src/librepgp/stream-sig.cpp:712,1
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:714,1
    - Dst: std::unique_ptr<sigsub::Raw>::raw_type
      Src: /src/rnp/src/librepgp/stream-sig.cpp:714,1
    - Dst: std::unique_ptr<sigsub::Raw>::hashed
      Src: /src/rnp/src/librepgp/stream-sig.cpp:714,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:716,1
    - Dst: items::push_back
      Src: /src/rnp/src/librepgp/stream-sig.cpp:720,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:720,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - sub
    - replace
    argTypes:
    - std::unique_ptr<sigsub::Raw>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 704
    functionDepth: 2
    functionLinenumber: 704
    functionLinenumberEnd: 721
    functionName: pgp::pkt::Signature::add_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 54
    functionsReached:
    - RNP_LOG
    - std::unique_ptr<sigsub::Raw>::hashed
    - std::invalid_argument
    - pgp::pkt::Signature::find_subpkt
    - std::move
    - std::unique_ptr<sigsub::Raw>::write
    - items::push_back
    - std::unique_ptr<sigsub::Raw>::raw_type
    linkageType: ''
    returnType: void
    signature: void Signature::add_subpkt(std::unique_ptr<sigsub::Raw> &&sub, bool
      replace)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:726,1
    - Dst: items::erase
      Src: /src/rnp/src/librepgp/stream-sig.cpp:727,1
    - Dst: begin
      Src: /src/rnp/src/librepgp/stream-sig.cpp:727,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 729
    functionName: pgp::pkt::Signature::remove_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 6
    functionsReached:
    - begin
    - size
    - items::erase
    linkageType: ''
    returnType: void
    signature: void Signature::remove_subpkt(size_t idx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::has_keyid
      Src: /src/rnp/src/librepgp/stream-sig.cpp:734,1
    - Dst: pgp::pkt::Signature::keyid
      Src: /src/rnp/src/librepgp/stream-sig.cpp:744,1
    - Dst: pgp::pkt::Signature::keyfp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:755,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 1
    argNames:
    - onepass
    argTypes:
    - pgp_one_pass_sig_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 731
    functionDepth: 3
    functionLinenumber: 731
    functionLinenumberEnd: 766
    functionName: pgp::pkt::Signature::matches_onepass
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::has_keyid
    - pgp::pkt::Signature::keyid
    - pgp::pkt::Signature::keyfp
    linkageType: ''
    returnType: bool
    signature: bool Signature::matches_onepass(const pgp_one_pass_sig_t &onepass)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - version
    argTypes:
    - pgp_version_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 779
    functionName: pgp::pkt::Signature::version_supported
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Signature::version_supported(pgp_version_t version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:786,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:787,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:792,1
    - Dst: assign
      Src: /src/rnp/src/librepgp/stream-sig.cpp:796,1
    - Dst: read_uint32
      Src: /src/rnp/src/librepgp/stream-sig.cpp:800,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-sig.cpp:804,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 810
    functionName: pgp::pkt::Signature::parse_v2v3
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - data
    - memcpy
    - pgp_packet_body_t::get
    - read_uint32
    - assign
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Signature::parse_v2v3(pgp_packet_body_t &pkt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:820,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:821,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:825,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:837,1
    - Dst: read_uint32
      Src: /src/rnp/src/librepgp/stream-sig.cpp:840,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:846,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:852,1
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/librepgp/stream-sig.cpp:856,1
    - Dst: items::push_back
      Src: /src/rnp/src/librepgp/stream-sig.cpp:860,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:860,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - buf
    - len
    - hashed
    argTypes:
    - uint8_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 866
    functionName: pgp::pkt::Signature::parse_subpackets
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - pgp::pkt::sigsub::Raw::create
    - read_uint32
    - std::move
    - items::push_back
    - size
    linkageType: ''
    returnType: bool
    signature: bool Signature::parse_subpackets(uint8_t *buf, size_t len, bool hashed)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:875,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:884,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:892,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - pkt
    - splen
    argTypes:
    - pgp_packet_body_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 895
    functionName: pgp::pkt::Signature::get_subpkt_len
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool Signature::get_subpkt_len(pgp_packet_body_t &pkt, size_t &splen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:903,1
    - Dst: raw_type
      Src: /src/rnp/src/librepgp/stream-sig.cpp:904,1
    - Dst: hashed
      Src: /src/rnp/src/librepgp/stream-sig.cpp:904,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - stype
    - hashed
    - skip
    argTypes:
    - uint8_t
    - bool
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 913
    functionName: pgp::pkt::Signature::find_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 20
    functionsReached:
    - raw_type
    - size
    - hashed
    linkageType: ''
    returnType: size_t
    signature: size_t Signature::find_subpkt(uint8_t stype, bool hashed, size_t skip)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:918,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - hashed
    - skip
    argTypes:
    - sigsub::Type
    - bool
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 919
    functionName: pgp::pkt::Signature::find_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 21
    functionsReached:
    - pgp::pkt::Signature::find_subpkt
    - static_cast<uint8_t>
    linkageType: ''
    returnType: size_t
    signature: size_t Signature::find_subpkt(sigsub::Type type, bool hashed, size_t
      skip) const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:926,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:927,1
    - Dst: pgp_packet_body_t::cur
      Src: /src/rnp/src/librepgp/stream-sig.cpp:940,1
    - Dst: pgp::pkt::Signature::get_subpkt_len
      Src: /src/rnp/src/librepgp/stream-sig.cpp:941,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:942,1
    - Dst: pgp_packet_body_t::cur
      Src: /src/rnp/src/librepgp/stream-sig.cpp:945,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-sig.cpp:947,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:948,1
    - Dst: resize
      Src: /src/rnp/src/librepgp/stream-sig.cpp:953,1
    - Dst: pgp_packet_body_t::skip_back
      Src: /src/rnp/src/librepgp/stream-sig.cpp:956,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:958,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:958,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:959,1
    - Dst: pgp::pkt::Signature::parse_subpackets
      Src: /src/rnp/src/librepgp/stream-sig.cpp:963,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:963,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:964,1
    - Dst: pgp::pkt::Signature::get_subpkt_len
      Src: /src/rnp/src/librepgp/stream-sig.cpp:969,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:970,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-sig.cpp:973,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:974,1
    - Dst: pgp::pkt::Signature::parse_subpackets
      Src: /src/rnp/src/librepgp/stream-sig.cpp:977,1
    - Dst: pgp_packet_body_t::cur
      Src: /src/rnp/src/librepgp/stream-sig.cpp:977,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:978,1
    - Dst: pgp_packet_body_t::skip
      Src: /src/rnp/src/librepgp/stream-sig.cpp:981,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 921
    functionDepth: 2
    functionLinenumber: 921
    functionLinenumberEnd: 983
    functionName: pgp::pkt::Signature::parse_v4up
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - data
    - pgp_packet_body_t::skip_back
    - pgp::pkt::Signature::get_subpkt_len
    - pgp_packet_body_t::cur
    - resize
    - pgp_packet_body_t::get
    - pgp_packet_body_t::left
    - pgp::pkt::Signature::parse_subpackets
    - pgp_packet_body_t::skip
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Signature::parse_v4up(pgp_packet_body_t &pkt)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:989,1
    - Dst: pgp::pkt::Signature::parse_v2v3
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1000,1
    - Dst: pgp::pkt::Signature::parse_v4up
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1009,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1012,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1021,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1021,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1022,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1029,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1030,1
    - Dst: pgp::pkt::Signature::v6_salt_size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1034,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1035,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1039,1
    - Dst: resize
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1042,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1043,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1043,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1044,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1052,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1052,1
    - Dst: pgp::pkt::Signature::parse_material
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1054,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 985
    functionDepth: 3
    functionLinenumber: 985
    functionLinenumberEnd: 1058
    functionName: pgp::pkt::Signature::parse
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 22
    functionsReached:
    - RNP_LOG
    - pgp::pkt::Signature::parse_material
    - data
    - pgp::pkt::Signature::parse_v4up
    - pgp::pkt::Signature::parse_v2v3
    - resize
    - pgp_packet_body_t::get
    - pgp_packet_body_t::left
    - pgp::pkt::Signature::v6_salt_size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Signature::parse(pgp_packet_body_t &pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::read
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1064,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1068,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1060
    functionDepth: 1
    functionLinenumber: 1060
    functionLinenumberEnd: 1069
    functionName: pgp::pkt::Signature::parse
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 23
    functionsReached:
    - pgp::pkt::Signature::parse
    - pgp_packet_body_t::read
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Signature::parse(pgp_source_t &src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::SigMaterial::create
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1074,1
    - Dst: auto::parse
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1079,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1082,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1083,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1083,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1087
    functionName: pgp::pkt::Signature::parse_material
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - auto::parse
    - pgp::SigMaterial::create
    - pgp_packet_body_t::left
    linkageType: ''
    returnType: std::unique_ptr<SigMaterial>
    signature: std::unique_ptr<SigMaterial> Signature::parse_material() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::version_supported
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1092,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1093,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1094,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1101,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1102,1
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1102,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1103,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1104,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1105,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1106,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1109,1
    - Dst: pgp_packet_body_t::add_subpackets
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1110,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1112,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1112,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1115,1
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1115,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1116,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1120,1
    - Dst: pgp_packet_body_t::write
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - dst
    - hdr
    argTypes:
    - pgp_dest_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1122
    functionName: pgp::pkt::Signature::write
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::write
    - data
    - pgp::pkt::Signature::version_supported
    - pgp_packet_body_t::add_byte
    - pgp_packet_body_t::add_subpackets
    - pgp_packet_body_t::add
    - rnp::rnp_exception::rnp_exception
    - size
    linkageType: ''
    returnType: void
    signature: void Signature::write(pgp_dest_t &dst, bool hdr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::MemoryDest::MemoryDest
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1127,1
    - Dst: pgp::pkt::Signature::write
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1128,1
    - Dst: rnp::MemoryDest::dst
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1128,1
    - Dst: rnp::MemoryDest::to_vector
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1124
    functionDepth: 1
    functionLinenumber: 1124
    functionLinenumberEnd: 1130
    functionName: pgp::pkt::Signature::write
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 3
    functionsReached:
    - rnp::MemoryDest::to_vector
    - pgp::pkt::Signature::write
    - rnp::MemoryDest::MemoryDest
    - rnp::MemoryDest::dst
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::write(bool hdr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SigMaterial::write
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1136,1
    - Dst: assign
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1137,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1137,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1137,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - material
    argTypes:
    - SigMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1138
    functionName: pgp::pkt::Signature::write_material
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::data
    - assign
    - pgp_packet_body_t::size
    - SigMaterial::write
    linkageType: ''
    returnType: void
    signature: void Signature::write_material(const SigMaterial &material)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::version_supported
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1144,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1145,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1146,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1150,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1150,1
    - Dst: pgp_packet_body_t::add_uint32
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1151,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1153,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1154,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1154,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1155,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1156,1
    - Dst: pgp_packet_body_t::add_subpackets
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1157,1
    - Dst: assign
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1159,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1159,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1159,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1160
    functionName: pgp::pkt::Signature::fill_hashed_data
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::add_uint32
    - pgp::pkt::Signature::version_supported
    - pgp_packet_body_t::add_byte
    - pgp_packet_body_t::add_subpackets
    - pgp_packet_body_t::data
    - pgp_packet_body_t::size
    - rnp::rnp_exception::rnp_exception
    - assign
    - pgp::pkt::Signature::type
    linkageType: ''
    returnType: void
    signature: void Signature::fill_hashed_data()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - halg
    - salt_size
    argTypes:
    - pgp_hash_alg_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1190
    functionName: pgp::pkt::Signature::v6_salt_size
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: bool
    signature: bool Signature::v6_salt_size(pgp_hash_alg_t halg, size_t *salt_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 199
    functionName: Signature::operator==(const Signature &src) const
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Signature::operator==(const Signature &src) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: Signature::operator!=(const Signature &src) const
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Signature::operator!=(const Signature &src) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/librepgp/stream-sig.cpp:210,1
    - Dst: auto::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:211,1
    - Dst: auto::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:212,1
    - Dst: auto::finish
      Src: /src/rnp/src/librepgp/stream-sig.cpp:216,1
    - Dst: SigID::data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 218
    functionName: pgp::pkt::Signature::get_id
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - rnp::Hash::create
    - SigID::data
    - auto::add
    - auto::finish
    linkageType: ''
    returnType: SigID
    signature: SigID Signature::get_id() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:223,1
    - Dst: get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stype
    - hashed
    argTypes:
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 220
    functionDepth: 2
    functionLinenumber: 220
    functionLinenumberEnd: 225
    functionName: pgp::pkt::Signature::get_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 69
    functionsReached:
    - pgp::pkt::Signature::find_subpkt
    - get
    linkageType: ''
    returnType: sigsub::Raw
    signature: 'sigsub::Raw *

      Signature::get_subpkt(uint8_t stype, bool hashed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:230,1
    - Dst: get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stype
    - hashed
    argTypes:
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 227
    functionDepth: 2
    functionLinenumber: 227
    functionLinenumberEnd: 232
    functionName: pgp::pkt::Signature::get_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 69
    functionsReached:
    - pgp::pkt::Signature::find_subpkt
    - get
    linkageType: ''
    returnType: sigsub::Raw
    signature: 'sigsub::Raw *

      Signature::get_subpkt(uint8_t stype, bool hashed) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:237,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - hashed
    argTypes:
    - sigsub::Type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 1
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: pgp::pkt::Signature::get_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 70
    functionsReached:
    - pgp::pkt::Signature::get_subpkt
    - static_cast<uint8_t>
    linkageType: ''
    returnType: sigsub::Raw
    signature: 'sigsub::Raw *

      Signature::get_subpkt(sigsub::Type type, bool hashed)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:243,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:243,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - type
    - hashed
    argTypes:
    - sigsub::Type
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 240
    functionDepth: 1
    functionLinenumber: 240
    functionLinenumberEnd: 244
    functionName: pgp::pkt::Signature::get_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 71
    functionsReached:
    - pgp::pkt::Signature::get_subpkt
    - static_cast<uint8_t>
    linkageType: ''
    returnType: sigsub::Raw
    signature: 'sigsub::Raw *

      Signature::get_subpkt(sigsub::Type type, bool hashed) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - stype
    - hashed
    argTypes:
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 2
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: pgp::pkt::Signature::has_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 5
    functionsReached:
    - pgp::pkt::Signature::find_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::has_subpkt(uint8_t stype, bool hashed) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::has_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:255,1
    - Dst: pgp::pkt::Signature::has_keyfp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:256,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 252
    functionDepth: 3
    functionLinenumber: 252
    functionLinenumberEnd: 257
    functionName: pgp::pkt::Signature::has_keyid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 3
    functionsReached:
    - pgp::pkt::Signature::has_keyfp
    - pgp::pkt::Signature::has_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::has_keyid() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::IssuerKeyID *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:269,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:270,1
    - Dst: auto::keyid
      Src: /src/rnp/src/librepgp/stream-sig.cpp:272,1
    - Dst: pgp::pkt::Signature::keyfp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:276,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 259
    functionDepth: 3
    functionLinenumber: 259
    functionLinenumberEnd: 277
    functionName: pgp::pkt::Signature::keyid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 3
    functionsReached:
    - auto::keyid
    - pgp::pkt::Signature::get_subpkt
    - pgp::pkt::Signature::keyfp
    - dynamic_cast<const sigsub::IssuerKeyID *>
    linkageType: ''
    returnType: KeyID
    signature: KeyID Signature::keyid() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::IssuerKeyID>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:287,1
    - Dst: sigsub::IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/librepgp/stream-sig.cpp:287,1
    - Dst: auto::set_keyid
      Src: /src/rnp/src/librepgp/stream-sig.cpp:288,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:289,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - id
    argTypes:
    - KeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 279
    functionDepth: 2
    functionLinenumber: 279
    functionLinenumberEnd: 290
    functionName: pgp::pkt::Signature::set_keyid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_keyid
    - std::unique_ptr<sigsub::IssuerKeyID>
    - sigsub::IssuerKeyID::IssuerKeyID
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_keyid(const KeyID &id)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::IssuerFingerprint *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:295,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:296,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:302,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:307,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 311
    functionName: pgp::pkt::Signature::has_keyfp
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 5
    functionsReached:
    - auto::fp
    - dynamic_cast<const sigsub::IssuerFingerprint *>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::has_keyfp() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::IssuerFingerprint *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:316,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:317,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 2
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: pgp::pkt::Signature::keyfp
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 8
    functionsReached:
    - auto::fp
    - dynamic_cast<const sigsub::IssuerFingerprint *>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: Fingerprint
    signature: Fingerprint Signature::keyfp() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::IssuerFingerprint>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:324,1
    - Dst: sigsub::IssuerFingerprint::IssuerFingerprint
      Src: /src/rnp/src/librepgp/stream-sig.cpp:324,1
    - Dst: auto::set_version
      Src: /src/rnp/src/librepgp/stream-sig.cpp:326,1
    - Dst: auto::set_version
      Src: /src/rnp/src/librepgp/stream-sig.cpp:328,1
    - Dst: auto::set_fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:330,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:331,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - fp
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 321
    functionDepth: 2
    functionLinenumber: 321
    functionLinenumberEnd: 332
    functionName: pgp::pkt::Signature::set_keyfp
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - sigsub::IssuerFingerprint::IssuerFingerprint
    - pgp::pkt::Signature::add_subpkt
    - auto::set_fp
    - std::unique_ptr<sigsub::IssuerFingerprint>
    - auto::set_version
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_keyfp(const Fingerprint &fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::CreationTime *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:341,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:341,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 334
    functionDepth: 2
    functionLinenumber: 334
    functionLinenumberEnd: 343
    functionName: pgp::pkt::Signature::creation
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - auto::time
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::CreationTime *>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Signature::creation() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::CreationTime>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:352,1
    - Dst: sigsub::CreationTime::CreationTime
      Src: /src/rnp/src/librepgp/stream-sig.cpp:352,1
    - Dst: auto::set_time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:353,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:354,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ctime
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 355
      start: 345
    functionDepth: 2
    functionLinenumber: 345
    functionLinenumberEnd: 355
    functionName: pgp::pkt::Signature::set_creation
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_time
    - std::unique_ptr<sigsub::CreationTime>
    - sigsub::CreationTime::CreationTime
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_creation(uint32_t ctime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::ExpirationTime *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:361,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:361,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:362,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 357
    functionDepth: 2
    functionLinenumber: 357
    functionLinenumberEnd: 363
    functionName: pgp::pkt::Signature::expiration
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - dynamic_cast<const sigsub::ExpirationTime *>
    - auto::time
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Signature::expiration() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::ExpirationTime>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:368,1
    - Dst: sigsub::ExpirationTime::ExpirationTime
      Src: /src/rnp/src/librepgp/stream-sig.cpp:368,1
    - Dst: auto::set_time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:369,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:370,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - etime
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 365
    functionDepth: 2
    functionLinenumber: 365
    functionLinenumberEnd: 371
    functionName: pgp::pkt::Signature::set_expiration
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_time
    - sigsub::ExpirationTime::ExpirationTime
    - std::unique_ptr<sigsub::ExpirationTime>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_expiration(uint32_t etime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::KeyExpirationTime *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:376,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:377,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 373
    functionDepth: 2
    functionLinenumber: 373
    functionLinenumberEnd: 379
    functionName: pgp::pkt::Signature::key_expiration
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::time
    - dynamic_cast<const sigsub::KeyExpirationTime *>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Signature::key_expiration() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::KeyExpirationTime>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:384,1
    - Dst: sigsub::KeyExpirationTime::KeyExpirationTime
      Src: /src/rnp/src/librepgp/stream-sig.cpp:384,1
    - Dst: auto::set_time
      Src: /src/rnp/src/librepgp/stream-sig.cpp:385,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:386,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - etime
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 387
    functionName: pgp::pkt::Signature::set_key_expiration
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_time
    - sigsub::KeyExpirationTime::KeyExpirationTime
    - std::unique_ptr<sigsub::KeyExpirationTime>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_key_expiration(uint32_t etime)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::KeyFlags *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:392,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:392,1
    - Dst: auto::flags
      Src: /src/rnp/src/librepgp/stream-sig.cpp:393,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 389
    functionDepth: 2
    functionLinenumber: 389
    functionLinenumberEnd: 394
    functionName: pgp::pkt::Signature::key_flags
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::flags
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::KeyFlags *>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Signature::key_flags() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::KeyFlags>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:399,1
    - Dst: sigsub::KeyFlags::KeyFlags
      Src: /src/rnp/src/librepgp/stream-sig.cpp:399,1
    - Dst: auto::set_flags
      Src: /src/rnp/src/librepgp/stream-sig.cpp:400,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:401,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:401,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 396
    functionDepth: 2
    functionLinenumber: 396
    functionLinenumberEnd: 402
    functionName: pgp::pkt::Signature::set_key_flags
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_flags
    - sigsub::KeyFlags::KeyFlags
    - std::unique_ptr<sigsub::KeyFlags>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_key_flags(uint8_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::PrimaryUserID *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:408,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:408,1
    - Dst: auto::primary
      Src: /src/rnp/src/librepgp/stream-sig.cpp:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 404
    functionDepth: 2
    functionLinenumber: 404
    functionLinenumberEnd: 410
    functionName: pgp::pkt::Signature::primary_uid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const sigsub::PrimaryUserID *>
    - pgp::pkt::Signature::get_subpkt
    - auto::primary
    linkageType: ''
    returnType: bool
    signature: bool Signature::primary_uid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::PrimaryUserID>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:415,1
    - Dst: sigsub::PrimaryUserID::PrimaryUserID
      Src: /src/rnp/src/librepgp/stream-sig.cpp:415,1
    - Dst: auto::set_primary
      Src: /src/rnp/src/librepgp/stream-sig.cpp:416,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:417,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - primary
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 412
    functionDepth: 2
    functionLinenumber: 412
    functionLinenumberEnd: 418
    functionName: pgp::pkt::Signature::set_primary_uid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - sigsub::PrimaryUserID::PrimaryUserID
    - pgp::pkt::Signature::add_subpkt
    - auto::set_primary
    - std::unique_ptr<sigsub::PrimaryUserID>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_primary_uid(bool primary)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Preferred *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:423,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:423,1
    - Dst: auto::algs
      Src: /src/rnp/src/librepgp/stream-sig.cpp:424,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:424,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - type
    argTypes:
    - sigsub::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 420
    functionDepth: 2
    functionLinenumber: 420
    functionLinenumberEnd: 425
    functionName: pgp::pkt::Signature::preferred
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 12
    functionsReached:
    - dynamic_cast<const sigsub::Preferred *>
    - auto::algs
    - std::vector<uint8_t>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::preferred(sigsub::Type type) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::empty
      Src: /src/rnp/src/librepgp/stream-sig.cpp:430,1
    - Dst: pgp::pkt::Signature::remove_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:432,1
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:432,1
    - Dst: pgp::pkt::Signature::remove_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:433,1
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:433,1
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/librepgp/stream-sig.cpp:437,1
    - Dst: dynamic_cast<sigsub::Preferred *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:438,1
    - Dst: auto::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:438,1
    - Dst: auto::set_algs
      Src: /src/rnp/src/librepgp/stream-sig.cpp:442,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:443,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:443,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - data
    - type
    argTypes:
    - std::vector<uint8_t>
    - sigsub::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 427
    functionDepth: 2
    functionLinenumber: 427
    functionLinenumberEnd: 444
    functionName: pgp::pkt::Signature::set_preferred
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 12
    functionsReached:
    - pgp::pkt::Signature::remove_subpkt
    - pgp::pkt::sigsub::Raw::create
    - pgp::pkt::Signature::add_subpkt
    - std::vector<uint8_t>::empty
    - auto::set_algs
    - pgp::pkt::Signature::find_subpkt
    - auto::get
    - dynamic_cast<sigsub::Preferred *>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_preferred(const std::vector<uint8_t> &data, sigsub::Type
      type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 446
    functionDepth: 3
    functionLinenumber: 446
    functionLinenumberEnd: 450
    functionName: pgp::pkt::Signature::preferred_symm_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::preferred
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::preferred_symm_algs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::set_preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:455,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 452
    functionDepth: 2
    functionLinenumber: 452
    functionLinenumberEnd: 456
    functionName: pgp::pkt::Signature::set_preferred_symm_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::set_preferred
    linkageType: ''
    returnType: void
    signature: void Signature::set_preferred_symm_algs(const std::vector<uint8_t>
      &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 458
    functionDepth: 3
    functionLinenumber: 458
    functionLinenumberEnd: 462
    functionName: pgp::pkt::Signature::preferred_hash_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::preferred
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::preferred_hash_algs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::set_preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 464
    functionDepth: 2
    functionLinenumber: 464
    functionLinenumberEnd: 468
    functionName: pgp::pkt::Signature::set_preferred_hash_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::set_preferred
    linkageType: ''
    returnType: void
    signature: void Signature::set_preferred_hash_algs(const std::vector<uint8_t>
      &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:473,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 474
      start: 470
    functionDepth: 3
    functionLinenumber: 470
    functionLinenumberEnd: 474
    functionName: pgp::pkt::Signature::preferred_z_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::preferred
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::preferred_z_algs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::set_preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 476
    functionDepth: 2
    functionLinenumber: 476
    functionLinenumberEnd: 480
    functionName: pgp::pkt::Signature::set_preferred_z_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::set_preferred
    linkageType: ''
    returnType: void
    signature: void Signature::set_preferred_z_algs(const std::vector<uint8_t> &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::set_preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 483
    functionDepth: 2
    functionLinenumber: 483
    functionLinenumberEnd: 487
    functionName: pgp::pkt::Signature::set_preferred_aead_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::set_preferred
    linkageType: ''
    returnType: void
    signature: void Signature::set_preferred_aead_algs(const std::vector<uint8_t>
      &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::preferred
      Src: /src/rnp/src/librepgp/stream-sig.cpp:492,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 489
    functionDepth: 3
    functionLinenumber: 489
    functionLinenumberEnd: 493
    functionName: pgp::pkt::Signature::preferred_aead_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::preferred
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::preferred_aead_algs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::KeyserverPrefs *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:500,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:500,1
    - Dst: auto::raw
      Src: /src/rnp/src/librepgp/stream-sig.cpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 496
    functionDepth: 2
    functionLinenumber: 496
    functionLinenumberEnd: 502
    functionName: pgp::pkt::Signature::key_server_prefs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::raw
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::KeyserverPrefs *>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Signature::key_server_prefs() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::KeyserverPrefs>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:507,1
    - Dst: sigsub::KeyserverPrefs::KeyserverPrefs
      Src: /src/rnp/src/librepgp/stream-sig.cpp:507,1
    - Dst: auto::set_raw
      Src: /src/rnp/src/librepgp/stream-sig.cpp:508,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:509,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - prefs
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 504
    functionDepth: 2
    functionLinenumber: 504
    functionLinenumberEnd: 510
    functionName: pgp::pkt::Signature::set_key_server_prefs
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - sigsub::KeyserverPrefs::KeyserverPrefs
    - auto::set_raw
    - pgp::pkt::Signature::add_subpkt
    - std::move
    - std::unique_ptr<sigsub::KeyserverPrefs>
    linkageType: ''
    returnType: void
    signature: void Signature::set_key_server_prefs(uint8_t prefs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::PreferredKeyserver *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:515,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:516,1
    - Dst: auto::keyserver
      Src: /src/rnp/src/librepgp/stream-sig.cpp:517,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 512
    functionDepth: 2
    functionLinenumber: 512
    functionLinenumberEnd: 518
    functionName: pgp::pkt::Signature::key_server
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const sigsub::PreferredKeyserver *>
    - pgp::pkt::Signature::get_subpkt
    - auto::keyserver
    linkageType: ''
    returnType: std::string
    signature: std::string Signature::key_server() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/rnp/src/librepgp/stream-sig.cpp:523,1
    - Dst: pgp::pkt::Signature::remove_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:524,1
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:524,1
    - Dst: pgp::pkt::Signature::remove_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:525,1
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:525,1
    - Dst: std::unique_ptr<sigsub::PreferredKeyserver>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:529,1
    - Dst: sigsub::PreferredKeyserver::PreferredKeyserver
      Src: /src/rnp/src/librepgp/stream-sig.cpp:529,1
    - Dst: auto::set_keyserver
      Src: /src/rnp/src/librepgp/stream-sig.cpp:530,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:531,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:531,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - uri
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 532
      start: 520
    functionDepth: 2
    functionLinenumber: 520
    functionLinenumberEnd: 532
    functionName: pgp::pkt::Signature::set_key_server
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::remove_subpkt
    - pgp::pkt::Signature::add_subpkt
    - auto::set_keyserver
    - pgp::pkt::Signature::find_subpkt
    - std::string::empty
    - sigsub::PreferredKeyserver::PreferredKeyserver
    - std::unique_ptr<sigsub::PreferredKeyserver>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_key_server(const std::string &uri)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Trust *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:537,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:537,1
    - Dst: auto::level
      Src: /src/rnp/src/librepgp/stream-sig.cpp:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 534
    functionDepth: 2
    functionLinenumber: 534
    functionLinenumberEnd: 539
    functionName: pgp::pkt::Signature::trust_level
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::level
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::Trust *>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Signature::trust_level() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Trust *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:544,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:544,1
    - Dst: auto::amount
      Src: /src/rnp/src/librepgp/stream-sig.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 546
      start: 541
    functionDepth: 2
    functionLinenumber: 541
    functionLinenumberEnd: 546
    functionName: pgp::pkt::Signature::trust_amount
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::amount
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::Trust *>
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Signature::trust_amount() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::Trust>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:551,1
    - Dst: sigsub::Trust::Trust
      Src: /src/rnp/src/librepgp/stream-sig.cpp:551,1
    - Dst: auto::set_level
      Src: /src/rnp/src/librepgp/stream-sig.cpp:552,1
    - Dst: auto::set_amount
      Src: /src/rnp/src/librepgp/stream-sig.cpp:553,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:554,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:554,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - level
    - amount
    argTypes:
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 555
      start: 548
    functionDepth: 2
    functionLinenumber: 548
    functionLinenumberEnd: 555
    functionName: pgp::pkt::Signature::set_trust
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<sigsub::Trust>
    - pgp::pkt::Signature::add_subpkt
    - sigsub::Trust::Trust
    - auto::set_level
    - auto::set_amount
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_trust(uint8_t level, uint8_t amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Revocable *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:560,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:560,1
    - Dst: auto::revocable
      Src: /src/rnp/src/librepgp/stream-sig.cpp:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 557
    functionDepth: 2
    functionLinenumber: 557
    functionLinenumberEnd: 562
    functionName: pgp::pkt::Signature::revocable
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::revocable
    - dynamic_cast<const sigsub::Revocable *>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::revocable() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::Revocable>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:567,1
    - Dst: sigsub::Revocable::Revocable
      Src: /src/rnp/src/librepgp/stream-sig.cpp:567,1
    - Dst: auto::set_revocable
      Src: /src/rnp/src/librepgp/stream-sig.cpp:568,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:569,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - status
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 564
    functionDepth: 2
    functionLinenumber: 564
    functionLinenumberEnd: 570
    functionName: pgp::pkt::Signature::set_revocable
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - sigsub::Revocable::Revocable
    - auto::set_revocable
    - std::move
    - std::unique_ptr<sigsub::Revocable>
    linkageType: ''
    returnType: void
    signature: void Signature::set_revocable(bool status)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::RevocationReason *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:575,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:576,1
    - Dst: auto::reason
      Src: /src/rnp/src/librepgp/stream-sig.cpp:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 572
    functionDepth: 2
    functionLinenumber: 572
    functionLinenumberEnd: 578
    functionName: pgp::pkt::Signature::revocation_reason
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - auto::reason
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::RevocationReason *>
    linkageType: ''
    returnType: std::string
    signature: std::string Signature::revocation_reason() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::RevocationReason *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:583,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:584,1
    - Dst: auto::code
      Src: /src/rnp/src/librepgp/stream-sig.cpp:585,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 580
    functionDepth: 2
    functionLinenumber: 580
    functionLinenumberEnd: 586
    functionName: pgp::pkt::Signature::revocation_code
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 2
    functionsReached:
    - auto::code
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::RevocationReason *>
    linkageType: ''
    returnType: pgp_revocation_type_t
    signature: pgp_revocation_type_t Signature::revocation_code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 588
    functionDepth: 2
    functionLinenumber: 588
    functionLinenumberEnd: 592
    functionName: pgp::pkt::Signature::has_revocation_reason
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::has_revocation_reason() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::RevocationReason>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:597,1
    - Dst: sigsub::RevocationReason::RevocationReason
      Src: /src/rnp/src/librepgp/stream-sig.cpp:597,1
    - Dst: auto::set_code
      Src: /src/rnp/src/librepgp/stream-sig.cpp:598,1
    - Dst: auto::set_reason
      Src: /src/rnp/src/librepgp/stream-sig.cpp:599,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:600,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:600,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - code
    - reason
    argTypes:
    - pgp_revocation_type_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 601
      start: 594
    functionDepth: 2
    functionLinenumber: 594
    functionLinenumberEnd: 601
    functionName: pgp::pkt::Signature::set_revocation_reason
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::set_reason
    - pgp::pkt::Signature::add_subpkt
    - auto::set_code
    - sigsub::RevocationReason::RevocationReason
    - std::unique_ptr<sigsub::RevocationReason>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_revocation_reason(pgp_revocation_type_t code, const
      std::string &reason)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Features *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:606,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:606,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-sig.cpp:607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 603
    functionDepth: 2
    functionLinenumber: 603
    functionLinenumberEnd: 608
    functionName: pgp::pkt::Signature::key_get_features
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::features
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::Features *>
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Signature::key_get_features() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::Features *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:613,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:613,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-sig.cpp:614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 615
      start: 610
    functionDepth: 2
    functionLinenumber: 610
    functionLinenumberEnd: 615
    functionName: pgp::pkt::Signature::key_has_features
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::features
    - pgp::pkt::Signature::get_subpkt
    - dynamic_cast<const sigsub::Features *>
    linkageType: ''
    returnType: bool
    signature: bool Signature::key_has_features(uint32_t flags) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::Features>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:620,1
    - Dst: sigsub::Features::Features
      Src: /src/rnp/src/librepgp/stream-sig.cpp:620,1
    - Dst: auto::set_features
      Src: /src/rnp/src/librepgp/stream-sig.cpp:621,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:622,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 623
      start: 617
    functionDepth: 2
    functionLinenumber: 617
    functionLinenumberEnd: 623
    functionName: pgp::pkt::Signature::set_key_features
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - auto::set_features
    - std::unique_ptr<sigsub::Features>
    - sigsub::Features::Features
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_key_features(uint32_t flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::SignersUserID *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:629,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:629,1
    - Dst: auto::signer
      Src: /src/rnp/src/librepgp/stream-sig.cpp:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 625
    functionDepth: 2
    functionLinenumber: 625
    functionLinenumberEnd: 631
    functionName: pgp::pkt::Signature::signer_uid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const sigsub::SignersUserID *>
    - auto::signer
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: std::string
    signature: std::string Signature::signer_uid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::SignersUserID>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:636,1
    - Dst: sigsub::SignersUserID::SignersUserID
      Src: /src/rnp/src/librepgp/stream-sig.cpp:636,1
    - Dst: auto::set_signer
      Src: /src/rnp/src/librepgp/stream-sig.cpp:637,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:638,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:638,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uid
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 639
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 639
    functionName: pgp::pkt::Signature::set_signer_uid
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::set_signer
    - std::unique_ptr<sigsub::SignersUserID>
    - pgp::pkt::Signature::add_subpkt
    - sigsub::SignersUserID::SignersUserID
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_signer_uid(const std::string &uid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:647,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:647,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:648,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-sig.cpp:649,1
    - Dst: std::unique_ptr<sigsub::NotationData>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:652,1
    - Dst: sigsub::NotationData::NotationData
      Src: /src/rnp/src/librepgp/stream-sig.cpp:652,1
    - Dst: auto::set_human_readable
      Src: /src/rnp/src/librepgp/stream-sig.cpp:653,1
    - Dst: auto::set_name
      Src: /src/rnp/src/librepgp/stream-sig.cpp:654,1
    - Dst: auto::set_value
      Src: /src/rnp/src/librepgp/stream-sig.cpp:655,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:656,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:656,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - '         name'
    - value
    - human
    - critical
    argTypes:
    - std::string
    - std::vector<uint8_t>
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 641
    functionDepth: 2
    functionLinenumber: 641
    functionLinenumberEnd: 657
    functionName: pgp::pkt::Signature::add_notation
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>::size
    - auto::set_value
    - pgp::pkt::Signature::add_subpkt
    - std::move
    - std::unique_ptr<sigsub::NotationData>
    - auto::set_human_readable
    - rnp::rnp_exception::rnp_exception
    - sigsub::NotationData::NotationData
    - auto::set_name
    - size
    linkageType: ''
    returnType: void
    signature: "void Signature::add_notation(const std::string &         name,\n                        const
      std::vector<uint8_t> &value,\n                        bool                        human,\n
      \                       bool                        critical)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::add_notation
      Src: /src/rnp/src/librepgp/stream-sig.cpp:662,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:662,1
    - Dst: std::string::begin
      Src: /src/rnp/src/librepgp/stream-sig.cpp:662,1
    - Dst: std::string::end
      Src: /src/rnp/src/librepgp/stream-sig.cpp:662,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - name
    - value
    - critical
    argTypes:
    - std::string
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 663
      start: 659
    functionDepth: 1
    functionLinenumber: 659
    functionLinenumberEnd: 663
    functionName: pgp::pkt::Signature::add_notation
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 5
    functionsReached:
    - std::vector<uint8_t>
    - std::string::begin
    - pgp::pkt::Signature::add_notation
    - std::string::end
    linkageType: ''
    returnType: void
    signature: void Signature::add_notation(const std::string &name, const std::string
      &value, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::EmbeddedSignature>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:669,1
    - Dst: sigsub::EmbeddedSignature::EmbeddedSignature
      Src: /src/rnp/src/librepgp/stream-sig.cpp:669,1
    - Dst: auto::set_signature
      Src: /src/rnp/src/librepgp/stream-sig.cpp:670,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:671,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:671,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - esig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 665
    functionDepth: 2
    functionLinenumber: 665
    functionLinenumberEnd: 672
    functionName: pgp::pkt::Signature::set_embedded_sig
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::add_subpkt
    - sigsub::EmbeddedSignature::EmbeddedSignature
    - std::unique_ptr<sigsub::EmbeddedSignature>
    - auto::set_signature
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_embedded_sig(const Signature &esig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const sigsub::RevocationKey *>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:677,1
    - Dst: pgp::pkt::Signature::get_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 679
      start: 674
    functionDepth: 2
    functionLinenumber: 674
    functionLinenumberEnd: 679
    functionName: pgp::pkt::Signature::revoker_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 6
    functionsReached:
    - dynamic_cast<const sigsub::RevocationKey *>
    - pgp::pkt::Signature::get_subpkt
    linkageType: ''
    returnType: sigsub::RevocationKey
    signature: 'sigsub::RevocationKey *

      Signature::revoker_subpkt() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::revoker_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 685
      start: 681
    functionDepth: 3
    functionLinenumber: 681
    functionLinenumberEnd: 685
    functionName: pgp::pkt::Signature::has_revoker
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::revoker_subpkt
    linkageType: ''
    returnType: bool
    signature: bool Signature::has_revoker() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::revoker_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:690,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:691,1
    - Dst: Fingerprint
      Src: /src/rnp/src/librepgp/stream-sig.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 687
    functionDepth: 3
    functionLinenumber: 687
    functionLinenumberEnd: 692
    functionName: pgp::pkt::Signature::revoker
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - auto::fp
    - pgp::pkt::Signature::revoker_subpkt
    - Fingerprint
    linkageType: ''
    returnType: Fingerprint
    signature: Fingerprint Signature::revoker() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<sigsub::RevocationKey>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:697,1
    - Dst: sigsub::RevocationKey::RevocationKey
      Src: /src/rnp/src/librepgp/stream-sig.cpp:697,1
    - Dst: auto::set_rev_class
      Src: /src/rnp/src/librepgp/stream-sig.cpp:698,1
    - Dst: auto::set_alg
      Src: /src/rnp/src/librepgp/stream-sig.cpp:699,1
    - Dst: rnp::Key::alg
      Src: /src/rnp/src/librepgp/stream-sig.cpp:699,1
    - Dst: auto::set_fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:700,1
    - Dst: rnp::Key::fp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:700,1
    - Dst: pgp::pkt::Signature::add_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:701,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - revoker
    - sensitive
    argTypes:
    - rnp::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 694
    functionDepth: 2
    functionLinenumber: 694
    functionLinenumberEnd: 702
    functionName: pgp::pkt::Signature::set_revoker
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key::alg
    - pgp::pkt::Signature::add_subpkt
    - auto::set_fp
    - sigsub::RevocationKey::RevocationKey
    - rnp::Key::fp
    - auto::set_rev_class
    - auto::set_alg
    - std::unique_ptr<sigsub::RevocationKey>
    - std::move
    linkageType: ''
    returnType: void
    signature: void Signature::set_revoker(const rnp::Key &revoker, bool sensitive)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:708,1
    - Dst: std::invalid_argument
      Src: /src/rnp/src/librepgp/stream-sig.cpp:709,1
    - Dst: std::unique_ptr<sigsub::Raw>::write
      Src: /src/rnp/src/librepgp/stream-sig.cpp:712,1
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:714,1
    - Dst: std::unique_ptr<sigsub::Raw>::raw_type
      Src: /src/rnp/src/librepgp/stream-sig.cpp:714,1
    - Dst: std::unique_ptr<sigsub::Raw>::hashed
      Src: /src/rnp/src/librepgp/stream-sig.cpp:714,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:716,1
    - Dst: items::push_back
      Src: /src/rnp/src/librepgp/stream-sig.cpp:720,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:720,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 2
    argNames:
    - sub
    - replace
    argTypes:
    - std::unique_ptr<sigsub::Raw>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 721
      start: 704
    functionDepth: 2
    functionLinenumber: 704
    functionLinenumberEnd: 721
    functionName: pgp::pkt::Signature::add_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 72
    functionsReached:
    - RNP_LOG
    - std::unique_ptr<sigsub::Raw>::hashed
    - std::invalid_argument
    - pgp::pkt::Signature::find_subpkt
    - std::move
    - std::unique_ptr<sigsub::Raw>::write
    - items::push_back
    - std::unique_ptr<sigsub::Raw>::raw_type
    linkageType: ''
    returnType: void
    signature: void Signature::add_subpkt(std::unique_ptr<sigsub::Raw> &&sub, bool
      replace)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:726,1
    - Dst: items::erase
      Src: /src/rnp/src/librepgp/stream-sig.cpp:727,1
    - Dst: begin
      Src: /src/rnp/src/librepgp/stream-sig.cpp:727,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 723
    functionDepth: 1
    functionLinenumber: 723
    functionLinenumberEnd: 729
    functionName: pgp::pkt::Signature::remove_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 8
    functionsReached:
    - begin
    - size
    - items::erase
    linkageType: ''
    returnType: void
    signature: void Signature::remove_subpkt(size_t idx)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::has_keyid
      Src: /src/rnp/src/librepgp/stream-sig.cpp:734,1
    - Dst: pgp::pkt::Signature::keyid
      Src: /src/rnp/src/librepgp/stream-sig.cpp:744,1
    - Dst: pgp::pkt::Signature::keyfp
      Src: /src/rnp/src/librepgp/stream-sig.cpp:755,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 24
    argCount: 1
    argNames:
    - onepass
    argTypes:
    - pgp_one_pass_sig_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 766
      start: 731
    functionDepth: 3
    functionLinenumber: 731
    functionLinenumberEnd: 766
    functionName: pgp::pkt::Signature::matches_onepass
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::has_keyid
    - pgp::pkt::Signature::keyid
    - pgp::pkt::Signature::keyfp
    linkageType: ''
    returnType: bool
    signature: bool Signature::matches_onepass(const pgp_one_pass_sig_t &onepass)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - version
    argTypes:
    - pgp_version_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 779
      start: 768
    functionDepth: 0
    functionLinenumber: 768
    functionLinenumberEnd: 779
    functionName: pgp::pkt::Signature::version_supported
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Signature::version_supported(pgp_version_t version)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:786,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:787,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:792,1
    - Dst: assign
      Src: /src/rnp/src/librepgp/stream-sig.cpp:796,1
    - Dst: read_uint32
      Src: /src/rnp/src/librepgp/stream-sig.cpp:800,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-sig.cpp:804,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:804,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 781
    functionDepth: 1
    functionLinenumber: 781
    functionLinenumberEnd: 810
    functionName: pgp::pkt::Signature::parse_v2v3
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - data
    - memcpy
    - pgp_packet_body_t::get
    - read_uint32
    - assign
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Signature::parse_v2v3(pgp_packet_body_t &pkt)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:820,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:821,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:825,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:837,1
    - Dst: read_uint32
      Src: /src/rnp/src/librepgp/stream-sig.cpp:840,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:846,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:852,1
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/librepgp/stream-sig.cpp:856,1
    - Dst: items::push_back
      Src: /src/rnp/src/librepgp/stream-sig.cpp:860,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-sig.cpp:860,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - buf
    - len
    - hashed
    argTypes:
    - uint8_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 866
      start: 814
    functionDepth: 1
    functionLinenumber: 814
    functionLinenumberEnd: 866
    functionName: pgp::pkt::Signature::parse_subpackets
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - pgp::pkt::sigsub::Raw::create
    - read_uint32
    - std::move
    - items::push_back
    - size
    linkageType: ''
    returnType: bool
    signature: bool Signature::parse_subpackets(uint8_t *buf, size_t len, bool hashed)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:875,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:884,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:892,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - pkt
    - splen
    argTypes:
    - pgp_packet_body_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 868
    functionDepth: 1
    functionLinenumber: 868
    functionLinenumberEnd: 895
    functionName: pgp::pkt::Signature::get_subpkt_len
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool Signature::get_subpkt_len(pgp_packet_body_t &pkt, size_t &splen)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:903,1
    - Dst: raw_type
      Src: /src/rnp/src/librepgp/stream-sig.cpp:904,1
    - Dst: hashed
      Src: /src/rnp/src/librepgp/stream-sig.cpp:904,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 14
    argCount: 3
    argNames:
    - stype
    - hashed
    - skip
    argTypes:
    - uint8_t
    - bool
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 897
    functionDepth: 1
    functionLinenumber: 897
    functionLinenumberEnd: 913
    functionName: pgp::pkt::Signature::find_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 27
    functionsReached:
    - raw_type
    - size
    - hashed
    linkageType: ''
    returnType: size_t
    signature: size_t Signature::find_subpkt(uint8_t stype, bool hashed, size_t skip)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::find_subpkt
      Src: /src/rnp/src/librepgp/stream-sig.cpp:918,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/librepgp/stream-sig.cpp:918,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - hashed
    - skip
    argTypes:
    - sigsub::Type
    - bool
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 919
    functionName: pgp::pkt::Signature::find_subpkt
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 28
    functionsReached:
    - pgp::pkt::Signature::find_subpkt
    - static_cast<uint8_t>
    linkageType: ''
    returnType: size_t
    signature: size_t Signature::find_subpkt(sigsub::Type type, bool hashed, size_t
      skip) const
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:926,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:927,1
    - Dst: pgp_packet_body_t::cur
      Src: /src/rnp/src/librepgp/stream-sig.cpp:940,1
    - Dst: pgp::pkt::Signature::get_subpkt_len
      Src: /src/rnp/src/librepgp/stream-sig.cpp:941,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:942,1
    - Dst: pgp_packet_body_t::cur
      Src: /src/rnp/src/librepgp/stream-sig.cpp:945,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-sig.cpp:947,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:948,1
    - Dst: resize
      Src: /src/rnp/src/librepgp/stream-sig.cpp:953,1
    - Dst: pgp_packet_body_t::skip_back
      Src: /src/rnp/src/librepgp/stream-sig.cpp:956,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:958,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:958,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:959,1
    - Dst: pgp::pkt::Signature::parse_subpackets
      Src: /src/rnp/src/librepgp/stream-sig.cpp:963,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:963,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:964,1
    - Dst: pgp::pkt::Signature::get_subpkt_len
      Src: /src/rnp/src/librepgp/stream-sig.cpp:969,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:970,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-sig.cpp:973,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:974,1
    - Dst: pgp::pkt::Signature::parse_subpackets
      Src: /src/rnp/src/librepgp/stream-sig.cpp:977,1
    - Dst: pgp_packet_body_t::cur
      Src: /src/rnp/src/librepgp/stream-sig.cpp:977,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:978,1
    - Dst: pgp_packet_body_t::skip
      Src: /src/rnp/src/librepgp/stream-sig.cpp:981,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 983
      start: 921
    functionDepth: 2
    functionLinenumber: 921
    functionLinenumberEnd: 983
    functionName: pgp::pkt::Signature::parse_v4up
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - data
    - pgp_packet_body_t::skip_back
    - pgp::pkt::Signature::get_subpkt_len
    - pgp_packet_body_t::cur
    - resize
    - pgp_packet_body_t::get
    - pgp_packet_body_t::left
    - pgp::pkt::Signature::parse_subpackets
    - pgp_packet_body_t::skip
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Signature::parse_v4up(pgp_packet_body_t &pkt)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:989,1
    - Dst: pgp::pkt::Signature::parse_v2v3
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1000,1
    - Dst: pgp::pkt::Signature::parse_v4up
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1009,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1012,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1021,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1021,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1022,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1029,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1030,1
    - Dst: pgp::pkt::Signature::v6_salt_size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1034,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1035,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1039,1
    - Dst: resize
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1042,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1043,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1043,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1044,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1052,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1052,1
    - Dst: pgp::pkt::Signature::parse_material
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1054,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 53
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1058
      start: 985
    functionDepth: 3
    functionLinenumber: 985
    functionLinenumberEnd: 1058
    functionName: pgp::pkt::Signature::parse
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 23
    functionsReached:
    - RNP_LOG
    - pgp::pkt::Signature::parse_material
    - data
    - pgp::pkt::Signature::parse_v4up
    - pgp::pkt::Signature::parse_v2v3
    - resize
    - pgp_packet_body_t::get
    - pgp_packet_body_t::left
    - pgp::pkt::Signature::v6_salt_size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Signature::parse(pgp_packet_body_t &pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::read
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1064,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1068,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1069
      start: 1060
    functionDepth: 1
    functionLinenumber: 1060
    functionLinenumberEnd: 1069
    functionName: pgp::pkt::Signature::parse
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 24
    functionsReached:
    - pgp::pkt::Signature::parse
    - pgp_packet_body_t::read
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Signature::parse(pgp_source_t &src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::SigMaterial::create
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1074,1
    - Dst: auto::parse
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1079,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1082,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1083,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1083,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1087
      start: 1071
    functionDepth: 1
    functionLinenumber: 1071
    functionLinenumberEnd: 1087
    functionName: pgp::pkt::Signature::parse_material
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - auto::parse
    - pgp::SigMaterial::create
    - pgp_packet_body_t::left
    linkageType: ''
    returnType: std::unique_ptr<SigMaterial>
    signature: std::unique_ptr<SigMaterial> Signature::parse_material() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::version_supported
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1092,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1093,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1094,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1101,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1102,1
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1102,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1103,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1104,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1105,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1106,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1109,1
    - Dst: pgp_packet_body_t::add_subpackets
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1110,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1112,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1112,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1115,1
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1115,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1116,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1120,1
    - Dst: pgp_packet_body_t::write
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1121,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 2
    argNames:
    - dst
    - hdr
    argTypes:
    - pgp_dest_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1089
    functionDepth: 1
    functionLinenumber: 1089
    functionLinenumberEnd: 1122
    functionName: pgp::pkt::Signature::write
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::write
    - data
    - pgp::pkt::Signature::version_supported
    - pgp_packet_body_t::add_byte
    - pgp_packet_body_t::add_subpackets
    - pgp_packet_body_t::add
    - rnp::rnp_exception::rnp_exception
    - size
    linkageType: ''
    returnType: void
    signature: void Signature::write(pgp_dest_t &dst, bool hdr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::MemoryDest::MemoryDest
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1127,1
    - Dst: pgp::pkt::Signature::write
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1128,1
    - Dst: rnp::MemoryDest::dst
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1128,1
    - Dst: rnp::MemoryDest::to_vector
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1130
      start: 1124
    functionDepth: 1
    functionLinenumber: 1124
    functionLinenumberEnd: 1130
    functionName: pgp::pkt::Signature::write
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 4
    functionsReached:
    - rnp::MemoryDest::to_vector
    - pgp::pkt::Signature::write
    - rnp::MemoryDest::MemoryDest
    - rnp::MemoryDest::dst
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Signature::write(bool hdr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SigMaterial::write
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1136,1
    - Dst: assign
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1137,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1137,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1137,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - material
    argTypes:
    - SigMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1132
    functionDepth: 0
    functionLinenumber: 1132
    functionLinenumberEnd: 1138
    functionName: pgp::pkt::Signature::write_material
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::data
    - assign
    - pgp_packet_body_t::size
    - SigMaterial::write
    linkageType: ''
    returnType: void
    signature: void Signature::write_material(const SigMaterial &material)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::version_supported
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1144,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1145,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1146,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1150,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1150,1
    - Dst: pgp_packet_body_t::add_uint32
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1151,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1153,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1154,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1154,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1155,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1156,1
    - Dst: pgp_packet_body_t::add_subpackets
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1157,1
    - Dst: assign
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1159,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1159,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1159,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1159,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1140
    functionDepth: 1
    functionLinenumber: 1140
    functionLinenumberEnd: 1160
    functionName: pgp::pkt::Signature::fill_hashed_data
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::add_uint32
    - pgp::pkt::Signature::version_supported
    - pgp_packet_body_t::add_byte
    - pgp_packet_body_t::add_subpackets
    - pgp_packet_body_t::data
    - pgp_packet_body_t::size
    - rnp::rnp_exception::rnp_exception
    - assign
    - pgp::pkt::Signature::type
    linkageType: ''
    returnType: void
    signature: void Signature::fill_hashed_data()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-sig.cpp:1186,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 2
    argNames:
    - halg
    - salt_size
    argTypes:
    - pgp_hash_alg_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1163
    functionDepth: 1
    functionLinenumber: 1163
    functionLinenumberEnd: 1190
    functionName: pgp::pkt::Signature::v6_salt_size
    functionSourceFile: /src/rnp/src/librepgp/stream-sig.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: bool
    signature: bool Signature::v6_salt_size(pgp_hash_alg_t halg, size_t *salt_size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-dump.cpp:253,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-dump.cpp:260,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 3
    argNames:
    - dst
    - buf
    - len
    argTypes:
    - pgp_dest_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 270
    functionName: indent_dst_write
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - dst_write
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t indent_dst_write(pgp_dest_t *dst, const void *buf, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-dump.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - discard
    argTypes:
    - pgp_dest_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: indent_dst_close
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void indent_dst_close(pgp_dest_t *dst, bool discard)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_dst_common
      Src: /src/rnp/src/librepgp/stream-dump.cpp:283,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 2
    argNames:
    - dst
    - origdst
    argTypes:
    - pgp_dest_t
    - pgp_dest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 297
    functionName: init_indent_dest
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - init_dst_common
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_indent_dest(pgp_dest_t &dst, pgp_dest_t *origdst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 303
    functionName: indent_dest_increase
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void indent_dest_increase(pgp_dest_t &dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 312
    functionName: indent_dest_decrease
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void indent_dest_decrease(pgp_dest_t &dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 4
    argNames:
    - str
    - slen
    - buf
    - buflen
    argTypes:
    - char*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 314
    functionDepth: 0
    functionLinenumber: 314
    functionLinenumberEnd: 326
    functionName: vsnprinthex
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t vsnprinthex(char *str, size_t slen, const uint8_t *buf, size_t
      buflen)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:332,1
    - Dst: pgp::mpi::bits
      Src: /src/rnp/src/librepgp/stream-dump.cpp:332,1
    - Dst: vsnprinthex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:335,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:335,1
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:335,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:336,1
    - Dst: pgp::mpi::bits
      Src: /src/rnp/src/librepgp/stream-dump.cpp:336,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - dst
    - name
    - mpi
    - dumpbin
    argTypes:
    - pgp_dest_t
    - char*
    - pgp::mpi
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 328
    functionDepth: 1
    functionLinenumber: 328
    functionLinenumberEnd: 338
    functionName: dst_print_mpi
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - pgp::mpi::data
    - pgp::mpi::bits
    - dst_printf
    - vsnprinthex
    - pgp::mpi::size
    linkageType: ''
    returnType: void
    signature: void dst_print_mpi(pgp_dest_t &dst, const char *name, const pgp::mpi
      &mpi, bool dumpbin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:348,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:350,1
    - Dst: vsnprinthex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:351,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:351,1
    - Dst: std::vector::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:351,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:351,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:351,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:352,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - '                dst'
    - name
    - data
    - dumpbin
    argTypes:
    - pgp_dest_t
    - char*
    - std::vector<uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 341
    functionDepth: 1
    functionLinenumber: 341
    functionLinenumberEnd: 354
    functionName: dst_print_vec
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - dst_printf
    - vsnprinthex
    - std::vector::size
    - std::vector<uint8_t>::data
    - std::vector::data
    linkageType: ''
    returnType: void
    signature: "void dst_print_vec(pgp_dest_t &                dst,\n              const
      char *                name,\n              std::vector<uint8_t> const &data,\n
      \             bool                        dumpbin)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/librepgp/stream-dump.cpp:360,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - name
    - palg
    argTypes:
    - pgp_dest_t
    - char*
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 357
    functionDepth: 1
    functionLinenumber: 357
    functionLinenumberEnd: 366
    functionName: dst_print_palg
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - id_str_pair::lookup
    - dst_printf
    linkageType: ''
    returnType: void
    signature: void dst_print_palg(pgp_dest_t &dst, const char *name, pgp_pubkey_alg_t
      palg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/librepgp/stream-dump.cpp:371,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:376,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - name
    - halg
    argTypes:
    - pgp_dest_t
    - char*
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 377
    functionName: dst_print_halg
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - id_str_pair::lookup
    - dst_printf
    linkageType: ''
    returnType: void
    signature: void dst_print_halg(pgp_dest_t &dst, const char *name, pgp_hash_alg_t
      halg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/librepgp/stream-dump.cpp:382,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:387,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - name
    - salg
    argTypes:
    - pgp_dest_t
    - char*
    - pgp_symm_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 379
    functionDepth: 1
    functionLinenumber: 379
    functionLinenumberEnd: 388
    functionName: dst_print_salg
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - id_str_pair::lookup
    - dst_printf
    linkageType: ''
    returnType: void
    signature: void dst_print_salg(pgp_dest_t &dst, const char *name, pgp_symm_alg_t
      salg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/librepgp/stream-dump.cpp:393,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:398,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - name
    - aalg
    argTypes:
    - pgp_dest_t
    - char*
    - pgp_aead_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 399
    functionName: dst_print_aalg
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - id_str_pair::lookup
    - dst_printf
    linkageType: ''
    returnType: void
    signature: void dst_print_aalg(pgp_dest_t &dst, const char *name, pgp_aead_alg_t
      aalg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/librepgp/stream-dump.cpp:404,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:409,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - name
    - zalg
    argTypes:
    - pgp_dest_t
    - char*
    - pgp_compression_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 410
    functionName: dst_print_zalg
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - id_str_pair::lookup
    - dst_printf
    linkageType: ''
    returnType: void
    signature: void dst_print_zalg(pgp_dest_t &dst, const char *name, pgp_compression_type_t
      zalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:415,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-dump.cpp:416,1
    - Dst: std::string::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:416,1
    - Dst: std::string::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:416,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:417,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - dst
    - name
    - str
    argTypes:
    - pgp_dest_t
    - char*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 418
    functionName: dst_print_str
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - dst_write
    - std::string::data
    - std::string::size
    - dst_printf
    linkageType: ''
    returnType: void
    signature: void dst_print_str(pgp_dest_t &dst, const char *name, const std::string
      &str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:426,1
    - Dst: c_str
      Src: /src/rnp/src/librepgp/stream-dump.cpp:426,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:427,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:428,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:429,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/librepgp/stream-dump.cpp:429,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:431,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:432,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:433,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:434,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - '                dst'
    - '         name'
    - algs
    - map
    argTypes:
    - pgp_dest_t
    - std::string
    - std::vector<uint8_t>
    - id_str_pair[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 420
    functionDepth: 1
    functionLinenumber: 420
    functionLinenumberEnd: 437
    functionName: dst_print_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - id_str_pair::lookup
    - c_str
    - dst_printf
    linkageType: ''
    returnType: void
    signature: "void dst_print_algs(pgp_dest_t &                dst,\n               const
      std::string &         name,\n               const std::vector<uint8_t> &algs,\n
      \              const id_str_pair           map[])"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/librepgp/stream-dump.cpp:442,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:446,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - dst
    - name
    - sigtype
    argTypes:
    - pgp_dest_t
    - char*
    - pgp_sig_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 439
    functionDepth: 1
    functionLinenumber: 439
    functionLinenumberEnd: 447
    functionName: dst_print_sig_type
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - id_str_pair::lookup
    - dst_printf
    linkageType: ''
    returnType: void
    signature: void dst_print_sig_type(pgp_dest_t &dst, const char *name, pgp_sig_type_t
      sigtype)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: vsnprinthex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:454,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:456,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/librepgp/stream-dump.cpp:456,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:458,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/librepgp/stream-dump.cpp:458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 5
    argNames:
    - dst
    - name
    - data
    - len
    - bytes
    argTypes:
    - pgp_dest_t
    - std::string
    - uint8_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 460
      start: 449
    functionDepth: 1
    functionLinenumber: 449
    functionLinenumberEnd: 460
    functionName: dst_print_hex
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - std::string::c_str
    - dst_printf
    - vsnprinthex
    linkageType: ''
    returnType: void
    signature: "void dst_print_hex(\n  pgp_dest_t &dst, const std::string &name, const
      uint8_t *data, size_t len, bool bytes)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dst_print_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:465,1
    - Dst: pgp::KeyID::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:465,1
    - Dst: pgp::KeyID::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dst
    - name
    - keyid
    argTypes:
    - pgp_dest_t
    - std::string
    - pgp::KeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 462
    functionDepth: 2
    functionLinenumber: 462
    functionLinenumberEnd: 466
    functionName: dst_print_keyid
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - dst_print_hex
    - pgp::KeyID::data
    - pgp::KeyID::size
    linkageType: ''
    returnType: void
    signature: void dst_print_keyid(pgp_dest_t &dst, const std::string &name, const
      pgp::KeyID &keyid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dst_print_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:474,1
    - Dst: pgp::Fingerprint::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:474,1
    - Dst: pgp::Fingerprint::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - '            dst'
    - '     name'
    - fp
    argTypes:
    - pgp_dest_t
    - std::string
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 468
    functionDepth: 2
    functionLinenumber: 468
    functionLinenumberEnd: 475
    functionName: dst_print_fp
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - dst_print_hex
    - pgp::Fingerprint::size
    - pgp::Fingerprint::data
    linkageType: ''
    returnType: void
    signature: "void dst_print_fp(pgp_dest_t &            dst,\n             const
      std::string &     name,\n             const pgp::Fingerprint &fp,\n             bool
      \                   size = true)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:480,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:482,1
    - Dst: dst_print_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:486,1
    - Dst: dst_print_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:491,1
    - Dst: pgp_s2k_t::experimental::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:493,1
    - Dst: pgp_s2k_t::experimental::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:494,1
    - Dst: dst_print_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:500,1
    - Dst: pgp_s2k_t::salt_size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:500,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:501,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:502,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:503,1
    - Dst: dst_print_halg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:507,1
    - Dst: dst_print_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:510,1
    - Dst: pgp_s2k_decode_iterations
      Src: /src/rnp/src/librepgp/stream-dump.cpp:513,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:514,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - dst
    - s2k
    argTypes:
    - pgp_dest_t
    - pgp_s2k_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 477
    functionDepth: 2
    functionLinenumber: 477
    functionLinenumberEnd: 518
    functionName: dst_print_s2k
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - pgp_s2k_t::experimental::size
    - dst_print_halg
    - pgp_s2k_decode_iterations
    - dst_printf
    - dst_print_hex
    - pgp_s2k_t::salt_size
    - pgp_s2k_t::experimental::data
    linkageType: ''
    returnType: void
    signature: void dst_print_s2k(pgp_dest_t &dst, pgp_s2k_t &s2k)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_ctime
      Src: /src/rnp/src/librepgp/stream-dump.cpp:523,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:524,1
    - Dst: rnp_y2k38_warning
      Src: /src/rnp/src/librepgp/stream-dump.cpp:528,1
    - Dst: auto::c_str
      Src: /src/rnp/src/librepgp/stream-dump.cpp:529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dst
    - name
    - time
    argTypes:
    - pgp_dest_t
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 520
    functionDepth: 1
    functionLinenumber: 520
    functionLinenumberEnd: 530
    functionName: dst_print_time
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - rnp_y2k38_warning
    - auto::c_str
    - dst_printf
    - rnp_ctime
    linkageType: ''
    returnType: void
    signature: void dst_print_time(pgp_dest_t &dst, const char *name, uint32_t time)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:537,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:539,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - dst
    - name
    - seconds
    argTypes:
    - pgp_dest_t
    - char*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 532
    functionDepth: 1
    functionLinenumber: 532
    functionLinenumberEnd: 541
    functionName: dst_print_expiration
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - dst_printf
    linkageType: ''
    returnType: void
    signature: void dst_print_expiration(pgp_dest_t &dst, const char *name, uint32_t
      seconds)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:553,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:555,1
    - Dst: isprint
      Src: /src/rnp/src/librepgp/stream-dump.cpp:556,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:559,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:564,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:568,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - dst
    - src
    - length
    argTypes:
    - pgp_dest_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 570
    functionName: dst_hexdump
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - isprint
    - dst_printf
    linkageType: ''
    returnType: void
    signature: void dst_hexdump(pgp_dest_t &dst, const uint8_t *src, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dst_hexdump
      Src: /src/rnp/src/librepgp/stream-dump.cpp:575,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:575,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:575,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - data
    argTypes:
    - pgp_dest_t
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 576
    functionName: dst_hexdump
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - std::vector<uint8_t>::size
    - std::vector<uint8_t>::data
    - dst_hexdump
    linkageType: ''
    returnType: void
    signature: void dst_hexdump(pgp_dest_t &dst, const std::vector<uint8_t> &data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - DumpContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 591
    functionName: rnp::DumpContext::copy_params
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DumpContext::copy_params(const DumpContext &ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mem_dest_discard_overflow
      Src: /src/rnp/src/librepgp/stream-dump.cpp:599,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librepgp/stream-dump.cpp:599,1
    - Dst: stream_read_packet
      Src: /src/rnp/src/librepgp/stream-dump.cpp:601,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librepgp/stream-dump.cpp:601,1
    - Dst: std::min
      Src: /src/rnp/src/librepgp/stream-dump.cpp:604,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librepgp/stream-dump.cpp:604,1
    - Dst: get_aead_src_hdr
      Src: /src/rnp/src/librepgp/stream-dump.cpp:607,1
    - Dst: MemorySource::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - pgp_aead_hdr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 608
    functionName: rnp::DumpContext::get_aead_hdr
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - MemoryDest::dst
    - stream_read_packet
    - get_aead_src_hdr
    - mem_dest_discard_overflow
    - MemoryDest::writeb
    - std::min
    - MemorySource::src
    linkageType: ''
    returnType: bool
    signature: bool DumpContext::get_aead_hdr(pgp_aead_hdr_t &hdr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/rnp/src/librepgp/stream-dump.cpp:615,1
    - Dst: eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:618,1
    - Dst: peek
      Src: /src/rnp/src/librepgp/stream-dump.cpp:619,1
    - Dst: strstr
      Src: /src/rnp/src/librepgp/stream-dump.cpp:624,1
    - Dst: skip
      Src: /src/rnp/src/librepgp/stream-dump.cpp:626,1
    - Dst: skip
      Src: /src/rnp/src/librepgp/stream-dump.cpp:629,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 632
    functionName: rnp::DumpContext::skip_cleartext
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - peek
    - eof
    - strlen
    - strstr
    - skip
    linkageType: ''
    returnType: bool
    signature: bool DumpContext::skip_cleartext()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_indent_dest
      Src: /src/rnp/src/librepgp/stream-dump.cpp:636,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:638,1
    - Dst: rnp_exception
      Src: /src/rnp/src/librepgp/stream-dump.cpp:639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - asrc
    - adst
    argTypes:
    - pgp_source_t
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 641
    functionName: rnp::DumpContextDst::DumpContextDst
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp_exception
    - init_indent_dest
    linkageType: ''
    returnType: void
    signature: void DumpContextDst::DumpContextDst(pgp_source_t &asrc, pgp_dest_t
      &adst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dst_close
      Src: /src/rnp/src/librepgp/stream-dump.cpp:646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 648
    functionName: DumpContextDst::~DumpContextDst()
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - dst_close
    linkageType: ''
    returnType: void
    signature: void DumpContextDst::~DumpContextDst()
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/librepgp/stream-dump.cpp:653,1
    - Dst: pkt::sigsub::Raw::raw_type
      Src: /src/rnp/src/librepgp/stream-dump.cpp:653,1
    - Dst: pkt::sigsub::Raw::type
      Src: /src/rnp/src/librepgp/stream-dump.cpp:655,1
    - Dst: dynamic_cast<const pkt::sigsub::CreationTime &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:657,1
    - Dst: dst_print_time
      Src: /src/rnp/src/librepgp/stream-dump.cpp:658,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-dump.cpp:658,1
    - Dst: dynamic_cast<const pkt::sigsub::ExpirationTime &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:662,1
    - Dst: dst_print_expiration
      Src: /src/rnp/src/librepgp/stream-dump.cpp:663,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-dump.cpp:663,1
    - Dst: dynamic_cast<const pkt::sigsub::ExportableCert &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:667,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:668,1
    - Dst: auto::exportable
      Src: /src/rnp/src/librepgp/stream-dump.cpp:668,1
    - Dst: dynamic_cast<const pkt::sigsub::Trust &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:672,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:673,1
    - Dst: auto::amount
      Src: /src/rnp/src/librepgp/stream-dump.cpp:674,1
    - Dst: auto::level
      Src: /src/rnp/src/librepgp/stream-dump.cpp:674,1
    - Dst: dynamic_cast<const pkt::sigsub::RegExp &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:678,1
    - Dst: dst_print_str
      Src: /src/rnp/src/librepgp/stream-dump.cpp:679,1
    - Dst: auto::regexp
      Src: /src/rnp/src/librepgp/stream-dump.cpp:679,1
    - Dst: dynamic_cast<const pkt::sigsub::Revocable &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:683,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:684,1
    - Dst: auto::revocable
      Src: /src/rnp/src/librepgp/stream-dump.cpp:684,1
    - Dst: dynamic_cast<const pkt::sigsub::KeyExpirationTime &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:688,1
    - Dst: dst_print_expiration
      Src: /src/rnp/src/librepgp/stream-dump.cpp:689,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-dump.cpp:689,1
    - Dst: dynamic_cast<const pkt::sigsub::PreferredSymmetric &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:693,1
    - Dst: dst_print_algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:694,1
    - Dst: auto::algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:694,1
    - Dst: dynamic_cast<const pkt::sigsub::RevocationKey &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:698,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:699,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:700,1
    - Dst: auto::rev_class
      Src: /src/rnp/src/librepgp/stream-dump.cpp:700,1
    - Dst: dst_print_palg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:701,1
    - Dst: auto::alg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:701,1
    - Dst: dst_print_fp
      Src: /src/rnp/src/librepgp/stream-dump.cpp:702,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-dump.cpp:702,1
    - Dst: dynamic_cast<const pkt::sigsub::IssuerKeyID &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:706,1
    - Dst: dst_print_keyid
      Src: /src/rnp/src/librepgp/stream-dump.cpp:707,1
    - Dst: auto::keyid
      Src: /src/rnp/src/librepgp/stream-dump.cpp:707,1
    - Dst: dynamic_cast<const pkt::sigsub::NotationData &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:711,1
    - Dst: auto::human_readable
      Src: /src/rnp/src/librepgp/stream-dump.cpp:712,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:713,1
    - Dst: auto::name
      Src: /src/rnp/src/librepgp/stream-dump.cpp:713,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:714,1
    - Dst: auto::value
      Src: /src/rnp/src/librepgp/stream-dump.cpp:715,1
    - Dst: auto::value
      Src: /src/rnp/src/librepgp/stream-dump.cpp:715,1
    - Dst: vsnprinthex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:718,1
    - Dst: auto::value
      Src: /src/rnp/src/librepgp/stream-dump.cpp:718,1
    - Dst: auto::value
      Src: /src/rnp/src/librepgp/stream-dump.cpp:718,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:719,1
    - Dst: auto::name
      Src: /src/rnp/src/librepgp/stream-dump.cpp:719,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:720,1
    - Dst: auto::value
      Src: /src/rnp/src/librepgp/stream-dump.cpp:720,1
    - Dst: dynamic_cast<const pkt::sigsub::PreferredHash &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:725,1
    - Dst: dst_print_algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:726,1
    - Dst: auto::algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:726,1
    - Dst: dynamic_cast<const pkt::sigsub::PreferredCompress &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:730,1
    - Dst: dst_print_algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:731,1
    - Dst: auto::algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:731,1
    - Dst: dynamic_cast<const pkt::sigsub::KeyserverPrefs &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:735,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:736,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:737,1
    - Dst: auto::no_modify
      Src: /src/rnp/src/librepgp/stream-dump.cpp:737,1
    - Dst: dynamic_cast<const pkt::sigsub::PreferredKeyserver &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:741,1
    - Dst: dst_print_str
      Src: /src/rnp/src/librepgp/stream-dump.cpp:742,1
    - Dst: auto::keyserver
      Src: /src/rnp/src/librepgp/stream-dump.cpp:742,1
    - Dst: dynamic_cast<const pkt::sigsub::PrimaryUserID &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:746,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:747,1
    - Dst: auto::primary
      Src: /src/rnp/src/librepgp/stream-dump.cpp:747,1
    - Dst: dynamic_cast<const pkt::sigsub::PolicyURI &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:751,1
    - Dst: dst_print_str
      Src: /src/rnp/src/librepgp/stream-dump.cpp:752,1
    - Dst: auto::URI
      Src: /src/rnp/src/librepgp/stream-dump.cpp:752,1
    - Dst: dynamic_cast<const pkt::sigsub::KeyFlags &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:756,1
    - Dst: auto::flags
      Src: /src/rnp/src/librepgp/stream-dump.cpp:757,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:758,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:759,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:760,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:761,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:762,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:763,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:764,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:765,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:766,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:767,1
    - Dst: dynamic_cast<const pkt::sigsub::SignersUserID &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:771,1
    - Dst: dst_print_str
      Src: /src/rnp/src/librepgp/stream-dump.cpp:772,1
    - Dst: auto::signer
      Src: /src/rnp/src/librepgp/stream-dump.cpp:772,1
    - Dst: dynamic_cast<const pkt::sigsub::RevocationReason &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:776,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/librepgp/stream-dump.cpp:777,1
    - Dst: auto::code
      Src: /src/rnp/src/librepgp/stream-dump.cpp:777,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:778,1
    - Dst: auto::code
      Src: /src/rnp/src/librepgp/stream-dump.cpp:778,1
    - Dst: dst_print_str
      Src: /src/rnp/src/librepgp/stream-dump.cpp:779,1
    - Dst: auto::reason
      Src: /src/rnp/src/librepgp/stream-dump.cpp:779,1
    - Dst: dynamic_cast<const pkt::sigsub::Features &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:783,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:784,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-dump.cpp:784,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:785,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-dump.cpp:785,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:786,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-dump.cpp:786,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:787,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-dump.cpp:787,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:789,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-dump.cpp:789,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:791,1
    - Dst: dynamic_cast<const pkt::sigsub::EmbeddedSignature &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:795,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:796,1
    - Dst: auto::signature
      Src: /src/rnp/src/librepgp/stream-dump.cpp:797,1
    - Dst: rnp::DumpContextDst::dump_signature_pkt
      Src: /src/rnp/src/librepgp/stream-dump.cpp:798,1
    - Dst: dynamic_cast<const pkt::sigsub::IssuerFingerprint &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:802,1
    - Dst: dst_print_fp
      Src: /src/rnp/src/librepgp/stream-dump.cpp:803,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-dump.cpp:803,1
    - Dst: dynamic_cast<const pkt::sigsub::PreferredAEAD &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:807,1
    - Dst: dst_print_algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:808,1
    - Dst: auto::algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:808,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:813,1
    - Dst: dst_hexdump
      Src: /src/rnp/src/librepgp/stream-dump.cpp:814,1
    - Dst: pkt::sigsub::Raw::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:814,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:815,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 132
    argCount: 1
    argNames:
    - subpkt
    argTypes:
    - pkt::sigsub::Raw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 650
    functionDepth: 3
    functionLinenumber: 650
    functionLinenumberEnd: 818
    functionName: rnp::DumpContextDst::dump_signature_subpacket
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - dst_print_palg
    - dynamic_cast<const pkt::sigsub::ExpirationTime &>
    - auto::code
    - dynamic_cast<const pkt::sigsub::SignersUserID &>
    - dynamic_cast<const pkt::sigsub::PolicyURI &>
    - auto::algs
    - auto::amount
    - dynamic_cast<const pkt::sigsub::KeyExpirationTime &>
    - vsnprinthex
    - dynamic_cast<const pkt::sigsub::PreferredCompress &>
    - auto::fp
    - dynamic_cast<const pkt::sigsub::PrimaryUserID &>
    - dynamic_cast<const pkt::sigsub::KeyFlags &>
    - dynamic_cast<const pkt::sigsub::RevocationKey &>
    - auto::flags
    - auto::keyserver
    - auto::value
    - dynamic_cast<const pkt::sigsub::RegExp &>
    - dynamic_cast<const pkt::sigsub::IssuerFingerprint &>
    - indent_dest_decrease
    - dst_print_keyid
    - dynamic_cast<const pkt::sigsub::ExportableCert &>
    - dynamic_cast<const pkt::sigsub::PreferredHash &>
    - dynamic_cast<const pkt::sigsub::EmbeddedSignature &>
    - dynamic_cast<const pkt::sigsub::PreferredSymmetric &>
    - auto::name
    - dst_hexdump
    - pkt::sigsub::Raw::type
    - dynamic_cast<const pkt::sigsub::Revocable &>
    - auto::reason
    - dynamic_cast<const pkt::sigsub::Features &>
    - pkt::sigsub::Raw::raw_type
    - dst_print_fp
    - auto::alg
    - indent_dest_increase
    - auto::regexp
    - auto::revocable
    - dst_print_time
    - auto::level
    - dynamic_cast<const pkt::sigsub::NotationData &>
    - dynamic_cast<const pkt::sigsub::CreationTime &>
    - auto::primary
    - dynamic_cast<const pkt::sigsub::RevocationReason &>
    - auto::signature
    - dst_print_str
    - id_str_pair::lookup
    - auto::features
    - auto::rev_class
    - auto::URI
    - pkt::sigsub::Raw::data
    - auto::time
    - dynamic_cast<const pkt::sigsub::KeyserverPrefs &>
    - auto::human_readable
    - auto::no_modify
    - dynamic_cast<const pkt::sigsub::IssuerKeyID &>
    - dynamic_cast<const pkt::sigsub::Trust &>
    - auto::exportable
    - auto::signer
    - dst_printf
    - dynamic_cast<const pkt::sigsub::PreferredAEAD &>
    - dynamic_cast<const pkt::sigsub::PreferredKeyserver &>
    - dst_print_expiration
    - auto::keyid
    - rnp::DumpContextDst::dump_signature_pkt
    - dst_print_algs
    linkageType: ''
    returnType: void
    signature: void DumpContextDst::dump_signature_subpacket(const pkt::sigsub::Raw
      &subpkt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hashed
      Src: /src/rnp/src/librepgp/stream-dump.cpp:826,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:830,1
    - Dst: raw_type
      Src: /src/rnp/src/librepgp/stream-dump.cpp:831,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:831,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:832,1
    - Dst: critical
      Src: /src/rnp/src/librepgp/stream-dump.cpp:832,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:834,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:835,1
    - Dst: dst_hexdump
      Src: /src/rnp/src/librepgp/stream-dump.cpp:836,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:836,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:837,1
    - Dst: rnp::DumpContextDst::dump_signature_subpacket
      Src: /src/rnp/src/librepgp/stream-dump.cpp:839,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:843,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - sig
    - hashed
    argTypes:
    - pkt::Signature
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 820
    functionDepth: 4
    functionLinenumber: 820
    functionLinenumberEnd: 845
    functionName: rnp::DumpContextDst::dump_signature_subpackets
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - data
    - hashed
    - dst_printf
    - raw_type
    - critical
    - dst_hexdump
    - rnp::DumpContextDst::dump_signature_subpacket
    - indent_dest_decrease
    - indent_dest_increase
    linkageType: ''
    returnType: void
    signature: void DumpContextDst::dump_signature_subpackets(const pkt::Signature
      &sig, bool hashed)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:850,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:852,1
    - Dst: dst_print_sig_type
      Src: /src/rnp/src/librepgp/stream-dump.cpp:853,1
    - Dst: pkt::Signature::type
      Src: /src/rnp/src/librepgp/stream-dump.cpp:853,1
    - Dst: dst_print_time
      Src: /src/rnp/src/librepgp/stream-dump.cpp:855,1
    - Dst: dst_print_keyid
      Src: /src/rnp/src/librepgp/stream-dump.cpp:856,1
    - Dst: dst_print_palg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:858,1
    - Dst: dst_print_halg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:859,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:862,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:863,1
    - Dst: rnp::DumpContextDst::dump_signature_subpackets
      Src: /src/rnp/src/librepgp/stream-dump.cpp:864,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:865,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:867,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:868,1
    - Dst: rnp::DumpContextDst::dump_signature_subpackets
      Src: /src/rnp/src/librepgp/stream-dump.cpp:869,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:870,1
    - Dst: dst_print_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:873,1
    - Dst: pkt::Signature::lbits::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:873,1
    - Dst: pkt::Signature::lbits::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:873,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:874,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:875,1
    - Dst: pkt::Signature::parse_material
      Src: /src/rnp/src/librepgp/stream-dump.cpp:877,1
    - Dst: assert
      Src: /src/rnp/src/librepgp/stream-dump.cpp:878,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:881,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:882,1
    - Dst: dynamic_cast<const RSASigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:890,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:891,1
    - Dst: dynamic_cast<const DSASigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:895,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:896,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:897,1
    - Dst: dynamic_cast<const ECSigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:904,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:905,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:906,1
    - Dst: dynamic_cast<const EGSigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:913,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:914,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:915,1
    - Dst: dynamic_cast<const Ed25519SigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:921,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:922,1
    - Dst: dynamic_cast<const Ed448SigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:926,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:927,1
    - Dst: dynamic_cast<const DilithiumSigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:943,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:944,1
    - Dst: dynamic_cast<const SlhdsaSigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:952,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:953,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:958,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:960,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:961,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 90
    argCount: 1
    argNames:
    - sig
    argTypes:
    - pkt::Signature
    assertStmts:
    - condition: (material)
      pos:
        line_end: 877
        line_start: 877
        source_file: /src/rnp/src/librepgp/stream-dump.cpp
    constantsTouched: []
    func_position:
      end: 962
      start: 847
    functionDepth: 5
    functionLinenumber: 847
    functionLinenumberEnd: 962
    functionName: rnp::DumpContextDst::dump_signature_pkt
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - dst_print_palg
    - dst_print_mpi
    - dynamic_cast<const Ed448SigMaterial &>
    - dynamic_cast<const ECSigMaterial &>
    - dynamic_cast<const RSASigMaterial &>
    - indent_dest_decrease
    - dst_print_keyid
    - dynamic_cast<const Ed25519SigMaterial &>
    - dynamic_cast<const EGSigMaterial &>
    - dynamic_cast<const SlhdsaSigMaterial &>
    - dynamic_cast<const DSASigMaterial &>
    - pkt::Signature::lbits::data
    - dst_print_vec
    - indent_dest_increase
    - dst_print_sig_type
    - dst_print_time
    - pkt::Signature::type
    - dst_print_halg
    - pkt::Signature::parse_material
    - pkt::Signature::lbits::size
    - assert
    - dst_printf
    - dst_print_hex
    - rnp::DumpContextDst::dump_signature_subpackets
    - dynamic_cast<const DilithiumSigMaterial &>
    linkageType: ''
    returnType: void
    signature: void DumpContextDst::dump_signature_pkt(const pkt::Signature &sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:967,1
    - Dst: pkt::Signature::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:969,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:971,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:972,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:973,1
    - Dst: rnp::DumpContextDst::dump_signature_pkt
      Src: /src/rnp/src/librepgp/stream-dump.cpp:976,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 964
    functionDepth: 6
    functionLinenumber: 964
    functionLinenumberEnd: 978
    functionName: rnp::DumpContextDst::dump_signature
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - rnp::DumpContextDst::dump_signature_pkt
    - pkt::Signature::parse
    - dst_printf
    - indent_dest_decrease
    - indent_dest_increase
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_signature()
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: KeyMaterial*::alg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:986,1
    - Dst: dynamic_cast<const RSAKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:990,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:991,1
    - Dst: auto::n
      Src: /src/rnp/src/librepgp/stream-dump.cpp:991,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:992,1
    - Dst: auto::e
      Src: /src/rnp/src/librepgp/stream-dump.cpp:992,1
    - Dst: dynamic_cast<const DSAKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:996,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:997,1
    - Dst: auto::p
      Src: /src/rnp/src/librepgp/stream-dump.cpp:997,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:998,1
    - Dst: auto::q
      Src: /src/rnp/src/librepgp/stream-dump.cpp:998,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:999,1
    - Dst: auto::g
      Src: /src/rnp/src/librepgp/stream-dump.cpp:999,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1000,1
    - Dst: auto::y
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1000,1
    - Dst: dynamic_cast<const EGKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1005,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1006,1
    - Dst: auto::p
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1006,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1007,1
    - Dst: auto::g
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1007,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1008,1
    - Dst: auto::y
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1008,1
    - Dst: dynamic_cast<const ECKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1014,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1015,1
    - Dst: auto::curve
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1015,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1016,1
    - Dst: auto::p
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1016,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1017,1
    - Dst: dynamic_cast<const ECDHKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1021,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1022,1
    - Dst: auto::curve
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1022,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1024,1
    - Dst: auto::p
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1024,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1025,1
    - Dst: dst_print_halg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1027,1
    - Dst: auto::kdf_hash_alg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1027,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1028,1
    - Dst: auto::key_wrap_alg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1028,1
    - Dst: dynamic_cast<const Ed25519KeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1033,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1034,1
    - Dst: auto::pub
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1034,1
    - Dst: dynamic_cast<const X25519KeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1038,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1039,1
    - Dst: auto::pub
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1039,1
    - Dst: dynamic_cast<const pgp::Ed448KeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1043,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1044,1
    - Dst: auto::pub
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1044,1
    - Dst: dynamic_cast<const pgp::X448KeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1048,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1049,1
    - Dst: auto::pub
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1049,1
    - Dst: dynamic_cast<const MlkemEcdhKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1068,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1069,1
    - Dst: auto::pub
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1069,1
    - Dst: dynamic_cast<const DilithiumEccKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1085,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1086,1
    - Dst: auto::pub
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1087,1
    - Dst: dynamic_cast<const SlhdsaKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1095,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1096,1
    - Dst: auto::pub
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1096,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 95
    argCount: 1
    argNames:
    - material
    argTypes:
    - KeyMaterial*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 980
    functionDepth: 2
    functionLinenumber: 980
    functionLinenumberEnd: 1103
    functionName: rnp::DumpContextDst::dump_key_material
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - dst_print_mpi
    - dynamic_cast<const Ed25519KeyMaterial &>
    - auto::n
    - dynamic_cast<const ECDHKeyMaterial &>
    - dynamic_cast<const DSAKeyMaterial &>
    - auto::pub
    - auto::e
    - pgp::ec::Curve::get
    - dynamic_cast<const EGKeyMaterial &>
    - dst_print_vec
    - dynamic_cast<const SlhdsaKeyMaterial &>
    - dynamic_cast<const X25519KeyMaterial &>
    - auto::g
    - dst_print_halg
    - dynamic_cast<const RSAKeyMaterial &>
    - auto::kdf_hash_alg
    - dynamic_cast<const ECKeyMaterial &>
    - KeyMaterial*::alg
    - auto::q
    - dynamic_cast<const pgp::X448KeyMaterial &>
    - auto::y
    - dynamic_cast<const pgp::Ed448KeyMaterial &>
    - dynamic_cast<const MlkemEcdhKeyMaterial &>
    - dst_printf
    - dynamic_cast<const DilithiumEccKeyMaterial &>
    - auto::p
    - auto::curve
    - auto::key_wrap_alg
    linkageType: ''
    returnType: void
    signature: void DumpContextDst::dump_key_material(const KeyMaterial *material)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1108,1
    - Dst: pgp_key_pkt_t::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1109,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1114,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1114,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1115,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1117,1
    - Dst: dst_print_time
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1118,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1120,1
    - Dst: dst_print_palg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1122,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1124,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1126,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1127,1
    - Dst: rnp::DumpContextDst::dump_key_material
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1128,1
    - Dst: pgp_key_pkt_t::material::get
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1128,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1129,1
    - Dst: is_secret_key_pkt
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1131,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1132,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1133,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1135,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1137,1
    - Dst: dst_print_salg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1141,1
    - Dst: dst_print_s2k
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1142,1
    - Dst: pgp_block_size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1144,1
    - Dst: dst_print_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1146,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1148,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1154,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1157,1
    - Dst: pgp_key_pkt_t::sec_data::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1157,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1159,1
    - Dst: pgp_key_pkt_t::sec_data::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1159,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1161,1
    - Dst: dst_print_keyid
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1166,1
    - Dst: Fingerprint::keyid
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1166,1
    - Dst: dst_print_fp
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1169,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1172,1
    - Dst: pgp_key_pkt_t::material::grip
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1177,1
    - Dst: dst_print_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1178,1
    - Dst: KeyGrip::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1178,1
    - Dst: KeyGrip::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1178,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1180,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1184,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1105
    functionDepth: 3
    functionLinenumber: 1105
    functionLinenumberEnd: 1186
    functionName: rnp::DumpContextDst::dump_key
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - dst_print_palg
    - pgp_key_pkt_t::material::get
    - indent_dest_decrease
    - dst_print_salg
    - dst_print_keyid
    - pgp_block_size
    - pgp_key_pkt_t::sec_data::size
    - dst_print_fp
    - indent_dest_increase
    - dst_print_time
    - KeyGrip::data
    - KeyGrip::size
    - id_str_pair::lookup
    - pgp_key_pkt_t::material::grip
    - pgp_key_pkt_t::pgp_key_pkt_t
    - dst_print_s2k
    - rnp::DumpContextDst::dump_key_material
    - dst_printf
    - dst_print_hex
    - is_secret_key_pkt
    - Fingerprint::keyid
    - pgp_key_pkt_t::parse
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_key()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pgp_userid_pkt_t::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1192,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1209,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1210,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1214,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1215,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1216,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1219,1
    - Dst: pgp_userid_pkt_t::uid::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1219,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1224,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1188
    functionDepth: 1
    functionLinenumber: 1188
    functionLinenumberEnd: 1226
    functionName: rnp::DumpContextDst::dump_userid
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - dst_printf
    - pgp_userid_pkt_t::uid::size
    - dst_write
    - pgp_userid_pkt_t::parse
    - indent_dest_decrease
    - indent_dest_increase
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_userid()
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: pgp_pk_sesskey_t::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1232,1
    - Dst: pgp_pk_sesskey_t::parse_material
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1236,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1241,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1242,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1244,1
    - Dst: dst_print_fp
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1247,1
    - Dst: dst_print_keyid
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1249,1
    - Dst: dst_print_keyid
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1252,1
    - Dst: dst_print_palg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1254,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1255,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1256,1
    - Dst: dynamic_cast<const RSAEncMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1262,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1263,1
    - Dst: dynamic_cast<const EGEncMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1268,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1269,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1270,1
    - Dst: dynamic_cast<const SM2EncMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1274,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1275,1
    - Dst: dynamic_cast<const ECDHEncMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1279,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1280,1
    - Dst: dst_print_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1282,1
    - Dst: auto::m::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1282,1
    - Dst: auto::m::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1282,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1284,1
    - Dst: auto::m::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1284,1
    - Dst: dynamic_cast<const X25519EncMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1290,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1291,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1292,1
    - Dst: dynamic_cast<const X448EncMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1296,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1297,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1298,1
    - Dst: dynamic_cast<const MlkemEcdhEncMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1317,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1318,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1320,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1325,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1328,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1329,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1228
    functionDepth: 3
    functionLinenumber: 1228
    functionLinenumberEnd: 1331
    functionName: rnp::DumpContextDst::dump_pk_session_key
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - dst_print_palg
    - dst_print_mpi
    - indent_dest_decrease
    - dst_print_keyid
    - auto::m::size
    - dst_print_fp
    - dst_print_vec
    - indent_dest_increase
    - dynamic_cast<const X448EncMaterial &>
    - dynamic_cast<const RSAEncMaterial &>
    - dynamic_cast<const EGEncMaterial &>
    - dynamic_cast<const SM2EncMaterial &>
    - dynamic_cast<const ECDHEncMaterial &>
    - dst_printf
    - dst_print_hex
    - auto::m::data
    - pgp_pk_sesskey_t::parse
    - pgp_pk_sesskey_t::parse_material
    - dynamic_cast<const MlkemEcdhEncMaterial &>
    - dynamic_cast<const X25519EncMaterial &>
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_pk_session_key()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp_sk_sesskey_t::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1337,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1342,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1343,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1344,1
    - Dst: dst_print_salg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1345,1
    - Dst: dst_print_aalg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1347,1
    - Dst: dst_print_s2k
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1349,1
    - Dst: dst_print_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1351,1
    - Dst: dst_print_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1353,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1354,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1333
    functionDepth: 3
    functionLinenumber: 1333
    functionLinenumberEnd: 1357
    functionName: rnp::DumpContextDst::dump_sk_session_key
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - pgp_sk_sesskey_t::parse
    - dst_printf
    - dst_print_hex
    - dst_print_s2k
    - indent_dest_decrease
    - dst_print_salg
    - indent_dest_increase
    - dst_print_aalg
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_sk_session_key()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1362,1
    - Dst: get_aead_hdr
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1365,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1366,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1370,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1372,1
    - Dst: dst_print_salg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1373,1
    - Dst: dst_print_aalg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1374,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1375,1
    - Dst: dst_print_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1376,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1359
    functionDepth: 2
    functionLinenumber: 1359
    functionLinenumberEnd: 1380
    functionName: rnp::DumpContextDst::dump_aead_encrypted
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - dst_printf
    - dst_print_hex
    - indent_dest_decrease
    - get_aead_hdr
    - dst_print_salg
    - indent_dest_increase
    - dst_print_aalg
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_aead_encrypted()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1387,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1390,1
    - Dst: rnp::DumpContextDst::dump_aead_encrypted
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1393,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1395,1
    - Dst: stream_skip_packet
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1399,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - tag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1382
    functionDepth: 3
    functionLinenumber: 1382
    functionLinenumberEnd: 1400
    functionName: rnp::DumpContextDst::dump_encrypted
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - rnp::DumpContextDst::dump_aead_encrypted
    - stream_skip_packet
    - dst_printf
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_encrypted(int tag)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp_one_pass_sig_t::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1406,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1411,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1412,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1414,1
    - Dst: dst_print_sig_type
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1415,1
    - Dst: dst_print_halg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1416,1
    - Dst: dst_print_palg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1417,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1420,1
    - Dst: dst_print_keyid
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1424,1
    - Dst: dst_print_fp
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1428,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1431,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1433,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1402
    functionDepth: 3
    functionLinenumber: 1402
    functionLinenumberEnd: 1435
    functionName: rnp::DumpContextDst::dump_one_pass
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - dst_print_palg
    - dst_print_keyid
    - pgp_one_pass_sig_t::parse
    - dst_print_halg
    - dst_printf
    - indent_dest_decrease
    - dst_print_fp
    - dst_print_vec
    - indent_dest_increase
    - dst_print_sig_type
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_one_pass()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Source::Source
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1440,1
    - Dst: init_compressed_src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1441,1
    - Dst: std::unique_ptr::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1441,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1446,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1447,1
    - Dst: get_compressed_src_alg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1450,1
    - Dst: std::unique_ptr::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1450,1
    - Dst: dst_print_zalg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1451,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1452,1
    - Dst: std::unique_ptr::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1454,1
    - Dst: DumpContextDst::DumpContextDst
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1454,1
    - Dst: std::unique_ptr::copy_params
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1455,1
    - Dst: std::unique_ptr::dump
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1456,1
    - Dst: copy_params
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1457,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1437
    functionDepth: 2
    functionLinenumber: 1437
    functionLinenumberEnd: 1460
    functionName: rnp::DumpContextDst::dump_compressed
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr::copy_params
    - get_compressed_src_alg
    - Source::Source
    - dst_printf
    - std::unique_ptr::src
    - dst_print_zalg
    - DumpContextDst::DumpContextDst
    - copy_params
    - init_compressed_src
    - indent_dest_decrease
    - std::unique_ptr::dump
    - indent_dest_increase
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_compressed()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init_literal_src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1466,1
    - Dst: Source::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1466,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1471,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1472,1
    - Dst: get_literal_src_hdr
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1474,1
    - Dst: Source::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1474,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1475,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1476,1
    - Dst: dst_print_time
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1477,1
    - Dst: Source::eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1480,1
    - Dst: Source::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1483,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1489,1
    - Dst: Source::readb
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1489,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1490,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1462
    functionDepth: 2
    functionLinenumber: 1462
    functionLinenumberEnd: 1492
    functionName: rnp::DumpContextDst::dump_literal
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - dst_printf
    - get_literal_src_hdr
    - Source::src
    - Source::eof
    - init_literal_src
    - Source::readb
    - indent_dest_decrease
    - indent_dest_increase
    - dst_print_time
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_literal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1497,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1498,1
    - Dst: stream_parse_marker
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1499,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1500,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1494
    functionDepth: 1
    functionLinenumber: 1494
    functionLinenumberEnd: 1503
    functionName: rnp::DumpContextDst::dump_marker
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - indent_dest_decrease
    - stream_parse_marker
    - indent_dest_increase
    - dst_printf
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_marker()
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1512,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1518,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1519,1
    - Dst: eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1523,1
    - Dst: stream_peek_packet_hdr
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1526,1
    - Dst: snprintf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1532,1
    - Dst: snprintf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1534,1
    - Dst: snprintf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1536,1
    - Dst: vsnprinthex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1538,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1539,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1551,1
    - Dst: peek
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1552,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1553,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1557,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1559,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1561,1
    - Dst: dst_hexdump
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1562,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1563,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1565,1
    - Dst: rnp::DumpContextDst::dump_signature
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1570,1
    - Dst: rnp::DumpContextDst::dump_key
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1576,1
    - Dst: rnp::DumpContextDst::dump_userid
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1580,1
    - Dst: rnp::DumpContextDst::dump_pk_session_key
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1583,1
    - Dst: rnp::DumpContextDst::dump_sk_session_key
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1586,1
    - Dst: rnp::DumpContextDst::dump_encrypted
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1592,1
    - Dst: rnp::DumpContextDst::dump_one_pass
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1595,1
    - Dst: rnp::DumpContextDst::dump_compressed
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1599,1
    - Dst: rnp::DumpContextDst::dump_literal
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1603,1
    - Dst: rnp::DumpContextDst::dump_marker
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1606,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1610,1
    - Dst: stream_skip_packet
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1611,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1614,1
    - Dst: stream_skip_packet
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1615,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1620,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1626,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1628,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1634,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1635,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 114
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1505
    functionDepth: 7
    functionLinenumber: 1505
    functionLinenumberEnd: 1640
    functionName: rnp::DumpContextDst::dump_raw_packets
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - vsnprinthex
    - indent_dest_decrease
    - rnp::DumpContextDst::dump_key
    - dst_hexdump
    - rnp::DumpContextDst::dump_pk_session_key
    - stream_skip_packet
    - eof
    - indent_dest_increase
    - snprintf
    - rnp::DumpContextDst::dump_marker
    - RNP_LOG
    - rnp::DumpContextDst::dump_sk_session_key
    - stream_peek_packet_hdr
    - rnp::DumpContextDst::dump_encrypted
    - peek
    - rnp::DumpContextDst::dump_userid
    - dst_printf
    - rnp::DumpContextDst::dump_literal
    - rnp::DumpContextDst::dump_compressed
    - rnp::DumpContextDst::dump_one_pass
    - rnp::DumpContextDst::dump_signature
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_raw_packets()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: is_cleartext
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1646,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1647,1
    - Dst: skip_cleartext
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1648,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1649,1
    - Dst: is_armored
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1656,1
    - Dst: rnp::ArmoredSource::eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1662,1
    - Dst: rnp::ArmoredSource::multiple
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1662,1
    - Dst: rnp::ArmoredSource::restart
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1663,1
    - Dst: rnp::ArmoredSource::eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1665,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1669,1
    - Dst: rnp::ArmoredSource::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1672,1
    - Dst: DumpContextDst::copy_params
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1673,1
    - Dst: DumpContextDst::dump
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1674,1
    - Dst: eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1682,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1683,1
    - Dst: rnp::DumpContextDst::dump_raw_packets
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1687,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 1
    argNames:
    - raw_only
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1642
    functionDepth: 8
    functionLinenumber: 1642
    functionLinenumberEnd: 1688
    functionName: rnp::DumpContextDst::dump
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - rnp::DumpContextDst::dump_raw_packets
    - DumpContextDst::dump
    - dst_printf
    - rnp::ArmoredSource::restart
    - is_cleartext
    - is_armored
    - DumpContextDst::copy_params
    - rnp::ArmoredSource::multiple
    - eof
    - skip_cleartext
    - rnp::ArmoredSource::src
    - rnp::ArmoredSource::eof
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump(bool raw_only)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1696,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1703,1
    - Dst: snprintf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1704,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1705,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - obj
    - name
    - val
    - map
    argTypes:
    - nlohmann::ordered_json
    - char*
    - int
    - id_str_pair[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1690
    functionDepth: 1
    functionLinenumber: 1690
    functionLinenumberEnd: 1706
    functionName: rnp::obj_add_intstr_json
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - rnp::json::add
    - snprintf
    - id_str_pair::lookup
    linkageType: ''
    returnType: bool
    signature: "bool obj_add_intstr_json(nlohmann::ordered_json &obj,\n                    const
      char *            name,\n                    int                     val,\n
      \                   const id_str_pair       map[])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1712,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1713,1
    - Dst: mpi::bits
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1713,1
    - Dst: snprintf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1719,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1720,1
    - Dst: mpi::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1720,1
    - Dst: mpi::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - obj
    - name
    - mpi
    - contents
    argTypes:
    - nlohmann::ordered_json
    - char*
    - mpi
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1708
    functionDepth: 1
    functionLinenumber: 1708
    functionLinenumberEnd: 1721
    functionName: rnp::obj_add_mpi_json
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - mpi::bits
    - rnp::json::add
    - mpi::data
    - rnp::json::add_hex
    - mpi::size
    - snprintf
    linkageType: ''
    returnType: bool
    signature: bool obj_add_mpi_json(nlohmann::ordered_json &obj, const char *name,
      const mpi &mpi, bool contents)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: add_key_to_array
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1729,1
    - Dst: auto::push_back
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1731,1
    - Dst: snprintf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1738,1
    - Dst: add_key_to_array
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1740,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1742,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1742,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - '    obj'
    - name
    - algs
    - map
    argTypes:
    - nlohmann::ordered_json
    - char*
    - std::vector<uint8_t>
    - id_str_pair[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1723
    functionDepth: 1
    functionLinenumber: 1723
    functionLinenumberEnd: 1747
    functionName: rnp::subpacket_obj_add_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - add_key_to_array
    - id_str_pair::lookup
    - rnp::json::array_add
    - snprintf
    - auto::push_back
    linkageType: ''
    returnType: bool
    signature: "bool subpacket_obj_add_algs(nlohmann::ordered_json &    obj,\n                       const
      char *                name,\n                       const std::vector<uint8_t>
      &algs,\n                       const id_str_pair           map[])"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1752,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1753,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1757,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1762,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1768,1
    - Dst: rnp::obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1770,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1775,1
    - Dst: pgp_s2k_decode_iterations
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1779,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1780,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 2
    argNames:
    - obj
    - s2k
    argTypes:
    - nlohmann::ordered_json
    - pgp_s2k_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1749
    functionDepth: 2
    functionLinenumber: 1749
    functionLinenumberEnd: 1785
    functionName: rnp::obj_add_s2k_json
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - pgp_s2k_decode_iterations
    - sexp::sexp_input_stream_t::scan_object
    - rnp::json::add
    - rnp::json::add_hex
    - rnp::obj_add_intstr_json
    linkageType: ''
    returnType: bool
    signature: bool obj_add_s2k_json(nlohmann::ordered_json &obj, pgp_s2k_t *s2k)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: pkt::sigsub::Raw::type
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1791,1
    - Dst: dynamic_cast<const pkt::sigsub::CreationTime &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1793,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1794,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1794,1
    - Dst: dynamic_cast<const pkt::sigsub::ExpirationTime &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1797,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1798,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1798,1
    - Dst: dynamic_cast<const pkt::sigsub::ExportableCert &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1801,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1802,1
    - Dst: auto::exportable
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1802,1
    - Dst: dynamic_cast<const pkt::sigsub::Trust &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1805,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1806,1
    - Dst: auto::amount
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1806,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1807,1
    - Dst: auto::level
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1807,1
    - Dst: dynamic_cast<const pkt::sigsub::RegExp &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1810,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1811,1
    - Dst: auto::regexp
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1811,1
    - Dst: dynamic_cast<const pkt::sigsub::Revocable &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1814,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1815,1
    - Dst: auto::revocable
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1815,1
    - Dst: dynamic_cast<const pkt::sigsub::KeyExpirationTime &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1818,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1819,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1819,1
    - Dst: dynamic_cast<const pkt::sigsub::PreferredSymmetric &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1822,1
    - Dst: subpacket_obj_add_algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1823,1
    - Dst: auto::algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1823,1
    - Dst: dynamic_cast<const pkt::sigsub::PreferredHash &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1826,1
    - Dst: subpacket_obj_add_algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1827,1
    - Dst: auto::algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1827,1
    - Dst: dynamic_cast<const pkt::sigsub::PreferredCompress &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1830,1
    - Dst: subpacket_obj_add_algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1831,1
    - Dst: auto::algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1831,1
    - Dst: dynamic_cast<const pkt::sigsub::PreferredAEAD &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1834,1
    - Dst: subpacket_obj_add_algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1835,1
    - Dst: auto::algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1835,1
    - Dst: dynamic_cast<const pkt::sigsub::RevocationKey &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1838,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1839,1
    - Dst: auto::rev_class
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1839,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1840,1
    - Dst: auto::alg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1840,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1841,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1841,1
    - Dst: dynamic_cast<const pkt::sigsub::IssuerKeyID &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1844,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1845,1
    - Dst: auto::keyid
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1845,1
    - Dst: dynamic_cast<const pkt::sigsub::KeyserverPrefs &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1848,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1849,1
    - Dst: auto::no_modify
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1849,1
    - Dst: dynamic_cast<const pkt::sigsub::PreferredKeyserver &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1852,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1853,1
    - Dst: auto::keyserver
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1853,1
    - Dst: dynamic_cast<const pkt::sigsub::PrimaryUserID &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1856,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1857,1
    - Dst: auto::primary
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1857,1
    - Dst: dynamic_cast<const pkt::sigsub::PolicyURI &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1860,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1861,1
    - Dst: auto::URI
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1861,1
    - Dst: dynamic_cast<const pkt::sigsub::KeyFlags &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1864,1
    - Dst: auto::flags
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1865,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1866,1
    - Dst: add_key_to_array
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1869,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1870,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1873,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1876,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1880,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1883,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1886,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1889,1
    - Dst: dynamic_cast<const pkt::sigsub::SignersUserID &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1895,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1896,1
    - Dst: auto::signer
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1896,1
    - Dst: dynamic_cast<const pkt::sigsub::RevocationReason &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1899,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1900,1
    - Dst: auto::code
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1900,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1903,1
    - Dst: auto::reason
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1903,1
    - Dst: dynamic_cast<const pkt::sigsub::Features &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1906,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1907,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1907,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1908,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1908,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1909,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1909,1
    - Dst: dynamic_cast<const pkt::sigsub::EmbeddedSignature &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1912,1
    - Dst: auto::signature
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1913,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1916,1
    - Dst: rnp::DumpContextJson::dump_signature_pkt
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1917,1
    - Dst: auto::signature
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1917,1
    - Dst: dynamic_cast<const pkt::sigsub::IssuerFingerprint &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1920,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1921,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1921,1
    - Dst: dynamic_cast<const pkt::sigsub::NotationData &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1924,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1925,1
    - Dst: auto::human_readable
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1925,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1926,1
    - Dst: auto::name
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1926,1
    - Dst: auto::human_readable
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1929,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1930,1
    - Dst: auto::value
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1931,1
    - Dst: auto::value
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1931,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1933,1
    - Dst: auto::value
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1933,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1937,1
    - Dst: pkt::sigsub::Raw::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1937,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 117
    argCount: 2
    argNames:
    - subpkt
    - obj
    argTypes:
    - pkt::sigsub::Raw
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1942
      start: 1787
    functionDepth: 1
    functionLinenumber: 1787
    functionLinenumberEnd: 1942
    functionName: rnp::DumpContextJson::dump_signature_subpacket
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const pkt::sigsub::ExpirationTime &>
    - auto::code
    - obj_add_intstr_json
    - dynamic_cast<const pkt::sigsub::SignersUserID &>
    - dynamic_cast<const pkt::sigsub::PolicyURI &>
    - auto::algs
    - auto::amount
    - dynamic_cast<const pkt::sigsub::KeyExpirationTime &>
    - dynamic_cast<const pkt::sigsub::PreferredCompress &>
    - auto::fp
    - dynamic_cast<const pkt::sigsub::PrimaryUserID &>
    - dynamic_cast<const pkt::sigsub::KeyFlags &>
    - dynamic_cast<const pkt::sigsub::RevocationKey &>
    - auto::flags
    - auto::keyserver
    - auto::value
    - dynamic_cast<const pkt::sigsub::RegExp &>
    - dynamic_cast<const pkt::sigsub::IssuerFingerprint &>
    - add_key_to_array
    - dynamic_cast<const pkt::sigsub::ExportableCert &>
    - dynamic_cast<const pkt::sigsub::PreferredHash &>
    - sexp::sexp_input_stream_t::scan_object
    - dynamic_cast<const pkt::sigsub::EmbeddedSignature &>
    - rnp::json::add
    - dynamic_cast<const pkt::sigsub::PreferredSymmetric &>
    - rnp::DumpContextJson::dump_signature_pkt
    - auto::name
    - pkt::sigsub::Raw::type
    - dynamic_cast<const pkt::sigsub::Revocable &>
    - auto::reason
    - dynamic_cast<const pkt::sigsub::Features &>
    - rnp::json::array_add
    - auto::alg
    - auto::regexp
    - auto::revocable
    - auto::level
    - dynamic_cast<const pkt::sigsub::NotationData &>
    - dynamic_cast<const pkt::sigsub::CreationTime &>
    - auto::primary
    - dynamic_cast<const pkt::sigsub::RevocationReason &>
    - auto::signature
    - auto::features
    - auto::rev_class
    - auto::URI
    - rnp::json::add_hex
    - pkt::sigsub::Raw::data
    - auto::time
    - dynamic_cast<const pkt::sigsub::KeyserverPrefs &>
    - auto::no_modify
    - auto::human_readable
    - dynamic_cast<const pkt::sigsub::IssuerKeyID &>
    - dynamic_cast<const pkt::sigsub::Trust &>
    - auto::exportable
    - dynamic_cast<const pkt::sigsub::PreferredAEAD &>
    - auto::signer
    - dynamic_cast<const pkt::sigsub::PreferredKeyserver &>
    - subpacket_obj_add_algs
    - auto::keyid
    linkageType: ''
    returnType: bool
    signature: "bool DumpContextJson::dump_signature_subpacket(const pkt::sigsub::Raw
      &subpkt,\n                                          nlohmann::ordered_json &obj)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: add_key_to_array
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1947,1
    - Dst: nlohmann::ordered_json::emplace_back
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1950,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1950,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1952,1
    - Dst: raw_type
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1953,1
    - Dst: nlohmann::ordered_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1954,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1956,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1956,1
    - Dst: nlohmann::ordered_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1957,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1959,1
    - Dst: hashed
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1959,1
    - Dst: nlohmann::ordered_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1960,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1962,1
    - Dst: critical
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1962,1
    - Dst: nlohmann::ordered_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1963,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1965,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1965,1
    - Dst: nlohmann::ordered_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1966,1
    - Dst: rnp::DumpContextJson::dump_signature_subpacket
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1968,1
    - Dst: nlohmann::ordered_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1969,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - sig
    argTypes:
    - pkt::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1944
    functionDepth: 2
    functionLinenumber: 1944
    functionLinenumberEnd: 1973
    functionName: rnp::DumpContextJson::dump_signature_subpackets
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - add_key_to_array
    - nlohmann::ordered_json
    - data
    - hashed
    - obj_add_intstr_json
    - sexp::sexp_input_stream_t::scan_object
    - raw_type
    - rnp::json::add
    - critical
    - nlohmann::ordered_json::emplace_back
    - rnp::json::add_hex
    - rnp::DumpContextJson::dump_signature_subpacket
    linkageType: ''
    returnType: nlohmann::ordered_json
    signature: nlohmann::ordered_json DumpContextJson::dump_signature_subpackets(const
      pkt::Signature &sig)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1978,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1981,1
    - Dst: pkt::Signature::type
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1981,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1986,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1989,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1993,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1996,1
    - Dst: rnp::DumpContextJson::dump_signature_subpackets
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2001,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2002,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2005,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2008,1
    - Dst: pkt::Signature::lbits::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2008,1
    - Dst: pkt::Signature::lbits::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2008,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2012,1
    - Dst: pkt::Signature::parse_material
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2014,1
    - Dst: dynamic_cast<const RSASigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2022,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2023,1
    - Dst: dynamic_cast<const DSASigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2029,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2030,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2031,1
    - Dst: dynamic_cast<const ECSigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2040,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2041,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2042,1
    - Dst: dynamic_cast<const EGSigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2051,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2052,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2053,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 89
    argCount: 2
    argNames:
    - sig
    - pkt
    argTypes:
    - pkt::Signature
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2091
      start: 1975
    functionDepth: 3
    functionLinenumber: 1975
    functionLinenumberEnd: 2091
    functionName: rnp::DumpContextJson::dump_signature_pkt
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - rnp::DumpContextJson::dump_signature_subpackets
    - pkt::Signature::parse_material
    - obj_add_intstr_json
    - sexp::sexp_input_stream_t::scan_object
    - obj_add_mpi_json
    - rnp::json::add
    - dynamic_cast<const EGSigMaterial &>
    - pkt::Signature::lbits::size
    - dynamic_cast<const DSASigMaterial &>
    - dynamic_cast<const ECSigMaterial &>
    - nlohmann::ordered_json::is_null
    - dynamic_cast<const RSASigMaterial &>
    - pkt::Signature::lbits::data
    - rnp::json::add_hex
    - std::move
    - pkt::Signature::type
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_signature_pkt(const pkt::Signature
      &sig, nlohmann::ordered_json &pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pkt::Signature::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2097,1
    - Dst: rnp::DumpContextJson::dump_signature_pkt
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2093
    functionDepth: 4
    functionLinenumber: 2093
    functionLinenumberEnd: 2102
    functionName: rnp::DumpContextJson::dump_signature
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - rnp::DumpContextJson::dump_signature_pkt
    - pkt::Signature::parse
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_signature(nlohmann::ordered_json
      &pkt)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: KeyMaterial*::alg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2110,1
    - Dst: dynamic_cast<const RSAKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2114,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2115,1
    - Dst: auto::n
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2115,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2116,1
    - Dst: auto::e
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2116,1
    - Dst: dynamic_cast<const DSAKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2122,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2123,1
    - Dst: auto::p
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2123,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2124,1
    - Dst: auto::q
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2124,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2125,1
    - Dst: auto::g
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2125,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2126,1
    - Dst: auto::y
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2126,1
    - Dst: dynamic_cast<const EGKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2133,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2134,1
    - Dst: auto::p
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2134,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2135,1
    - Dst: auto::g
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2135,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2136,1
    - Dst: auto::y
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2136,1
    - Dst: dynamic_cast<const ECKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2145,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2146,1
    - Dst: auto::curve
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2146,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2148,1
    - Dst: auto::p
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2148,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2151,1
    - Dst: KeyMaterial*::alg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2154,1
    - Dst: dynamic_cast<const ECDHKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2158,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2159,1
    - Dst: auto::kdf_hash_alg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2159,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2162,1
    - Dst: auto::key_wrap_alg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2163,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 85
    argCount: 2
    argNames:
    - material
    - jso
    argTypes:
    - KeyMaterial*
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2218
      start: 2104
    functionDepth: 0
    functionLinenumber: 2104
    functionLinenumberEnd: 2218
    functionName: rnp::DumpContextJson::dump_key_material
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - obj_add_intstr_json
    - auto::n
    - dynamic_cast<const ECDHKeyMaterial &>
    - dynamic_cast<const DSAKeyMaterial &>
    - rnp::json::add
    - auto::e
    - pgp::ec::Curve::get
    - dynamic_cast<const EGKeyMaterial &>
    - auto::g
    - dynamic_cast<const RSAKeyMaterial &>
    - auto::kdf_hash_alg
    - dynamic_cast<const ECKeyMaterial &>
    - KeyMaterial*::alg
    - auto::q
    - auto::y
    - obj_add_mpi_json
    - auto::p
    - auto::curve
    - auto::key_wrap_alg
    linkageType: ''
    returnType: bool
    signature: bool DumpContextJson::dump_key_material(const KeyMaterial *material,
      nlohmann::ordered_json &jso)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2223,1
    - Dst: pgp_key_pkt_t::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2224,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2229,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2232,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2235,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2238,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2242,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2246,1
    - Dst: rnp::DumpContextJson::dump_key_material
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2247,1
    - Dst: pgp_key_pkt_t::material::get
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2247,1
    - Dst: is_secret_key_pkt
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2251,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2252,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2256,1
    - Dst: obj_add_s2k_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2259,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2263,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2268,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2274,1
    - Dst: Fingerprint::keyid
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2274,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2278,1
    - Dst: pgp_key_pkt_t::material::grip
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2284,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2285,1
    - Dst: KeyGrip::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2285,1
    - Dst: KeyGrip::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2285,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 55
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2293
      start: 2220
    functionDepth: 1
    functionLinenumber: 2220
    functionLinenumberEnd: 2293
    functionName: rnp::DumpContextJson::dump_key
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - KeyGrip::data
    - KeyGrip::size
    - obj_add_intstr_json
    - sexp::sexp_input_stream_t::scan_object
    - rnp::json::add
    - is_secret_key_pkt
    - pgp_key_pkt_t::material::grip
    - pgp_key_pkt_t::pgp_key_pkt_t
    - pgp_key_pkt_t::material::get
    - obj_add_s2k_json
    - rnp::DumpContextJson::dump_key_material
    - Fingerprint::keyid
    - rnp::json::add_hex
    - pgp_key_pkt_t::parse
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_key(nlohmann::ordered_json &pkt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pgp_userid_pkt_t::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2299,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2306,1
    - Dst: pgp_userid_pkt_t::uid::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2306,1
    - Dst: pgp_userid_pkt_t::uid::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2306,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2311,1
    - Dst: pgp_userid_pkt_t::uid::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2311,1
    - Dst: pgp_userid_pkt_t::uid::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2311,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2318
      start: 2295
    functionDepth: 1
    functionLinenumber: 2295
    functionLinenumberEnd: 2318
    functionName: rnp::DumpContextJson::dump_user_id
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - rnp::json::add
    - pgp_userid_pkt_t::uid::size
    - pgp_userid_pkt_t::uid::data
    - pgp_userid_pkt_t::parse
    - rnp::json::add_hex
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_user_id(nlohmann::ordered_json &pkt)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: pgp_pk_sesskey_t::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2324,1
    - Dst: pgp_pk_sesskey_t::parse_material
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2328,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2333,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2334,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2335,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2339,1
    - Dst: dynamic_cast<const RSAEncMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2345,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2346,1
    - Dst: dynamic_cast<const EGEncMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2353,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2354,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2355,1
    - Dst: dynamic_cast<const SM2EncMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2361,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2362,1
    - Dst: dynamic_cast<const ECDHEncMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2368,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2369,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2370,1
    - Dst: auto::m::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2370,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2373,1
    - Dst: auto::m::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2373,1
    - Dst: auto::m::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2373,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2407
      start: 2320
    functionDepth: 1
    functionLinenumber: 2320
    functionLinenumberEnd: 2407
    functionName: rnp::DumpContextJson::dump_pk_session_key
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - auto::m::size
    - obj_add_mpi_json
    - sexp::sexp_input_stream_t::scan_object
    - obj_add_intstr_json
    - auto::m::data
    - rnp::json::add
    - dynamic_cast<const RSAEncMaterial &>
    - pgp_pk_sesskey_t::parse
    - pgp_pk_sesskey_t::parse_material
    - dynamic_cast<const EGEncMaterial &>
    - dynamic_cast<const SM2EncMaterial &>
    - dynamic_cast<const ECDHEncMaterial &>
    - rnp::json::add_hex
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_pk_session_key(nlohmann::ordered_json
      &pkt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pgp_sk_sesskey_t::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2413,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2418,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2419,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2423,1
    - Dst: obj_add_s2k_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2426,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2430,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2433,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2437
      start: 2409
    functionDepth: 1
    functionLinenumber: 2409
    functionLinenumberEnd: 2437
    functionName: rnp::DumpContextJson::dump_sk_session_key
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - pgp_sk_sesskey_t::parse
    - obj_add_intstr_json
    - rnp::json::add
    - obj_add_s2k_json
    - rnp::json::add_hex
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_sk_session_key(nlohmann::ordered_json
      &pkt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stream_skip_packet
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2444,1
    - Dst: get_aead_hdr
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2449,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2453,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2454,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2455,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2456,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2457,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - pkt
    - tag
    argTypes:
    - nlohmann::ordered_json
    - pgp_pkt_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2461
      start: 2439
    functionDepth: 1
    functionLinenumber: 2439
    functionLinenumberEnd: 2461
    functionName: rnp::DumpContextJson::dump_encrypted
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - obj_add_intstr_json
    - rnp::json::add
    - stream_skip_packet
    - get_aead_hdr
    - rnp::json::add_hex
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_encrypted(nlohmann::ordered_json
      &pkt, pgp_pkt_type_t tag)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pgp_one_pass_sig_t::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2467,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2472,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2475,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2478,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2481,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2486,1
    - Dst: pgp_one_pass_sig_t::salt::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2487,1
    - Dst: pgp_one_pass_sig_t::salt::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2487,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2491,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2495,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2499,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2503
      start: 2463
    functionDepth: 1
    functionLinenumber: 2463
    functionLinenumberEnd: 2503
    functionName: rnp::DumpContextJson::dump_one_pass
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - pgp_one_pass_sig_t::parse
    - obj_add_intstr_json
    - rnp::json::add
    - pgp_one_pass_sig_t::salt::data
    - pgp_one_pass_sig_t::salt::size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_one_pass(nlohmann::ordered_json
      &pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stream_parse_marker
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2508,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2513
      start: 2505
    functionDepth: 1
    functionLinenumber: 2505
    functionLinenumberEnd: 2513
    functionName: rnp::DumpContextJson::dump_marker
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - rnp::json::add
    - stream_parse_marker
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_marker(nlohmann::ordered_json &pkt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Source::Source
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2518,1
    - Dst: init_compressed_src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2519,1
    - Dst: std::unique_ptr::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2519,1
    - Dst: get_compressed_src_alg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2525,1
    - Dst: std::unique_ptr::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2525,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2526,1
    - Dst: std::unique_ptr::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2531,1
    - Dst: DumpContextJson::copy_params
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2532,1
    - Dst: DumpContextJson::dump
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2533,1
    - Dst: copy_params
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2534,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2536,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2539
      start: 2515
    functionDepth: 1
    functionLinenumber: 2515
    functionLinenumberEnd: 2539
    functionName: rnp::DumpContextJson::dump_compressed
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - get_compressed_src_alg
    - Source::Source
    - obj_add_intstr_json
    - std::unique_ptr::src
    - DumpContextJson::copy_params
    - DumpContextJson::dump
    - copy_params
    - init_compressed_src
    - std::move
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_compressed(nlohmann::ordered_json
      &pkt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: init_literal_src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2545,1
    - Dst: Source::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2545,1
    - Dst: get_literal_src_hdr
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2551,1
    - Dst: Source::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2551,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2552,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2553,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2554,1
    - Dst: Source::eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2558,1
    - Dst: Source::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2561,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2566,1
    - Dst: Source::readb
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2566,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2570
      start: 2541
    functionDepth: 1
    functionLinenumber: 2541
    functionLinenumberEnd: 2570
    functionName: rnp::DumpContextJson::dump_literal
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - rnp::json::add
    - get_literal_src_hdr
    - Source::src
    - Source::eof
    - init_literal_src
    - Source::readb
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_literal(nlohmann::ordered_json &pkt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stream_peek_packet_hdr
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2575,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2580,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2582,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2583,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2584,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2588,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2591,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2592,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - hdr
    - pkt
    argTypes:
    - pgp_packet_hdr_t
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2596
      start: 2572
    functionDepth: 1
    functionLinenumber: 2572
    functionLinenumberEnd: 2596
    functionName: rnp::DumpContextJson::dump_pkt_hdr
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - stream_peek_packet_hdr
    - obj_add_intstr_json
    - sexp::sexp_input_stream_t::scan_object
    - rnp::json::add
    - rnp::json::add_hex
    linkageType: ''
    returnType: bool
    signature: bool DumpContextJson::dump_pkt_hdr(pgp_packet_hdr_t &hdr, nlohmann::ordered_json
      &pkt)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: add_key_to_array
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2603,1
    - Dst: eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2605,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2606,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2612,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2613,1
    - Dst: eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2617,1
    - Dst: nlohmann::ordered_json::emplace_back
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2618,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2618,1
    - Dst: rnp::DumpContextJson::dump_pkt_hdr
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2620,1
    - Dst: peek
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2631,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2634,1
    - Dst: rnp::DumpContextJson::dump_signature
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2641,1
    - Dst: rnp::DumpContextJson::dump_key
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2647,1
    - Dst: rnp::DumpContextJson::dump_user_id
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2651,1
    - Dst: rnp::DumpContextJson::dump_pk_session_key
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2654,1
    - Dst: rnp::DumpContextJson::dump_sk_session_key
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2657,1
    - Dst: rnp::DumpContextJson::dump_encrypted
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2663,1
    - Dst: rnp::DumpContextJson::dump_one_pass
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2666,1
    - Dst: rnp::DumpContextJson::dump_compressed
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2670,1
    - Dst: rnp::DumpContextJson::dump_literal
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2674,1
    - Dst: rnp::DumpContextJson::dump_marker
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2677,1
    - Dst: stream_skip_packet
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2681,1
    - Dst: stream_skip_packet
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2684,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2689,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2695,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2697,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2703,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2708,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 93
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2710
      start: 2598
    functionDepth: 5
    functionLinenumber: 2598
    functionLinenumberEnd: 2710
    functionName: rnp::DumpContextJson::dump_raw_packets
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - rnp::DumpContextJson::dump_signature
    - rnp::DumpContextJson::dump_marker
    - rnp::DumpContextJson::dump_key
    - rnp::DumpContextJson::dump_compressed
    - nlohmann::ordered_json::emplace_back
    - rnp::DumpContextJson::dump_user_id
    - rnp::json::add_hex
    - std::move
    - add_key_to_array
    - rnp::DumpContextJson::dump_literal
    - sexp::sexp_input_stream_t::scan_object
    - rnp::DumpContextJson::dump_pkt_hdr
    - stream_skip_packet
    - eof
    - rnp::DumpContextJson::dump_one_pass
    - RNP_LOG
    - rnp::DumpContextJson::dump_pk_session_key
    - peek
    - rnp::DumpContextJson::dump_sk_session_key
    - rnp::DumpContextJson::dump_encrypted
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_raw_packets()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: is_cleartext
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2716,1
    - Dst: skip_cleartext
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2717,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2718,1
    - Dst: is_armored
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2724,1
    - Dst: add_key_to_array
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2728,1
    - Dst: rnp::ArmoredSource::eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2730,1
    - Dst: rnp::ArmoredSource::multiple
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2730,1
    - Dst: rnp::ArmoredSource::restart
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2731,1
    - Dst: rnp::ArmoredSource::eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2733,1
    - Dst: rnp::ArmoredSource::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2737,1
    - Dst: DumpContextJson::copy_params
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2738,1
    - Dst: DumpContextJson::dump
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2739,1
    - Dst: nlohmann::ordered_json::is_array
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2743,1
    - Dst: nlohmann::ordered_json::insert
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2744,1
    - Dst: nlohmann::ordered_json::end
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2744,1
    - Dst: nlohmann::ordered_json::begin
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2744,1
    - Dst: nlohmann::ordered_json::end
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2744,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2747,1
    - Dst: eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2751,1
    - Dst: rnp::DumpContextJson::dump_raw_packets
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2754,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 1
    argNames:
    - raw_only
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2755
      start: 2712
    functionDepth: 6
    functionLinenumber: 2712
    functionLinenumberEnd: 2755
    functionName: rnp::DumpContextJson::dump
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - nlohmann::ordered_json::end
    - add_key_to_array
    - rnp::DumpContextJson::dump_raw_packets
    - nlohmann::ordered_json::is_array
    - DumpContextJson::copy_params
    - DumpContextJson::dump
    - rnp::ArmoredSource::restart
    - is_cleartext
    - is_armored
    - nlohmann::ordered_json::begin
    - rnp::ArmoredSource::multiple
    - eof
    - nlohmann::ordered_json::insert
    - skip_cleartext
    - rnp::ArmoredSource::src
    - rnp::ArmoredSource::eof
    - std::move
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump(bool raw_only)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - DumpContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 581
    functionDepth: 0
    functionLinenumber: 581
    functionLinenumberEnd: 591
    functionName: rnp::DumpContext::copy_params
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DumpContext::copy_params(const DumpContext &ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: mem_dest_discard_overflow
      Src: /src/rnp/src/librepgp/stream-dump.cpp:599,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librepgp/stream-dump.cpp:599,1
    - Dst: stream_read_packet
      Src: /src/rnp/src/librepgp/stream-dump.cpp:601,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librepgp/stream-dump.cpp:601,1
    - Dst: std::min
      Src: /src/rnp/src/librepgp/stream-dump.cpp:604,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librepgp/stream-dump.cpp:604,1
    - Dst: get_aead_src_hdr
      Src: /src/rnp/src/librepgp/stream-dump.cpp:607,1
    - Dst: MemorySource::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:607,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - hdr
    argTypes:
    - pgp_aead_hdr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 593
    functionDepth: 1
    functionLinenumber: 593
    functionLinenumberEnd: 608
    functionName: rnp::DumpContext::get_aead_hdr
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - MemoryDest::dst
    - stream_read_packet
    - get_aead_src_hdr
    - mem_dest_discard_overflow
    - MemoryDest::writeb
    - std::min
    - MemorySource::src
    linkageType: ''
    returnType: bool
    signature: bool DumpContext::get_aead_hdr(pgp_aead_hdr_t &hdr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/rnp/src/librepgp/stream-dump.cpp:615,1
    - Dst: eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:618,1
    - Dst: peek
      Src: /src/rnp/src/librepgp/stream-dump.cpp:619,1
    - Dst: strstr
      Src: /src/rnp/src/librepgp/stream-dump.cpp:624,1
    - Dst: skip
      Src: /src/rnp/src/librepgp/stream-dump.cpp:626,1
    - Dst: skip
      Src: /src/rnp/src/librepgp/stream-dump.cpp:629,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 632
    functionName: rnp::DumpContext::skip_cleartext
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - peek
    - eof
    - strlen
    - strstr
    - skip
    linkageType: ''
    returnType: bool
    signature: bool DumpContext::skip_cleartext()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_indent_dest
      Src: /src/rnp/src/librepgp/stream-dump.cpp:636,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:638,1
    - Dst: rnp_exception
      Src: /src/rnp/src/librepgp/stream-dump.cpp:639,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - asrc
    - adst
    argTypes:
    - pgp_source_t
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 634
    functionDepth: 2
    functionLinenumber: 634
    functionLinenumberEnd: 641
    functionName: rnp::DumpContextDst::DumpContextDst
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp_exception
    - init_indent_dest
    linkageType: ''
    returnType: void
    signature: void DumpContextDst::DumpContextDst(pgp_source_t &asrc, pgp_dest_t
      &adst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dst_close
      Src: /src/rnp/src/librepgp/stream-dump.cpp:646,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 643
    functionDepth: 1
    functionLinenumber: 643
    functionLinenumberEnd: 648
    functionName: DumpContextDst::~DumpContextDst()
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - dst_close
    linkageType: ''
    returnType: void
    signature: void DumpContextDst::~DumpContextDst()
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/librepgp/stream-dump.cpp:653,1
    - Dst: pkt::sigsub::Raw::raw_type
      Src: /src/rnp/src/librepgp/stream-dump.cpp:653,1
    - Dst: pkt::sigsub::Raw::type
      Src: /src/rnp/src/librepgp/stream-dump.cpp:655,1
    - Dst: dynamic_cast<const pkt::sigsub::CreationTime &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:657,1
    - Dst: dst_print_time
      Src: /src/rnp/src/librepgp/stream-dump.cpp:658,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-dump.cpp:658,1
    - Dst: dynamic_cast<const pkt::sigsub::ExpirationTime &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:662,1
    - Dst: dst_print_expiration
      Src: /src/rnp/src/librepgp/stream-dump.cpp:663,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-dump.cpp:663,1
    - Dst: dynamic_cast<const pkt::sigsub::ExportableCert &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:667,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:668,1
    - Dst: auto::exportable
      Src: /src/rnp/src/librepgp/stream-dump.cpp:668,1
    - Dst: dynamic_cast<const pkt::sigsub::Trust &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:672,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:673,1
    - Dst: auto::amount
      Src: /src/rnp/src/librepgp/stream-dump.cpp:674,1
    - Dst: auto::level
      Src: /src/rnp/src/librepgp/stream-dump.cpp:674,1
    - Dst: dynamic_cast<const pkt::sigsub::RegExp &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:678,1
    - Dst: dst_print_str
      Src: /src/rnp/src/librepgp/stream-dump.cpp:679,1
    - Dst: auto::regexp
      Src: /src/rnp/src/librepgp/stream-dump.cpp:679,1
    - Dst: dynamic_cast<const pkt::sigsub::Revocable &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:683,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:684,1
    - Dst: auto::revocable
      Src: /src/rnp/src/librepgp/stream-dump.cpp:684,1
    - Dst: dynamic_cast<const pkt::sigsub::KeyExpirationTime &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:688,1
    - Dst: dst_print_expiration
      Src: /src/rnp/src/librepgp/stream-dump.cpp:689,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-dump.cpp:689,1
    - Dst: dynamic_cast<const pkt::sigsub::PreferredSymmetric &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:693,1
    - Dst: dst_print_algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:694,1
    - Dst: auto::algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:694,1
    - Dst: dynamic_cast<const pkt::sigsub::RevocationKey &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:698,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:699,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:700,1
    - Dst: auto::rev_class
      Src: /src/rnp/src/librepgp/stream-dump.cpp:700,1
    - Dst: dst_print_palg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:701,1
    - Dst: auto::alg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:701,1
    - Dst: dst_print_fp
      Src: /src/rnp/src/librepgp/stream-dump.cpp:702,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-dump.cpp:702,1
    - Dst: dynamic_cast<const pkt::sigsub::IssuerKeyID &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:706,1
    - Dst: dst_print_keyid
      Src: /src/rnp/src/librepgp/stream-dump.cpp:707,1
    - Dst: auto::keyid
      Src: /src/rnp/src/librepgp/stream-dump.cpp:707,1
    - Dst: dynamic_cast<const pkt::sigsub::NotationData &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:711,1
    - Dst: auto::human_readable
      Src: /src/rnp/src/librepgp/stream-dump.cpp:712,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:713,1
    - Dst: auto::name
      Src: /src/rnp/src/librepgp/stream-dump.cpp:713,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:714,1
    - Dst: auto::value
      Src: /src/rnp/src/librepgp/stream-dump.cpp:715,1
    - Dst: auto::value
      Src: /src/rnp/src/librepgp/stream-dump.cpp:715,1
    - Dst: vsnprinthex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:718,1
    - Dst: auto::value
      Src: /src/rnp/src/librepgp/stream-dump.cpp:718,1
    - Dst: auto::value
      Src: /src/rnp/src/librepgp/stream-dump.cpp:718,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:719,1
    - Dst: auto::name
      Src: /src/rnp/src/librepgp/stream-dump.cpp:719,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:720,1
    - Dst: auto::value
      Src: /src/rnp/src/librepgp/stream-dump.cpp:720,1
    - Dst: dynamic_cast<const pkt::sigsub::PreferredHash &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:725,1
    - Dst: dst_print_algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:726,1
    - Dst: auto::algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:726,1
    - Dst: dynamic_cast<const pkt::sigsub::PreferredCompress &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:730,1
    - Dst: dst_print_algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:731,1
    - Dst: auto::algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:731,1
    - Dst: dynamic_cast<const pkt::sigsub::KeyserverPrefs &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:735,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:736,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:737,1
    - Dst: auto::no_modify
      Src: /src/rnp/src/librepgp/stream-dump.cpp:737,1
    - Dst: dynamic_cast<const pkt::sigsub::PreferredKeyserver &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:741,1
    - Dst: dst_print_str
      Src: /src/rnp/src/librepgp/stream-dump.cpp:742,1
    - Dst: auto::keyserver
      Src: /src/rnp/src/librepgp/stream-dump.cpp:742,1
    - Dst: dynamic_cast<const pkt::sigsub::PrimaryUserID &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:746,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:747,1
    - Dst: auto::primary
      Src: /src/rnp/src/librepgp/stream-dump.cpp:747,1
    - Dst: dynamic_cast<const pkt::sigsub::PolicyURI &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:751,1
    - Dst: dst_print_str
      Src: /src/rnp/src/librepgp/stream-dump.cpp:752,1
    - Dst: auto::URI
      Src: /src/rnp/src/librepgp/stream-dump.cpp:752,1
    - Dst: dynamic_cast<const pkt::sigsub::KeyFlags &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:756,1
    - Dst: auto::flags
      Src: /src/rnp/src/librepgp/stream-dump.cpp:757,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:758,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:759,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:760,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:761,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:762,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:763,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:764,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:765,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:766,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:767,1
    - Dst: dynamic_cast<const pkt::sigsub::SignersUserID &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:771,1
    - Dst: dst_print_str
      Src: /src/rnp/src/librepgp/stream-dump.cpp:772,1
    - Dst: auto::signer
      Src: /src/rnp/src/librepgp/stream-dump.cpp:772,1
    - Dst: dynamic_cast<const pkt::sigsub::RevocationReason &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:776,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/librepgp/stream-dump.cpp:777,1
    - Dst: auto::code
      Src: /src/rnp/src/librepgp/stream-dump.cpp:777,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:778,1
    - Dst: auto::code
      Src: /src/rnp/src/librepgp/stream-dump.cpp:778,1
    - Dst: dst_print_str
      Src: /src/rnp/src/librepgp/stream-dump.cpp:779,1
    - Dst: auto::reason
      Src: /src/rnp/src/librepgp/stream-dump.cpp:779,1
    - Dst: dynamic_cast<const pkt::sigsub::Features &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:783,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:784,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-dump.cpp:784,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:785,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-dump.cpp:785,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:786,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-dump.cpp:786,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:787,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-dump.cpp:787,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:789,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-dump.cpp:789,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:791,1
    - Dst: dynamic_cast<const pkt::sigsub::EmbeddedSignature &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:795,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:796,1
    - Dst: auto::signature
      Src: /src/rnp/src/librepgp/stream-dump.cpp:797,1
    - Dst: rnp::DumpContextDst::dump_signature_pkt
      Src: /src/rnp/src/librepgp/stream-dump.cpp:798,1
    - Dst: dynamic_cast<const pkt::sigsub::IssuerFingerprint &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:802,1
    - Dst: dst_print_fp
      Src: /src/rnp/src/librepgp/stream-dump.cpp:803,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-dump.cpp:803,1
    - Dst: dynamic_cast<const pkt::sigsub::PreferredAEAD &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:807,1
    - Dst: dst_print_algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:808,1
    - Dst: auto::algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:808,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:813,1
    - Dst: dst_hexdump
      Src: /src/rnp/src/librepgp/stream-dump.cpp:814,1
    - Dst: pkt::sigsub::Raw::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:814,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:815,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 132
    argCount: 1
    argNames:
    - subpkt
    argTypes:
    - pkt::sigsub::Raw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 818
      start: 650
    functionDepth: 6
    functionLinenumber: 650
    functionLinenumberEnd: 818
    functionName: rnp::DumpContextDst::dump_signature_subpacket
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - dst_print_palg
    - dynamic_cast<const pkt::sigsub::ExpirationTime &>
    - auto::code
    - dynamic_cast<const pkt::sigsub::SignersUserID &>
    - dynamic_cast<const pkt::sigsub::PolicyURI &>
    - auto::algs
    - auto::amount
    - dynamic_cast<const pkt::sigsub::KeyExpirationTime &>
    - vsnprinthex
    - dynamic_cast<const pkt::sigsub::PreferredCompress &>
    - auto::fp
    - dynamic_cast<const pkt::sigsub::PrimaryUserID &>
    - dynamic_cast<const pkt::sigsub::KeyFlags &>
    - dynamic_cast<const pkt::sigsub::RevocationKey &>
    - auto::flags
    - auto::keyserver
    - auto::value
    - dynamic_cast<const pkt::sigsub::RegExp &>
    - dynamic_cast<const pkt::sigsub::IssuerFingerprint &>
    - indent_dest_decrease
    - dst_print_keyid
    - dynamic_cast<const pkt::sigsub::ExportableCert &>
    - dynamic_cast<const pkt::sigsub::PreferredHash &>
    - dynamic_cast<const pkt::sigsub::EmbeddedSignature &>
    - dynamic_cast<const pkt::sigsub::PreferredSymmetric &>
    - auto::name
    - dst_hexdump
    - pkt::sigsub::Raw::type
    - dynamic_cast<const pkt::sigsub::Revocable &>
    - auto::reason
    - dynamic_cast<const pkt::sigsub::Features &>
    - pkt::sigsub::Raw::raw_type
    - dst_print_fp
    - auto::alg
    - indent_dest_increase
    - auto::regexp
    - auto::revocable
    - dst_print_time
    - auto::level
    - dynamic_cast<const pkt::sigsub::NotationData &>
    - dynamic_cast<const pkt::sigsub::CreationTime &>
    - auto::primary
    - dynamic_cast<const pkt::sigsub::RevocationReason &>
    - auto::signature
    - dst_print_str
    - id_str_pair::lookup
    - auto::features
    - auto::rev_class
    - auto::URI
    - pkt::sigsub::Raw::data
    - auto::time
    - dynamic_cast<const pkt::sigsub::KeyserverPrefs &>
    - auto::human_readable
    - auto::no_modify
    - dynamic_cast<const pkt::sigsub::IssuerKeyID &>
    - dynamic_cast<const pkt::sigsub::Trust &>
    - auto::exportable
    - auto::signer
    - dst_printf
    - dynamic_cast<const pkt::sigsub::PreferredAEAD &>
    - dynamic_cast<const pkt::sigsub::PreferredKeyserver &>
    - dst_print_expiration
    - auto::keyid
    - rnp::DumpContextDst::dump_signature_pkt
    - dst_print_algs
    linkageType: ''
    returnType: void
    signature: void DumpContextDst::dump_signature_subpacket(const pkt::sigsub::Raw
      &subpkt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: hashed
      Src: /src/rnp/src/librepgp/stream-dump.cpp:826,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:830,1
    - Dst: raw_type
      Src: /src/rnp/src/librepgp/stream-dump.cpp:831,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:831,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:832,1
    - Dst: critical
      Src: /src/rnp/src/librepgp/stream-dump.cpp:832,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:834,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:835,1
    - Dst: dst_hexdump
      Src: /src/rnp/src/librepgp/stream-dump.cpp:836,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:836,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:837,1
    - Dst: rnp::DumpContextDst::dump_signature_subpacket
      Src: /src/rnp/src/librepgp/stream-dump.cpp:839,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:843,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - sig
    - hashed
    argTypes:
    - pkt::Signature
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 845
      start: 820
    functionDepth: 4
    functionLinenumber: 820
    functionLinenumberEnd: 845
    functionName: rnp::DumpContextDst::dump_signature_subpackets
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - data
    - hashed
    - dst_printf
    - raw_type
    - critical
    - dst_hexdump
    - rnp::DumpContextDst::dump_signature_subpacket
    - indent_dest_decrease
    - indent_dest_increase
    linkageType: ''
    returnType: void
    signature: void DumpContextDst::dump_signature_subpackets(const pkt::Signature
      &sig, bool hashed)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:850,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:852,1
    - Dst: dst_print_sig_type
      Src: /src/rnp/src/librepgp/stream-dump.cpp:853,1
    - Dst: pkt::Signature::type
      Src: /src/rnp/src/librepgp/stream-dump.cpp:853,1
    - Dst: dst_print_time
      Src: /src/rnp/src/librepgp/stream-dump.cpp:855,1
    - Dst: dst_print_keyid
      Src: /src/rnp/src/librepgp/stream-dump.cpp:856,1
    - Dst: dst_print_palg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:858,1
    - Dst: dst_print_halg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:859,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:862,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:863,1
    - Dst: rnp::DumpContextDst::dump_signature_subpackets
      Src: /src/rnp/src/librepgp/stream-dump.cpp:864,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:865,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:867,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:868,1
    - Dst: rnp::DumpContextDst::dump_signature_subpackets
      Src: /src/rnp/src/librepgp/stream-dump.cpp:869,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:870,1
    - Dst: dst_print_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:873,1
    - Dst: pkt::Signature::lbits::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:873,1
    - Dst: pkt::Signature::lbits::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:873,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:874,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:875,1
    - Dst: pkt::Signature::parse_material
      Src: /src/rnp/src/librepgp/stream-dump.cpp:877,1
    - Dst: assert
      Src: /src/rnp/src/librepgp/stream-dump.cpp:878,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:881,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:882,1
    - Dst: dynamic_cast<const RSASigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:890,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:891,1
    - Dst: dynamic_cast<const DSASigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:895,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:896,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:897,1
    - Dst: dynamic_cast<const ECSigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:904,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:905,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:906,1
    - Dst: dynamic_cast<const EGSigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:913,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:914,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:915,1
    - Dst: dynamic_cast<const Ed25519SigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:921,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:922,1
    - Dst: dynamic_cast<const Ed448SigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:926,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:927,1
    - Dst: dynamic_cast<const DilithiumSigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:943,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:944,1
    - Dst: dynamic_cast<const SlhdsaSigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:952,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:953,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:958,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:960,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:961,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 90
    argCount: 1
    argNames:
    - sig
    argTypes:
    - pkt::Signature
    assertStmts:
    - condition: (material)
      pos:
        line_end: 877
        line_start: 877
        source_file: /src/rnp/src/librepgp/stream-dump.cpp
    constantsTouched: []
    func_position:
      end: 962
      start: 847
    functionDepth: 5
    functionLinenumber: 847
    functionLinenumberEnd: 962
    functionName: rnp::DumpContextDst::dump_signature_pkt
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 3
    functionsReached:
    - dst_print_palg
    - dst_print_mpi
    - dynamic_cast<const Ed448SigMaterial &>
    - dynamic_cast<const ECSigMaterial &>
    - dynamic_cast<const RSASigMaterial &>
    - indent_dest_decrease
    - dst_print_keyid
    - dynamic_cast<const Ed25519SigMaterial &>
    - dynamic_cast<const EGSigMaterial &>
    - dynamic_cast<const SlhdsaSigMaterial &>
    - dynamic_cast<const DSASigMaterial &>
    - pkt::Signature::lbits::data
    - dst_print_vec
    - indent_dest_increase
    - dst_print_sig_type
    - dst_print_time
    - pkt::Signature::type
    - dst_print_halg
    - pkt::Signature::parse_material
    - pkt::Signature::lbits::size
    - assert
    - dst_printf
    - dst_print_hex
    - rnp::DumpContextDst::dump_signature_subpackets
    - dynamic_cast<const DilithiumSigMaterial &>
    linkageType: ''
    returnType: void
    signature: void DumpContextDst::dump_signature_pkt(const pkt::Signature &sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:967,1
    - Dst: pkt::Signature::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:969,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:971,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:972,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:973,1
    - Dst: rnp::DumpContextDst::dump_signature_pkt
      Src: /src/rnp/src/librepgp/stream-dump.cpp:976,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 978
      start: 964
    functionDepth: 6
    functionLinenumber: 964
    functionLinenumberEnd: 978
    functionName: rnp::DumpContextDst::dump_signature
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - rnp::DumpContextDst::dump_signature_pkt
    - pkt::Signature::parse
    - dst_printf
    - indent_dest_decrease
    - indent_dest_increase
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_signature()
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: KeyMaterial*::alg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:986,1
    - Dst: dynamic_cast<const RSAKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:990,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:991,1
    - Dst: auto::n
      Src: /src/rnp/src/librepgp/stream-dump.cpp:991,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:992,1
    - Dst: auto::e
      Src: /src/rnp/src/librepgp/stream-dump.cpp:992,1
    - Dst: dynamic_cast<const DSAKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:996,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:997,1
    - Dst: auto::p
      Src: /src/rnp/src/librepgp/stream-dump.cpp:997,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:998,1
    - Dst: auto::q
      Src: /src/rnp/src/librepgp/stream-dump.cpp:998,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:999,1
    - Dst: auto::g
      Src: /src/rnp/src/librepgp/stream-dump.cpp:999,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1000,1
    - Dst: auto::y
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1000,1
    - Dst: dynamic_cast<const EGKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1005,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1006,1
    - Dst: auto::p
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1006,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1007,1
    - Dst: auto::g
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1007,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1008,1
    - Dst: auto::y
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1008,1
    - Dst: dynamic_cast<const ECKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1014,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1015,1
    - Dst: auto::curve
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1015,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1016,1
    - Dst: auto::p
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1016,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1017,1
    - Dst: dynamic_cast<const ECDHKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1021,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1022,1
    - Dst: auto::curve
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1022,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1024,1
    - Dst: auto::p
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1024,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1025,1
    - Dst: dst_print_halg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1027,1
    - Dst: auto::kdf_hash_alg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1027,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1028,1
    - Dst: auto::key_wrap_alg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1028,1
    - Dst: dynamic_cast<const Ed25519KeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1033,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1034,1
    - Dst: auto::pub
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1034,1
    - Dst: dynamic_cast<const X25519KeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1038,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1039,1
    - Dst: auto::pub
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1039,1
    - Dst: dynamic_cast<const pgp::Ed448KeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1043,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1044,1
    - Dst: auto::pub
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1044,1
    - Dst: dynamic_cast<const pgp::X448KeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1048,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1049,1
    - Dst: auto::pub
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1049,1
    - Dst: dynamic_cast<const MlkemEcdhKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1068,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1069,1
    - Dst: auto::pub
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1069,1
    - Dst: dynamic_cast<const DilithiumEccKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1085,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1086,1
    - Dst: auto::pub
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1087,1
    - Dst: dynamic_cast<const SlhdsaKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1095,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1096,1
    - Dst: auto::pub
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1096,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 95
    argCount: 1
    argNames:
    - material
    argTypes:
    - KeyMaterial*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 980
    functionDepth: 2
    functionLinenumber: 980
    functionLinenumberEnd: 1103
    functionName: rnp::DumpContextDst::dump_key_material
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - dst_print_mpi
    - dynamic_cast<const Ed25519KeyMaterial &>
    - auto::n
    - dynamic_cast<const ECDHKeyMaterial &>
    - dynamic_cast<const DSAKeyMaterial &>
    - auto::pub
    - auto::e
    - pgp::ec::Curve::get
    - dynamic_cast<const EGKeyMaterial &>
    - dst_print_vec
    - dynamic_cast<const SlhdsaKeyMaterial &>
    - dynamic_cast<const X25519KeyMaterial &>
    - auto::g
    - dst_print_halg
    - dynamic_cast<const RSAKeyMaterial &>
    - auto::kdf_hash_alg
    - dynamic_cast<const ECKeyMaterial &>
    - KeyMaterial*::alg
    - auto::q
    - dynamic_cast<const pgp::X448KeyMaterial &>
    - auto::y
    - dynamic_cast<const pgp::Ed448KeyMaterial &>
    - dynamic_cast<const MlkemEcdhKeyMaterial &>
    - dst_printf
    - dynamic_cast<const DilithiumEccKeyMaterial &>
    - auto::p
    - auto::curve
    - auto::key_wrap_alg
    linkageType: ''
    returnType: void
    signature: void DumpContextDst::dump_key_material(const KeyMaterial *material)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1108,1
    - Dst: pgp_key_pkt_t::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1109,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1114,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1114,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1115,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1117,1
    - Dst: dst_print_time
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1118,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1120,1
    - Dst: dst_print_palg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1122,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1124,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1126,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1127,1
    - Dst: rnp::DumpContextDst::dump_key_material
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1128,1
    - Dst: pgp_key_pkt_t::material::get
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1128,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1129,1
    - Dst: is_secret_key_pkt
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1131,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1132,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1133,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1135,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1137,1
    - Dst: dst_print_salg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1141,1
    - Dst: dst_print_s2k
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1142,1
    - Dst: pgp_block_size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1144,1
    - Dst: dst_print_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1146,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1148,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1154,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1157,1
    - Dst: pgp_key_pkt_t::sec_data::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1157,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1159,1
    - Dst: pgp_key_pkt_t::sec_data::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1159,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1161,1
    - Dst: dst_print_keyid
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1166,1
    - Dst: Fingerprint::keyid
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1166,1
    - Dst: dst_print_fp
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1169,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1172,1
    - Dst: pgp_key_pkt_t::material::grip
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1177,1
    - Dst: dst_print_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1178,1
    - Dst: KeyGrip::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1178,1
    - Dst: KeyGrip::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1178,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1180,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1184,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 64
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1186
      start: 1105
    functionDepth: 3
    functionLinenumber: 1105
    functionLinenumberEnd: 1186
    functionName: rnp::DumpContextDst::dump_key
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - dst_print_palg
    - pgp_key_pkt_t::material::get
    - indent_dest_decrease
    - dst_print_salg
    - dst_print_keyid
    - pgp_block_size
    - pgp_key_pkt_t::sec_data::size
    - dst_print_fp
    - indent_dest_increase
    - dst_print_time
    - KeyGrip::data
    - KeyGrip::size
    - id_str_pair::lookup
    - pgp_key_pkt_t::material::grip
    - pgp_key_pkt_t::pgp_key_pkt_t
    - dst_print_s2k
    - rnp::DumpContextDst::dump_key_material
    - dst_printf
    - dst_print_hex
    - is_secret_key_pkt
    - Fingerprint::keyid
    - pgp_key_pkt_t::parse
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_key()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pgp_userid_pkt_t::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1192,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1209,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1210,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1214,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1215,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1216,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1219,1
    - Dst: pgp_userid_pkt_t::uid::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1219,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1224,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1226
      start: 1188
    functionDepth: 1
    functionLinenumber: 1188
    functionLinenumberEnd: 1226
    functionName: rnp::DumpContextDst::dump_userid
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - dst_printf
    - pgp_userid_pkt_t::uid::size
    - dst_write
    - pgp_userid_pkt_t::parse
    - indent_dest_decrease
    - indent_dest_increase
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_userid()
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: pgp_pk_sesskey_t::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1232,1
    - Dst: pgp_pk_sesskey_t::parse_material
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1236,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1241,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1242,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1244,1
    - Dst: dst_print_fp
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1247,1
    - Dst: dst_print_keyid
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1249,1
    - Dst: dst_print_keyid
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1252,1
    - Dst: dst_print_palg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1254,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1255,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1256,1
    - Dst: dynamic_cast<const RSAEncMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1262,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1263,1
    - Dst: dynamic_cast<const EGEncMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1268,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1269,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1270,1
    - Dst: dynamic_cast<const SM2EncMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1274,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1275,1
    - Dst: dynamic_cast<const ECDHEncMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1279,1
    - Dst: dst_print_mpi
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1280,1
    - Dst: dst_print_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1282,1
    - Dst: auto::m::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1282,1
    - Dst: auto::m::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1282,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1284,1
    - Dst: auto::m::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1284,1
    - Dst: dynamic_cast<const X25519EncMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1290,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1291,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1292,1
    - Dst: dynamic_cast<const X448EncMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1296,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1297,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1298,1
    - Dst: dynamic_cast<const MlkemEcdhEncMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1317,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1318,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1320,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1325,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1328,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1329,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 76
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1331
      start: 1228
    functionDepth: 3
    functionLinenumber: 1228
    functionLinenumberEnd: 1331
    functionName: rnp::DumpContextDst::dump_pk_session_key
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - dst_print_palg
    - dst_print_mpi
    - indent_dest_decrease
    - dst_print_keyid
    - auto::m::size
    - dst_print_fp
    - dst_print_vec
    - indent_dest_increase
    - dynamic_cast<const X448EncMaterial &>
    - dynamic_cast<const RSAEncMaterial &>
    - dynamic_cast<const EGEncMaterial &>
    - dynamic_cast<const SM2EncMaterial &>
    - dynamic_cast<const ECDHEncMaterial &>
    - dst_printf
    - dst_print_hex
    - auto::m::data
    - pgp_pk_sesskey_t::parse
    - pgp_pk_sesskey_t::parse_material
    - dynamic_cast<const MlkemEcdhEncMaterial &>
    - dynamic_cast<const X25519EncMaterial &>
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_pk_session_key()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp_sk_sesskey_t::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1337,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1342,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1343,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1344,1
    - Dst: dst_print_salg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1345,1
    - Dst: dst_print_aalg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1347,1
    - Dst: dst_print_s2k
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1349,1
    - Dst: dst_print_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1351,1
    - Dst: dst_print_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1353,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1354,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1357
      start: 1333
    functionDepth: 3
    functionLinenumber: 1333
    functionLinenumberEnd: 1357
    functionName: rnp::DumpContextDst::dump_sk_session_key
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - pgp_sk_sesskey_t::parse
    - dst_printf
    - dst_print_hex
    - dst_print_s2k
    - indent_dest_decrease
    - dst_print_salg
    - indent_dest_increase
    - dst_print_aalg
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_sk_session_key()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1362,1
    - Dst: get_aead_hdr
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1365,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1366,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1370,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1372,1
    - Dst: dst_print_salg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1373,1
    - Dst: dst_print_aalg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1374,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1375,1
    - Dst: dst_print_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1376,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1378,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1380
      start: 1359
    functionDepth: 2
    functionLinenumber: 1359
    functionLinenumberEnd: 1380
    functionName: rnp::DumpContextDst::dump_aead_encrypted
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - dst_printf
    - dst_print_hex
    - indent_dest_decrease
    - get_aead_hdr
    - dst_print_salg
    - indent_dest_increase
    - dst_print_aalg
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_aead_encrypted()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1387,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1390,1
    - Dst: rnp::DumpContextDst::dump_aead_encrypted
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1393,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1395,1
    - Dst: stream_skip_packet
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1399,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - tag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1400
      start: 1382
    functionDepth: 3
    functionLinenumber: 1382
    functionLinenumberEnd: 1400
    functionName: rnp::DumpContextDst::dump_encrypted
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - rnp::DumpContextDst::dump_aead_encrypted
    - stream_skip_packet
    - dst_printf
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_encrypted(int tag)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp_one_pass_sig_t::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1406,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1411,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1412,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1414,1
    - Dst: dst_print_sig_type
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1415,1
    - Dst: dst_print_halg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1416,1
    - Dst: dst_print_palg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1417,1
    - Dst: dst_print_vec
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1420,1
    - Dst: dst_print_keyid
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1424,1
    - Dst: dst_print_fp
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1428,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1431,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1433,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1402
    functionDepth: 3
    functionLinenumber: 1402
    functionLinenumberEnd: 1435
    functionName: rnp::DumpContextDst::dump_one_pass
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - dst_print_palg
    - dst_print_keyid
    - pgp_one_pass_sig_t::parse
    - dst_print_halg
    - dst_printf
    - indent_dest_decrease
    - dst_print_fp
    - dst_print_vec
    - indent_dest_increase
    - dst_print_sig_type
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_one_pass()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Source::Source
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1440,1
    - Dst: init_compressed_src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1441,1
    - Dst: std::unique_ptr::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1441,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1446,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1447,1
    - Dst: get_compressed_src_alg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1450,1
    - Dst: std::unique_ptr::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1450,1
    - Dst: dst_print_zalg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1451,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1452,1
    - Dst: std::unique_ptr::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1454,1
    - Dst: DumpContextDst::DumpContextDst
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1454,1
    - Dst: std::unique_ptr::copy_params
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1455,1
    - Dst: std::unique_ptr::dump
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1456,1
    - Dst: copy_params
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1457,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1458,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1460
      start: 1437
    functionDepth: 2
    functionLinenumber: 1437
    functionLinenumberEnd: 1460
    functionName: rnp::DumpContextDst::dump_compressed
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - std::unique_ptr::copy_params
    - get_compressed_src_alg
    - Source::Source
    - dst_printf
    - std::unique_ptr::src
    - dst_print_zalg
    - DumpContextDst::DumpContextDst
    - copy_params
    - init_compressed_src
    - indent_dest_decrease
    - std::unique_ptr::dump
    - indent_dest_increase
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_compressed()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init_literal_src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1466,1
    - Dst: Source::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1466,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1471,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1472,1
    - Dst: get_literal_src_hdr
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1474,1
    - Dst: Source::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1474,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1475,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1476,1
    - Dst: dst_print_time
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1477,1
    - Dst: Source::eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1480,1
    - Dst: Source::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1483,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1489,1
    - Dst: Source::readb
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1489,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1490,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1462
    functionDepth: 2
    functionLinenumber: 1462
    functionLinenumberEnd: 1492
    functionName: rnp::DumpContextDst::dump_literal
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - dst_printf
    - get_literal_src_hdr
    - Source::src
    - Source::eof
    - init_literal_src
    - Source::readb
    - indent_dest_decrease
    - indent_dest_increase
    - dst_print_time
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_literal()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1497,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1498,1
    - Dst: stream_parse_marker
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1499,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1500,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1494
    functionDepth: 1
    functionLinenumber: 1494
    functionLinenumberEnd: 1503
    functionName: rnp::DumpContextDst::dump_marker
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - indent_dest_decrease
    - stream_parse_marker
    - indent_dest_increase
    - dst_printf
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_marker()
  - BBCount: 34
    BranchProfiles: []
    Callsites:
    - Dst: eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1512,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1518,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1519,1
    - Dst: eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1523,1
    - Dst: stream_peek_packet_hdr
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1526,1
    - Dst: snprintf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1532,1
    - Dst: snprintf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1534,1
    - Dst: snprintf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1536,1
    - Dst: vsnprinthex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1538,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1539,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1551,1
    - Dst: peek
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1552,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1553,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1557,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1559,1
    - Dst: indent_dest_increase
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1561,1
    - Dst: dst_hexdump
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1562,1
    - Dst: indent_dest_decrease
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1563,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1565,1
    - Dst: rnp::DumpContextDst::dump_signature
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1570,1
    - Dst: rnp::DumpContextDst::dump_key
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1576,1
    - Dst: rnp::DumpContextDst::dump_userid
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1580,1
    - Dst: rnp::DumpContextDst::dump_pk_session_key
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1583,1
    - Dst: rnp::DumpContextDst::dump_sk_session_key
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1586,1
    - Dst: rnp::DumpContextDst::dump_encrypted
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1592,1
    - Dst: rnp::DumpContextDst::dump_one_pass
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1595,1
    - Dst: rnp::DumpContextDst::dump_compressed
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1599,1
    - Dst: rnp::DumpContextDst::dump_literal
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1603,1
    - Dst: rnp::DumpContextDst::dump_marker
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1606,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1610,1
    - Dst: stream_skip_packet
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1611,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1614,1
    - Dst: stream_skip_packet
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1615,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1620,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1626,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1628,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1634,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1635,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 114
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1640
      start: 1505
    functionDepth: 7
    functionLinenumber: 1505
    functionLinenumberEnd: 1640
    functionName: rnp::DumpContextDst::dump_raw_packets
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - vsnprinthex
    - indent_dest_decrease
    - rnp::DumpContextDst::dump_key
    - dst_hexdump
    - rnp::DumpContextDst::dump_pk_session_key
    - stream_skip_packet
    - eof
    - indent_dest_increase
    - snprintf
    - rnp::DumpContextDst::dump_marker
    - RNP_LOG
    - rnp::DumpContextDst::dump_sk_session_key
    - stream_peek_packet_hdr
    - rnp::DumpContextDst::dump_encrypted
    - peek
    - rnp::DumpContextDst::dump_userid
    - dst_printf
    - rnp::DumpContextDst::dump_literal
    - rnp::DumpContextDst::dump_compressed
    - rnp::DumpContextDst::dump_one_pass
    - rnp::DumpContextDst::dump_signature
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump_raw_packets()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: is_cleartext
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1646,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1647,1
    - Dst: skip_cleartext
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1648,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1649,1
    - Dst: is_armored
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1656,1
    - Dst: rnp::ArmoredSource::eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1662,1
    - Dst: rnp::ArmoredSource::multiple
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1662,1
    - Dst: rnp::ArmoredSource::restart
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1663,1
    - Dst: rnp::ArmoredSource::eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1665,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1669,1
    - Dst: rnp::ArmoredSource::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1672,1
    - Dst: DumpContextDst::copy_params
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1673,1
    - Dst: DumpContextDst::dump
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1674,1
    - Dst: eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1682,1
    - Dst: dst_printf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1683,1
    - Dst: rnp::DumpContextDst::dump_raw_packets
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1687,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 33
    argCount: 1
    argNames:
    - raw_only
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1688
      start: 1642
    functionDepth: 8
    functionLinenumber: 1642
    functionLinenumberEnd: 1688
    functionName: rnp::DumpContextDst::dump
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - rnp::DumpContextDst::dump_raw_packets
    - DumpContextDst::dump
    - dst_printf
    - rnp::ArmoredSource::restart
    - is_cleartext
    - is_armored
    - DumpContextDst::copy_params
    - rnp::ArmoredSource::multiple
    - eof
    - skip_cleartext
    - rnp::ArmoredSource::src
    - rnp::ArmoredSource::eof
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextDst::dump(bool raw_only)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1696,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1703,1
    - Dst: snprintf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1704,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1705,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - obj
    - name
    - val
    - map
    argTypes:
    - nlohmann::ordered_json
    - char*
    - int
    - id_str_pair[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1706
      start: 1690
    functionDepth: 1
    functionLinenumber: 1690
    functionLinenumberEnd: 1706
    functionName: rnp::obj_add_intstr_json
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - rnp::json::add
    - snprintf
    - id_str_pair::lookup
    linkageType: ''
    returnType: bool
    signature: "bool obj_add_intstr_json(nlohmann::ordered_json &obj,\n                    const
      char *            name,\n                    int                     val,\n
      \                   const id_str_pair       map[])"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1712,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1713,1
    - Dst: mpi::bits
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1713,1
    - Dst: snprintf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1719,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1720,1
    - Dst: mpi::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1720,1
    - Dst: mpi::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1720,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 4
    argNames:
    - obj
    - name
    - mpi
    - contents
    argTypes:
    - nlohmann::ordered_json
    - char*
    - mpi
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1721
      start: 1708
    functionDepth: 1
    functionLinenumber: 1708
    functionLinenumberEnd: 1721
    functionName: rnp::obj_add_mpi_json
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - mpi::bits
    - rnp::json::add
    - mpi::data
    - rnp::json::add_hex
    - mpi::size
    - snprintf
    linkageType: ''
    returnType: bool
    signature: bool obj_add_mpi_json(nlohmann::ordered_json &obj, const char *name,
      const mpi &mpi, bool contents)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: add_key_to_array
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1729,1
    - Dst: auto::push_back
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1731,1
    - Dst: snprintf
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1738,1
    - Dst: add_key_to_array
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1740,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1742,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1742,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 4
    argNames:
    - '    obj'
    - name
    - algs
    - map
    argTypes:
    - nlohmann::ordered_json
    - char*
    - std::vector<uint8_t>
    - id_str_pair[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1747
      start: 1723
    functionDepth: 1
    functionLinenumber: 1723
    functionLinenumberEnd: 1747
    functionName: rnp::subpacket_obj_add_algs
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - add_key_to_array
    - id_str_pair::lookup
    - rnp::json::array_add
    - snprintf
    - auto::push_back
    linkageType: ''
    returnType: bool
    signature: "bool subpacket_obj_add_algs(nlohmann::ordered_json &    obj,\n                       const
      char *                name,\n                       const std::vector<uint8_t>
      &algs,\n                       const id_str_pair           map[])"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1752,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1753,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1757,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1762,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1768,1
    - Dst: rnp::obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1770,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1775,1
    - Dst: pgp_s2k_decode_iterations
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1779,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1780,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 29
    argCount: 2
    argNames:
    - obj
    - s2k
    argTypes:
    - nlohmann::ordered_json
    - pgp_s2k_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1785
      start: 1749
    functionDepth: 2
    functionLinenumber: 1749
    functionLinenumberEnd: 1785
    functionName: rnp::obj_add_s2k_json
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 0
    functionsReached:
    - pgp_s2k_decode_iterations
    - sexp::sexp_input_stream_t::scan_object
    - rnp::json::add
    - rnp::json::add_hex
    - rnp::obj_add_intstr_json
    linkageType: ''
    returnType: bool
    signature: bool obj_add_s2k_json(nlohmann::ordered_json &obj, pgp_s2k_t *s2k)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: pkt::sigsub::Raw::type
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1791,1
    - Dst: dynamic_cast<const pkt::sigsub::CreationTime &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1793,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1794,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1794,1
    - Dst: dynamic_cast<const pkt::sigsub::ExpirationTime &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1797,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1798,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1798,1
    - Dst: dynamic_cast<const pkt::sigsub::ExportableCert &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1801,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1802,1
    - Dst: auto::exportable
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1802,1
    - Dst: dynamic_cast<const pkt::sigsub::Trust &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1805,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1806,1
    - Dst: auto::amount
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1806,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1807,1
    - Dst: auto::level
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1807,1
    - Dst: dynamic_cast<const pkt::sigsub::RegExp &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1810,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1811,1
    - Dst: auto::regexp
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1811,1
    - Dst: dynamic_cast<const pkt::sigsub::Revocable &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1814,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1815,1
    - Dst: auto::revocable
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1815,1
    - Dst: dynamic_cast<const pkt::sigsub::KeyExpirationTime &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1818,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1819,1
    - Dst: auto::time
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1819,1
    - Dst: dynamic_cast<const pkt::sigsub::PreferredSymmetric &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1822,1
    - Dst: subpacket_obj_add_algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1823,1
    - Dst: auto::algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1823,1
    - Dst: dynamic_cast<const pkt::sigsub::PreferredHash &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1826,1
    - Dst: subpacket_obj_add_algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1827,1
    - Dst: auto::algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1827,1
    - Dst: dynamic_cast<const pkt::sigsub::PreferredCompress &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1830,1
    - Dst: subpacket_obj_add_algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1831,1
    - Dst: auto::algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1831,1
    - Dst: dynamic_cast<const pkt::sigsub::PreferredAEAD &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1834,1
    - Dst: subpacket_obj_add_algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1835,1
    - Dst: auto::algs
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1835,1
    - Dst: dynamic_cast<const pkt::sigsub::RevocationKey &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1838,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1839,1
    - Dst: auto::rev_class
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1839,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1840,1
    - Dst: auto::alg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1840,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1841,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1841,1
    - Dst: dynamic_cast<const pkt::sigsub::IssuerKeyID &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1844,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1845,1
    - Dst: auto::keyid
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1845,1
    - Dst: dynamic_cast<const pkt::sigsub::KeyserverPrefs &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1848,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1849,1
    - Dst: auto::no_modify
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1849,1
    - Dst: dynamic_cast<const pkt::sigsub::PreferredKeyserver &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1852,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1853,1
    - Dst: auto::keyserver
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1853,1
    - Dst: dynamic_cast<const pkt::sigsub::PrimaryUserID &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1856,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1857,1
    - Dst: auto::primary
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1857,1
    - Dst: dynamic_cast<const pkt::sigsub::PolicyURI &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1860,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1861,1
    - Dst: auto::URI
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1861,1
    - Dst: dynamic_cast<const pkt::sigsub::KeyFlags &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1864,1
    - Dst: auto::flags
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1865,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1866,1
    - Dst: add_key_to_array
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1869,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1870,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1873,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1876,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1880,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1883,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1886,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1889,1
    - Dst: dynamic_cast<const pkt::sigsub::SignersUserID &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1895,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1896,1
    - Dst: auto::signer
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1896,1
    - Dst: dynamic_cast<const pkt::sigsub::RevocationReason &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1899,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1900,1
    - Dst: auto::code
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1900,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1903,1
    - Dst: auto::reason
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1903,1
    - Dst: dynamic_cast<const pkt::sigsub::Features &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1906,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1907,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1907,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1908,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1908,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1909,1
    - Dst: auto::features
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1909,1
    - Dst: dynamic_cast<const pkt::sigsub::EmbeddedSignature &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1912,1
    - Dst: auto::signature
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1913,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1916,1
    - Dst: rnp::DumpContextJson::dump_signature_pkt
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1917,1
    - Dst: auto::signature
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1917,1
    - Dst: dynamic_cast<const pkt::sigsub::IssuerFingerprint &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1920,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1921,1
    - Dst: auto::fp
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1921,1
    - Dst: dynamic_cast<const pkt::sigsub::NotationData &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1924,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1925,1
    - Dst: auto::human_readable
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1925,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1926,1
    - Dst: auto::name
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1926,1
    - Dst: auto::human_readable
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1929,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1930,1
    - Dst: auto::value
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1931,1
    - Dst: auto::value
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1931,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1933,1
    - Dst: auto::value
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1933,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1937,1
    - Dst: pkt::sigsub::Raw::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1937,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 117
    argCount: 2
    argNames:
    - subpkt
    - obj
    argTypes:
    - pkt::sigsub::Raw
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1942
      start: 1787
    functionDepth: 4
    functionLinenumber: 1787
    functionLinenumberEnd: 1942
    functionName: rnp::DumpContextJson::dump_signature_subpacket
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - dynamic_cast<const pkt::sigsub::ExpirationTime &>
    - auto::code
    - obj_add_intstr_json
    - dynamic_cast<const pkt::sigsub::SignersUserID &>
    - dynamic_cast<const pkt::sigsub::PolicyURI &>
    - auto::algs
    - auto::amount
    - dynamic_cast<const pkt::sigsub::KeyExpirationTime &>
    - dynamic_cast<const pkt::sigsub::PreferredCompress &>
    - auto::fp
    - dynamic_cast<const pkt::sigsub::PrimaryUserID &>
    - dynamic_cast<const pkt::sigsub::KeyFlags &>
    - dynamic_cast<const pkt::sigsub::RevocationKey &>
    - auto::flags
    - auto::keyserver
    - auto::value
    - dynamic_cast<const pkt::sigsub::RegExp &>
    - dynamic_cast<const pkt::sigsub::IssuerFingerprint &>
    - add_key_to_array
    - dynamic_cast<const pkt::sigsub::ExportableCert &>
    - dynamic_cast<const pkt::sigsub::PreferredHash &>
    - sexp::sexp_input_stream_t::scan_object
    - dynamic_cast<const pkt::sigsub::EmbeddedSignature &>
    - rnp::json::add
    - dynamic_cast<const pkt::sigsub::PreferredSymmetric &>
    - rnp::DumpContextJson::dump_signature_pkt
    - auto::name
    - pkt::sigsub::Raw::type
    - dynamic_cast<const pkt::sigsub::Revocable &>
    - auto::reason
    - dynamic_cast<const pkt::sigsub::Features &>
    - rnp::json::array_add
    - auto::alg
    - auto::regexp
    - auto::revocable
    - auto::level
    - dynamic_cast<const pkt::sigsub::NotationData &>
    - dynamic_cast<const pkt::sigsub::CreationTime &>
    - auto::primary
    - dynamic_cast<const pkt::sigsub::RevocationReason &>
    - auto::signature
    - auto::features
    - auto::rev_class
    - auto::URI
    - rnp::json::add_hex
    - pkt::sigsub::Raw::data
    - auto::time
    - dynamic_cast<const pkt::sigsub::KeyserverPrefs &>
    - auto::no_modify
    - auto::human_readable
    - dynamic_cast<const pkt::sigsub::IssuerKeyID &>
    - dynamic_cast<const pkt::sigsub::Trust &>
    - auto::exportable
    - dynamic_cast<const pkt::sigsub::PreferredAEAD &>
    - auto::signer
    - dynamic_cast<const pkt::sigsub::PreferredKeyserver &>
    - subpacket_obj_add_algs
    - auto::keyid
    linkageType: ''
    returnType: bool
    signature: "bool DumpContextJson::dump_signature_subpacket(const pkt::sigsub::Raw
      &subpkt,\n                                          nlohmann::ordered_json &obj)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: add_key_to_array
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1947,1
    - Dst: nlohmann::ordered_json::emplace_back
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1950,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1950,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1952,1
    - Dst: raw_type
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1953,1
    - Dst: nlohmann::ordered_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1954,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1956,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1956,1
    - Dst: nlohmann::ordered_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1957,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1959,1
    - Dst: hashed
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1959,1
    - Dst: nlohmann::ordered_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1960,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1962,1
    - Dst: critical
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1962,1
    - Dst: nlohmann::ordered_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1963,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1965,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1965,1
    - Dst: nlohmann::ordered_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1966,1
    - Dst: rnp::DumpContextJson::dump_signature_subpacket
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1968,1
    - Dst: nlohmann::ordered_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1969,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 1
    argNames:
    - sig
    argTypes:
    - pkt::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1944
    functionDepth: 2
    functionLinenumber: 1944
    functionLinenumberEnd: 1973
    functionName: rnp::DumpContextJson::dump_signature_subpackets
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - add_key_to_array
    - nlohmann::ordered_json
    - data
    - hashed
    - obj_add_intstr_json
    - sexp::sexp_input_stream_t::scan_object
    - raw_type
    - rnp::json::add
    - critical
    - nlohmann::ordered_json::emplace_back
    - rnp::json::add_hex
    - rnp::DumpContextJson::dump_signature_subpacket
    linkageType: ''
    returnType: nlohmann::ordered_json
    signature: nlohmann::ordered_json DumpContextJson::dump_signature_subpackets(const
      pkt::Signature &sig)
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1978,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1981,1
    - Dst: pkt::Signature::type
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1981,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1986,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1989,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1993,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:1996,1
    - Dst: rnp::DumpContextJson::dump_signature_subpackets
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2001,1
    - Dst: nlohmann::ordered_json::is_null
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2002,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2005,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2008,1
    - Dst: pkt::Signature::lbits::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2008,1
    - Dst: pkt::Signature::lbits::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2008,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2012,1
    - Dst: pkt::Signature::parse_material
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2014,1
    - Dst: dynamic_cast<const RSASigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2022,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2023,1
    - Dst: dynamic_cast<const DSASigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2029,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2030,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2031,1
    - Dst: dynamic_cast<const ECSigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2040,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2041,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2042,1
    - Dst: dynamic_cast<const EGSigMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2051,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2052,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2053,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 89
    argCount: 2
    argNames:
    - sig
    - pkt
    argTypes:
    - pkt::Signature
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2091
      start: 1975
    functionDepth: 3
    functionLinenumber: 1975
    functionLinenumberEnd: 2091
    functionName: rnp::DumpContextJson::dump_signature_pkt
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 3
    functionsReached:
    - rnp::DumpContextJson::dump_signature_subpackets
    - pkt::Signature::parse_material
    - obj_add_intstr_json
    - sexp::sexp_input_stream_t::scan_object
    - obj_add_mpi_json
    - rnp::json::add
    - dynamic_cast<const EGSigMaterial &>
    - pkt::Signature::lbits::size
    - dynamic_cast<const DSASigMaterial &>
    - dynamic_cast<const ECSigMaterial &>
    - nlohmann::ordered_json::is_null
    - dynamic_cast<const RSASigMaterial &>
    - pkt::Signature::lbits::data
    - rnp::json::add_hex
    - std::move
    - pkt::Signature::type
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_signature_pkt(const pkt::Signature
      &sig, nlohmann::ordered_json &pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pkt::Signature::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2097,1
    - Dst: rnp::DumpContextJson::dump_signature_pkt
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2093
    functionDepth: 4
    functionLinenumber: 2093
    functionLinenumberEnd: 2102
    functionName: rnp::DumpContextJson::dump_signature
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - rnp::DumpContextJson::dump_signature_pkt
    - pkt::Signature::parse
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_signature(nlohmann::ordered_json
      &pkt)
  - BBCount: 40
    BranchProfiles: []
    Callsites:
    - Dst: KeyMaterial*::alg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2110,1
    - Dst: dynamic_cast<const RSAKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2114,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2115,1
    - Dst: auto::n
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2115,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2116,1
    - Dst: auto::e
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2116,1
    - Dst: dynamic_cast<const DSAKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2122,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2123,1
    - Dst: auto::p
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2123,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2124,1
    - Dst: auto::q
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2124,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2125,1
    - Dst: auto::g
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2125,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2126,1
    - Dst: auto::y
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2126,1
    - Dst: dynamic_cast<const EGKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2133,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2134,1
    - Dst: auto::p
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2134,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2135,1
    - Dst: auto::g
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2135,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2136,1
    - Dst: auto::y
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2136,1
    - Dst: dynamic_cast<const ECKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2145,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2146,1
    - Dst: auto::curve
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2146,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2148,1
    - Dst: auto::p
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2148,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2151,1
    - Dst: KeyMaterial*::alg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2154,1
    - Dst: dynamic_cast<const ECDHKeyMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2158,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2159,1
    - Dst: auto::kdf_hash_alg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2159,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2162,1
    - Dst: auto::key_wrap_alg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2163,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 85
    argCount: 2
    argNames:
    - material
    - jso
    argTypes:
    - KeyMaterial*
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2218
      start: 2104
    functionDepth: 0
    functionLinenumber: 2104
    functionLinenumberEnd: 2218
    functionName: rnp::DumpContextJson::dump_key_material
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - obj_add_intstr_json
    - auto::n
    - dynamic_cast<const ECDHKeyMaterial &>
    - dynamic_cast<const DSAKeyMaterial &>
    - rnp::json::add
    - auto::e
    - pgp::ec::Curve::get
    - dynamic_cast<const EGKeyMaterial &>
    - auto::g
    - dynamic_cast<const RSAKeyMaterial &>
    - auto::kdf_hash_alg
    - dynamic_cast<const ECKeyMaterial &>
    - KeyMaterial*::alg
    - auto::q
    - auto::y
    - obj_add_mpi_json
    - auto::p
    - auto::curve
    - auto::key_wrap_alg
    linkageType: ''
    returnType: bool
    signature: bool DumpContextJson::dump_key_material(const KeyMaterial *material,
      nlohmann::ordered_json &jso)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2223,1
    - Dst: pgp_key_pkt_t::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2224,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2229,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2232,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2235,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2238,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2242,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2246,1
    - Dst: rnp::DumpContextJson::dump_key_material
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2247,1
    - Dst: pgp_key_pkt_t::material::get
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2247,1
    - Dst: is_secret_key_pkt
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2251,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2252,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2256,1
    - Dst: obj_add_s2k_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2259,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2263,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2268,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2274,1
    - Dst: Fingerprint::keyid
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2274,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2278,1
    - Dst: pgp_key_pkt_t::material::grip
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2284,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2285,1
    - Dst: KeyGrip::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2285,1
    - Dst: KeyGrip::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2285,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 55
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2293
      start: 2220
    functionDepth: 1
    functionLinenumber: 2220
    functionLinenumberEnd: 2293
    functionName: rnp::DumpContextJson::dump_key
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - KeyGrip::data
    - KeyGrip::size
    - obj_add_intstr_json
    - sexp::sexp_input_stream_t::scan_object
    - rnp::json::add
    - is_secret_key_pkt
    - pgp_key_pkt_t::material::grip
    - pgp_key_pkt_t::pgp_key_pkt_t
    - pgp_key_pkt_t::material::get
    - obj_add_s2k_json
    - rnp::DumpContextJson::dump_key_material
    - Fingerprint::keyid
    - rnp::json::add_hex
    - pgp_key_pkt_t::parse
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_key(nlohmann::ordered_json &pkt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pgp_userid_pkt_t::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2299,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2306,1
    - Dst: pgp_userid_pkt_t::uid::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2306,1
    - Dst: pgp_userid_pkt_t::uid::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2306,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2311,1
    - Dst: pgp_userid_pkt_t::uid::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2311,1
    - Dst: pgp_userid_pkt_t::uid::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2311,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2318
      start: 2295
    functionDepth: 1
    functionLinenumber: 2295
    functionLinenumberEnd: 2318
    functionName: rnp::DumpContextJson::dump_user_id
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - rnp::json::add
    - pgp_userid_pkt_t::uid::size
    - pgp_userid_pkt_t::uid::data
    - pgp_userid_pkt_t::parse
    - rnp::json::add_hex
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_user_id(nlohmann::ordered_json &pkt)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: pgp_pk_sesskey_t::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2324,1
    - Dst: pgp_pk_sesskey_t::parse_material
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2328,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2333,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2334,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2335,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2339,1
    - Dst: dynamic_cast<const RSAEncMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2345,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2346,1
    - Dst: dynamic_cast<const EGEncMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2353,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2354,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2355,1
    - Dst: dynamic_cast<const SM2EncMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2361,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2362,1
    - Dst: dynamic_cast<const ECDHEncMaterial &>
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2368,1
    - Dst: obj_add_mpi_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2369,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2370,1
    - Dst: auto::m::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2370,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2373,1
    - Dst: auto::m::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2373,1
    - Dst: auto::m::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2373,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 62
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2407
      start: 2320
    functionDepth: 1
    functionLinenumber: 2320
    functionLinenumberEnd: 2407
    functionName: rnp::DumpContextJson::dump_pk_session_key
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - auto::m::size
    - obj_add_mpi_json
    - sexp::sexp_input_stream_t::scan_object
    - obj_add_intstr_json
    - auto::m::data
    - rnp::json::add
    - dynamic_cast<const RSAEncMaterial &>
    - pgp_pk_sesskey_t::parse
    - pgp_pk_sesskey_t::parse_material
    - dynamic_cast<const EGEncMaterial &>
    - dynamic_cast<const SM2EncMaterial &>
    - dynamic_cast<const ECDHEncMaterial &>
    - rnp::json::add_hex
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_pk_session_key(nlohmann::ordered_json
      &pkt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pgp_sk_sesskey_t::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2413,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2418,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2419,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2423,1
    - Dst: obj_add_s2k_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2426,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2430,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2433,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2437
      start: 2409
    functionDepth: 1
    functionLinenumber: 2409
    functionLinenumberEnd: 2437
    functionName: rnp::DumpContextJson::dump_sk_session_key
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - pgp_sk_sesskey_t::parse
    - obj_add_intstr_json
    - rnp::json::add
    - obj_add_s2k_json
    - rnp::json::add_hex
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_sk_session_key(nlohmann::ordered_json
      &pkt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stream_skip_packet
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2444,1
    - Dst: get_aead_hdr
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2449,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2453,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2454,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2455,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2456,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2457,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - pkt
    - tag
    argTypes:
    - nlohmann::ordered_json
    - pgp_pkt_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2461
      start: 2439
    functionDepth: 1
    functionLinenumber: 2439
    functionLinenumberEnd: 2461
    functionName: rnp::DumpContextJson::dump_encrypted
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - obj_add_intstr_json
    - rnp::json::add
    - stream_skip_packet
    - get_aead_hdr
    - rnp::json::add_hex
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_encrypted(nlohmann::ordered_json
      &pkt, pgp_pkt_type_t tag)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pgp_one_pass_sig_t::parse
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2467,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2472,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2475,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2478,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2481,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2486,1
    - Dst: pgp_one_pass_sig_t::salt::data
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2487,1
    - Dst: pgp_one_pass_sig_t::salt::size
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2487,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2491,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2495,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2499,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 29
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2503
      start: 2463
    functionDepth: 1
    functionLinenumber: 2463
    functionLinenumberEnd: 2503
    functionName: rnp::DumpContextJson::dump_one_pass
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - pgp_one_pass_sig_t::parse
    - obj_add_intstr_json
    - rnp::json::add
    - pgp_one_pass_sig_t::salt::data
    - pgp_one_pass_sig_t::salt::size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_one_pass(nlohmann::ordered_json
      &pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: stream_parse_marker
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2508,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2509,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2513
      start: 2505
    functionDepth: 1
    functionLinenumber: 2505
    functionLinenumberEnd: 2513
    functionName: rnp::DumpContextJson::dump_marker
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - rnp::json::add
    - stream_parse_marker
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_marker(nlohmann::ordered_json &pkt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Source::Source
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2518,1
    - Dst: init_compressed_src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2519,1
    - Dst: std::unique_ptr::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2519,1
    - Dst: get_compressed_src_alg
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2525,1
    - Dst: std::unique_ptr::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2525,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2526,1
    - Dst: std::unique_ptr::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2531,1
    - Dst: DumpContextJson::copy_params
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2532,1
    - Dst: DumpContextJson::dump
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2533,1
    - Dst: copy_params
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2534,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2536,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2539
      start: 2515
    functionDepth: 1
    functionLinenumber: 2515
    functionLinenumberEnd: 2539
    functionName: rnp::DumpContextJson::dump_compressed
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - get_compressed_src_alg
    - Source::Source
    - obj_add_intstr_json
    - std::unique_ptr::src
    - DumpContextJson::copy_params
    - DumpContextJson::dump
    - copy_params
    - init_compressed_src
    - std::move
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_compressed(nlohmann::ordered_json
      &pkt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: init_literal_src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2545,1
    - Dst: Source::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2545,1
    - Dst: get_literal_src_hdr
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2551,1
    - Dst: Source::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2551,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2552,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2553,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2554,1
    - Dst: Source::eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2558,1
    - Dst: Source::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2561,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2566,1
    - Dst: Source::readb
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2566,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 17
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2570
      start: 2541
    functionDepth: 1
    functionLinenumber: 2541
    functionLinenumberEnd: 2570
    functionName: rnp::DumpContextJson::dump_literal
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - rnp::json::add
    - get_literal_src_hdr
    - Source::src
    - Source::eof
    - init_literal_src
    - Source::readb
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_literal(nlohmann::ordered_json &pkt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stream_peek_packet_hdr
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2575,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2580,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2582,1
    - Dst: obj_add_intstr_json
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2583,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2584,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2588,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2591,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2592,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 2
    argNames:
    - hdr
    - pkt
    argTypes:
    - pgp_packet_hdr_t
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2596
      start: 2572
    functionDepth: 1
    functionLinenumber: 2572
    functionLinenumberEnd: 2596
    functionName: rnp::DumpContextJson::dump_pkt_hdr
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - stream_peek_packet_hdr
    - obj_add_intstr_json
    - sexp::sexp_input_stream_t::scan_object
    - rnp::json::add
    - rnp::json::add_hex
    linkageType: ''
    returnType: bool
    signature: bool DumpContextJson::dump_pkt_hdr(pgp_packet_hdr_t &hdr, nlohmann::ordered_json
      &pkt)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: add_key_to_array
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2603,1
    - Dst: eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2605,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2606,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2612,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2613,1
    - Dst: eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2617,1
    - Dst: nlohmann::ordered_json::emplace_back
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2618,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2618,1
    - Dst: rnp::DumpContextJson::dump_pkt_hdr
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2620,1
    - Dst: peek
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2631,1
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2634,1
    - Dst: rnp::DumpContextJson::dump_signature
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2641,1
    - Dst: rnp::DumpContextJson::dump_key
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2647,1
    - Dst: rnp::DumpContextJson::dump_user_id
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2651,1
    - Dst: rnp::DumpContextJson::dump_pk_session_key
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2654,1
    - Dst: rnp::DumpContextJson::dump_sk_session_key
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2657,1
    - Dst: rnp::DumpContextJson::dump_encrypted
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2663,1
    - Dst: rnp::DumpContextJson::dump_one_pass
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2666,1
    - Dst: rnp::DumpContextJson::dump_compressed
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2670,1
    - Dst: rnp::DumpContextJson::dump_literal
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2674,1
    - Dst: rnp::DumpContextJson::dump_marker
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2677,1
    - Dst: stream_skip_packet
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2681,1
    - Dst: stream_skip_packet
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2684,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2689,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2695,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2697,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2703,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2708,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 93
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2710
      start: 2598
    functionDepth: 5
    functionLinenumber: 2598
    functionLinenumberEnd: 2710
    functionName: rnp::DumpContextJson::dump_raw_packets
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - rnp::DumpContextJson::dump_signature
    - rnp::DumpContextJson::dump_marker
    - rnp::DumpContextJson::dump_key
    - rnp::DumpContextJson::dump_compressed
    - nlohmann::ordered_json::emplace_back
    - rnp::DumpContextJson::dump_user_id
    - rnp::json::add_hex
    - std::move
    - add_key_to_array
    - rnp::DumpContextJson::dump_literal
    - sexp::sexp_input_stream_t::scan_object
    - rnp::DumpContextJson::dump_pkt_hdr
    - stream_skip_packet
    - eof
    - rnp::DumpContextJson::dump_one_pass
    - RNP_LOG
    - rnp::DumpContextJson::dump_pk_session_key
    - peek
    - rnp::DumpContextJson::dump_sk_session_key
    - rnp::DumpContextJson::dump_encrypted
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump_raw_packets()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: is_cleartext
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2716,1
    - Dst: skip_cleartext
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2717,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2718,1
    - Dst: is_armored
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2724,1
    - Dst: add_key_to_array
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2728,1
    - Dst: rnp::ArmoredSource::eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2730,1
    - Dst: rnp::ArmoredSource::multiple
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2730,1
    - Dst: rnp::ArmoredSource::restart
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2731,1
    - Dst: rnp::ArmoredSource::eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2733,1
    - Dst: rnp::ArmoredSource::src
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2737,1
    - Dst: DumpContextJson::copy_params
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2738,1
    - Dst: DumpContextJson::dump
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2739,1
    - Dst: nlohmann::ordered_json::is_array
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2743,1
    - Dst: nlohmann::ordered_json::insert
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2744,1
    - Dst: nlohmann::ordered_json::end
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2744,1
    - Dst: nlohmann::ordered_json::begin
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2744,1
    - Dst: nlohmann::ordered_json::end
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2744,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2747,1
    - Dst: eof
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2751,1
    - Dst: rnp::DumpContextJson::dump_raw_packets
      Src: /src/rnp/src/librepgp/stream-dump.cpp:2754,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 31
    argCount: 1
    argNames:
    - raw_only
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2755
      start: 2712
    functionDepth: 6
    functionLinenumber: 2712
    functionLinenumberEnd: 2755
    functionName: rnp::DumpContextJson::dump
    functionSourceFile: /src/rnp/src/librepgp/stream-dump.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - nlohmann::ordered_json::end
    - add_key_to_array
    - rnp::DumpContextJson::dump_raw_packets
    - nlohmann::ordered_json::is_array
    - DumpContextJson::copy_params
    - DumpContextJson::dump
    - rnp::ArmoredSource::restart
    - is_cleartext
    - is_armored
    - nlohmann::ordered_json::begin
    - rnp::ArmoredSource::multiple
    - eof
    - nlohmann::ordered_json::insert
    - skip_cleartext
    - rnp::ArmoredSource::src
    - rnp::ArmoredSource::eof
    - std::move
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t DumpContextJson::dump(bool raw_only)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - actx
    argTypes:
    - rnp_ctx_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 116
    functionName: pgp_dest_encrypted_param_t
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_dest_encrypted_param_t(rnp_ctx_t &actx)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: is_aead_auth
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_aead_auth()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: is_v2_seipd
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_v2_seipd() const
  - 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: pgp_dest_signed_param_t
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_dest_signed_param_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 166
    functionName: ~pgp_dest_signed_param_t()
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~pgp_dest_signed_param_t()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:183,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:191,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:192,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:193,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:201,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:202,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-write.cpp:210,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 3
    argNames:
    - dst
    - buf
    - len
    argTypes:
    - pgp_dest_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 177
    functionDepth: 1
    functionLinenumber: 177
    functionLinenumberEnd: 215
    functionName: partial_dst_write
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - dst_write
    - memcpy
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t partial_dst_write(pgp_dest_t *dst, const void *buf, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_packet_len
      Src: /src/rnp/src/librepgp/stream-write.cpp:224,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:225,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 217
    functionDepth: 1
    functionLinenumber: 217
    functionLinenumberEnd: 229
    functionName: partial_dst_finish
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - write_packet_len
    - dst_write
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t partial_dst_finish(pgp_dest_t *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-write.cpp:235,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - discard
    argTypes:
    - pgp_dest_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 237
    functionName: partial_dst_close
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void partial_dst_close(pgp_dest_t *dst, bool discard)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_dst_common
      Src: /src/rnp/src/librepgp/stream-write.cpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 2
    argNames:
    - dst
    - writedst
    argTypes:
    - pgp_dest_t
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 239
    functionDepth: 1
    functionLinenumber: 239
    functionLinenumberEnd: 259
    functionName: init_partial_pkt_dst
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - init_dst_common
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_partial_pkt_dst(pgp_dest_t &dst, pgp_dest_t &writedst)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:271,1
    - Dst: pgp_dest_t::pgp_dest_t
      Src: /src/rnp/src/librepgp/stream-write.cpp:273,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:274,1
    - Dst: init_partial_pkt_dst
      Src: /src/rnp/src/librepgp/stream-write.cpp:277,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:295,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:301,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:308,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 2
    argNames:
    - param
    - dst
    argTypes:
    - pgp_dest_packet_param_t
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 264
    functionDepth: 2
    functionLinenumber: 264
    functionLinenumberEnd: 311
    functionName: init_streamed_packet
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - pgp_dest_t::pgp_dest_t
    - dst_write
    - init_partial_pkt_dst
    - RNP_LOG
    linkageType: ''
    returnType: bool
    signature: bool init_streamed_packet(pgp_dest_packet_param_t &param, pgp_dest_t
      &dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dst_finish
      Src: /src/rnp/src/librepgp/stream-write.cpp:317,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - param
    argTypes:
    - pgp_dest_packet_param_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 313
    functionDepth: 1
    functionLinenumber: 313
    functionLinenumberEnd: 320
    functionName: finish_streamed_packet
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - dst_finish
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t finish_streamed_packet(pgp_dest_packet_param_t *param)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dst_close
      Src: /src/rnp/src/librepgp/stream-write.cpp:326,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - param
    - discard
    argTypes:
    - pgp_dest_packet_param_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 330
    functionName: close_streamed_packet
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - dst_close
    linkageType: ''
    returnType: void
    signature: void close_streamed_packet(pgp_dest_packet_param_t *param, bool discard)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_dest_encrypted_param_t *>
      Src: /src/rnp/src/librepgp/stream-write.cpp:335,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:338,1
    - Dst: auto::mdc::add
      Src: /src/rnp/src/librepgp/stream-write.cpp:345,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:348,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-write.cpp:348,1
    - Dst: pgp_cipher_cfb_encrypt
      Src: /src/rnp/src/librepgp/stream-write.cpp:356,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:357,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - dst
    - buf
    - len
    argTypes:
    - pgp_dest_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 363
    functionName: encrypted_dst_write_cfb
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - static_cast<pgp_dest_encrypted_param_t *>
    - pgp_cipher_cfb_encrypt
    - dst_write
    - auto::mdc::add
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t encrypted_dst_write_cfb(pgp_dest_t *dst, const void *buf,
      size_t len)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pgp_cipher_aead_tag_len
      Src: /src/rnp/src/librepgp/stream-write.cpp:375,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:380,1
    - Dst: pgp_cipher_aead_finish
      Src: /src/rnp/src/librepgp/stream-write.cpp:384,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:389,1
    - Dst: write_uint64
      Src: /src/rnp/src/librepgp/stream-write.cpp:394,1
    - Dst: pgp_cipher_aead_reset
      Src: /src/rnp/src/librepgp/stream-write.cpp:400,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:406,1
    - Dst: write_uint64
      Src: /src/rnp/src/librepgp/stream-write.cpp:412,1
    - Dst: pgp_cipher_aead_set_ad
      Src: /src/rnp/src/librepgp/stream-write.cpp:415,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:416,1
    - Dst: pgp_cipher_aead_nonce
      Src: /src/rnp/src/librepgp/stream-write.cpp:421,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:423,1
    - Dst: pgp_cipher_aead_start
      Src: /src/rnp/src/librepgp/stream-write.cpp:428,1
    - Dst: pgp_cipher_aead_finish
      Src: /src/rnp/src/librepgp/stream-write.cpp:432,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:434,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 48
    argCount: 3
    argNames:
    - param
    - idx
    - last
    argTypes:
    - pgp_dest_encrypted_param_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 366
    functionDepth: 1
    functionLinenumber: 366
    functionLinenumberEnd: 442
    functionName: encrypted_start_aead_chunk
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_cipher_aead_set_ad
    - dst_write
    - write_uint64
    - pgp_cipher_aead_start
    - pgp_cipher_aead_finish
    - pgp_cipher_aead_reset
    - pgp_cipher_aead_nonce
    - pgp_cipher_aead_tag_len
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t encrypted_start_aead_chunk(pgp_dest_encrypted_param_t
      *param, size_t idx, bool last)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:449,1
    - Dst: static_cast<pgp_dest_encrypted_param_t *>
      Src: /src/rnp/src/librepgp/stream-write.cpp:452,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:460,1
    - Dst: pgp_cipher_aead_granularity
      Src: /src/rnp/src/librepgp/stream-write.cpp:470,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:473,1
    - Dst: std::min
      Src: /src/rnp/src/librepgp/stream-write.cpp:479,1
    - Dst: std::min
      Src: /src/rnp/src/librepgp/stream-write.cpp:480,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-write.cpp:481,1
    - Dst: encrypted_start_aead_chunk
      Src: /src/rnp/src/librepgp/stream-write.cpp:486,1
    - Dst: pgp_cipher_aead_update
      Src: /src/rnp/src/librepgp/stream-write.cpp:494,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:500,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:504,1
    - Dst: memmove
      Src: /src/rnp/src/librepgp/stream-write.cpp:505,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 3
    argNames:
    - dst
    - buf
    - len
    argTypes:
    - pgp_dest_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 516
    functionName: encrypted_dst_write_aead
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - memmove
    - memcpy
    - static_cast<pgp_dest_encrypted_param_t *>
    - encrypted_start_aead_chunk
    - dst_write
    - std::min
    - pgp_cipher_aead_granularity
    - pgp_cipher_aead_update
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t encrypted_dst_write_aead(pgp_dest_t *dst, const void *buf,
      size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_dest_encrypted_param_t *>
      Src: /src/rnp/src/librepgp/stream-write.cpp:521,1
    - Dst: auto::is_aead_auth
      Src: /src/rnp/src/librepgp/stream-write.cpp:523,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:525,1
    - Dst: encrypted_start_aead_chunk
      Src: /src/rnp/src/librepgp/stream-write.cpp:534,1
    - Dst: pgp_cipher_aead_destroy
      Src: /src/rnp/src/librepgp/stream-write.cpp:535,1
    - Dst: finish_streamed_packet
      Src: /src/rnp/src/librepgp/stream-write.cpp:538,1
    - Dst: auto::mdc::add
      Src: /src/rnp/src/librepgp/stream-write.cpp:546,1
    - Dst: auto::mdc::finish
      Src: /src/rnp/src/librepgp/stream-write.cpp:547,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:551,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-write.cpp:551,1
    - Dst: pgp_cipher_cfb_encrypt
      Src: /src/rnp/src/librepgp/stream-write.cpp:555,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:556,1
    - Dst: finish_streamed_packet
      Src: /src/rnp/src/librepgp/stream-write.cpp:559,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 518
    functionDepth: 2
    functionLinenumber: 518
    functionLinenumberEnd: 560
    functionName: encrypted_dst_finish
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - static_cast<pgp_dest_encrypted_param_t *>
    - pgp_cipher_aead_destroy
    - encrypted_start_aead_chunk
    - finish_streamed_packet
    - pgp_cipher_cfb_encrypt
    - dst_write
    - auto::mdc::finish
    - auto::is_aead_auth
    - auto::mdc::add
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t encrypted_dst_finish(pgp_dest_t *dst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_dest_encrypted_param_t *>
      Src: /src/rnp/src/librepgp/stream-write.cpp:565,1
    - Dst: auto::is_aead_auth
      Src: /src/rnp/src/librepgp/stream-write.cpp:570,1
    - Dst: pgp_cipher_aead_destroy
      Src: /src/rnp/src/librepgp/stream-write.cpp:572,1
    - Dst: pgp_cipher_cfb_finish
      Src: /src/rnp/src/librepgp/stream-write.cpp:575,1
    - Dst: close_streamed_packet
      Src: /src/rnp/src/librepgp/stream-write.cpp:577,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - dst
    - discard
    argTypes:
    - pgp_dest_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 562
    functionDepth: 2
    functionLinenumber: 562
    functionLinenumberEnd: 580
    functionName: encrypted_dst_close
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - static_cast<pgp_dest_encrypted_param_t *>
    - pgp_cipher_aead_destroy
    - close_streamed_packet
    - auto::is_aead_auth
    - pgp_cipher_cfb_finish
    linkageType: ''
    returnType: void
    signature: void encrypted_dst_close(pgp_dest_t *dst, bool discard)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_dest_encrypted_param_t *>
      Src: /src/rnp/src/librepgp/stream-write.cpp:589,1
    - Dst: find_suitable_key
      Src: /src/rnp/src/librepgp/stream-write.cpp:592,1
    - Dst: check_enforce_aes_v3_pkesk
      Src: /src/rnp/src/librepgp/stream-write.cpp:600,1
    - Dst: rnp::Key*::alg
      Src: /src/rnp/src/librepgp/stream-write.cpp:600,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:601,1
    - Dst: rnp::Key*::alg
      Src: /src/rnp/src/librepgp/stream-write.cpp:611,1
    - Dst: rnp::Key*::keyid
      Src: /src/rnp/src/librepgp/stream-write.cpp:614,1
    - Dst: rnp::Key*::fp
      Src: /src/rnp/src/librepgp/stream-write.cpp:617,1
    - Dst: do_encrypt_pkesk_v3_alg_id
      Src: /src/rnp/src/librepgp/stream-write.cpp:624,1
    - Dst: rnp::secure_bytes::push_back
      Src: /src/rnp/src/librepgp/stream-write.cpp:626,1
    - Dst: rnp::secure_bytes::push_back
      Src: /src/rnp/src/librepgp/stream-write.cpp:629,1
    - Dst: rnp::secure_bytes::insert
      Src: /src/rnp/src/librepgp/stream-write.cpp:631,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/librepgp/stream-write.cpp:631,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/librepgp/stream-write.cpp:631,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/librepgp/stream-write.cpp:631,1
    - Dst: have_pkesk_checksum
      Src: /src/rnp/src/librepgp/stream-write.cpp:633,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/librepgp/stream-write.cpp:636,1
    - Dst: rnp::secure_bytes::push_back
      Src: /src/rnp/src/librepgp/stream-write.cpp:639,1
    - Dst: rnp::secure_bytes::push_back
      Src: /src/rnp/src/librepgp/stream-write.cpp:640,1
    - Dst: RNP_LOG_U8VEC
      Src: /src/rnp/src/librepgp/stream-write.cpp:644,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/librepgp/stream-write.cpp:644,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/librepgp/stream-write.cpp:644,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/librepgp/stream-write.cpp:644,1
    - Dst: RNP_LOG_U8VEC
      Src: /src/rnp/src/librepgp/stream-write.cpp:645,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/librepgp/stream-write.cpp:645,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/librepgp/stream-write.cpp:645,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/librepgp/stream-write.cpp:645,1
    - Dst: pgp::EncMaterial::create
      Src: /src/rnp/src/librepgp/stream-write.cpp:648,1
    - Dst: rnp::Key*::alg
      Src: /src/rnp/src/librepgp/stream-write.cpp:655,1
    - Dst: dynamic_cast<pgp::ECDHEncMaterial *>
      Src: /src/rnp/src/librepgp/stream-write.cpp:656,1
    - Dst: auto::get
      Src: /src/rnp/src/librepgp/stream-write.cpp:656,1
    - Dst: assert
      Src: /src/rnp/src/librepgp/stream-write.cpp:657,1
    - Dst: rnp::Key*::fp
      Src: /src/rnp/src/librepgp/stream-write.cpp:658,1
    - Dst: rnp::Key*::pkt
      Src: /src/rnp/src/librepgp/stream-write.cpp:660,1
    - Dst: encrypt
      Src: /src/rnp/src/librepgp/stream-write.cpp:660,1
    - Dst: pgp_pk_sesskey_t::write_material
      Src: /src/rnp/src/librepgp/stream-write.cpp:667,1
    - Dst: pgp_pk_sesskey_t::write
      Src: /src/rnp/src/librepgp/stream-write.cpp:668,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 5
    argNames:
    - '              ctx'
    - '             dst'
    - userkey
    - key
    - pkesk_version
    argTypes:
    - rnp_ctx_t
    - pgp_dest_t
    - rnp::Key*
    - rnp::secure_bytes
    - pgp_pkesk_version_t
    assertStmts:
    - condition: (ecdh)
      pos:
        line_end: 656
        line_start: 656
        source_file: /src/rnp/src/librepgp/stream-write.cpp
    constantsTouched: []
    func_position:
      end: 673
      start: 582
    functionDepth: 1
    functionLinenumber: 582
    functionLinenumberEnd: 673
    functionName: encrypted_add_recipient
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - rnp::secure_bytes::size
    - rnp::Key*::keyid
    - do_encrypt_pkesk_v3_alg_id
    - RNP_LOG_U8VEC
    - rnp::secure_bytes::insert
    - rnp::secure_bytes::end
    - encrypt
    - have_pkesk_checksum
    - pgp::EncMaterial::create
    - rnp::secure_bytes::begin
    - rnp::secure_bytes::push_back
    - RNP_LOG
    - static_cast<pgp_dest_encrypted_param_t *>
    - dynamic_cast<pgp::ECDHEncMaterial *>
    - pgp_pk_sesskey_t::write_material
    - rnp::Key*::alg
    - assert
    - auto::get
    - std::vector<uint8_t>
    - rnp::Key*::fp
    - find_suitable_key
    - rnp::Key*::pkt
    - check_enforce_aes_v3_pkesk
    - pgp_pk_sesskey_t::write
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t encrypted_add_recipient(rnp_ctx_t &              ctx,\n
      \                       pgp_dest_t &             dst,\n                        rnp::Key
      *               userkey,\n                        const rnp::secure_bytes &key,\n
      \                       pgp_pkesk_version_t      pkesk_version)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/librepgp/stream-write.cpp:680,1
    - Dst: pgp_dest_encrypted_param_t::ctx::passwords::size
      Src: /src/rnp/src/librepgp/stream-write.cpp:680,1
    - Dst: pgp_dest_encrypted_param_t::ctx::passwords::front
      Src: /src/rnp/src/librepgp/stream-write.cpp:682,1
    - Dst: assign
      Src: /src/rnp/src/librepgp/stream-write.cpp:688,1
    - Dst: key::data
      Src: /src/rnp/src/librepgp/stream-write.cpp:688,1
    - Dst: key::data
      Src: /src/rnp/src/librepgp/stream-write.cpp:688,1
    - Dst: pgp_dest_encrypted_param_t::skesks::push_back
      Src: /src/rnp/src/librepgp/stream-write.cpp:689,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-write.cpp:689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 3
    argNames:
    - param
    - '         key'
    - keylen
    argTypes:
    - pgp_dest_encrypted_param_t
    - rnp::secure_bytes
    - size_t
    assertStmts:
    - condition: (param.ctx.passwords.size() == 1)
      pos:
        line_end: 679
        line_start: 679
        source_file: /src/rnp/src/librepgp/stream-write.cpp
    constantsTouched: []
    func_position:
      end: 690
      start: 675
    functionDepth: 1
    functionLinenumber: 675
    functionLinenumberEnd: 690
    functionName: encrypted_add_password_v4_single
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - key::data
    - pgp_dest_encrypted_param_t::ctx::passwords::front
    - pgp_dest_encrypted_param_t::skesks::push_back
    - assert
    - std::move
    - assign
    - pgp_dest_encrypted_param_t::ctx::passwords::size
    linkageType: ''
    returnType: void
    signature: "void encrypted_add_password_v4_single(pgp_dest_encrypted_param_t &param,\n
      \                                rnp::secure_bytes &         key,\n                                 size_t
      \                     keylen)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-write.cpp:701,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-write.cpp:703,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-write.cpp:703,1
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-write.cpp:703,1
    - Dst: pgp_cipher_cfb_start
      Src: /src/rnp/src/librepgp/stream-write.cpp:706,1
    - Dst: rnp_symmetric_pass_info_t::key::data
      Src: /src/rnp/src/librepgp/stream-write.cpp:706,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:707,1
    - Dst: pgp_cipher_cfb_encrypt
      Src: /src/rnp/src/librepgp/stream-write.cpp:710,1
    - Dst: pgp_cipher_cfb_finish
      Src: /src/rnp/src/librepgp/stream-write.cpp:711,1
    - Dst: skesks::push_back
      Src: /src/rnp/src/librepgp/stream-write.cpp:712,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-write.cpp:712,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 3
    argNames:
    - '     param'
    - pass
    - '        key'
    argTypes:
    - pgp_dest_encrypted_param_t
    - rnp_symmetric_pass_info_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 692
    functionDepth: 1
    functionLinenumber: 692
    functionLinenumberEnd: 714
    functionName: encrypted_add_password_v4
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - data
    - memcpy
    - pgp_cipher_cfb_start
    - skesks::push_back
    - pgp_cipher_cfb_encrypt
    - rnp_symmetric_pass_info_t::key::data
    - std::move
    - pgp_cipher_cfb_finish
    - size
    linkageType: ''
    returnType: bool
    signature: "bool encrypted_add_password_v4(pgp_dest_encrypted_param_t &     param,\n
      \                         const rnp_symmetric_pass_info_t &pass,\n                          const
      rnp::secure_bytes &        key)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:722,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:727,1
    - Dst: pgp_cipher_aead_nonce_len
      Src: /src/rnp/src/librepgp/stream-write.cpp:736,1
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-write.cpp:737,1
    - Dst: pgp_cipher_aead_tag_len
      Src: /src/rnp/src/librepgp/stream-write.cpp:737,1
    - Dst: ctx::sec_ctx::rng::get
      Src: /src/rnp/src/librepgp/stream-write.cpp:738,1
    - Dst: pgp_cipher_aead_init
      Src: /src/rnp/src/librepgp/stream-write.cpp:742,1
    - Dst: rnp_symmetric_pass_info_t::key::data
      Src: /src/rnp/src/librepgp/stream-write.cpp:742,1
    - Dst: encrypted_sesk_set_ad
      Src: /src/rnp/src/librepgp/stream-write.cpp:747,1
    - Dst: pgp_cipher_aead_nonce
      Src: /src/rnp/src/librepgp/stream-write.cpp:753,1
    - Dst: pgp_cipher_aead_start
      Src: /src/rnp/src/librepgp/stream-write.cpp:756,1
    - Dst: pgp_cipher_aead_finish
      Src: /src/rnp/src/librepgp/stream-write.cpp:757,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-write.cpp:757,1
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-write.cpp:757,1
    - Dst: pgp_cipher_aead_destroy
      Src: /src/rnp/src/librepgp/stream-write.cpp:759,1
    - Dst: skesks::push_back
      Src: /src/rnp/src/librepgp/stream-write.cpp:761,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-write.cpp:761,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - '     param'
    - pass
    - '        key'
    argTypes:
    - pgp_dest_encrypted_param_t
    - rnp_symmetric_pass_info_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 765
      start: 716
    functionDepth: 1
    functionLinenumber: 716
    functionLinenumberEnd: 765
    functionName: encrypted_add_password_v5
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - data
    - skesks::push_back
    - pgp_cipher_aead_nonce_len
    - pgp_cipher_aead_destroy
    - ctx::sec_ctx::rng::get
    - encrypted_sesk_set_ad
    - std::move
    - rnp_symmetric_pass_info_t::key::data
    - pgp_cipher_aead_start
    - pgp_cipher_aead_init
    - pgp_cipher_aead_finish
    - pgp_cipher_aead_nonce
    - pgp_cipher_aead_tag_len
    - size
    linkageType: ''
    returnType: bool
    signature: "bool encrypted_add_password_v5(pgp_dest_encrypted_param_t &     param,\n
      \                         const rnp_symmetric_pass_info_t &pass,\n                          const
      rnp::secure_bytes &        key)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:774,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:778,1
    - Dst: pgp_cipher_aead_nonce_len
      Src: /src/rnp/src/librepgp/stream-write.cpp:787,1
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-write.cpp:788,1
    - Dst: pgp_cipher_aead_tag_len
      Src: /src/rnp/src/librepgp/stream-write.cpp:788,1
    - Dst: rnp::Hkdf::create
      Src: /src/rnp/src/librepgp/stream-write.cpp:790,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/librepgp/stream-write.cpp:793,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/librepgp/stream-write.cpp:794,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/librepgp/stream-write.cpp:795,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/librepgp/stream-write.cpp:796,1
    - Dst: rnp_symmetric_pass_info_t::key::data
      Src: /src/rnp/src/librepgp/stream-write.cpp:798,1
    - Dst: rnp_symmetric_pass_info_t::key::data
      Src: /src/rnp/src/librepgp/stream-write.cpp:798,1
    - Dst: pgp_key_size
      Src: /src/rnp/src/librepgp/stream-write.cpp:798,1
    - Dst: pgp_key_size
      Src: /src/rnp/src/librepgp/stream-write.cpp:799,1
    - Dst: auto::extract_expand
      Src: /src/rnp/src/librepgp/stream-write.cpp:801,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/stream-write.cpp:803,1
    - Dst: std::vector::size
      Src: /src/rnp/src/librepgp/stream-write.cpp:804,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/stream-write.cpp:805,1
    - Dst: std::vector::size
      Src: /src/rnp/src/librepgp/stream-write.cpp:806,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/stream-write.cpp:807,1
    - Dst: std::vector::size
      Src: /src/rnp/src/librepgp/stream-write.cpp:808,1
    - Dst: ctx::sec_ctx::rng::get
      Src: /src/rnp/src/librepgp/stream-write.cpp:810,1
    - Dst: pgp_cipher_aead_init
      Src: /src/rnp/src/librepgp/stream-write.cpp:814,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/stream-write.cpp:814,1
    - Dst: encrypted_sesk_set_ad
      Src: /src/rnp/src/librepgp/stream-write.cpp:819,1
    - Dst: pgp_cipher_aead_nonce
      Src: /src/rnp/src/librepgp/stream-write.cpp:825,1
    - Dst: pgp_cipher_aead_start
      Src: /src/rnp/src/librepgp/stream-write.cpp:828,1
    - Dst: pgp_cipher_aead_finish
      Src: /src/rnp/src/librepgp/stream-write.cpp:829,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-write.cpp:829,1
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-write.cpp:829,1
    - Dst: pgp_cipher_aead_destroy
      Src: /src/rnp/src/librepgp/stream-write.cpp:831,1
    - Dst: skesks::push_back
      Src: /src/rnp/src/librepgp/stream-write.cpp:833,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-write.cpp:833,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 3
    argNames:
    - '     param'
    - pass
    - '        key'
    argTypes:
    - pgp_dest_encrypted_param_t
    - rnp_symmetric_pass_info_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 837
      start: 768
    functionDepth: 1
    functionLinenumber: 768
    functionLinenumberEnd: 837
    functionName: encrypted_add_password_v6
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - data
    - pgp_cipher_aead_nonce_len
    - pgp_cipher_aead_finish
    - auto::extract_expand
    - size
    - std::move
    - rnp::Hkdf::create
    - pgp_cipher_aead_init
    - RNP_LOG
    - skesks::push_back
    - pgp_cipher_aead_destroy
    - ctx::sec_ctx::rng::get
    - encrypted_sesk_set_ad
    - pgp_cipher_aead_start
    - pgp_key_size
    - pgp_cipher_aead_nonce
    - std::vector::size
    - pgp_cipher_aead_tag_len
    - std::vector::data
    - std::vector::push_back
    - rnp_symmetric_pass_info_t::key::data
    linkageType: ''
    returnType: bool
    signature: "bool encrypted_add_password_v6(pgp_dest_encrypted_param_t &     param,\n
      \                         const rnp_symmetric_pass_info_t &pass,\n                          const
      rnp::secure_bytes &        key)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: auto::passwords::empty
      Src: /src/rnp/src/librepgp/stream-write.cpp:846,1
    - Dst: auto::sec_ctx::rng::get
      Src: /src/rnp/src/librepgp/stream-write.cpp:847,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-write.cpp:847,1
    - Dst: auto::recipients::empty
      Src: /src/rnp/src/librepgp/stream-write.cpp:852,1
    - Dst: auto::passwords::size
      Src: /src/rnp/src/librepgp/stream-write.cpp:852,1
    - Dst: pgp_dest_encrypted_param_t::is_aead_auth
      Src: /src/rnp/src/librepgp/stream-write.cpp:852,1
    - Dst: encrypted_add_password_v4_single
      Src: /src/rnp/src/librepgp/stream-write.cpp:853,1
    - Dst: auto::sec_ctx::rng::get
      Src: /src/rnp/src/librepgp/stream-write.cpp:859,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-write.cpp:859,1
    - Dst: encrypted_add_password_v5
      Src: /src/rnp/src/librepgp/stream-write.cpp:863,1
    - Dst: encrypted_add_password_v6
      Src: /src/rnp/src/librepgp/stream-write.cpp:867,1
    - Dst: encrypted_add_password_v4
      Src: /src/rnp/src/librepgp/stream-write.cpp:871,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 3
    argNames:
    - param
    - '         key'
    - keylen
    argTypes:
    - pgp_dest_encrypted_param_t
    - rnp::secure_bytes
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 876
      start: 840
    functionDepth: 2
    functionLinenumber: 840
    functionLinenumberEnd: 876
    functionName: encrypted_build_cek
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - auto::sec_ctx::rng::get
    - encrypted_add_password_v5
    - encrypted_add_password_v4_single
    - data
    - auto::passwords::size
    - auto::recipients::empty
    - encrypted_add_password_v6
    - auto::passwords::empty
    - encrypted_add_password_v4
    - pgp_dest_encrypted_param_t::is_aead_auth
    linkageType: ''
    returnType: bool
    signature: "bool encrypted_build_cek(pgp_dest_encrypted_param_t &param,\n                    rnp::secure_bytes
      &         key,\n                    const size_t                keylen)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:925,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/librepgp/stream-write.cpp:928,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:931,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-write.cpp:931,1
    - Dst: pgp_block_size
      Src: /src/rnp/src/librepgp/stream-write.cpp:938,1
    - Dst: pgp_cipher_cfb_start
      Src: /src/rnp/src/librepgp/stream-write.cpp:939,1
    - Dst: pgp_dest_encrypted_param_t*::ctx::sec_ctx::rng::get
      Src: /src/rnp/src/librepgp/stream-write.cpp:945,1
    - Dst: pgp_dest_encrypted_param_t*::mdc::add
      Src: /src/rnp/src/librepgp/stream-write.cpp:950,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:954,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-write.cpp:954,1
    - Dst: pgp_cipher_cfb_encrypt
      Src: /src/rnp/src/librepgp/stream-write.cpp:959,1
    - Dst: pgp_cipher_cfb_resync
      Src: /src/rnp/src/librepgp/stream-write.cpp:964,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:967,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 30
    argCount: 2
    argNames:
    - param
    - enckey
    argTypes:
    - pgp_dest_encrypted_param_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 970
      start: 917
    functionDepth: 1
    functionLinenumber: 917
    functionLinenumberEnd: 970
    functionName: encrypted_start_cfb
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_cipher_cfb_resync
    - what
    - pgp_cipher_cfb_start
    - pgp_dest_encrypted_param_t*::ctx::sec_ctx::rng::get
    - pgp_dest_encrypted_param_t*::mdc::add
    - dst_write
    - pgp_block_size
    - pgp_cipher_cfb_encrypt
    - rnp::Hash::create
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t encrypted_start_cfb(pgp_dest_encrypted_param_t *param,
      uint8_t *enckey)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_size
      Src: /src/rnp/src/librepgp/stream-write.cpp:1069,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1071,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1078,1
    - Dst: pgp_block_size
      Src: /src/rnp/src/librepgp/stream-write.cpp:1083,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1085,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1092,1
    - Dst: rnp_ctx_t::recipients::empty
      Src: /src/rnp/src/librepgp/stream-write.cpp:1098,1
    - Dst: rnp_ctx_t::passwords::empty
      Src: /src/rnp/src/librepgp/stream-write.cpp:1098,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1099,1
    - Dst: pgp_dest_t
      Src: /src/rnp/src/librepgp/stream-write.cpp:1104,1
    - Dst: pgp_dest_encrypted_param_t::pgp_dest_encrypted_param_t
      Src: /src/rnp/src/librepgp/stream-write.cpp:1108,1
    - Dst: rnp_ctx_t::recipients::empty
      Src: /src/rnp/src/librepgp/stream-write.cpp:1119,1
    - Dst: rnp_ctx_t::pkeskv6_capable
      Src: /src/rnp/src/librepgp/stream-write.cpp:1119,1
    - Dst: rnp_ctx_t::recipients::empty
      Src: /src/rnp/src/librepgp/stream-write.cpp:1123,1
    - Dst: rnp_ctx_t::passwords::empty
      Src: /src/rnp/src/librepgp/stream-write.cpp:1123,1
    - Dst: auto::is_aead_auth
      Src: /src/rnp/src/librepgp/stream-write.cpp:1130,1
    - Dst: encrypted_build_cek
      Src: /src/rnp/src/librepgp/stream-write.cpp:1139,1
    - Dst: auto::is_aead_auth
      Src: /src/rnp/src/librepgp/stream-write.cpp:1150,1
    - Dst: encrypted_add_recipient
      Src: /src/rnp/src/librepgp/stream-write.cpp:1155,1
    - Dst: write
      Src: /src/rnp/src/librepgp/stream-write.cpp:1163,1
    - Dst: init_streamed_packet
      Src: /src/rnp/src/librepgp/stream-write.cpp:1184,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1186,1
    - Dst: auto::is_aead_auth
      Src: /src/rnp/src/librepgp/stream-write.cpp:1192,1
    - Dst: encrypted_start_aead
      Src: /src/rnp/src/librepgp/stream-write.cpp:1194,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/librepgp/stream-write.cpp:1194,1
    - Dst: encrypted_start_cfb
      Src: /src/rnp/src/librepgp/stream-write.cpp:1197,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/librepgp/stream-write.cpp:1197,1
    - Dst: rnp_ctx_t::passwords::clear
      Src: /src/rnp/src/librepgp/stream-write.cpp:1200,1
    - Dst: encrypted_dst_close
      Src: /src/rnp/src/librepgp/stream-write.cpp:1202,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 88
    argCount: 3
    argNames:
    - ctx
    - dst
    - writedst
    argTypes:
    - rnp_ctx_t
    - pgp_dest_t
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1205
      start: 1066
    functionDepth: 3
    functionLinenumber: 1066
    functionLinenumberEnd: 1205
    functionName: init_encrypted_dst
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp_ctx_t::passwords::empty
    - encrypted_start_cfb
    - pgp_block_size
    - rnp_ctx_t::recipients::empty
    - rnp_ctx_t::pkeskv6_capable
    - pgp_dest_encrypted_param_t::pgp_dest_encrypted_param_t
    - pgp_dest_t
    - encrypted_add_recipient
    - pgp_key_size
    - rnp_ctx_t::passwords::clear
    - encrypted_dst_close
    - auto::is_aead_auth
    - write
    - rnp::secure_bytes::data
    - init_streamed_packet
    - encrypted_start_aead
    - encrypted_build_cek
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_encrypted_dst(rnp_ctx_t &ctx, pgp_dest_t &dst, pgp_dest_t
      &writedst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:1211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dst
    - buf
    - len
    argTypes:
    - pgp_dest_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1213
      start: 1207
    functionDepth: 1
    functionLinenumber: 1207
    functionLinenumberEnd: 1213
    functionName: signed_dst_write
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - dst_write
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t signed_dst_write(pgp_dest_t *dst, const void *buf, size_t
      len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strncmp
      Src: /src/rnp/src/librepgp/stream-write.cpp:1225,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:1226,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:1230,1
    - Dst: pgp_dest_signed_param_t*::hashes::add
      Src: /src/rnp/src/librepgp/stream-write.cpp:1247,1
    - Dst: pgp_dest_signed_param_t*::hashes::add
      Src: /src/rnp/src/librepgp/stream-write.cpp:1249,1
    - Dst: pgp_dest_signed_param_t*::hashes::add
      Src: /src/rnp/src/librepgp/stream-write.cpp:1254,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1258,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-write.cpp:1258,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 27
    argCount: 4
    argNames:
    - param
    - buf
    - len
    - eol
    argTypes:
    - pgp_dest_signed_param_t*
    - uint8_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1260
      start: 1215
    functionDepth: 1
    functionLinenumber: 1215
    functionLinenumberEnd: 1260
    functionName: cleartext_dst_writeline
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_dest_signed_param_t*::hashes::add
    - what
    - strncmp
    - dst_write
    linkageType: ''
    returnType: void
    signature: "void cleartext_dst_writeline(pgp_dest_signed_param_t *param,\n                        const
      uint8_t *          buf,\n                        size_t                   len,\n
      \                       bool                     eol)"
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - buf
    - len
    - eol
    argTypes:
    - uint8_t*
    - size_t
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1278
      start: 1262
    functionDepth: 0
    functionLinenumber: 1262
    functionLinenumberEnd: 1278
    functionName: cleartext_dst_scanline
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t cleartext_dst_scanline(const uint8_t *buf, size_t len, bool
      *eol)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: cleartext_dst_scanline
      Src: /src/rnp/src/librepgp/stream-write.cpp:1291,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-write.cpp:1295,1
    - Dst: cleartext_dst_writeline
      Src: /src/rnp/src/librepgp/stream-write.cpp:1302,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-write.cpp:1307,1
    - Dst: cleartext_dst_writeline
      Src: /src/rnp/src/librepgp/stream-write.cpp:1308,1
    - Dst: cleartext_dst_writeline
      Src: /src/rnp/src/librepgp/stream-write.cpp:1311,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-write.cpp:1315,1
    - Dst: cleartext_dst_scanline
      Src: /src/rnp/src/librepgp/stream-write.cpp:1326,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-write.cpp:1329,1
    - Dst: cleartext_dst_writeline
      Src: /src/rnp/src/librepgp/stream-write.cpp:1334,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 39
    argCount: 3
    argNames:
    - dst
    - buf
    - len
    argTypes:
    - pgp_dest_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1340
      start: 1280
    functionDepth: 2
    functionLinenumber: 1280
    functionLinenumberEnd: 1340
    functionName: cleartext_dst_write
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - cleartext_dst_scanline
    - cleartext_dst_writeline
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t cleartext_dst_write(pgp_dest_t *dst, const void *buf,
      size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: set_creation
      Src: /src/rnp/src/librepgp/stream-write.cpp:1349,1
    - Dst: set_expiration
      Src: /src/rnp/src/librepgp/stream-write.cpp:1351,1
    - Dst: fill_hashed_data
      Src: /src/rnp/src/librepgp/stream-write.cpp:1352,1
    - Dst: pgp_dest_signed_param_t::hashes::get
      Src: /src/rnp/src/librepgp/stream-write.cpp:1357,1
    - Dst: pgp_dest_signed_param_t::hashes::get
      Src: /src/rnp/src/librepgp/stream-write.cpp:1361,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1366,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-write.cpp:1367,1
    - Dst: key::encrypted
      Src: /src/rnp/src/librepgp/stream-write.cpp:1373,1
    - Dst: key::unlock
      Src: /src/rnp/src/librepgp/stream-write.cpp:1374,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1375,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-write.cpp:1376,1
    - Dst: signature_calculate
      Src: /src/rnp/src/librepgp/stream-write.cpp:1380,1
    - Dst: key::pkt
      Src: /src/rnp/src/librepgp/stream-write.cpp:1381,1
    - Dst: rnp::Hash*::clone
      Src: /src/rnp/src/librepgp/stream-write.cpp:1381,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 3
    argNames:
    - param
    - '    sig'
    - ' signer'
    argTypes:
    - pgp_dest_signed_param_t
    - pgp::pkt::Signature
    - pgp_dest_signer_info_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1342
    functionDepth: 1
    functionLinenumber: 1342
    functionLinenumberEnd: 1382
    functionName: signed_fill_signature
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - fill_hashed_data
    - signature_calculate
    - key::encrypted
    - pgp_dest_signed_param_t::hashes::get
    - set_creation
    - set_expiration
    - key::unlock
    - rnp::rnp_exception::rnp_exception
    - key::pkt
    - rnp::Hash*::clone
    linkageType: ''
    returnType: void
    signature: "void signed_fill_signature(pgp_dest_signed_param_t &param,\n                      pgp::pkt::Signature
      &    sig,\n                      pgp_dest_signer_info_t & signer)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::Signature
      Src: /src/rnp/src/librepgp/stream-write.cpp:1390,1
    - Dst: pgp_dest_signer_info_t*::key::version
      Src: /src/rnp/src/librepgp/stream-write.cpp:1392,1
    - Dst: pgp_dest_signer_info_t*::key::sign_init
      Src: /src/rnp/src/librepgp/stream-write.cpp:1398,1
    - Dst: pgp_dest_signed_param_t*::ctx::sec_ctx::time
      Src: /src/rnp/src/librepgp/stream-write.cpp:1401,1
    - Dst: pgp_dest_signer_info_t*::key::version
      Src: /src/rnp/src/librepgp/stream-write.cpp:1402,1
    - Dst: pgp::pkt::Signature::set_type
      Src: /src/rnp/src/librepgp/stream-write.cpp:1404,1
    - Dst: pgp_dest_signer_info_t*::key::sign_init
      Src: /src/rnp/src/librepgp/stream-write.cpp:1406,1
    - Dst: pgp_dest_signed_param_t*::ctx::sec_ctx::time
      Src: /src/rnp/src/librepgp/stream-write.cpp:1409,1
    - Dst: pgp_dest_signer_info_t*::key::version
      Src: /src/rnp/src/librepgp/stream-write.cpp:1410,1
    - Dst: pgp::pkt::Signature::set_type
      Src: /src/rnp/src/librepgp/stream-write.cpp:1412,1
    - Dst: signed_fill_signature
      Src: /src/rnp/src/librepgp/stream-write.cpp:1414,1
    - Dst: pgp::pkt::Signature::write
      Src: /src/rnp/src/librepgp/stream-write.cpp:1415,1
    - Dst: code
      Src: /src/rnp/src/librepgp/stream-write.cpp:1418,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1421,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-write.cpp:1421,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 3
    argNames:
    - param
    - signer
    - writedst
    argTypes:
    - pgp_dest_signed_param_t*
    - pgp_dest_signer_info_t*
    - pgp_dest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1384
    functionDepth: 2
    functionLinenumber: 1384
    functionLinenumberEnd: 1425
    functionName: signed_write_signature
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::pkt::Signature::Signature
    - what
    - pgp_dest_signer_info_t*::key::sign_init
    - pgp::pkt::Signature::write
    - signed_fill_signature
    - pgp_dest_signer_info_t*::key::version
    - code
    - pgp_dest_signed_param_t*::ctx::sec_ctx::time
    - pgp::pkt::Signature::set_type
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t signed_write_signature(pgp_dest_signed_param_t *param,\n
      \                      pgp_dest_signer_info_t * signer,\n                       pgp_dest_t
      *             writedst)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signed_write_signature
      Src: /src/rnp/src/librepgp/stream-write.cpp:1435,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1436,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1442
      start: 1427
    functionDepth: 3
    functionLinenumber: 1427
    functionLinenumberEnd: 1442
    functionName: signed_dst_finish
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - signed_write_signature
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t signed_dst_finish(pgp_dest_t *dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: signed_write_signature
      Src: /src/rnp/src/librepgp/stream-write.cpp:1452,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1453,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1444
    functionDepth: 3
    functionLinenumber: 1444
    functionLinenumberEnd: 1459
    functionName: signed_detached_dst_finish
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - signed_write_signature
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t signed_detached_dst_finish(pgp_dest_t *dst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cleartext_dst_writeline
      Src: /src/rnp/src/librepgp/stream-write.cpp:1468,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:1471,1
    - Dst: rnp::ArmoredDest::set_discard
      Src: /src/rnp/src/librepgp/stream-write.cpp:1476,1
    - Dst: signed_write_signature
      Src: /src/rnp/src/librepgp/stream-write.cpp:1478,1
    - Dst: rnp::ArmoredDest::dst
      Src: /src/rnp/src/librepgp/stream-write.cpp:1478,1
    - Dst: rnp::ArmoredDest::set_discard
      Src: /src/rnp/src/librepgp/stream-write.cpp:1483,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1487,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-write.cpp:1487,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1491
      start: 1461
    functionDepth: 3
    functionLinenumber: 1461
    functionLinenumberEnd: 1491
    functionName: cleartext_dst_finish
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - cleartext_dst_writeline
    - dst_write
    - signed_write_signature
    - rnp::ArmoredDest::dst
    - rnp::ArmoredDest::set_discard
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t cleartext_dst_finish(pgp_dest_t *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - discard
    argTypes:
    - pgp_dest_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1493
    functionDepth: 0
    functionLinenumber: 1493
    functionLinenumberEnd: 1499
    functionName: signed_dst_close
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void signed_dst_close(pgp_dest_t *dst, bool discard)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_dest_signed_param_t*::hashes::add
      Src: /src/rnp/src/librepgp/stream-write.cpp:1505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dst
    - buf
    - len
    argTypes:
    - pgp_dest_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1506
      start: 1501
    functionDepth: 1
    functionLinenumber: 1501
    functionLinenumberEnd: 1506
    functionName: signed_dst_update
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - pgp_dest_signed_param_t*::hashes::add
    linkageType: ''
    returnType: void
    signature: void signed_dst_update(pgp_dest_t *dst, const void *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_dest_signed_param_t *>
      Src: /src/rnp/src/librepgp/stream-write.cpp:1511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - src
    - hdr
    argTypes:
    - pgp_dest_t
    - pgp_literal_hdr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1508
    functionDepth: 0
    functionLinenumber: 1508
    functionLinenumberEnd: 1514
    functionName: signed_dst_set_literal_hdr
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - static_cast<pgp_dest_signed_param_t *>
    linkageType: ''
    returnType: void
    signature: void signed_dst_set_literal_hdr(pgp_dest_t &src, const pgp_literal_hdr_t
      &hdr)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: key::material
      Src: /src/rnp/src/librepgp/stream-write.cpp:1524,1
    - Dst: key::is_secret
      Src: /src/rnp/src/librepgp/stream-write.cpp:1524,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1525,1
    - Dst: key::material
      Src: /src/rnp/src/librepgp/stream-write.cpp:1529,1
    - Dst: key::pkt
      Src: /src/rnp/src/librepgp/stream-write.cpp:1530,1
    - Dst: valid
      Src: /src/rnp/src/librepgp/stream-write.cpp:1530,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1531,1
    - Dst: key::material
      Src: /src/rnp/src/librepgp/stream-write.cpp:1541,1
    - Dst: pgp_dest_signer_info_t::key::version
      Src: /src/rnp/src/librepgp/stream-write.cpp:1544,1
    - Dst: pgp::pkt::Signature::v6_salt_size
      Src: /src/rnp/src/librepgp/stream-write.cpp:1546,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1547,1
    - Dst: pgp_dest_signer_info_t::salt::resize
      Src: /src/rnp/src/librepgp/stream-write.cpp:1550,1
    - Dst: get
      Src: /src/rnp/src/librepgp/stream-write.cpp:1551,1
    - Dst: pgp_dest_signer_info_t::salt::data
      Src: /src/rnp/src/librepgp/stream-write.cpp:1551,1
    - Dst: pgp_dest_signed_param_t::hashes::add_alg
      Src: /src/rnp/src/librepgp/stream-write.cpp:1552,1
    - Dst: pgp_dest_signed_param_t::hashes::add_alg
      Src: /src/rnp/src/librepgp/stream-write.cpp:1556,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1560,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-write.cpp:1560,1
    - Dst: pgp_dest_signed_param_t::siginfos::push_back
      Src: /src/rnp/src/librepgp/stream-write.cpp:1569,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1573,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-write.cpp:1573,1
    - Dst: pgp_dest_signer_info_t::key::alg
      Src: /src/rnp/src/librepgp/stream-write.cpp:1583,1
    - Dst: pgp_dest_signer_info_t::key::keyid
      Src: /src/rnp/src/librepgp/stream-write.cpp:1584,1
    - Dst: pgp_dest_signer_info_t::key::version
      Src: /src/rnp/src/librepgp/stream-write.cpp:1587,1
    - Dst: pgp_dest_signer_info_t::key::fp
      Src: /src/rnp/src/librepgp/stream-write.cpp:1592,1
    - Dst: pgp_dest_signed_param_t::siginfos::push_back
      Src: /src/rnp/src/librepgp/stream-write.cpp:1596,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1599,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-write.cpp:1599,1
    - Dst: pgp_dest_signed_param_t::siginfos::rbegin
      Src: /src/rnp/src/librepgp/stream-write.cpp:1609,1
    - Dst: pgp_dest_signed_param_t::siginfos::rend
      Src: /src/rnp/src/librepgp/stream-write.cpp:1609,1
    - Dst: pgp_dest_signed_param_t::siginfos::front
      Src: /src/rnp/src/librepgp/stream-write.cpp:1611,1
    - Dst: pgp_dest_signer_info_t::onepass::write
      Src: /src/rnp/src/librepgp/stream-write.cpp:1612,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 69
    argCount: 4
    argNames:
    - param
    - '      signer'
    - '               rng'
    - last
    argTypes:
    - pgp_dest_signed_param_t
    - rnp_signer_info_t
    - rnp::RNG
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1516
    functionDepth: 2
    functionLinenumber: 1516
    functionLinenumberEnd: 1618
    functionName: signed_add_signer
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - pgp_dest_signer_info_t::salt::resize
    - valid
    - pgp_dest_signer_info_t::key::keyid
    - pgp_dest_signed_param_t::siginfos::rbegin
    - key::is_secret
    - pgp_dest_signer_info_t::key::alg
    - pgp_dest_signed_param_t::hashes::add_alg
    - RNP_LOG
    - pgp_dest_signed_param_t::siginfos::push_back
    - pgp_dest_signed_param_t::siginfos::rend
    - pgp_dest_signer_info_t::onepass::write
    - pgp_dest_signer_info_t::key::version
    - get
    - pgp_dest_signed_param_t::siginfos::front
    - pgp::pkt::Signature::v6_salt_size
    - what
    - pgp_dest_signer_info_t::key::fp
    - key::material
    - key::pkt
    - pgp_dest_signer_info_t::salt::data
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t signed_add_signer(pgp_dest_signed_param_t &param,\n                  rnp_signer_info_t
      &      signer,\n                  rnp::RNG &               rng,\n                  bool
      \                    last)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pgp_dest_t
      Src: /src/rnp/src/librepgp/stream-write.cpp:1627,1
    - Dst: pgp_dest_signed_param_t::pgp_dest_signed_param_t
      Src: /src/rnp/src/librepgp/stream-write.cpp:1632,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1635,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-write.cpp:1635,1
    - Dst: signed_add_signer
      Src: /src/rnp/src/librepgp/stream-write.cpp:1659,1
    - Dst: rnp_ctx_t::signers::back
      Src: /src/rnp/src/librepgp/stream-write.cpp:1659,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1661,1
    - Dst: pgp_dest_signed_param_t*::hashes::hashes::empty
      Src: /src/rnp/src/librepgp/stream-write.cpp:1667,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:1674,1
    - Dst: strlen
      Src: /src/rnp/src/librepgp/stream-write.cpp:1674,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:1675,1
    - Dst: strlen
      Src: /src/rnp/src/librepgp/stream-write.cpp:1675,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:1676,1
    - Dst: strlen
      Src: /src/rnp/src/librepgp/stream-write.cpp:1676,1
    - Dst: pgp_dest_signed_param_t*::hashes::hash_algs
      Src: /src/rnp/src/librepgp/stream-write.cpp:1678,1
    - Dst: rnp::Hash::name
      Src: /src/rnp/src/librepgp/stream-write.cpp:1680,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:1681,1
    - Dst: strlen
      Src: /src/rnp/src/librepgp/stream-write.cpp:1681,1
    - Dst: auto::back
      Src: /src/rnp/src/librepgp/stream-write.cpp:1682,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:1683,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:1687,1
    - Dst: strlen
      Src: /src/rnp/src/librepgp/stream-write.cpp:1687,1
    - Dst: signed_dst_close
      Src: /src/rnp/src/librepgp/stream-write.cpp:1693,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 57
    argCount: 3
    argNames:
    - ctx
    - dst
    - writedst
    argTypes:
    - rnp_ctx_t
    - pgp_dest_t
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1620
    functionDepth: 3
    functionLinenumber: 1620
    functionLinenumberEnd: 1697
    functionName: init_signed_dst
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_dest_signed_param_t*::hashes::hash_algs
    - rnp::Hash::name
    - what
    - pgp_dest_signed_param_t::pgp_dest_signed_param_t
    - pgp_dest_signed_param_t*::hashes::hashes::empty
    - dst_write
    - signed_dst_close
    - pgp_dest_t
    - rnp_ctx_t::signers::back
    - strlen
    - signed_add_signer
    - auto::back
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_signed_dst(rnp_ctx_t &ctx, pgp_dest_t &dst, pgp_dest_t
      &writedst)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1705,1
    - Dst: deflate
      Src: /src/rnp/src/librepgp/stream-write.cpp:1716,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1719,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:1725,1
    - Dst: BZ2_bzCompress
      Src: /src/rnp/src/librepgp/stream-write.cpp:1742,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1744,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:1750,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1763,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 49
    argCount: 3
    argNames:
    - dst
    - buf
    - len
    argTypes:
    - pgp_dest_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1766
      start: 1699
    functionDepth: 1
    functionLinenumber: 1699
    functionLinenumberEnd: 1766
    functionName: compressed_dst_write
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - BZ2_bzCompress
    - deflate
    - dst_write
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t compressed_dst_write(pgp_dest_t *dst, const void *buf,
      size_t len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: deflate
      Src: /src/rnp/src/librepgp/stream-write.cpp:1780,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1783,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:1788,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:1796,1
    - Dst: BZ2_bzCompress
      Src: /src/rnp/src/librepgp/stream-write.cpp:1806,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1808,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:1814,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:1822,1
    - Dst: finish_streamed_packet
      Src: /src/rnp/src/librepgp/stream-write.cpp:1830,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 47
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1831
      start: 1768
    functionDepth: 2
    functionLinenumber: 1768
    functionLinenumberEnd: 1831
    functionName: compressed_dst_finish
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - BZ2_bzCompress
    - dst_write
    - finish_streamed_packet
    - deflate
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t compressed_dst_finish(pgp_dest_t *dst)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: deflateEnd
      Src: /src/rnp/src/librepgp/stream-write.cpp:1844,1
    - Dst: BZ2_bzCompressEnd
      Src: /src/rnp/src/librepgp/stream-write.cpp:1848,1
    - Dst: close_streamed_packet
      Src: /src/rnp/src/librepgp/stream-write.cpp:1853,1
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-write.cpp:1854,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - dst
    - discard
    argTypes:
    - pgp_dest_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1856
      start: 1833
    functionDepth: 2
    functionLinenumber: 1833
    functionLinenumberEnd: 1856
    functionName: compressed_dst_close
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - close_streamed_packet
    - deflateEnd
    - BZ2_bzCompressEnd
    - free
    linkageType: ''
    returnType: void
    signature: void compressed_dst_close(pgp_dest_t *dst, bool discard)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: init_dst_common
      Src: /src/rnp/src/librepgp/stream-write.cpp:1866,1
    - Dst: init_streamed_packet
      Src: /src/rnp/src/librepgp/stream-write.cpp:1881,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1883,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:1891,1
    - Dst: memset
      Src: /src/rnp/src/librepgp/stream-write.cpp:1897,1
    - Dst: deflateInit2
      Src: /src/rnp/src/librepgp/stream-write.cpp:1899,1
    - Dst: deflateInit
      Src: /src/rnp/src/librepgp/stream-write.cpp:1901,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1905,1
    - Dst: memset
      Src: /src/rnp/src/librepgp/stream-write.cpp:1912,1
    - Dst: BZ2_bzCompressInit
      Src: /src/rnp/src/librepgp/stream-write.cpp:1913,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1915,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1922,1
    - Dst: compressed_dst_close
      Src: /src/rnp/src/librepgp/stream-write.cpp:1930,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 61
    argCount: 3
    argNames:
    - ctx
    - dst
    - writedst
    argTypes:
    - rnp_ctx_t
    - pgp_dest_t
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1933
      start: 1858
    functionDepth: 3
    functionLinenumber: 1858
    functionLinenumberEnd: 1933
    functionName: init_compressed_dst
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - dst_write
    - init_dst_common
    - deflateInit
    - memset
    - compressed_dst_close
    - BZ2_bzCompressInit
    - deflateInit2
    - init_streamed_packet
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_compressed_dst(rnp_ctx_t &ctx, pgp_dest_t &dst, pgp_dest_t
      &writedst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1942,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:1947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - dst
    - buf
    - len
    argTypes:
    - pgp_dest_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1949
      start: 1935
    functionDepth: 1
    functionLinenumber: 1935
    functionLinenumberEnd: 1949
    functionName: literal_dst_write
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - dst_write
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t literal_dst_write(pgp_dest_t *dst, const void *buf, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: finish_streamed_packet
      Src: /src/rnp/src/librepgp/stream-write.cpp:1954,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1955
      start: 1951
    functionDepth: 2
    functionLinenumber: 1951
    functionLinenumberEnd: 1955
    functionName: literal_dst_finish
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - finish_streamed_packet
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t literal_dst_finish(pgp_dest_t *dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close_streamed_packet
      Src: /src/rnp/src/librepgp/stream-write.cpp:1966,1
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-write.cpp:1967,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - discard
    argTypes:
    - pgp_dest_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1969
      start: 1957
    functionDepth: 2
    functionLinenumber: 1957
    functionLinenumberEnd: 1969
    functionName: literal_dst_close
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - close_streamed_packet
    - free
    linkageType: ''
    returnType: void
    signature: void literal_dst_close(pgp_dest_t *dst, bool discard)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_ctx_t::filename::size
      Src: /src/rnp/src/librepgp/stream-write.cpp:1981,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:1983,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-write.cpp:1987,1
    - Dst: rnp_ctx_t::filename::c_str
      Src: /src/rnp/src/librepgp/stream-write.cpp:1987,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - hdr
    argTypes:
    - rnp_ctx_t
    - pgp_literal_hdr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1990
      start: 1971
    functionDepth: 1
    functionLinenumber: 1971
    functionLinenumberEnd: 1990
    functionName: build_literal_hdr
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp_ctx_t::filename::c_str
    - memcpy
    - rnp_ctx_t::filename::size
    linkageType: ''
    returnType: void
    signature: void build_literal_hdr(const rnp_ctx_t &ctx, pgp_literal_hdr_t &hdr)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: init_dst_common
      Src: /src/rnp/src/librepgp/stream-write.cpp:1997,1
    - Dst: init_streamed_packet
      Src: /src/rnp/src/librepgp/stream-write.cpp:2011,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:2013,1
    - Dst: literal_dst_close
      Src: /src/rnp/src/librepgp/stream-write.cpp:2014,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:2023,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:2026,1
    - Dst: write_uint32
      Src: /src/rnp/src/librepgp/stream-write.cpp:2029,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:2030,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 3
    argNames:
    - hdr
    - dst
    - writedst
    argTypes:
    - pgp_literal_hdr_t
    - pgp_dest_t
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 1992
    functionDepth: 3
    functionLinenumber: 1992
    functionLinenumberEnd: 2032
    functionName: init_literal_dst
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - write_uint32
    - dst_write
    - init_dst_common
    - literal_dst_close
    - init_streamed_packet
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_literal_dst(pgp_literal_hdr_t &hdr, pgp_dest_t &dst,
      pgp_dest_t &writedst)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: uint8_t::uint8_t
      Src: /src/rnp/src/librepgp/stream-write.cpp:2041,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:2044,1
    - Dst: pgp_source_t::read
      Src: /src/rnp/src/librepgp/stream-write.cpp:2052,1
    - Dst: std::unique_ptr::get
      Src: /src/rnp/src/librepgp/stream-write.cpp:2052,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:2053,1
    - Dst: signed_dst_update
      Src: /src/rnp/src/librepgp/stream-write.cpp:2060,1
    - Dst: std::unique_ptr::get
      Src: /src/rnp/src/librepgp/stream-write.cpp:2060,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-write.cpp:2064,1
    - Dst: std::unique_ptr::get
      Src: /src/rnp/src/librepgp/stream-write.cpp:2064,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:2068,1
    - Dst: dst_finish
      Src: /src/rnp/src/librepgp/stream-write.cpp:2077,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:2079,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 5
    argNames:
    - src
    - streams
    - count
    - sstream
    - wstream
    argTypes:
    - pgp_source_t
    - pgp_dest_t*
    - unsigned
    - pgp_dest_t*
    - pgp_dest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2084
      start: 2034
    functionDepth: 2
    functionLinenumber: 2034
    functionLinenumberEnd: 2084
    functionName: process_stream_sequence
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - signed_dst_update
    - dst_write
    - dst_finish
    - uint8_t::uint8_t
    - pgp_source_t::read
    - std::unique_ptr::get
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t process_stream_sequence(pgp_source_t &src,\n                        pgp_dest_t
      *  streams,\n                        unsigned      count,\n                        pgp_dest_t
      *  sstream,\n                        pgp_dest_t *  wstream)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: init_armored_dst
      Src: /src/rnp/src/librepgp/stream-write.cpp:2104,1
    - Dst: init_compressed_dst
      Src: /src/rnp/src/librepgp/stream-write.cpp:2113,1
    - Dst: init_signed_dst
      Src: /src/rnp/src/librepgp/stream-write.cpp:2121,1
    - Dst: build_literal_hdr
      Src: /src/rnp/src/librepgp/stream-write.cpp:2135,1
    - Dst: init_literal_dst
      Src: /src/rnp/src/librepgp/stream-write.cpp:2137,1
    - Dst: signed_dst_set_literal_hdr
      Src: /src/rnp/src/librepgp/stream-write.cpp:2140,1
    - Dst: signed_dst_set_literal_hdr
      Src: /src/rnp/src/librepgp/stream-write.cpp:2151,1
    - Dst: process_stream_sequence
      Src: /src/rnp/src/librepgp/stream-write.cpp:2155,1
    - Dst: dst_close
      Src: /src/rnp/src/librepgp/stream-write.cpp:2158,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 50
    argCount: 3
    argNames:
    - ctx
    - src
    - dst
    argTypes:
    - rnp_ctx_t
    - pgp_source_t
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2161
      start: 2086
    functionDepth: 4
    functionLinenumber: 2086
    functionLinenumberEnd: 2161
    functionName: rnp_sign_src
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - process_stream_sequence
    - init_compressed_dst
    - build_literal_hdr
    - init_literal_dst
    - init_signed_dst
    - dst_close
    - signed_dst_set_literal_hdr
    - init_armored_dst
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t rnp_sign_src(rnp_ctx_t &ctx, pgp_source_t &src, pgp_dest_t
      &dst)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:2180,1
    - Dst: init_armored_dst
      Src: /src/rnp/src/librepgp/stream-write.cpp:2186,1
    - Dst: init_encrypted_dst
      Src: /src/rnp/src/librepgp/stream-write.cpp:2193,1
    - Dst: init_compressed_dst
      Src: /src/rnp/src/librepgp/stream-write.cpp:2200,1
    - Dst: rnp_ctx_t::signers::empty
      Src: /src/rnp/src/librepgp/stream-write.cpp:2207,1
    - Dst: init_signed_dst
      Src: /src/rnp/src/librepgp/stream-write.cpp:2208,1
    - Dst: build_literal_hdr
      Src: /src/rnp/src/librepgp/stream-write.cpp:2218,1
    - Dst: init_literal_dst
      Src: /src/rnp/src/librepgp/stream-write.cpp:2220,1
    - Dst: signed_dst_set_literal_hdr
      Src: /src/rnp/src/librepgp/stream-write.cpp:2225,1
    - Dst: process_stream_sequence
      Src: /src/rnp/src/librepgp/stream-write.cpp:2232,1
    - Dst: dst_close
      Src: /src/rnp/src/librepgp/stream-write.cpp:2235,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 50
    argCount: 3
    argNames:
    - ctx
    - src
    - dst
    argTypes:
    - rnp_ctx_t
    - pgp_source_t
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2238
      start: 2163
    functionDepth: 4
    functionLinenumber: 2163
    functionLinenumberEnd: 2238
    functionName: rnp_encrypt_sign_src
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - process_stream_sequence
    - rnp_ctx_t::signers::empty
    - init_compressed_dst
    - build_literal_hdr
    - init_literal_dst
    - init_signed_dst
    - dst_close
    - init_encrypted_dst
    - signed_dst_set_literal_hdr
    - init_armored_dst
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t rnp_encrypt_sign_src(rnp_ctx_t &ctx, pgp_source_t &src,
      pgp_dest_t &dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecurityContext::SecurityContext
      Src: /src/rnp/src/librepgp/stream-write.cpp:2243,1
    - Dst: rnp::KeyProvider::KeyProvider
      Src: /src/rnp/src/librepgp/stream-write.cpp:2244,1
    - Dst: init_compressed_dst
      Src: /src/rnp/src/librepgp/stream-write.cpp:2252,1
    - Dst: dst_write_src
      Src: /src/rnp/src/librepgp/stream-write.cpp:2256,1
    - Dst: dst_close
      Src: /src/rnp/src/librepgp/stream-write.cpp:2258,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 4
    argNames:
    - src
    - dst
    - zalg
    - zlevel
    argTypes:
    - pgp_source_t
    - pgp_dest_t
    - pgp_compression_type_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2260
      start: 2240
    functionDepth: 4
    functionLinenumber: 2240
    functionLinenumberEnd: 2260
    functionName: rnp_compress_src
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 1
    functionsReached:
    - rnp::SecurityContext::SecurityContext
    - init_compressed_dst
    - dst_write_src
    - dst_close
    - rnp::KeyProvider::KeyProvider
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t rnp_compress_src(pgp_source_t &src, pgp_dest_t &dst, pgp_compression_type_t
      zalg, int zlevel)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecurityContext::SecurityContext
      Src: /src/rnp/src/librepgp/stream-write.cpp:2265,1
    - Dst: rnp::KeyProvider::KeyProvider
      Src: /src/rnp/src/librepgp/stream-write.cpp:2266,1
    - Dst: build_literal_hdr
      Src: /src/rnp/src/librepgp/stream-write.cpp:2275,1
    - Dst: init_literal_dst
      Src: /src/rnp/src/librepgp/stream-write.cpp:2277,1
    - Dst: dst_write_src
      Src: /src/rnp/src/librepgp/stream-write.cpp:2282,1
    - Dst: dst_close
      Src: /src/rnp/src/librepgp/stream-write.cpp:2284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 4
    argNames:
    - src
    - dst
    - filename
    - modtime
    argTypes:
    - pgp_source_t
    - pgp_dest_t
    - std::string
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2286
      start: 2262
    functionDepth: 4
    functionLinenumber: 2262
    functionLinenumberEnd: 2286
    functionName: rnp_wrap_src
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 1
    functionsReached:
    - rnp::SecurityContext::SecurityContext
    - build_literal_hdr
    - init_literal_dst
    - dst_write_src
    - dst_close
    - rnp::KeyProvider::KeyProvider
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t rnp_wrap_src(pgp_source_t &src, pgp_dest_t &dst, const
      std::string &filename, uint32_t modtime)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecurityContext::SecurityContext
      Src: /src/rnp/src/librepgp/stream-write.cpp:2294,1
    - Dst: rnp::KeyProvider::KeyProvider
      Src: /src/rnp/src/librepgp/stream-write.cpp:2295,1
    - Dst: rnp_ctx_t::add_encryption_password
      Src: /src/rnp/src/librepgp/stream-write.cpp:2304,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-write.cpp:2307,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-write.cpp:2307,1
    - Dst: init_encrypted_dst
      Src: /src/rnp/src/librepgp/stream-write.cpp:2315,1
    - Dst: dst_write_src
      Src: /src/rnp/src/librepgp/stream-write.cpp:2320,1
    - Dst: dst_close
      Src: /src/rnp/src/librepgp/stream-write.cpp:2322,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 4
    argNames:
    - '        src'
    - '          dst'
    - '   password'
    - secctx
    argTypes:
    - pgp_source_t
    - pgp_dest_t
    - std::string
    - rnp::SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2324
      start: 2288
    functionDepth: 4
    functionLinenumber: 2288
    functionLinenumberEnd: 2324
    functionName: rnp_raw_encrypt_src
    functionSourceFile: /src/rnp/src/librepgp/stream-write.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - what
    - rnp::SecurityContext::SecurityContext
    - dst_write_src
    - dst_close
    - init_encrypted_dst
    - rnp::KeyProvider::KeyProvider
    - rnp_ctx_t::add_encryption_password
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t rnp_raw_encrypt_src(pgp_source_t &        src,\n                    pgp_dest_t
      &          dst,\n                    const std::string &   password,\n                    rnp::SecurityContext
      &secctx)"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-common.cpp:82,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-common.cpp:86,1
    - Dst: raw_read
      Src: /src/rnp/src/librepgp/stream-common.cpp:97,1
    - Dst: raw_read
      Src: /src/rnp/src/librepgp/stream-common.cpp:110,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-common.cpp:119,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-common.cpp:123,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 73
    argCount: 3
    argNames:
    - buf
    - len
    - readres
    argTypes:
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 138
    functionName: pgp_source_t::read
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 3
    functionsReached:
    - raw_read
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool pgp_source_t::read(void *buf, size_t len, size_t *readres)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t::read
      Src: /src/rnp/src/librepgp/stream-common.cpp:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 145
    functionName: pgp_source_t::read_eq
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 1
    functionsReached:
    - pgp_source_t::read
    linkageType: ''
    returnType: bool
    signature: bool pgp_source_t::read_eq(void *buf, size_t len)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-common.cpp:171,1
    - Dst: memmove
      Src: /src/rnp/src/librepgp/stream-common.cpp:178,1
    - Dst: raw_read
      Src: /src/rnp/src/librepgp/stream-common.cpp:188,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-common.cpp:194,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-common.cpp:202,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 53
    argCount: 3
    argNames:
    - buf
    - len
    - peeked
    argTypes:
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 209
    functionName: pgp_source_t::peek
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached:
    - memmove
    - raw_read
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool pgp_source_t::peek(void *buf, size_t len, size_t *peeked)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t::peek
      Src: /src/rnp/src/librepgp/stream-common.cpp:215,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: pgp_source_t::peek_eq
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 1
    functionsReached:
    - pgp_source_t::peek
    linkageType: ''
    returnType: bool
    signature: bool pgp_source_t::peek_eq(void *buf, size_t len)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t::read
      Src: /src/rnp/src/librepgp/stream-common.cpp:230,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/librepgp/stream-common.cpp:233,1
    - Dst: calloc
      Src: /src/rnp/src/librepgp/stream-common.cpp:237,1
    - Dst: std::min
      Src: /src/rnp/src/librepgp/stream-common.cpp:237,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/librepgp/stream-common.cpp:243,1
    - Dst: pgp_source_t::read
      Src: /src/rnp/src/librepgp/stream-common.cpp:244,1
    - Dst: std::min
      Src: /src/rnp/src/librepgp/stream-common.cpp:244,1
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-common.cpp:249,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 1
    argNames:
    - len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 250
    functionName: pgp_source_t::skip
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_t::eof
    - std::min
    - pgp_source_t::read
    - free
    - calloc
    linkageType: ''
    returnType: void
    signature: void pgp_source_t::skip(size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: raw_finish
      Src: /src/rnp/src/librepgp/stream-common.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: pgp_source_t::finish
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached:
    - raw_finish
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t pgp_source_t::finish()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: pgp_source_t::error
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool pgp_source_t::error() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t::peek
      Src: /src/rnp/src/librepgp/stream-common.cpp:276,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 267
    functionDepth: 1
    functionLinenumber: 267
    functionLinenumberEnd: 277
    functionName: pgp_source_t::eof
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 1
    functionsReached:
    - pgp_source_t::peek
    linkageType: ''
    returnType: bool
    signature: bool pgp_source_t::eof()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: raw_close
      Src: /src/rnp/src/librepgp/stream-common.cpp:283,1
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-common.cpp:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 290
    functionName: pgp_source_t::close
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 33
    functionsReached:
    - raw_close
    - free
    linkageType: ''
    returnType: void
    signature: void pgp_source_t::close()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t::peek
      Src: /src/rnp/src/librepgp/stream-common.cpp:298,1
    - Dst: pgp_source_t::skip
      Src: /src/rnp/src/librepgp/stream-common.cpp:302,1
    - Dst: pgp_source_t::skip
      Src: /src/rnp/src/librepgp/stream-common.cpp:306,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 292
    functionDepth: 2
    functionLinenumber: 292
    functionLinenumberEnd: 310
    functionName: pgp_source_t::skip_eol
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_t::peek
    - pgp_source_t::skip
    linkageType: ''
    returnType: bool
    signature: bool pgp_source_t::skip_eol()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t::peek
      Src: /src/rnp/src/librepgp/stream-common.cpp:318,1
    - Dst: std::string::find
      Src: /src/rnp/src/librepgp/stream-common.cpp:325,1
    - Dst: pgp_source_t::skip
      Src: /src/rnp/src/librepgp/stream-common.cpp:328,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - chars
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 330
    functionName: pgp_source_t::skip_chars
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_t::peek
    - std::string::find
    - pgp_source_t::skip
    linkageType: ''
    returnType: bool
    signature: bool pgp_source_t::skip_chars(const std::string &chars)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t::peek
      Src: /src/rnp/src/librepgp/stream-common.cpp:345,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - buf
    - len
    - readres
    argTypes:
    - char*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 332
    functionDepth: 1
    functionLinenumber: 332
    functionLinenumberEnd: 365
    functionName: pgp_source_t::peek_line
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_t::peek
    linkageType: ''
    returnType: bool
    signature: bool pgp_source_t::peek_line(char *buf, size_t len, size_t *readres)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/rnp/src/librepgp/stream-common.cpp:370,1
    - Dst: calloc
      Src: /src/rnp/src/librepgp/stream-common.cpp:371,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:373,1
    - Dst: calloc
      Src: /src/rnp/src/librepgp/stream-common.cpp:380,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:382,1
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-common.cpp:383,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - src
    - paramsize
    argTypes:
    - pgp_source_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 367
    functionDepth: 1
    functionLinenumber: 367
    functionLinenumberEnd: 388
    functionName: init_src_common
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - free
    - calloc
    - memset
    linkageType: ''
    returnType: bool
    signature: bool init_src_common(pgp_source_t *src, size_t paramsize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/rnp/src/librepgp/stream-common.cpp:402,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 4
    argNames:
    - src
    - buf
    - len
    - readres
    argTypes:
    - pgp_source_t*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 408
      start: 394
    functionDepth: 0
    functionLinenumber: 394
    functionLinenumberEnd: 408
    functionName: file_src_read
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: bool
    signature: bool file_src_read(pgp_source_t *src, void *buf, size_t len, size_t
      *readres)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/rnp/src/librepgp/stream-common.cpp:416,1
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-common.cpp:418,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 421
      start: 410
    functionDepth: 0
    functionLinenumber: 410
    functionLinenumberEnd: 421
    functionName: file_src_close
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached:
    - free
    - close
    linkageType: ''
    returnType: void
    signature: void file_src_close(pgp_source_t *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_src_common
      Src: /src/rnp/src/librepgp/stream-common.cpp:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 3
    argNames:
    - src
    - fd
    - size
    argTypes:
    - pgp_source_t*
    - int
    - uint64_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 423
    functionDepth: 2
    functionLinenumber: 423
    functionLinenumberEnd: 439
    functionName: init_fd_src
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached:
    - init_src_common
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_fd_src(pgp_source_t *src, int fd, uint64_t *size)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp_stat
      Src: /src/rnp/src/librepgp/stream-common.cpp:447,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:448,1
    - Dst: S_ISDIR
      Src: /src/rnp/src/librepgp/stream-common.cpp:453,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:454,1
    - Dst: rnp_open
      Src: /src/rnp/src/librepgp/stream-common.cpp:466,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:469,1
    - Dst: init_fd_src
      Src: /src/rnp/src/librepgp/stream-common.cpp:473,1
    - Dst: close
      Src: /src/rnp/src/librepgp/stream-common.cpp:475,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 2
    argNames:
    - src
    - path
    argTypes:
    - pgp_source_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 441
    functionDepth: 3
    functionLinenumber: 441
    functionLinenumberEnd: 478
    functionName: init_file_src
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 29
    functionsReached:
    - RNP_LOG
    - rnp_open
    - S_ISDIR
    - close
    - rnp_stat
    - init_fd_src
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_file_src(pgp_source_t *src, const char *path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_src_common
      Src: /src/rnp/src/librepgp/stream-common.cpp:485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 480
    functionDepth: 2
    functionLinenumber: 480
    functionLinenumberEnd: 496
    functionName: init_stdin_src
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached:
    - init_src_common
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_stdin_src(pgp_source_t *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-common.cpp:525,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - src
    - buf
    - len
    - read
    argTypes:
    - pgp_source_t*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 529
    functionName: mem_src_read
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool mem_src_read(pgp_source_t *src, void *buf, size_t len, size_t
      *read)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-common.cpp:537,1
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-common.cpp:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 542
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 542
    functionName: mem_src_close
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void mem_src_close(pgp_source_t *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init_src_common
      Src: /src/rnp/src/librepgp/stream-common.cpp:551,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - src
    - mem
    - len
    - free
    argTypes:
    - pgp_source_t*
    - void*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 544
    functionDepth: 2
    functionLinenumber: 544
    functionLinenumberEnd: 568
    functionName: init_mem_src
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 9
    functionsReached:
    - init_src_common
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_mem_src(pgp_source_t *src, const void *mem, size_t
      len, bool free)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - src
    - buf
    - len
    - read
    argTypes:
    - pgp_source_t*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: null_src_read
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool null_src_read(pgp_source_t *src, void *buf, size_t len, size_t
      *read)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/rnp/src/librepgp/stream-common.cpp:579,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 584
      start: 576
    functionDepth: 0
    functionLinenumber: 576
    functionLinenumberEnd: 584
    functionName: init_null_src
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_null_src(pgp_source_t *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init_mem_dest
      Src: /src/rnp/src/librepgp/stream-common.cpp:593,1
    - Dst: dst_write_src
      Src: /src/rnp/src/librepgp/stream-common.cpp:597,1
    - Dst: init_mem_src
      Src: /src/rnp/src/librepgp/stream-common.cpp:602,1
    - Dst: mem_dest_own_memory
      Src: /src/rnp/src/librepgp/stream-common.cpp:602,1
    - Dst: dst_close
      Src: /src/rnp/src/librepgp/stream-common.cpp:604,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - src
    - readsrc
    argTypes:
    - pgp_source_t*
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 606
      start: 586
    functionDepth: 3
    functionLinenumber: 586
    functionLinenumberEnd: 606
    functionName: read_mem_src
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 1
    functionsReached:
    - mem_dest_own_memory
    - dst_write_src
    - dst_close
    - init_mem_src
    - init_mem_dest
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t read_mem_src(pgp_source_t *src, pgp_source_t *readsrc)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:612,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - src
    - own
    argTypes:
    - pgp_source_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 608
    functionDepth: 1
    functionLinenumber: 608
    functionLinenumberEnd: 625
    functionName: mem_src_get_memory
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: void
    signature: 'void *

      mem_src_get_memory(pgp_source_t *src, bool own)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp_dest_t
      Src: /src/rnp/src/librepgp/stream-common.cpp:631,1
    - Dst: calloc
      Src: /src/rnp/src/librepgp/stream-common.cpp:639,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:642,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - dst
    - paramsize
    argTypes:
    - pgp_dest_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 627
    functionDepth: 1
    functionLinenumber: 627
    functionLinenumberEnd: 647
    functionName: init_dst_common
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - pgp_dest_t
    - calloc
    linkageType: ''
    returnType: bool
    signature: bool init_dst_common(pgp_dest_t *dst, size_t paramsize)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp_dest_t*::cache::size
      Src: /src/rnp/src/librepgp/stream-common.cpp:655,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-common.cpp:656,1
    - Dst: pgp_dest_t*::cache::data
      Src: /src/rnp/src/librepgp/stream-common.cpp:656,1
    - Dst: pgp_dest_t*::cache::size
      Src: /src/rnp/src/librepgp/stream-common.cpp:656,1
    - Dst: pgp_dest_t*::cache::size
      Src: /src/rnp/src/librepgp/stream-common.cpp:657,1
    - Dst: pgp_dest_t*::cache::size
      Src: /src/rnp/src/librepgp/stream-common.cpp:658,1
    - Dst: pgp_dest_t*::write
      Src: /src/rnp/src/librepgp/stream-common.cpp:659,1
    - Dst: pgp_dest_t*::cache::data
      Src: /src/rnp/src/librepgp/stream-common.cpp:659,1
    - Dst: pgp_dest_t*::cache::size
      Src: /src/rnp/src/librepgp/stream-common.cpp:659,1
    - Dst: pgp_dest_t*::cache::size
      Src: /src/rnp/src/librepgp/stream-common.cpp:660,1
    - Dst: pgp_dest_t*::cache::size
      Src: /src/rnp/src/librepgp/stream-common.cpp:668,1
    - Dst: pgp_dest_t*::write
      Src: /src/rnp/src/librepgp/stream-common.cpp:669,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-common.cpp:674,1
    - Dst: pgp_dest_t*::cache::data
      Src: /src/rnp/src/librepgp/stream-common.cpp:674,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - dst
    - buf
    - len
    argTypes:
    - pgp_dest_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 649
    functionDepth: 1
    functionLinenumber: 649
    functionLinenumberEnd: 678
    functionName: dst_write
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 25
    functionsReached:
    - pgp_dest_t*::cache::data
    - pgp_dest_t*::write
    - pgp_dest_t*::cache::size
    - memcpy
    linkageType: ''
    returnType: void
    signature: void dst_write(pgp_dest_t *dst, const void *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-common.cpp:683,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/librepgp/stream-common.cpp:683,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/librepgp/stream-common.cpp:683,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - buf
    argTypes:
    - pgp_dest_t
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 684
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 684
    functionName: dst_write
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 26
    functionsReached:
    - std::vector<uint8_t>::size
    - std::vector<uint8_t>::data
    - dst_write
    linkageType: ''
    returnType: void
    signature: void dst_write(pgp_dest_t &dst, const std::vector<uint8_t> &buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/rnp/src/librepgp/stream-common.cpp:693,1
    - Dst: vsnprintf
      Src: /src/rnp/src/librepgp/stream-common.cpp:694,1
    - Dst: va_end
      Src: /src/rnp/src/librepgp/stream-common.cpp:695,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:698,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-common.cpp:701,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - dst
    - format
    argTypes:
    - pgp_dest_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 686
    functionDepth: 2
    functionLinenumber: 686
    functionLinenumberEnd: 702
    functionName: dst_printf
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 49
    functionsReached:
    - RNP_LOG
    - va_start
    - dst_write
    - va_end
    - vsnprintf
    linkageType: ''
    returnType: void
    signature: void dst_printf(pgp_dest_t &dst, const char *format, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_dest_t*::write
      Src: /src/rnp/src/librepgp/stream-common.cpp:708,1
    - Dst: pgp_dest_t*::cache::data
      Src: /src/rnp/src/librepgp/stream-common.cpp:708,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 712
    functionName: dst_flush
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached:
    - pgp_dest_t*::write
    - pgp_dest_t*::cache::data
    linkageType: ''
    returnType: void
    signature: void dst_flush(pgp_dest_t *dst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dst_flush
      Src: /src/rnp/src/librepgp/stream-common.cpp:721,1
    - Dst: pgp_dest_t*::finish
      Src: /src/rnp/src/librepgp/stream-common.cpp:723,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 714
    functionDepth: 2
    functionLinenumber: 714
    functionLinenumberEnd: 729
    functionName: dst_finish
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 5
    functionsReached:
    - dst_flush
    - pgp_dest_t*::finish
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t dst_finish(pgp_dest_t *dst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dst_finish
      Src: /src/rnp/src/librepgp/stream-common.cpp:735,1
    - Dst: pgp_dest_t*::close
      Src: /src/rnp/src/librepgp/stream-common.cpp:739,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - dst
    - discard
    argTypes:
    - pgp_dest_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 731
    functionDepth: 3
    functionLinenumber: 731
    functionLinenumberEnd: 741
    functionName: dst_close
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 26
    functionsReached:
    - pgp_dest_t*::close
    - dst_finish
    linkageType: ''
    returnType: void
    signature: void dst_close(pgp_dest_t *dst, bool discard)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:756,1
    - Dst: write
      Src: /src/rnp/src/librepgp/stream-common.cpp:761,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:764,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 3
    argNames:
    - dst
    - buf
    - len
    argTypes:
    - pgp_dest_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 770
      start: 750
    functionDepth: 1
    functionLinenumber: 750
    functionLinenumberEnd: 770
    functionName: file_dst_write
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - write
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t file_dst_write(pgp_dest_t *dst, const void *buf, size_t
      len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/rnp/src/librepgp/stream-common.cpp:781,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/librepgp/stream-common.cpp:783,1
    - Dst: pgp_dest_file_param_t*::path::c_str
      Src: /src/rnp/src/librepgp/stream-common.cpp:783,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - dst
    - discard
    argTypes:
    - pgp_dest_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 789
      start: 772
    functionDepth: 1
    functionLinenumber: 772
    functionLinenumberEnd: 789
    functionName: file_dst_close
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached:
    - pgp_dest_file_param_t*::path::c_str
    - rnp_unlink
    - close
    linkageType: ''
    returnType: void
    signature: void file_dst_close(pgp_dest_t *dst, bool discard)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_dest_t
      Src: /src/rnp/src/librepgp/stream-common.cpp:795,1
    - Dst: pgp_dest_file_param_t::pgp_dest_file_param_t
      Src: /src/rnp/src/librepgp/stream-common.cpp:797,1
    - Dst: std::unique_ptr::release
      Src: /src/rnp/src/librepgp/stream-common.cpp:800,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:802,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-common.cpp:802,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 14
    argCount: 3
    argNames:
    - dst
    - fd
    - path
    argTypes:
    - pgp_dest_t*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 810
      start: 791
    functionDepth: 1
    functionLinenumber: 791
    functionLinenumberEnd: 810
    functionName: init_fd_dest
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - std::unique_ptr::release
    - what
    - pgp_dest_t
    - pgp_dest_file_param_t::pgp_dest_file_param_t
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_fd_dest(pgp_dest_t *dst, int fd, const char *path)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rnp_stat
      Src: /src/rnp/src/librepgp/stream-common.cpp:817,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:819,1
    - Dst: S_ISDIR
      Src: /src/rnp/src/librepgp/stream-common.cpp:824,1
    - Dst: rmdir
      Src: /src/rnp/src/librepgp/stream-common.cpp:825,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:826,1
    - Dst: rnp_open
      Src: /src/rnp/src/librepgp/stream-common.cpp:841,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:843,1
    - Dst: init_fd_dest
      Src: /src/rnp/src/librepgp/stream-common.cpp:847,1
    - Dst: close
      Src: /src/rnp/src/librepgp/stream-common.cpp:849,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - dst
    - path
    - overwrite
    argTypes:
    - pgp_dest_t*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 852
      start: 812
    functionDepth: 2
    functionLinenumber: 812
    functionLinenumberEnd: 852
    functionName: init_file_dest
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - init_fd_dest
    - rnp_open
    - S_ISDIR
    - close
    - rnp_stat
    - rmdir
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_file_dest(pgp_dest_t *dst, const char *path, bool
      overwrite)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/rnp/src/librepgp/stream-common.cpp:865,1
    - Dst: pgp_dest_file_param_t*::path::size
      Src: /src/rnp/src/librepgp/stream-common.cpp:869,1
    - Dst: strlen
      Src: /src/rnp/src/librepgp/stream-common.cpp:869,1
    - Dst: pgp_dest_file_param_t*::path::begin
      Src: /src/rnp/src/librepgp/stream-common.cpp:874,1
    - Dst: pgp_dest_file_param_t*::path::end
      Src: /src/rnp/src/librepgp/stream-common.cpp:874,1
    - Dst: strlen
      Src: /src/rnp/src/librepgp/stream-common.cpp:874,1
    - Dst: rnp_stat
      Src: /src/rnp/src/librepgp/stream-common.cpp:877,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/librepgp/stream-common.cpp:877,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:879,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/librepgp/stream-common.cpp:885,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/librepgp/stream-common.cpp:885,1
    - Dst: S_ISDIR
      Src: /src/rnp/src/librepgp/stream-common.cpp:890,1
    - Dst: rmdir
      Src: /src/rnp/src/librepgp/stream-common.cpp:890,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/librepgp/stream-common.cpp:890,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:891,1
    - Dst: rnp_rename
      Src: /src/rnp/src/librepgp/stream-common.cpp:896,1
    - Dst: pgp_dest_file_param_t*::path::c_str
      Src: /src/rnp/src/librepgp/stream-common.cpp:896,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/librepgp/stream-common.cpp:896,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:897,1
    - Dst: strerror
      Src: /src/rnp/src/librepgp/stream-common.cpp:897,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:902,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-common.cpp:902,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 905
      start: 856
    functionDepth: 1
    functionLinenumber: 856
    functionLinenumberEnd: 905
    functionName: file_tmpdst_finish
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - std::string::c_str
    - rnp_unlink
    - close
    - S_ISDIR
    - rmdir
    - strerror
    - strlen
    - pgp_dest_file_param_t*::path::end
    - pgp_dest_file_param_t*::path::begin
    - rnp_stat
    - pgp_dest_file_param_t*::path::size
    - pgp_dest_file_param_t*::path::c_str
    - rnp_rename
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t file_tmpdst_finish(pgp_dest_t *dst)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/rnp/src/librepgp/stream-common.cpp:917,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/librepgp/stream-common.cpp:919,1
    - Dst: pgp_dest_file_param_t*::path::c_str
      Src: /src/rnp/src/librepgp/stream-common.cpp:919,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - dst
    - discard
    argTypes:
    - pgp_dest_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 907
    functionDepth: 1
    functionLinenumber: 907
    functionLinenumberEnd: 925
    functionName: file_tmpdst_close
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached:
    - pgp_dest_file_param_t*::path::c_str
    - rnp_unlink
    - close
    linkageType: ''
    returnType: void
    signature: void file_tmpdst_close(pgp_dest_t *dst, bool discard)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: string
      Src: /src/rnp/src/librepgp/stream-common.cpp:931,1
    - Dst: string
      Src: /src/rnp/src/librepgp/stream-common.cpp:931,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/librepgp/stream-common.cpp:933,1
    - Dst: mkstemp
      Src: /src/rnp/src/librepgp/stream-common.cpp:935,1
    - Dst: rnp_mkstemp
      Src: /src/rnp/src/librepgp/stream-common.cpp:937,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:940,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/librepgp/stream-common.cpp:941,1
    - Dst: init_fd_dest
      Src: /src/rnp/src/librepgp/stream-common.cpp:945,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/librepgp/stream-common.cpp:945,1
    - Dst: close
      Src: /src/rnp/src/librepgp/stream-common.cpp:947,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:951,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-common.cpp:951,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - dst
    - path
    - overwrite
    argTypes:
    - pgp_dest_t*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 927
    functionDepth: 2
    functionLinenumber: 927
    functionLinenumberEnd: 961
    functionName: init_tmpfile_dest
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - init_fd_dest
    - what
    - mkstemp
    - rnp_mkstemp
    - string
    - std::string::c_str
    - close
    - std::string::push_back
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_tmpfile_dest(pgp_dest_t *dst, const char *path, bool
      overwrite)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_fd_dest
      Src: /src/rnp/src/librepgp/stream-common.cpp:966,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 963
    functionDepth: 2
    functionLinenumber: 963
    functionLinenumberEnd: 972
    functionName: init_stdout_dest
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 2
    functionsReached:
    - init_fd_dest
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_stdout_dest(pgp_dest_t *dst)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:992,1
    - Dst: calloc
      Src: /src/rnp/src/librepgp/stream-common.cpp:1002,1
    - Dst: realloc
      Src: /src/rnp/src/librepgp/stream-common.cpp:1002,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-common.cpp:1007,1
    - Dst: secure_clear
      Src: /src/rnp/src/librepgp/stream-common.cpp:1008,1
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-common.cpp:1009,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-common.cpp:1015,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 31
    argCount: 3
    argNames:
    - dst
    - buf
    - len
    argTypes:
    - pgp_dest_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1017
      start: 974
    functionDepth: 1
    functionLinenumber: 974
    functionLinenumberEnd: 1017
    functionName: mem_dst_write
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - memcpy
    - realloc
    - free
    - calloc
    - secure_clear
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t mem_dst_write(pgp_dest_t *dst, const void *buf, size_t
      len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: secure_clear
      Src: /src/rnp/src/librepgp/stream-common.cpp:1029,1
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-common.cpp:1031,1
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-common.cpp:1033,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 2
    argNames:
    - dst
    - discard
    argTypes:
    - pgp_dest_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1035
    functionName: mem_dst_close
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached:
    - free
    - secure_clear
    linkageType: ''
    returnType: void
    signature: void mem_dst_close(pgp_dest_t *dst, bool discard)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_dst_common
      Src: /src/rnp/src/librepgp/stream-common.cpp:1042,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 3
    argNames:
    - dst
    - mem
    - len
    argTypes:
    - pgp_dest_t*
    - void*
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1037
    functionDepth: 2
    functionLinenumber: 1037
    functionLinenumberEnd: 1061
    functionName: init_mem_dest
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 9
    functionsReached:
    - init_dst_common
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_mem_dest(pgp_dest_t *dst, void *mem, unsigned len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:1067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - dst
    - discard
    argTypes:
    - pgp_dest_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1075
      start: 1063
    functionDepth: 1
    functionLinenumber: 1063
    functionLinenumberEnd: 1075
    functionName: mem_dest_discard_overflow
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: void
    signature: void mem_dest_discard_overflow(pgp_dest_t *dst, bool discard)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:1081,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1092
      start: 1077
    functionDepth: 1
    functionLinenumber: 1077
    functionLinenumberEnd: 1092
    functionName: mem_dest_get_memory
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: void
    signature: 'void *

      mem_dest_get_memory(pgp_dest_t *dst)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:1098,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:1105,1
    - Dst: dst_finish
      Src: /src/rnp/src/librepgp/stream-common.cpp:1109,1
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-common.cpp:1113,1
    - Dst: realloc
      Src: /src/rnp/src/librepgp/stream-common.cpp:1118,1
    - Dst: malloc
      Src: /src/rnp/src/librepgp/stream-common.cpp:1129,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-common.cpp:1131,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1134
      start: 1094
    functionDepth: 3
    functionLinenumber: 1094
    functionLinenumberEnd: 1134
    functionName: mem_dest_own_memory
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - malloc
    - memcpy
    - realloc
    - dst_finish
    - free
    linkageType: ''
    returnType: void
    signature: 'void *

      mem_dest_own_memory(pgp_dest_t *dst)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:1140,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - dst
    - secure
    argTypes:
    - pgp_dest_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1136
    functionDepth: 1
    functionLinenumber: 1136
    functionLinenumberEnd: 1147
    functionName: mem_dest_secure_memory
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: void
    signature: void mem_dest_secure_memory(pgp_dest_t *dst, bool secure)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - dst
    - buf
    - len
    argTypes:
    - pgp_dest_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1153
      start: 1149
    functionDepth: 0
    functionLinenumber: 1149
    functionLinenumberEnd: 1153
    functionName: null_dst_write
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t null_dst_write(pgp_dest_t *dst, const void *buf, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - discard
    argTypes:
    - pgp_dest_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1159
      start: 1155
    functionDepth: 0
    functionLinenumber: 1155
    functionLinenumberEnd: 1159
    functionName: null_dst_close
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void null_dst_close(pgp_dest_t *dst, bool discard)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1174
      start: 1161
    functionDepth: 0
    functionLinenumber: 1161
    functionLinenumberEnd: 1174
    functionName: init_null_dest
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_null_dest(pgp_dest_t *dst)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/rnp/src/librepgp/stream-common.cpp:1180,1
    - Dst: pgp_source_t*::read
      Src: /src/rnp/src/librepgp/stream-common.cpp:1190,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-common.cpp:1203,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-common.cpp:1205,1
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-common.cpp:1212,1
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-common.cpp:1215,1
    - Dst: dst_flush
      Src: /src/rnp/src/librepgp/stream-common.cpp:1219,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 37
    argCount: 3
    argNames:
    - src
    - dst
    - limit
    argTypes:
    - pgp_source_t*
    - pgp_dest_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1221
      start: 1176
    functionDepth: 2
    functionLinenumber: 1176
    functionLinenumberEnd: 1221
    functionName: dst_write_src
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 5
    functionsReached:
    - RNP_LOG
    - malloc
    - dst_flush
    - dst_write
    - free
    - pgp_source_t*::read
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t dst_write_src(pgp_source_t *src, pgp_dest_t *dst, uint64_t
      limit)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1223
    functionDepth: 0
    functionLinenumber: 1223
    functionLinenumberEnd: 1247
    functionName: have_pkesk_checksum
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool have_pkesk_checksum(pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: have_pkesk_checksum
      Src: /src/rnp/src/librepgp/stream-common.cpp:1253,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1254
      start: 1249
    functionDepth: 1
    functionLinenumber: 1249
    functionLinenumberEnd: 1254
    functionName: do_encrypt_pkesk_v3_alg_id
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 1
    functionsReached:
    - have_pkesk_checksum
    linkageType: ''
    returnType: bool
    signature: bool do_encrypt_pkesk_v3_alg_id(pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: have_pkesk_checksum
      Src: /src/rnp/src/librepgp/stream-common.cpp:1264,1
    - Dst: pgp_is_sa_aes
      Src: /src/rnp/src/librepgp/stream-common.cpp:1264,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 3
    argNames:
    - alg
    - salg
    - ver
    argTypes:
    - pgp_pubkey_alg_t
    - pgp_symm_alg_t
    - pgp_pkesk_version_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1265
      start: 1260
    functionDepth: 1
    functionLinenumber: 1260
    functionLinenumberEnd: 1265
    functionName: check_enforce_aes_v3_pkesk
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 1
    functionsReached:
    - have_pkesk_checksum
    - pgp_is_sa_aes
    linkageType: ''
    returnType: bool
    signature: bool check_enforce_aes_v3_pkesk(pgp_pubkey_alg_t alg, pgp_symm_alg_t
      salg, pgp_pkesk_version_t ver)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_cipher_aead_set_ad
      Src: /src/rnp/src/librepgp/stream-common.cpp:1279,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - crypt
    - skey
    argTypes:
    - pgp_crypt_t
    - pgp_sk_sesskey_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1269
    functionDepth: 0
    functionLinenumber: 1269
    functionLinenumberEnd: 1280
    functionName: encrypted_sesk_set_ad
    functionSourceFile: /src/rnp/src/librepgp/stream-common.cpp
    functionUses: 2
    functionsReached:
    - pgp_cipher_aead_set_ad
    linkageType: ''
    returnType: bool
    signature: bool encrypted_sesk_set_ad(pgp_crypt_t &crypt, pgp_sk_sesskey_t &skey)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 259
    functionName: pgp_dest_t
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_dest_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 260
    functionName: '&operator=(const pgp_dest_t &)'
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_dest_t
    signature: pgp_dest_t &operator=(const pgp_dest_t &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 261
    functionName: pgp_dest_t
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_dest_t(const pgp_dest_t &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 262
    functionName: '&operator=(pgp_dest_t &&)'
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_dest_t
    signature: pgp_dest_t &operator=(pgp_dest_t &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 401
    functionName: rnp::Source::Source
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Source(const Source &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 402
    functionName: rnp::Source::Source
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Source(Source &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 406
    functionName: rnp::Source::Source
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Source()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/rnp/src/librepgp/stream-common.h:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 411
    functionName: ~Source()
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void ~Source()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 417
    functionName: "&\n    src()"
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_source_t
    signature: "pgp_source_t &\n    src()"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: src
      Src: /src/rnp/src/librepgp/stream-common.h:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 423
    functionName: rnp::Source::size
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - src
    linkageType: ''
    returnType: size_t
    signature: size_t size()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: src
      Src: /src/rnp/src/librepgp/stream-common.h:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 429
    functionName: rnp::Source::readb
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - src
    linkageType: ''
    returnType: size_t
    signature: size_t readb()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: src
      Src: /src/rnp/src/librepgp/stream-common.h:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 435
    functionName: rnp::Source::eof
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - src
    linkageType: ''
    returnType: bool
    signature: bool eof()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: src
      Src: /src/rnp/src/librepgp/stream-common.h:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: rnp::Source::error
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - src
    linkageType: ''
    returnType: bool
    signature: bool error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 446
    functionName: rnp::MemorySource::MemorySource
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MemorySource(const MemorySource &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 447
    functionName: rnp::MemorySource::MemorySource
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MemorySource(MemorySource &&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_mem_src
      Src: /src/rnp/src/librepgp/stream-common.h:458,1
    - Dst: std::bad_alloc
      Src: /src/rnp/src/librepgp/stream-common.h:460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - mem
    - len
    - free
    argTypes:
    - void*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 456
    functionDepth: 3
    functionLinenumber: 456
    functionLinenumberEnd: 462
    functionName: rnp::MemorySource::MemorySource
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - std::bad_alloc
    - init_mem_src
    linkageType: ''
    returnType: void
    signature: void MemorySource(const void *mem, size_t len, bool free)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/librepgp/stream-common.h:469,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/librepgp/stream-common.h:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - vec
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 471
    functionName: rnp::MemorySource::MemorySource
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - std::vector<uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void MemorySource(const std::vector<uint8_t> &vec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_mem_src
      Src: /src/rnp/src/librepgp/stream-common.h:475,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-common.h:477,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 473
    functionDepth: 4
    functionLinenumber: 473
    functionLinenumberEnd: 479
    functionName: rnp::MemorySource::MemorySource
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - read_mem_src
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void MemorySource(pgp_source_t &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mem_src_get_memory
      Src: /src/rnp/src/librepgp/stream-common.h:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 485
    functionName: rnp::MemorySource::memory
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - mem_src_get_memory
    linkageType: ''
    returnType: void
    signature: "void *\n    memory(bool own = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 495
    functionName: rnp::Dest::Dest
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Dest(const Dest &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 496
    functionName: rnp::Dest::Dest
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Dest(Dest &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 500
    functionName: rnp::Dest::Dest
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Dest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dst_close
      Src: /src/rnp/src/librepgp/stream-common.h:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 502
    functionDepth: 4
    functionLinenumber: 502
    functionLinenumberEnd: 505
    functionName: ~Dest()
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - dst_close
    linkageType: ''
    returnType: void
    signature: void ~Dest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-common.h:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 511
    functionName: rnp::Dest::write
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - dst_write
    linkageType: ''
    returnType: void
    signature: void write(const void *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - discard
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 517
    functionName: rnp::Dest::set_discard
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_discard(bool discard)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 523
    functionName: "&\n    dst()"
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_dest_t
    signature: "pgp_dest_t &\n    dst()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 529
    functionName: rnp::Dest::writeb
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t writeb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 535
    functionName: rnp::Dest::werr
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t werr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 540
    functionName: rnp::MemoryDest::MemoryDest
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MemoryDest(const MemoryDest &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 541
    functionName: rnp::MemoryDest::MemoryDest
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MemoryDest(MemoryDest &&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_mem_dest
      Src: /src/rnp/src/librepgp/stream-common.h:545,1
    - Dst: std::bad_alloc
      Src: /src/rnp/src/librepgp/stream-common.h:547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 543
    functionDepth: 3
    functionLinenumber: 543
    functionLinenumberEnd: 550
    functionName: rnp::MemoryDest::MemoryDest
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 4
    functionsReached:
    - init_mem_dest
    - std::bad_alloc
    linkageType: ''
    returnType: void
    signature: void MemoryDest(void *mem = NULL, size_t len = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mem_dest_get_memory
      Src: /src/rnp/src/librepgp/stream-common.h:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 552
    functionDepth: 2
    functionLinenumber: 552
    functionLinenumberEnd: 556
    functionName: rnp::MemoryDest::memory
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - mem_dest_get_memory
    linkageType: ''
    returnType: void
    signature: "void *\n    memory()"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mem_dest_secure_memory
      Src: /src/rnp/src/librepgp/stream-common.h:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - secure
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 562
    functionName: rnp::MemoryDest::set_secure
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - mem_dest_secure_memory
    linkageType: ''
    returnType: void
    signature: void set_secure(bool secure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::MemoryDest::memory
      Src: /src/rnp/src/librepgp/stream-common.h:567,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/librepgp/stream-common.h:568,1
    - Dst: writeb
      Src: /src/rnp/src/librepgp/stream-common.h:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 564
    functionDepth: 3
    functionLinenumber: 564
    functionLinenumberEnd: 569
    functionName: rnp::MemoryDest::to_vector
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 4
    functionsReached:
    - std::vector<uint8_t>
    - rnp::MemoryDest::memory
    - writeb
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> to_vector()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 401
      start: 401
    functionDepth: 0
    functionLinenumber: 401
    functionLinenumberEnd: 401
    functionName: rnp::Source::Source
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Source(const Source &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 402
    functionDepth: 0
    functionLinenumber: 402
    functionLinenumberEnd: 402
    functionName: rnp::Source::Source
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Source(Source &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 406
    functionName: rnp::Source::Source
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Source()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/rnp/src/librepgp/stream-common.h:410,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 408
    functionDepth: 0
    functionLinenumber: 408
    functionLinenumberEnd: 411
    functionName: ~Source()
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void ~Source()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 417
    functionName: "&\n    src()"
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_source_t
    signature: "pgp_source_t &\n    src()"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: src
      Src: /src/rnp/src/librepgp/stream-common.h:422,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 423
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 423
    functionName: rnp::Source::size
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - src
    linkageType: ''
    returnType: size_t
    signature: size_t size()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: src
      Src: /src/rnp/src/librepgp/stream-common.h:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 429
    functionName: rnp::Source::readb
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - src
    linkageType: ''
    returnType: size_t
    signature: size_t readb()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: src
      Src: /src/rnp/src/librepgp/stream-common.h:434,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 435
    functionName: rnp::Source::eof
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - src
    linkageType: ''
    returnType: bool
    signature: bool eof()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: src
      Src: /src/rnp/src/librepgp/stream-common.h:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: rnp::Source::error
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - src
    linkageType: ''
    returnType: bool
    signature: bool error()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 446
    functionDepth: 0
    functionLinenumber: 446
    functionLinenumberEnd: 446
    functionName: rnp::MemorySource::MemorySource
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MemorySource(const MemorySource &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 447
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 447
    functionName: rnp::MemorySource::MemorySource
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MemorySource(MemorySource &&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_mem_src
      Src: /src/rnp/src/librepgp/stream-common.h:458,1
    - Dst: std::bad_alloc
      Src: /src/rnp/src/librepgp/stream-common.h:460,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - mem
    - len
    - free
    argTypes:
    - void*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 456
    functionDepth: 3
    functionLinenumber: 456
    functionLinenumberEnd: 462
    functionName: rnp::MemorySource::MemorySource
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - std::bad_alloc
    - init_mem_src
    linkageType: ''
    returnType: void
    signature: void MemorySource(const void *mem, size_t len, bool free)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/librepgp/stream-common.h:469,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/librepgp/stream-common.h:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - vec
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 471
      start: 469
    functionDepth: 1
    functionLinenumber: 469
    functionLinenumberEnd: 471
    functionName: rnp::MemorySource::MemorySource
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - std::vector<uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void MemorySource(const std::vector<uint8_t> &vec)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_mem_src
      Src: /src/rnp/src/librepgp/stream-common.h:475,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-common.h:477,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 473
    functionDepth: 4
    functionLinenumber: 473
    functionLinenumberEnd: 479
    functionName: rnp::MemorySource::MemorySource
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - read_mem_src
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void MemorySource(pgp_source_t &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mem_src_get_memory
      Src: /src/rnp/src/librepgp/stream-common.h:484,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 485
      start: 481
    functionDepth: 2
    functionLinenumber: 481
    functionLinenumberEnd: 485
    functionName: rnp::MemorySource::memory
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - mem_src_get_memory
    linkageType: ''
    returnType: void
    signature: "void *\n    memory(bool own = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 495
    functionName: rnp::Dest::Dest
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Dest(const Dest &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 496
    functionName: rnp::Dest::Dest
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Dest(Dest &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 500
    functionName: rnp::Dest::Dest
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Dest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dst_close
      Src: /src/rnp/src/librepgp/stream-common.h:504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 502
    functionDepth: 4
    functionLinenumber: 502
    functionLinenumberEnd: 505
    functionName: ~Dest()
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - dst_close
    linkageType: ''
    returnType: void
    signature: void ~Dest()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-common.h:510,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 507
    functionDepth: 2
    functionLinenumber: 507
    functionLinenumberEnd: 511
    functionName: rnp::Dest::write
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - dst_write
    linkageType: ''
    returnType: void
    signature: void write(const void *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - discard
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 513
    functionDepth: 0
    functionLinenumber: 513
    functionLinenumberEnd: 517
    functionName: rnp::Dest::set_discard
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_discard(bool discard)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 519
    functionDepth: 0
    functionLinenumber: 519
    functionLinenumberEnd: 523
    functionName: "&\n    dst()"
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_dest_t
    signature: "pgp_dest_t &\n    dst()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 525
    functionDepth: 0
    functionLinenumber: 525
    functionLinenumberEnd: 529
    functionName: rnp::Dest::writeb
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t writeb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 535
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 535
    functionName: rnp::Dest::werr
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t werr()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 540
    functionDepth: 0
    functionLinenumber: 540
    functionLinenumberEnd: 540
    functionName: rnp::MemoryDest::MemoryDest
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MemoryDest(const MemoryDest &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 541
    functionDepth: 0
    functionLinenumber: 541
    functionLinenumberEnd: 541
    functionName: rnp::MemoryDest::MemoryDest
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MemoryDest(MemoryDest &&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_mem_dest
      Src: /src/rnp/src/librepgp/stream-common.h:545,1
    - Dst: std::bad_alloc
      Src: /src/rnp/src/librepgp/stream-common.h:547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 543
    functionDepth: 3
    functionLinenumber: 543
    functionLinenumberEnd: 550
    functionName: rnp::MemoryDest::MemoryDest
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 4
    functionsReached:
    - init_mem_dest
    - std::bad_alloc
    linkageType: ''
    returnType: void
    signature: void MemoryDest(void *mem = NULL, size_t len = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mem_dest_get_memory
      Src: /src/rnp/src/librepgp/stream-common.h:555,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 552
    functionDepth: 2
    functionLinenumber: 552
    functionLinenumberEnd: 556
    functionName: rnp::MemoryDest::memory
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 1
    functionsReached:
    - mem_dest_get_memory
    linkageType: ''
    returnType: void
    signature: "void *\n    memory()"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mem_dest_secure_memory
      Src: /src/rnp/src/librepgp/stream-common.h:561,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - secure
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 562
      start: 558
    functionDepth: 2
    functionLinenumber: 558
    functionLinenumberEnd: 562
    functionName: rnp::MemoryDest::set_secure
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 0
    functionsReached:
    - mem_dest_secure_memory
    linkageType: ''
    returnType: void
    signature: void set_secure(bool secure)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::MemoryDest::memory
      Src: /src/rnp/src/librepgp/stream-common.h:567,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/librepgp/stream-common.h:568,1
    - Dst: writeb
      Src: /src/rnp/src/librepgp/stream-common.h:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 564
    functionDepth: 3
    functionLinenumber: 564
    functionLinenumberEnd: 569
    functionName: rnp::MemoryDest::to_vector
    functionSourceFile: /src/rnp/src/librepgp/stream-common.h
    functionUses: 4
    functionsReached:
    - std::vector<uint8_t>
    - rnp::MemoryDest::memory
    - writeb
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> to_vector()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t::peek_line
      Src: /src/rnp/src/librepgp/stream-armor.cpp:110,1
    - Dst: pgp_source_t::skip
      Src: /src/rnp/src/librepgp/stream-armor.cpp:120,1
    - Dst: pgp_source_t::skip_eol
      Src: /src/rnp/src/librepgp/stream-armor.cpp:121,1
    - Dst: memcmp
      Src: /src/rnp/src/librepgp/stream-armor.cpp:125,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 2
    argNames:
    - src
    - read
    argTypes:
    - pgp_source_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 104
    functionDepth: 3
    functionLinenumber: 104
    functionLinenumberEnd: 131
    functionName: armor_read_padding
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_t::skip_eol
    - pgp_source_t::peek_line
    - memcmp
    - pgp_source_t::skip
    linkageType: ''
    returnType: bool
    signature: bool armor_read_padding(pgp_source_t &src, size_t *read)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t::read
      Src: /src/rnp/src/librepgp/stream-armor.cpp:140,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:150,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:155,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/librepgp/stream-armor.cpp:158,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:159,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - src
    - read
    argTypes:
    - pgp_source_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 163
    functionName: base64_read_padding
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_source_t::eof
    - pgp_source_t::read
    linkageType: ''
    returnType: bool
    signature: bool base64_read_padding(pgp_source_t &src, size_t *read)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_armored_param_t*::readsrc::peek_line
      Src: /src/rnp/src/librepgp/stream-armor.cpp:172,1
    - Dst: pgp_source_armored_param_t*::readsrc::skip
      Src: /src/rnp/src/librepgp/stream-armor.cpp:192,1
    - Dst: pgp_source_armored_param_t*::readsrc::skip_eol
      Src: /src/rnp/src/librepgp/stream-armor.cpp:193,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 1
    argNames:
    - param
    argTypes:
    - pgp_source_armored_param_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 194
    functionName: armor_read_crc
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_armored_param_t*::readsrc::peek_line
    - pgp_source_armored_param_t*::readsrc::skip_eol
    - pgp_source_armored_param_t*::readsrc::skip
    linkageType: ''
    returnType: bool
    signature: bool armor_read_crc(pgp_source_armored_param_t *param)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_armored_param_t*::readsrc::skip_chars
      Src: /src/rnp/src/librepgp/stream-armor.cpp:200,1
    - Dst: std::string::size
      Src: /src/rnp/src/librepgp/stream-armor.cpp:205,1
    - Dst: pgp_source_armored_param_t*::readsrc::peek_eq
      Src: /src/rnp/src/librepgp/stream-armor.cpp:206,1
    - Dst: std::string::front
      Src: /src/rnp/src/librepgp/stream-armor.cpp:206,1
    - Dst: std::string::size
      Src: /src/rnp/src/librepgp/stream-armor.cpp:206,1
    - Dst: pgp_source_armored_param_t*::readsrc::skip
      Src: /src/rnp/src/librepgp/stream-armor.cpp:209,1
    - Dst: std::string::size
      Src: /src/rnp/src/librepgp/stream-armor.cpp:209,1
    - Dst: pgp_source_armored_param_t*::readsrc::skip_chars
      Src: /src/rnp/src/librepgp/stream-armor.cpp:210,1
    - Dst: pgp_source_armored_param_t*::readsrc::skip_eol
      Src: /src/rnp/src/librepgp/stream-armor.cpp:211,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - param
    argTypes:
    - pgp_source_armored_param_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 213
    functionName: armor_read_trailer
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_armored_param_t*::readsrc::skip_chars
    - pgp_source_armored_param_t*::readsrc::skip
    - pgp_source_armored_param_t*::readsrc::peek_eq
    - pgp_source_armored_param_t*::readsrc::skip_eol
    - std::string::front
    - std::string::size
    linkageType: ''
    returnType: bool
    signature: bool armor_read_trailer(pgp_source_armored_param_t *param)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_armored_param_t*::crc_ctx::add
      Src: /src/rnp/src/librepgp/stream-armor.cpp:225,1
    - Dst: pgp_source_armored_param_t*::crc_ctx::finish
      Src: /src/rnp/src/librepgp/stream-armor.cpp:229,1
    - Dst: memcmp
      Src: /src/rnp/src/librepgp/stream-armor.cpp:230,1
    - Dst: auto::data
      Src: /src/rnp/src/librepgp/stream-armor.cpp:230,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:231,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:235,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-armor.cpp:235,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 3
    argNames:
    - param
    - buf
    - len
    argTypes:
    - pgp_source_armored_param_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 238
    functionName: armored_update_crc
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - auto::data
    - pgp_source_armored_param_t*::crc_ctx::add
    - memcmp
    - pgp_source_armored_param_t*::crc_ctx::finish
    linkageType: ''
    returnType: bool
    signature: "bool armored_update_crc(pgp_source_armored_param_t *param,\n                   const
      void *                buf,\n                   size_t                      len,\n
      \                  bool                        finish = false)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-armor.cpp:263,1
    - Dst: pgp_source_armored_param_t*::crc_ctx::add
      Src: /src/rnp/src/librepgp/stream-armor.cpp:266,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:268,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-armor.cpp:268,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-armor.cpp:275,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-armor.cpp:286,1
    - Dst: pgp_source_armored_param_t*::readsrc::peek
      Src: /src/rnp/src/librepgp/stream-armor.cpp:290,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:294,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:316,1
    - Dst: memmove
      Src: /src/rnp/src/librepgp/stream-armor.cpp:345,1
    - Dst: pgp_source_armored_param_t*::readsrc::skip
      Src: /src/rnp/src/librepgp/stream-armor.cpp:351,1
    - Dst: pgp_source_armored_param_t*::readsrc::eof
      Src: /src/rnp/src/librepgp/stream-armor.cpp:353,1
    - Dst: pgp_source_armored_param_t*::readsrc::skip
      Src: /src/rnp/src/librepgp/stream-armor.cpp:354,1
    - Dst: pgp_source_armored_param_t*::readsrc::skip
      Src: /src/rnp/src/librepgp/stream-armor.cpp:361,1
    - Dst: base64_read_padding
      Src: /src/rnp/src/librepgp/stream-armor.cpp:366,1
    - Dst: armor_read_padding
      Src: /src/rnp/src/librepgp/stream-armor.cpp:372,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:373,1
    - Dst: armor_read_crc
      Src: /src/rnp/src/librepgp/stream-armor.cpp:377,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:378,1
    - Dst: armor_read_trailer
      Src: /src/rnp/src/librepgp/stream-armor.cpp:381,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:382,1
    - Dst: armored_update_crc
      Src: /src/rnp/src/librepgp/stream-armor.cpp:403,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:409,1
    - Dst: armored_update_crc
      Src: /src/rnp/src/librepgp/stream-armor.cpp:422,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-armor.cpp:438,1
    - Dst: armored_update_crc
      Src: /src/rnp/src/librepgp/stream-armor.cpp:439,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 156
    argCount: 4
    argNames:
    - src
    - buf
    - len
    - readres
    argTypes:
    - pgp_source_t*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 240
    functionDepth: 4
    functionLinenumber: 240
    functionLinenumberEnd: 448
    functionName: armored_src_read
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - memmove
    - pgp_source_armored_param_t*::readsrc::eof
    - what
    - base64_read_padding
    - memcpy
    - pgp_source_armored_param_t*::readsrc::skip
    - armor_read_padding
    - pgp_source_armored_param_t*::readsrc::peek
    - armor_read_trailer
    - pgp_source_armored_param_t*::crc_ctx::add
    - armored_update_crc
    - armor_read_crc
    linkageType: ''
    returnType: bool
    signature: bool armored_src_read(pgp_source_t *src, void *buf, size_t len, size_t
      *readres)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 456
    functionName: armored_src_close
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void armored_src_close(pgp_source_t *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/rnp/src/librepgp/stream-armor.cpp:465,1
    - Dst: std::string::find
      Src: /src/rnp/src/librepgp/stream-armor.cpp:466,1
    - Dst: std::string::find
      Src: /src/rnp/src/librepgp/stream-armor.cpp:470,1
    - Dst: std::string::assign
      Src: /src/rnp/src/librepgp/stream-armor.cpp:475,1
    - Dst: std::string::begin
      Src: /src/rnp/src/librepgp/stream-armor.cpp:475,1
    - Dst: std::string::begin
      Src: /src/rnp/src/librepgp/stream-armor.cpp:475,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - str
    - hdrlen
    - type
    argTypes:
    - std::string
    - size_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 462
    functionDepth: 1
    functionLinenumber: 462
    functionLinenumberEnd: 477
    functionName: find_armor_header
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached:
    - std::string::begin
    - std::string::find
    - strlen
    - std::string::assign
    linkageType: ''
    returnType: size_t
    signature: size_t find_armor_header(const std::string &str, size_t &hdrlen, std::string
      &type)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 14
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 496
    functionName: armor_str_to_data_type
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_armored_msg_t
    signature: pgp_armored_msg_t armor_str_to_data_type(const std::string &str)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t*::peek_eq
      Src: /src/rnp/src/librepgp/stream-armor.cpp:503,1
    - Dst: get_packet_type
      Src: /src/rnp/src/librepgp/stream-armor.cpp:507,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 25
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 528
    functionName: rnp_armor_guess_type
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_t*::peek_eq
    - get_packet_type
    linkageType: ''
    returnType: pgp_armored_msg_t
    signature: pgp_armored_msg_t rnp_armor_guess_type(pgp_source_t *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t*::peek
      Src: /src/rnp/src/librepgp/stream-armor.cpp:541,1
    - Dst: init_mem_src
      Src: /src/rnp/src/librepgp/stream-armor.cpp:543,1
    - Dst: init_armored_src
      Src: /src/rnp/src/librepgp/stream-armor.cpp:549,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/librepgp/stream-armor.cpp:551,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:552,1
    - Dst: rnp_armor_guess_type
      Src: /src/rnp/src/librepgp/stream-armor.cpp:555,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/librepgp/stream-armor.cpp:556,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/librepgp/stream-armor.cpp:557,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 530
    functionDepth: 3
    functionLinenumber: 530
    functionLinenumberEnd: 559
    functionName: rnp_armored_guess_type_by_readahead
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_source_t::close
    - init_armored_src
    - pgp_source_t*::peek
    - rnp_armor_guess_type
    - init_mem_src
    linkageType: ''
    returnType: pgp_armored_msg_t
    signature: pgp_armored_msg_t rnp_armored_guess_type_by_readahead(pgp_source_t
      *src)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t::peek
      Src: /src/rnp/src/librepgp/stream-armor.cpp:569,1
    - Dst: std::string::front
      Src: /src/rnp/src/librepgp/stream-armor.cpp:569,1
    - Dst: std::string::size
      Src: /src/rnp/src/librepgp/stream-armor.cpp:569,1
    - Dst: std::string::resize
      Src: /src/rnp/src/librepgp/stream-armor.cpp:572,1
    - Dst: find_armor_header
      Src: /src/rnp/src/librepgp/stream-armor.cpp:576,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:584,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 3
    argNames:
    - src
    - skip
    - check
    argTypes:
    - pgp_source_t
    - size_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 561
    functionDepth: 2
    functionLinenumber: 561
    functionLinenumberEnd: 593
    functionName: peek_armor_header
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_source_t::peek
    - std::string::resize
    - find_armor_header
    - std::string::front
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string peek_armor_header(pgp_source_t &src, size_t *skip, bool
      check)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_armored_guess_type_by_readahead
      Src: /src/rnp/src/librepgp/stream-armor.cpp:598,1
    - Dst: armor_str_to_data_type
      Src: /src/rnp/src/librepgp/stream-armor.cpp:602,1
    - Dst: peek_armor_header
      Src: /src/rnp/src/librepgp/stream-armor.cpp:602,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 595
    functionDepth: 4
    functionLinenumber: 595
    functionLinenumberEnd: 603
    functionName: rnp_armored_get_type
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached:
    - rnp_armored_guess_type_by_readahead
    - armor_str_to_data_type
    - peek_armor_header
    linkageType: ''
    returnType: pgp_armored_msg_t
    signature: pgp_armored_msg_t rnp_armored_get_type(pgp_source_t *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: peek_armor_header
      Src: /src/rnp/src/librepgp/stream-armor.cpp:609,1
    - Dst: std::string::empty
      Src: /src/rnp/src/librepgp/stream-armor.cpp:610,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:611,1
    - Dst: armor_str_to_data_type
      Src: /src/rnp/src/librepgp/stream-armor.cpp:615,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:617,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-armor.cpp:621,1
    - Dst: pgp_source_armored_param_t*::readsrc::skip
      Src: /src/rnp/src/librepgp/stream-armor.cpp:622,1
    - Dst: pgp_source_armored_param_t*::readsrc::skip_chars
      Src: /src/rnp/src/librepgp/stream-armor.cpp:623,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 1
    argNames:
    - param
    argTypes:
    - pgp_source_armored_param_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 605
    functionDepth: 3
    functionLinenumber: 605
    functionLinenumberEnd: 625
    functionName: armor_parse_header
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_source_armored_param_t*::readsrc::skip_chars
    - pgp_source_armored_param_t*::readsrc::skip
    - armor_str_to_data_type
    - std::move
    - std::string::empty
    - peek_armor_header
    linkageType: ''
    returnType: bool
    signature: bool armor_parse_header(pgp_source_armored_param_t *param)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t::peek_line
      Src: /src/rnp/src/librepgp/stream-armor.cpp:633,1
    - Dst: pgp_source_t::skip
      Src: /src/rnp/src/librepgp/stream-armor.cpp:635,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 641
      start: 627
    functionDepth: 2
    functionLinenumber: 627
    functionLinenumberEnd: 641
    functionName: armor_skip_line
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_t::peek_line
    - pgp_source_t::skip
    linkageType: ''
    returnType: bool
    signature: bool armor_skip_line(pgp_source_t &src)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - line
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 651
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 651
    functionName: is_base64_line
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_base64_line(const char *line, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 653
    functionDepth: 0
    functionLinenumber: 653
    functionLinenumberEnd: 658
    functionName: armor_header_known
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool armor_header_known(const std::string &name)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_armored_param_t*::readsrc::peek_line
      Src: /src/rnp/src/librepgp/stream-armor.cpp:667,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/stream-armor.cpp:667,1
    - Dst: std::vector::size
      Src: /src/rnp/src/librepgp/stream-armor.cpp:667,1
    - Dst: pgp_source_armored_param_t*::readsrc::skip
      Src: /src/rnp/src/librepgp/stream-armor.cpp:669,1
    - Dst: std::vector::size
      Src: /src/rnp/src/librepgp/stream-armor.cpp:670,1
    - Dst: armor_skip_line
      Src: /src/rnp/src/librepgp/stream-armor.cpp:670,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:671,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:674,1
    - Dst: is_base64_line
      Src: /src/rnp/src/librepgp/stream-armor.cpp:676,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/stream-armor.cpp:676,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:677,1
    - Dst: pgp_source_armored_param_t*::readsrc::skip
      Src: /src/rnp/src/librepgp/stream-armor.cpp:680,1
    - Dst: rnp::is_blank_line
      Src: /src/rnp/src/librepgp/stream-armor.cpp:681,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/stream-armor.cpp:681,1
    - Dst: pgp_source_armored_param_t*::readsrc::skip_eol
      Src: /src/rnp/src/librepgp/stream-armor.cpp:682,1
    - Dst: pgp_source_armored_param_t*::readsrc::skip_eol
      Src: /src/rnp/src/librepgp/stream-armor.cpp:686,1
    - Dst: std::vector::begin
      Src: /src/rnp/src/librepgp/stream-armor.cpp:689,1
    - Dst: std::vector::begin
      Src: /src/rnp/src/librepgp/stream-armor.cpp:689,1
    - Dst: std::string::find
      Src: /src/rnp/src/librepgp/stream-armor.cpp:690,1
    - Dst: armor_header_known
      Src: /src/rnp/src/librepgp/stream-armor.cpp:691,1
    - Dst: std::string::substr
      Src: /src/rnp/src/librepgp/stream-armor.cpp:691,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:694,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/librepgp/stream-armor.cpp:694,1
    - Dst: pgp_source_armored_param_t*::readsrc::skip_eol
      Src: /src/rnp/src/librepgp/stream-armor.cpp:697,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 30
    argCount: 1
    argNames:
    - param
    argTypes:
    - pgp_source_armored_param_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 701
      start: 660
    functionDepth: 3
    functionLinenumber: 660
    functionLinenumberEnd: 701
    functionName: armor_parse_headers
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_source_armored_param_t*::readsrc::peek_line
    - rnp::is_blank_line
    - std::string::find
    - pgp_source_armored_param_t*::readsrc::skip
    - armor_skip_line
    - std::string::c_str
    - pgp_source_armored_param_t*::readsrc::skip_eol
    - std::vector::begin
    - armor_header_known
    - is_base64_line
    - std::string::substr
    - std::vector::size
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool armor_parse_headers(pgp_source_armored_param_t *param)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: init_src_common
      Src: /src/rnp/src/librepgp/stream-armor.cpp:706,1
    - Dst: pgp_source_armored_param_t::pgp_source_armored_param_t
      Src: /src/rnp/src/librepgp/stream-armor.cpp:709,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:711,1
    - Dst: rnp::CRC24::create
      Src: /src/rnp/src/librepgp/stream-armor.cpp:728,1
    - Dst: armor_parse_header
      Src: /src/rnp/src/librepgp/stream-armor.cpp:731,1
    - Dst: pgp_source_armored_param_t*::readsrc::skip_eol
      Src: /src/rnp/src/librepgp/stream-armor.cpp:736,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:737,1
    - Dst: armor_parse_headers
      Src: /src/rnp/src/librepgp/stream-armor.cpp:742,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:743,1
    - Dst: pgp_source_t*::close
      Src: /src/rnp/src/librepgp/stream-armor.cpp:752,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 3
    argNames:
    - src
    - readsrc
    - noheaders
    argTypes:
    - pgp_source_t*
    - pgp_source_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 703
    functionDepth: 4
    functionLinenumber: 703
    functionLinenumberEnd: 755
    functionName: init_armored_src
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - rnp::CRC24::create
    - armor_parse_header
    - pgp_source_armored_param_t*::readsrc::skip_eol
    - armor_parse_headers
    - pgp_source_armored_param_t::pgp_source_armored_param_t
    - pgp_source_t*::close
    - init_src_common
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_armored_src(pgp_source_t *src, pgp_source_t *readsrc,
      bool noheaders)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-armor.cpp:762,1
    - Dst: strlen
      Src: /src/rnp/src/librepgp/stream-armor.cpp:762,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-armor.cpp:778,1
    - Dst: strlen
      Src: /src/rnp/src/librepgp/stream-armor.cpp:778,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-armor.cpp:779,1
    - Dst: strlen
      Src: /src/rnp/src/librepgp/stream-armor.cpp:779,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - param
    - finish
    argTypes:
    - pgp_dest_armored_param_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 758
    functionDepth: 2
    functionLinenumber: 758
    functionLinenumberEnd: 780
    functionName: armor_write_message_header
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached:
    - dst_write
    - strlen
    linkageType: ''
    returnType: void
    signature: void armor_write_message_header(pgp_dest_armored_param_t *param, bool
      finish)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-armor.cpp:786,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-armor.cpp:789,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - param
    argTypes:
    - pgp_dest_armored_param_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 782
    functionDepth: 2
    functionLinenumber: 782
    functionLinenumberEnd: 791
    functionName: armor_write_eol
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached:
    - dst_write
    linkageType: ''
    returnType: void
    signature: void armor_write_eol(pgp_dest_armored_param_t *param)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - param
    - ptr
    argTypes:
    - pgp_dest_armored_param_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 802
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 802
    functionName: armor_append_eol
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void armor_append_eol(pgp_dest_armored_param_t *param, uint8_t *&ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - out
    - in
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 822
    functionDepth: 0
    functionLinenumber: 822
    functionLinenumberEnd: 829
    functionName: armored_encode3
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void armored_encode3(uint8_t *out, uint8_t *in)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:836,1
    - Dst: pgp_dest_armored_param_t*::crc_ctx::add
      Src: /src/rnp/src/librepgp/stream-armor.cpp:844,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:846,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-armor.cpp:846,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-armor.cpp:857,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-armor.cpp:862,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-armor.cpp:863,1
    - Dst: armored_encode3
      Src: /src/rnp/src/librepgp/stream-armor.cpp:866,1
    - Dst: armor_append_eol
      Src: /src/rnp/src/librepgp/stream-armor.cpp:870,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-armor.cpp:886,1
    - Dst: armor_append_eol
      Src: /src/rnp/src/librepgp/stream-armor.cpp:913,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-armor.cpp:917,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-armor.cpp:921,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 57
    argCount: 3
    argNames:
    - dst
    - buf
    - len
    argTypes:
    - pgp_dest_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 831
    functionDepth: 2
    functionLinenumber: 831
    functionLinenumberEnd: 924
    functionName: armored_dst_write
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - memcpy
    - armored_encode3
    - pgp_dest_armored_param_t*::crc_ctx::add
    - dst_write
    - armor_append_eol
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t armored_dst_write(pgp_dest_t *dst, const void *buf, size_t
      len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-armor.cpp:938,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-armor.cpp:944,1
    - Dst: armor_write_eol
      Src: /src/rnp/src/librepgp/stream-armor.cpp:953,1
    - Dst: pgp_dest_armored_param_t*::crc_ctx::finish
      Src: /src/rnp/src/librepgp/stream-armor.cpp:960,1
    - Dst: armored_encode3
      Src: /src/rnp/src/librepgp/stream-armor.cpp:961,1
    - Dst: auto::data
      Src: /src/rnp/src/librepgp/stream-armor.cpp:961,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:963,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-armor.cpp:963,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-armor.cpp:965,1
    - Dst: armor_write_eol
      Src: /src/rnp/src/librepgp/stream-armor.cpp:966,1
    - Dst: armor_write_message_header
      Src: /src/rnp/src/librepgp/stream-armor.cpp:969,1
    - Dst: armor_write_eol
      Src: /src/rnp/src/librepgp/stream-armor.cpp:970,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 972
      start: 926
    functionDepth: 3
    functionLinenumber: 926
    functionLinenumberEnd: 972
    functionName: armored_dst_finish
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - armored_encode3
    - auto::data
    - pgp_dest_armored_param_t*::crc_ctx::finish
    - dst_write
    - armor_write_message_header
    - armor_write_eol
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t armored_dst_finish(pgp_dest_t *dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - discard
    argTypes:
    - pgp_dest_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 985
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 985
    functionName: armored_dst_close
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void armored_dst_close(pgp_dest_t *dst, bool discard)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp_dest_t
      Src: /src/rnp/src/librepgp/stream-armor.cpp:991,1
    - Dst: pgp_dest_armored_param_t::pgp_dest_armored_param_t
      Src: /src/rnp/src/librepgp/stream-armor.cpp:995,1
    - Dst: rnp::CRC24::create
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1020,1
    - Dst: armor_write_message_header
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1025,1
    - Dst: armor_write_eol
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1026,1
    - Dst: armor_write_eol
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1028,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 32
    argCount: 3
    argNames:
    - dst
    - writedst
    - msgtype
    argTypes:
    - pgp_dest_t*
    - pgp_dest_t*
    - pgp_armored_msg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1030
      start: 987
    functionDepth: 3
    functionLinenumber: 987
    functionLinenumberEnd: 1030
    functionName: init_armored_dst
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 4
    functionsReached:
    - pgp_dest_armored_param_t::pgp_dest_armored_param_t
    - rnp::CRC24::create
    - pgp_dest_t
    - armor_write_message_header
    - armor_write_eol
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_armored_dst(pgp_dest_t *dst, pgp_dest_t *writedst,
      pgp_armored_msg_t msgtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1032
    functionDepth: 0
    functionLinenumber: 1032
    functionLinenumberEnd: 1036
    functionName: is_armored_dest
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_armored_dest(pgp_dest_t *dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_armored_dest
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1042,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 2
    argNames:
    - dst
    - llen
    argTypes:
    - pgp_dest_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1038
    functionDepth: 1
    functionLinenumber: 1038
    functionLinenumberEnd: 1048
    functionName: armored_dst_set_line_length
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached:
    - is_armored_dest
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t armored_dst_set_line_length(pgp_dest_t *dst, size_t llen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t::peek
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1056,1
    - Dst: strlen
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1056,1
    - Dst: strstr
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1060,1
    - Dst: strstr
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1063,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1064
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1064
    functionName: pgp_source_t::is_armored
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 1
    functionsReached:
    - pgp_source_t::peek
    - strlen
    - strstr
    linkageType: ''
    returnType: bool
    signature: bool pgp_source_t::is_armored()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t::peek
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1072,1
    - Dst: strlen
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1072,1
    - Dst: strstr
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1076,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1066
    functionDepth: 1
    functionLinenumber: 1066
    functionLinenumberEnd: 1077
    functionName: pgp_source_t::is_cleartext
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_t::peek
    - strlen
    - strstr
    linkageType: ''
    returnType: bool
    signature: bool pgp_source_t::is_cleartext()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t::peek
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1085,1
    - Dst: is_base64_line
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1088,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1079
    functionDepth: 1
    functionLinenumber: 1079
    functionLinenumberEnd: 1089
    functionName: pgp_source_t::is_base64
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_t::peek
    - is_base64_line
    linkageType: ''
    returnType: bool
    signature: bool pgp_source_t::is_base64()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init_armored_src
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1098,1
    - Dst: dst_write_src
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1103,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1105,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1108,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - pgp_source_t*
    - pgp_dest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1110
      start: 1091
    functionDepth: 5
    functionLinenumber: 1091
    functionLinenumberEnd: 1110
    functionName: rnp_dearmor_source
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 2
    functionsReached:
    - init_armored_src
    - dst_write_src
    - pgp_source_t::close
    - RNP_LOG
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t rnp_dearmor_source(pgp_source_t *src, pgp_dest_t *dst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init_armored_dst
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1116,1
    - Dst: dst_write_src
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1121,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1123,1
    - Dst: dst_close
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - src
    - dst
    - msgtype
    argTypes:
    - pgp_source_t*
    - pgp_dest_t*
    - pgp_armored_msg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1128
      start: 1112
    functionDepth: 4
    functionLinenumber: 1112
    functionLinenumberEnd: 1128
    functionName: rnp_armor_source
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - init_armored_dst
    - dst_write_src
    - dst_close
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t rnp_armor_source(pgp_source_t *src, pgp_dest_t *dst, pgp_armored_msg_t
      msgtype)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t::is_base64
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1142,1
    - Dst: init_armored_src
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1143,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1145,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1146,1
    - Dst: pgp_source_t::is_armored
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1152,1
    - Dst: init_armored_src
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1153,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1155,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1156,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1164,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1165,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - readsrc
    - flags
    argTypes:
    - pgp_source_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1136
    functionDepth: 5
    functionLinenumber: 1136
    functionLinenumberEnd: 1168
    functionName: rnp::ArmoredSource::ArmoredSource
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - init_armored_src
    - pgp_source_t::is_armored
    - pgp_source_t::is_base64
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void ArmoredSource::ArmoredSource(pgp_source_t &readsrc, uint32_t flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eof
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1173,1
    - Dst: error
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1173,1
    - Dst: close
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1176,1
    - Dst: init_armored_src
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1177,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1170
    functionDepth: 5
    functionLinenumber: 1170
    functionLinenumberEnd: 1181
    functionName: rnp::ArmoredSource::restart
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 5
    functionsReached:
    - error
    - init_armored_src
    - close
    - eof
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void ArmoredSource::restart()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1183
    functionDepth: 0
    functionLinenumber: 1183
    functionLinenumberEnd: 1187
    functionName: '&

      ArmoredSource::src()'
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_source_t
    signature: 'pgp_source_t &

      ArmoredSource::src()'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t::is_base64
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1142,1
    - Dst: init_armored_src
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1143,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1145,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1146,1
    - Dst: pgp_source_t::is_armored
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1152,1
    - Dst: init_armored_src
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1153,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1155,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1156,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1164,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1165,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 23
    argCount: 2
    argNames:
    - readsrc
    - flags
    argTypes:
    - pgp_source_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1168
      start: 1136
    functionDepth: 5
    functionLinenumber: 1136
    functionLinenumberEnd: 1168
    functionName: rnp::ArmoredSource::ArmoredSource
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - init_armored_src
    - pgp_source_t::is_armored
    - pgp_source_t::is_base64
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void ArmoredSource::ArmoredSource(pgp_source_t &readsrc, uint32_t flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: eof
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1173,1
    - Dst: error
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1173,1
    - Dst: close
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1176,1
    - Dst: init_armored_src
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1177,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-armor.cpp:1179,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1181
      start: 1170
    functionDepth: 5
    functionLinenumber: 1170
    functionLinenumberEnd: 1181
    functionName: rnp::ArmoredSource::restart
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 5
    functionsReached:
    - error
    - init_armored_src
    - close
    - eof
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void ArmoredSource::restart()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1187
      start: 1183
    functionDepth: 0
    functionLinenumber: 1183
    functionLinenumberEnd: 1187
    functionName: '&

      ArmoredSource::src()'
    functionSourceFile: /src/rnp/src/librepgp/stream-armor.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_source_t
    signature: 'pgp_source_t &

      ArmoredSource::src()'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stream_pkt_type
      Src: /src/rnp/src/librepgp/stream-key.cpp:63,1
    - Dst: std::set<pgp_pkt_type_t>::find
      Src: /src/rnp/src/librepgp/stream-key.cpp:70,1
    - Dst: std::set<pgp_pkt_type_t>::end
      Src: /src/rnp/src/librepgp/stream-key.cpp:70,1
    - Dst: stream_skip_packet
      Src: /src/rnp/src/librepgp/stream-key.cpp:74,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:75,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 2
    argNames:
    - src
    - pkts
    argTypes:
    - pgp_source_t
    - std::set<pgp_pkt_type_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 81
    functionName: skip_pgp_packets
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - std::set<pgp_pkt_type_t>::find
    - stream_skip_packet
    - stream_pkt_type
    - std::set<pgp_pkt_type_t>::end
    linkageType: ''
    returnType: bool
    signature: bool skip_pgp_packets(pgp_source_t &src, const std::set<pgp_pkt_type_t>
      &pkts)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stream_pkt_type
      Src: /src/rnp/src/librepgp/stream-key.cpp:87,1
    - Dst: pgp::pkt::Signature::Signature
      Src: /src/rnp/src/librepgp/stream-key.cpp:90,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/librepgp/stream-key.cpp:91,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:93,1
    - Dst: pgp::pkt::Signatures::emplace_back
      Src: /src/rnp/src/librepgp/stream-key.cpp:98,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-key.cpp:98,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:101,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-key.cpp:101,1
    - Dst: skip_pgp_packets
      Src: /src/rnp/src/librepgp/stream-key.cpp:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - src
    - sigs
    - skiperrors
    argTypes:
    - pgp_source_t
    - pgp::pkt::Signatures
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 109
    functionName: process_pgp_key_signatures
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - skip_pgp_packets
    - pgp::pkt::Signature::Signature
    - what
    - pgp::pkt::Signature::parse
    - pgp::pkt::Signatures::emplace_back
    - stream_pkt_type
    - std::move
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t process_pgp_key_signatures(pgp_source_t &src, pgp::pkt::Signatures
      &sigs, bool skiperrors)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp_transferable_userid_t::uid::parse
      Src: /src/rnp/src/librepgp/stream-key.cpp:117,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:122,1
    - Dst: skip_pgp_packets
      Src: /src/rnp/src/librepgp/stream-key.cpp:125,1
    - Dst: process_pgp_key_signatures
      Src: /src/rnp/src/librepgp/stream-key.cpp:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - src
    - uid
    - skiperrors
    argTypes:
    - pgp_source_t
    - pgp_transferable_userid_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 111
    functionDepth: 3
    functionLinenumber: 111
    functionLinenumberEnd: 129
    functionName: process_pgp_userid
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - skip_pgp_packets
    - process_pgp_key_signatures
    - pgp_transferable_userid_t::uid::parse
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t process_pgp_userid(pgp_source_t &src, pgp_transferable_userid_t
      &uid, bool skiperrors)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp_transferable_subkey_t
      Src: /src/rnp/src/librepgp/stream-key.cpp:135,1
    - Dst: is_subkey_pkt
      Src: /src/rnp/src/librepgp/stream-key.cpp:137,1
    - Dst: stream_pkt_type
      Src: /src/rnp/src/librepgp/stream-key.cpp:137,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:138,1
    - Dst: pgp_transferable_subkey_t::subkey::parse
      Src: /src/rnp/src/librepgp/stream-key.cpp:144,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:146,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-key.cpp:146,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:150,1
    - Dst: skip_pgp_packets
      Src: /src/rnp/src/librepgp/stream-key.cpp:155,1
    - Dst: process_pgp_key_signatures
      Src: /src/rnp/src/librepgp/stream-key.cpp:159,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 3
    argNames:
    - src
    - subkey
    - skiperrors
    argTypes:
    - pgp_source_t
    - pgp_transferable_subkey_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 131
    functionDepth: 3
    functionLinenumber: 131
    functionLinenumberEnd: 160
    functionName: process_pgp_subkey
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - is_subkey_pkt
    - skip_pgp_packets
    - what
    - pgp_transferable_subkey_t
    - process_pgp_key_signatures
    - stream_pkt_type
    - pgp_transferable_subkey_t::subkey::parse
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t process_pgp_subkey(pgp_source_t &src, pgp_transferable_subkey_t
      &subkey, bool skiperrors)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: stream_pkt_type
      Src: /src/rnp/src/librepgp/stream-key.cpp:170,1
    - Dst: is_subkey_pkt
      Src: /src/rnp/src/librepgp/stream-key.cpp:171,1
    - Dst: pgp_transferable_subkey_t::pgp_transferable_subkey_t
      Src: /src/rnp/src/librepgp/stream-key.cpp:172,1
    - Dst: process_pgp_subkey
      Src: /src/rnp/src/librepgp/stream-key.cpp:173,1
    - Dst: pgp_transferable_key_t::subkeys::push_back
      Src: /src/rnp/src/librepgp/stream-key.cpp:176,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-key.cpp:176,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:178,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-key.cpp:178,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:192,1
    - Dst: stream_skip_packet
      Src: /src/rnp/src/librepgp/stream-key.cpp:193,1
    - Dst: is_primary_key_pkt
      Src: /src/rnp/src/librepgp/stream-key.cpp:200,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:201,1
    - Dst: process_pgp_key
      Src: /src/rnp/src/librepgp/stream-key.cpp:204,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:206,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-key.cpp:206,1
    - Dst: code
      Src: /src/rnp/src/librepgp/stream-key.cpp:207,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:209,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-key.cpp:209,1
    - Dst: skip_pgp_packets
      Src: /src/rnp/src/librepgp/stream-key.cpp:214,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 4
    argNames:
    - '          src'
    - key
    - allowsub
    - skiperrors
    argTypes:
    - pgp_source_t
    - pgp_transferable_key_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 162
    functionDepth: 4
    functionLinenumber: 162
    functionLinenumberEnd: 228
    functionName: process_pgp_key_auto
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - is_subkey_pkt
    - skip_pgp_packets
    - what
    - process_pgp_subkey
    - stream_skip_packet
    - is_primary_key_pkt
    - process_pgp_key
    - code
    - stream_pkt_type
    - pgp_transferable_key_t::subkeys::push_back
    - pgp_transferable_subkey_t::pgp_transferable_subkey_t
    - std::move
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t process_pgp_key_auto(pgp_source_t &          src,\n                     pgp_transferable_key_t
      &key,\n                     bool                    allowsub,\n                     bool
      \                   skiperrors)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_sequence_t::keys::clear
      Src: /src/rnp/src/librepgp/stream-key.cpp:236,1
    - Dst: rnp::ArmoredSource::error
      Src: /src/rnp/src/librepgp/stream-key.cpp:242,1
    - Dst: rnp::ArmoredSource::eof
      Src: /src/rnp/src/librepgp/stream-key.cpp:244,1
    - Dst: rnp::ArmoredSource::multiple
      Src: /src/rnp/src/librepgp/stream-key.cpp:244,1
    - Dst: rnp::ArmoredSource::restart
      Src: /src/rnp/src/librepgp/stream-key.cpp:245,1
    - Dst: rnp::ArmoredSource::eof
      Src: /src/rnp/src/librepgp/stream-key.cpp:247,1
    - Dst: pgp_transferable_key_t::pgp_transferable_key_t
      Src: /src/rnp/src/librepgp/stream-key.cpp:251,1
    - Dst: process_pgp_key_auto
      Src: /src/rnp/src/librepgp/stream-key.cpp:252,1
    - Dst: rnp::ArmoredSource::src
      Src: /src/rnp/src/librepgp/stream-key.cpp:252,1
    - Dst: pgp_key_sequence_t::keys::clear
      Src: /src/rnp/src/librepgp/stream-key.cpp:254,1
    - Dst: pgp_key_sequence_t::keys::emplace_back
      Src: /src/rnp/src/librepgp/stream-key.cpp:264,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-key.cpp:264,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:268,1
    - Dst: rnp::ArmoredSource::error
      Src: /src/rnp/src/librepgp/stream-key.cpp:271,1
    - Dst: pgp_key_sequence_t::keys::clear
      Src: /src/rnp/src/librepgp/stream-key.cpp:272,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 28
    argCount: 3
    argNames:
    - src
    - keys
    - skiperrors
    argTypes:
    - pgp_source_t
    - pgp_key_sequence_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 230
    functionDepth: 6
    functionLinenumber: 230
    functionLinenumberEnd: 276
    functionName: process_pgp_keys
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 6
    functionsReached:
    - RNP_LOG
    - pgp_transferable_key_t::pgp_transferable_key_t
    - rnp::ArmoredSource::restart
    - pgp_key_sequence_t::keys::clear
    - rnp::ArmoredSource::multiple
    - pgp_key_sequence_t::keys::emplace_back
    - rnp::ArmoredSource::src
    - rnp::ArmoredSource::eof
    - process_pgp_key_auto
    - std::move
    - rnp::ArmoredSource::error
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t process_pgp_keys(pgp_source_t &src, pgp_key_sequence_t
      &keys, bool skiperrors)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pgp_transferable_key_t
      Src: /src/rnp/src/librepgp/stream-key.cpp:281,1
    - Dst: rnp::ArmoredSource::readb
      Src: /src/rnp/src/librepgp/stream-key.cpp:287,1
    - Dst: stream_pkt_type
      Src: /src/rnp/src/librepgp/stream-key.cpp:288,1
    - Dst: rnp::ArmoredSource::src
      Src: /src/rnp/src/librepgp/stream-key.cpp:288,1
    - Dst: is_primary_key_pkt
      Src: /src/rnp/src/librepgp/stream-key.cpp:289,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:290,1
    - Dst: pgp_transferable_key_t::key::parse
      Src: /src/rnp/src/librepgp/stream-key.cpp:294,1
    - Dst: rnp::ArmoredSource::src
      Src: /src/rnp/src/librepgp/stream-key.cpp:294,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:296,1
    - Dst: skip_pgp_packets
      Src: /src/rnp/src/librepgp/stream-key.cpp:301,1
    - Dst: rnp::ArmoredSource::src
      Src: /src/rnp/src/librepgp/stream-key.cpp:301,1
    - Dst: process_pgp_key_signatures
      Src: /src/rnp/src/librepgp/stream-key.cpp:306,1
    - Dst: rnp::ArmoredSource::src
      Src: /src/rnp/src/librepgp/stream-key.cpp:306,1
    - Dst: stream_pkt_type
      Src: /src/rnp/src/librepgp/stream-key.cpp:311,1
    - Dst: rnp::ArmoredSource::src
      Src: /src/rnp/src/librepgp/stream-key.cpp:311,1
    - Dst: process_pgp_userid
      Src: /src/rnp/src/librepgp/stream-key.cpp:317,1
    - Dst: rnp::ArmoredSource::src
      Src: /src/rnp/src/librepgp/stream-key.cpp:317,1
    - Dst: skip_pgp_packets
      Src: /src/rnp/src/librepgp/stream-key.cpp:319,1
    - Dst: rnp::ArmoredSource::src
      Src: /src/rnp/src/librepgp/stream-key.cpp:319,1
    - Dst: pgp_transferable_key_t::userids::push_back
      Src: /src/rnp/src/librepgp/stream-key.cpp:326,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-key.cpp:326,1
    - Dst: stream_pkt_type
      Src: /src/rnp/src/librepgp/stream-key.cpp:330,1
    - Dst: rnp::ArmoredSource::src
      Src: /src/rnp/src/librepgp/stream-key.cpp:330,1
    - Dst: is_subkey_pkt
      Src: /src/rnp/src/librepgp/stream-key.cpp:331,1
    - Dst: pgp_transferable_subkey_t::pgp_transferable_subkey_t
      Src: /src/rnp/src/librepgp/stream-key.cpp:335,1
    - Dst: process_pgp_subkey
      Src: /src/rnp/src/librepgp/stream-key.cpp:336,1
    - Dst: rnp::ArmoredSource::src
      Src: /src/rnp/src/librepgp/stream-key.cpp:336,1
    - Dst: skip_pgp_packets
      Src: /src/rnp/src/librepgp/stream-key.cpp:338,1
    - Dst: rnp::ArmoredSource::src
      Src: /src/rnp/src/librepgp/stream-key.cpp:338,1
    - Dst: pgp_transferable_key_t::subkeys::emplace_back
      Src: /src/rnp/src/librepgp/stream-key.cpp:345,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-key.cpp:345,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 44
    argCount: 3
    argNames:
    - src
    - key
    - skiperrors
    argTypes:
    - pgp_source_t
    - pgp_transferable_key_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 348
      start: 278
    functionDepth: 4
    functionLinenumber: 278
    functionLinenumberEnd: 348
    functionName: process_pgp_key
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - skip_pgp_packets
    - process_pgp_userid
    - pgp_transferable_key_t::userids::push_back
    - is_subkey_pkt
    - process_pgp_subkey
    - pgp_transferable_key_t::subkeys::emplace_back
    - is_primary_key_pkt
    - pgp_transferable_key_t
    - rnp::ArmoredSource::readb
    - pgp_transferable_key_t::key::parse
    - process_pgp_key_signatures
    - stream_pkt_type
    - pgp_transferable_subkey_t::pgp_transferable_subkey_t
    - rnp::ArmoredSource::src
    - std::move
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t process_pgp_key(pgp_source_t &src, pgp_transferable_key_t
      &key, bool skiperrors)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp_cipher_block_size
      Src: /src/rnp/src/librepgp/stream-key.cpp:358,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:359,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:366,1
    - Dst: read_uint16
      Src: /src/rnp/src/librepgp/stream-key.cpp:369,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-key.cpp:370,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:373,1
    - Dst: pgp_cipher_cfb_decrypt
      Src: /src/rnp/src/librepgp/stream-key.cpp:376,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:379,1
    - Dst: pgp_cipher_cfb_resync
      Src: /src/rnp/src/librepgp/stream-key.cpp:382,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-key.cpp:389,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 4
    argNames:
    - crypt
    - dec
    - enc
    - len
    argTypes:
    - pgp_crypt_t*
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 350
    functionDepth: 1
    functionLinenumber: 350
    functionLinenumberEnd: 391
    functionName: decrypt_secret_key_v3
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_cipher_cfb_resync
    - memcpy
    - pgp_cipher_cfb_decrypt
    - read_uint16
    - pgp_cipher_block_size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t decrypt_secret_key_v3(pgp_crypt_t *crypt, uint8_t *dec,
      const uint8_t *enc, size_t len)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:412,1
    - Dst: read_uint16
      Src: /src/rnp/src/librepgp/stream-key.cpp:420,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:422,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:429,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/librepgp/stream-key.cpp:435,1
    - Dst: assert
      Src: /src/rnp/src/librepgp/stream-key.cpp:436,1
    - Dst: auto::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:436,1
    - Dst: auto::add
      Src: /src/rnp/src/librepgp/stream-key.cpp:438,1
    - Dst: auto::finish
      Src: /src/rnp/src/librepgp/stream-key.cpp:439,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:441,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-key.cpp:441,1
    - Dst: memcmp
      Src: /src/rnp/src/librepgp/stream-key.cpp:444,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:455,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:464,1
    - Dst: pgp_key_pkt_t::material::parse_secret
      Src: /src/rnp/src/librepgp/stream-key.cpp:467,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-key.cpp:471,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:472,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:477,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-key.cpp:477,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 68
    argCount: 3
    argNames:
    - key
    - mpis
    - len
    argTypes:
    - pgp_key_pkt_t
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (hash->size() == sizeof(hval))
      pos:
        line_end: 435
        line_start: 435
        source_file: /src/rnp/src/librepgp/stream-key.cpp
    constantsTouched: []
    func_position:
      end: 480
      start: 393
    functionDepth: 1
    functionLinenumber: 393
    functionLinenumberEnd: 480
    functionName: parse_secret_key_mpis
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - auto::size
    - pgp_key_pkt_t::material::parse_secret
    - memcmp
    - assert
    - read_uint16
    - pgp_packet_body_t::left
    - rnp::Hash::create
    - auto::add
    - auto::finish
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t parse_secret_key_mpis(pgp_key_pkt_t &key, const uint8_t
      *mpis, size_t len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pgp_cipher_aead_nonce_len
      Src: /src/rnp/src/librepgp/stream-key.cpp:490,1
    - Dst: pgp_key_size
      Src: /src/rnp/src/librepgp/stream-key.cpp:493,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:495,1
    - Dst: rnp::Hkdf::create
      Src: /src/rnp/src/librepgp/stream-key.cpp:500,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/librepgp/stream-key.cpp:503,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/librepgp/stream-key.cpp:504,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/librepgp/stream-key.cpp:505,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/librepgp/stream-key.cpp:506,1
    - Dst: auto::extract_expand
      Src: /src/rnp/src/librepgp/stream-key.cpp:508,1
    - Dst: rnp::secure_vector<uint8_t>::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:510,1
    - Dst: rnp::secure_vector<uint8_t>::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:511,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:512,1
    - Dst: std::vector::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:513,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:514,1
    - Dst: pgp_cipher_aead_init
      Src: /src/rnp/src/librepgp/stream-key.cpp:517,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:520,1
    - Dst: secure_clear
      Src: /src/rnp/src/librepgp/stream-key.cpp:522,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:522,1
    - Dst: std::vector::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:522,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:523,1
    - Dst: secure_clear
      Src: /src/rnp/src/librepgp/stream-key.cpp:526,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:526,1
    - Dst: std::vector::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:526,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/librepgp/stream-key.cpp:532,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/librepgp/stream-key.cpp:533,1
    - Dst: write_uint32
      Src: /src/rnp/src/librepgp/stream-key.cpp:535,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/librepgp/stream-key.cpp:536,1
    - Dst: std::vector::end
      Src: /src/rnp/src/librepgp/stream-key.cpp:536,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/librepgp/stream-key.cpp:538,1
    - Dst: pgp_key_pkt_t*::material::write
      Src: /src/rnp/src/librepgp/stream-key.cpp:542,1
    - Dst: write_uint32
      Src: /src/rnp/src/librepgp/stream-key.cpp:545,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:545,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/librepgp/stream-key.cpp:546,1
    - Dst: std::vector::end
      Src: /src/rnp/src/librepgp/stream-key.cpp:546,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/librepgp/stream-key.cpp:549,1
    - Dst: std::vector::end
      Src: /src/rnp/src/librepgp/stream-key.cpp:549,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:549,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:549,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:549,1
    - Dst: pgp_cipher_aead_set_ad
      Src: /src/rnp/src/librepgp/stream-key.cpp:551,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:551,1
    - Dst: std::vector::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:551,1
    - Dst: pgp_cipher_aead_start
      Src: /src/rnp/src/librepgp/stream-key.cpp:553,1
    - Dst: pgp_cipher_aead_finish
      Src: /src/rnp/src/librepgp/stream-key.cpp:556,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-key.cpp:556,1
    - Dst: rnp::secure_vector<uint8_t>::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:556,1
    - Dst: rnp::secure_vector<uint8_t>::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:556,1
    - Dst: pgp_cipher_aead_destroy
      Src: /src/rnp/src/librepgp/stream-key.cpp:559,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 39
    argCount: 5
    argNames:
    - key
    - s2k_derived_key
    - in_vec
    - '      out_vec'
    - decrypt
    argTypes:
    - pgp_key_pkt_t*
    - rnp::secure_vector<uint8_t>
    - rnp::secure_vector<uint8_t>
    - rnp::secure_vector<uint8_t>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 483
    functionDepth: 1
    functionLinenumber: 483
    functionLinenumberEnd: 565
    functionName: crypt_secret_key_aead
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 0
    functionsReached:
    - data
    - pgp_cipher_aead_nonce_len
    - write_uint32
    - pgp_packet_body_t::size
    - pgp_cipher_aead_finish
    - auto::extract_expand
    - secure_clear
    - pgp_cipher_aead_set_ad
    - rnp::secure_vector<uint8_t>::data
    - std::vector::insert
    - rnp::Hkdf::create
    - rnp::secure_vector<uint8_t>::size
    - pgp_cipher_aead_init
    - RNP_LOG
    - pgp_cipher_aead_destroy
    - pgp_cipher_aead_start
    - pgp_key_size
    - std::vector::end
    - std::vector::size
    - std::vector::data
    - std::vector::push_back
    - pgp_packet_body_t::data
    - pgp_key_pkt_t*::material::write
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t crypt_secret_key_aead(pgp_key_pkt_t *                    key,\n
      \                     rnp::secure_vector<uint8_t> const &s2k_derived_key,\n
      \                     rnp::secure_vector<uint8_t> const &in_vec,\n                      rnp::secure_vector<uint8_t>
      &      out_vec,\n                      bool                               decrypt)"
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: is_secret_key_pkt
      Src: /src/rnp/src/librepgp/stream-key.cpp:574,1
    - Dst: pgp_key_pkt_t*::material::reset_validity
      Src: /src/rnp/src/librepgp/stream-key.cpp:578,1
    - Dst: parse_secret_key_mpis
      Src: /src/rnp/src/librepgp/stream-key.cpp:582,1
    - Dst: pgp_key_pkt_t*::sec_data::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:582,1
    - Dst: pgp_key_pkt_t*::sec_data::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:582,1
    - Dst: pgp_key_pkt_t*::sec_data::empty
      Src: /src/rnp/src/librepgp/stream-key.cpp:586,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:587,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:597,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:604,1
    - Dst: pgp_key_size
      Src: /src/rnp/src/librepgp/stream-key.cpp:610,1
    - Dst: pgp_s2k_derive_key
      Src: /src/rnp/src/librepgp/stream-key.cpp:612,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:612,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:613,1
    - Dst: pgp_key_pkt_t*::sec_data::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:618,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:626,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:626,1
    - Dst: pgp_key_pkt_t*::sec_data::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:627,1
    - Dst: pgp_key_pkt_t*::sec_data::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:628,1
    - Dst: pgp_key_pkt_t*::sec_data::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:628,1
    - Dst: crypt_secret_key_aead
      Src: /src/rnp/src/librepgp/stream-key.cpp:630,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:632,1
    - Dst: pgp_key_pkt_t*::sec_data::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:638,1
    - Dst: pgp_cipher_aead_tag_len
      Src: /src/rnp/src/librepgp/stream-key.cpp:638,1
    - Dst: parse_secret_key_mpis
      Src: /src/rnp/src/librepgp/stream-key.cpp:639,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:639,1
    - Dst: pgp_cipher_cfb_start
      Src: /src/rnp/src/librepgp/stream-key.cpp:643,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:644,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:645,1
    - Dst: is_rsa_key_alg
      Src: /src/rnp/src/librepgp/stream-key.cpp:651,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:652,1
    - Dst: decrypt_secret_key_v3
      Src: /src/rnp/src/librepgp/stream-key.cpp:656,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:657,1
    - Dst: pgp_key_pkt_t*::sec_data::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:657,1
    - Dst: pgp_key_pkt_t*::sec_data::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:657,1
    - Dst: pgp_cipher_cfb_decrypt
      Src: /src/rnp/src/librepgp/stream-key.cpp:665,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:666,1
    - Dst: pgp_key_pkt_t*::sec_data::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:666,1
    - Dst: pgp_key_pkt_t*::sec_data::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:666,1
    - Dst: pgp_cipher_cfb_finish
      Src: /src/rnp/src/librepgp/stream-key.cpp:673,1
    - Dst: parse_secret_key_mpis
      Src: /src/rnp/src/librepgp/stream-key.cpp:678,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:678,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:678,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:680,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-key.cpp:680,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 71
    argCount: 2
    argNames:
    - key
    - password
    argTypes:
    - pgp_key_pkt_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 568
    functionDepth: 2
    functionLinenumber: 568
    functionLinenumberEnd: 683
    functionName: decrypt_secret_key
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 5
    functionsReached:
    - pgp_key_pkt_t*::sec_data::empty
    - rnp::secure_bytes::size
    - pgp_cipher_cfb_decrypt
    - rnp::secure_bytes::data
    - crypt_secret_key_aead
    - rnp::secure_array::data
    - pgp_key_pkt_t*::sec_data::data
    - pgp_cipher_cfb_finish
    - RNP_LOG
    - parse_secret_key_mpis
    - is_rsa_key_alg
    - pgp_key_size
    - pgp_cipher_aead_tag_len
    - decrypt_secret_key_v3
    - what
    - pgp_cipher_cfb_start
    - pgp_key_pkt_t*::material::reset_validity
    - is_secret_key_pkt
    - pgp_key_pkt_t*::sec_data::size
    - pgp_s2k_derive_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t decrypt_secret_key(pgp_key_pkt_t *key, const char *password)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_pkt_t::material::write_secret
      Src: /src/rnp/src/librepgp/stream-key.cpp:689,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:703,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:704,1
    - Dst: pgp_packet_body_t::add_uint16
      Src: /src/rnp/src/librepgp/stream-key.cpp:706,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/librepgp/stream-key.cpp:711,1
    - Dst: auto::add
      Src: /src/rnp/src/librepgp/stream-key.cpp:712,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:712,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:712,1
    - Dst: assert
      Src: /src/rnp/src/librepgp/stream-key.cpp:713,1
    - Dst: auto::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:713,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-key.cpp:714,1
    - Dst: auto::finish
      Src: /src/rnp/src/librepgp/stream-key.cpp:714,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 2
    argNames:
    - body
    - key
    argTypes:
    - pgp_packet_body_t
    - pgp_key_pkt_t
    assertStmts:
    - condition: (hash->size() == PGP_SHA1_HASH_SIZE)
      pos:
        line_end: 712
        line_start: 712
        source_file: /src/rnp/src/librepgp/stream-key.cpp
    constantsTouched: []
    func_position:
      end: 715
      start: 685
    functionDepth: 1
    functionLinenumber: 685
    functionLinenumberEnd: 715
    functionName: write_secret_key_mpis
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add_uint16
    - auto::size
    - pgp_packet_body_t::data
    - pgp_packet_body_t::size
    - pgp_key_pkt_t::material::write_secret
    - pgp_packet_body_t::add
    - assert
    - rnp::Hash::create
    - auto::add
    - auto::finish
    linkageType: ''
    returnType: void
    signature: void write_secret_key_mpis(pgp_packet_body_t &body, pgp_key_pkt_t &key)
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: is_secret_key_pkt
      Src: /src/rnp/src/librepgp/stream-key.cpp:720,1
    - Dst: pgp_key_pkt_t*::material::secret
      Src: /src/rnp/src/librepgp/stream-key.cpp:720,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:731,1
    - Dst: pgp_packet_body_t::mark_secure
      Src: /src/rnp/src/librepgp/stream-key.cpp:738,1
    - Dst: write_secret_key_mpis
      Src: /src/rnp/src/librepgp/stream-key.cpp:739,1
    - Dst: secure_clear
      Src: /src/rnp/src/librepgp/stream-key.cpp:743,1
    - Dst: pgp_key_pkt_t*::sec_data::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:743,1
    - Dst: pgp_key_pkt_t*::sec_data::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:743,1
    - Dst: pgp_key_pkt_t*::sec_data::assign
      Src: /src/rnp/src/librepgp/stream-key.cpp:744,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:744,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:744,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:744,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:748,1
    - Dst: pgp_key_size
      Src: /src/rnp/src/librepgp/stream-key.cpp:753,1
    - Dst: pgp_block_size
      Src: /src/rnp/src/librepgp/stream-key.cpp:754,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:757,1
    - Dst: rnp::RNG::get
      Src: /src/rnp/src/librepgp/stream-key.cpp:762,1
    - Dst: pgp_key_pkt_t*::sec_protection::s2k::salt_size
      Src: /src/rnp/src/librepgp/stream-key.cpp:763,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:774,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:794,1
    - Dst: pgp_cipher_aead_tag_len
      Src: /src/rnp/src/librepgp/stream-key.cpp:802,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:803,1
    - Dst: pgp_cipher_aead_nonce_len
      Src: /src/rnp/src/librepgp/stream-key.cpp:807,1
    - Dst: rnp::RNG::get
      Src: /src/rnp/src/librepgp/stream-key.cpp:808,1
    - Dst: pgp_s2k_derive_key
      Src: /src/rnp/src/librepgp/stream-key.cpp:810,1
    - Dst: rnp::secure_vector::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:811,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:812,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:816,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:816,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:816,1
    - Dst: crypt_secret_key_aead
      Src: /src/rnp/src/librepgp/stream-key.cpp:817,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:819,1
    - Dst: secure_clear
      Src: /src/rnp/src/librepgp/stream-key.cpp:823,1
    - Dst: pgp_key_pkt_t*::sec_data::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:823,1
    - Dst: pgp_key_pkt_t*::sec_data::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:823,1
    - Dst: pgp_key_pkt_t*::sec_data::assign
      Src: /src/rnp/src/librepgp/stream-key.cpp:824,1
    - Dst: rnp::secure_vector::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:824,1
    - Dst: rnp::secure_vector::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:824,1
    - Dst: rnp::secure_vector::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:824,1
    - Dst: pgp_key_pkt_t*::material::clear_secret
      Src: /src/rnp/src/librepgp/stream-key.cpp:826,1
    - Dst: rnp::RNG::get
      Src: /src/rnp/src/librepgp/stream-key.cpp:832,1
    - Dst: pgp_s2k_derive_key
      Src: /src/rnp/src/librepgp/stream-key.cpp:835,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:835,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:836,1
    - Dst: pgp_cipher_cfb_start
      Src: /src/rnp/src/librepgp/stream-key.cpp:841,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:842,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:843,1
    - Dst: pgp_cipher_cfb_encrypt
      Src: /src/rnp/src/librepgp/stream-key.cpp:846,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:846,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:846,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:846,1
    - Dst: pgp_cipher_cfb_finish
      Src: /src/rnp/src/librepgp/stream-key.cpp:847,1
    - Dst: secure_clear
      Src: /src/rnp/src/librepgp/stream-key.cpp:848,1
    - Dst: pgp_key_pkt_t*::sec_data::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:848,1
    - Dst: pgp_key_pkt_t*::sec_data::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:848,1
    - Dst: pgp_key_pkt_t*::sec_data::assign
      Src: /src/rnp/src/librepgp/stream-key.cpp:849,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:849,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:849,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:849,1
    - Dst: pgp_key_pkt_t*::material::clear_secret
      Src: /src/rnp/src/librepgp/stream-key.cpp:851,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:854,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-key.cpp:854,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 91
    argCount: 3
    argNames:
    - key
    - password
    - rng
    argTypes:
    - pgp_key_pkt_t*
    - char*
    - rnp::RNG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 857
      start: 717
    functionDepth: 2
    functionLinenumber: 717
    functionLinenumberEnd: 857
    functionName: encrypt_secret_key
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 1
    functionsReached:
    - pgp_cipher_aead_nonce_len
    - pgp_packet_body_t::size
    - pgp_key_pkt_t*::sec_data::assign
    - secure_clear
    - rnp::secure_vector::size
    - rnp::RNG::get
    - crypt_secret_key_aead
    - rnp::secure_array::data
    - pgp_block_size
    - pgp_key_pkt_t*::sec_data::data
    - pgp_key_pkt_t*::sec_protection::s2k::salt_size
    - write_secret_key_mpis
    - pgp_cipher_cfb_finish
    - RNP_LOG
    - pgp_packet_body_t::mark_secure
    - pgp_cipher_cfb_encrypt
    - pgp_key_size
    - pgp_cipher_aead_tag_len
    - what
    - pgp_cipher_cfb_start
    - rnp::secure_vector::data
    - pgp_packet_body_t::data
    - pgp_key_pkt_t*::material::secret
    - is_secret_key_pkt
    - pgp_key_pkt_t*::sec_data::size
    - pgp_s2k_derive_key
    - pgp_key_pkt_t*::material::clear_secret
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t encrypt_secret_key(pgp_key_pkt_t *key, const char *password,
      rnp::RNG &rng)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_userid_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 863
      start: 859
    functionDepth: 0
    functionLinenumber: 859
    functionLinenumberEnd: 863
    functionName: pgp_userid_pkt_t::operator==(const pgp_userid_pkt_t &src) const
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool pgp_userid_pkt_t::operator==(const pgp_userid_pkt_t &src) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_userid_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 869
      start: 865
    functionDepth: 0
    functionLinenumber: 865
    functionLinenumberEnd: 869
    functionName: pgp_userid_pkt_t::operator!=(const pgp_userid_pkt_t &src) const
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool pgp_userid_pkt_t::operator!=(const pgp_userid_pkt_t &src) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:874,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-key.cpp:875,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-key.cpp:879,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-key.cpp:879,1
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-key.cpp:879,1
    - Dst: pgp_packet_body_t::write
      Src: /src/rnp/src/librepgp/stream-key.cpp:880,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 870
    functionDepth: 1
    functionLinenumber: 870
    functionLinenumberEnd: 881
    functionName: pgp_userid_pkt_t::write
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::write
    - data
    - pgp_packet_body_t::add
    - rnp::rnp_exception::rnp_exception
    - size
    linkageType: ''
    returnType: void
    signature: void pgp_userid_pkt_t::write(pgp_dest_t &dst) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stream_pkt_type
      Src: /src/rnp/src/librepgp/stream-key.cpp:887,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:889,1
    - Dst: pgp_packet_body_t::read
      Src: /src/rnp/src/librepgp/stream-key.cpp:894,1
    - Dst: resize
      Src: /src/rnp/src/librepgp/stream-key.cpp:901,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:901,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:902,1
    - Dst: std::memcpy
      Src: /src/rnp/src/librepgp/stream-key.cpp:903,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-key.cpp:903,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:903,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:903,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 906
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 906
    functionName: pgp_userid_pkt_t::parse
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - data
    - pgp_packet_body_t::data
    - pgp_packet_body_t::size
    - resize
    - std::memcpy
    - pgp_packet_body_t::read
    - stream_pkt_type
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t pgp_userid_pkt_t::parse(pgp_source_t &src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_secret_key_pkt
      Src: /src/rnp/src/librepgp/stream-key.cpp:910,1
    - Dst: pgp_key_pkt_t::material::clone
      Src: /src/rnp/src/librepgp/stream-key.cpp:921,1
    - Dst: clear_secret
      Src: /src/rnp/src/librepgp/stream-key.cpp:924,1
    - Dst: resize
      Src: /src/rnp/src/librepgp/stream-key.cpp:926,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 2
    argNames:
    - src
    - pubonly
    argTypes:
    - pgp_key_pkt_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 908
    functionDepth: 1
    functionLinenumber: 908
    functionLinenumberEnd: 936
    functionName: pgp_key_pkt_t::pgp_key_pkt_t
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 18
    functionsReached:
    - pgp_key_pkt_t::material::clone
    - is_secret_key_pkt
    - clear_secret
    - resize
    linkageType: ''
    returnType: void
    signature: void pgp_key_pkt_t::pgp_key_pkt_t(const pgp_key_pkt_t &src, bool pubonly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-key.cpp:945,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-key.cpp:946,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-key.cpp:947,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_key_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 952
      start: 938
    functionDepth: 1
    functionLinenumber: 938
    functionLinenumberEnd: 952
    functionName: pgp_key_pkt_t::pgp_key_pkt_t
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 18
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void pgp_key_pkt_t::pgp_key_pkt_t(pgp_key_pkt_t &&src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-key.cpp:965,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-key.cpp:966,1
    - Dst: secure_clear
      Src: /src/rnp/src/librepgp/stream-key.cpp:967,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-key.cpp:967,1
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-key.cpp:967,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-key.cpp:968,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_key_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 954
    functionDepth: 1
    functionLinenumber: 954
    functionLinenumberEnd: 971
    functionName: '&

      pgp_key_pkt_t::operator=(pgp_key_pkt_t &&src)'
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 0
    functionsReached:
    - size
    - data
    - std::move
    - secure_clear
    linkageType: ''
    returnType: pgp_key_pkt_t
    signature: 'pgp_key_pkt_t &

      pgp_key_pkt_t::operator=(pgp_key_pkt_t &&src)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_pkt_t::material::clone
      Src: /src/rnp/src/librepgp/stream-key.cpp:985,1
    - Dst: secure_clear
      Src: /src/rnp/src/librepgp/stream-key.cpp:986,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-key.cpp:986,1
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-key.cpp:986,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-key.cpp:987,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_key_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 990
      start: 973
    functionDepth: 1
    functionLinenumber: 973
    functionLinenumberEnd: 990
    functionName: '&

      pgp_key_pkt_t::operator=(const pgp_key_pkt_t &src)'
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 0
    functionsReached:
    - data
    - pgp_key_pkt_t::material::clone
    - size
    - std::move
    - secure_clear
    linkageType: ''
    returnType: pgp_key_pkt_t
    signature: 'pgp_key_pkt_t &

      pgp_key_pkt_t::operator=(const pgp_key_pkt_t &src)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secure_clear
      Src: /src/rnp/src/librepgp/stream-key.cpp:994,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-key.cpp:994,1
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-key.cpp:994,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 995
      start: 992
    functionDepth: 1
    functionLinenumber: 992
    functionLinenumberEnd: 995
    functionName: pgp_key_pkt_t::~pgp_key_pkt_t()
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 0
    functionsReached:
    - data
    - size
    - secure_clear
    linkageType: ''
    returnType: void
    signature: void pgp_key_pkt_t::~pgp_key_pkt_t()
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-key.cpp:1005,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-key.cpp:1006,1
    - Dst: pgp_block_size
      Src: /src/rnp/src/librepgp/stream-key.cpp:1008,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1010,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-key.cpp:1011,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-key.cpp:1013,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-key.cpp:1019,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-key.cpp:1020,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-key.cpp:1021,1
    - Dst: pgp_cipher_aead_nonce_len
      Src: /src/rnp/src/librepgp/stream-key.cpp:1022,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1024,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-key.cpp:1025,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-key.cpp:1027,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1032,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-key.cpp:1033,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - hbody
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1035
      start: 997
    functionDepth: 1
    functionLinenumber: 997
    functionLinenumberEnd: 1035
    functionName: pgp_key_pkt_t::make_s2k_params
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_cipher_aead_nonce_len
    - pgp_packet_body_t::add_byte
    - pgp_block_size
    - pgp_packet_body_t::add
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void pgp_key_pkt_t::make_s2k_params(pgp_packet_body_t &hbody)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: is_key_pkt
      Src: /src/rnp/src/librepgp/stream-key.cpp:1040,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1041,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-key.cpp:1042,1
    - Dst: empty
      Src: /src/rnp/src/librepgp/stream-key.cpp:1044,1
    - Dst: pgp_key_pkt_t::fill_hashed_data
      Src: /src/rnp/src/librepgp/stream-key.cpp:1045,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-key.cpp:1050,1
    - Dst: is_secret_key_pkt
      Src: /src/rnp/src/librepgp/stream-key.cpp:1052,1
    - Dst: pgp_packet_body_t::write
      Src: /src/rnp/src/librepgp/stream-key.cpp:1053,1
    - Dst: empty
      Src: /src/rnp/src/librepgp/stream-key.cpp:1058,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1059,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-key.cpp:1060,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-key.cpp:1062,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-key.cpp:1064,1
    - Dst: pgp_key_pkt_t::make_s2k_params
      Src: /src/rnp/src/librepgp/stream-key.cpp:1068,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-key.cpp:1072,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:1072,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-key.cpp:1075,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:1075,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:1075,1
    - Dst: pgp_packet_body_t::add_uint32
      Src: /src/rnp/src/librepgp/stream-key.cpp:1078,1
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-key.cpp:1078,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-key.cpp:1082,1
    - Dst: pgp_packet_body_t::write
      Src: /src/rnp/src/librepgp/stream-key.cpp:1083,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 31
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1084
      start: 1037
    functionDepth: 2
    functionLinenumber: 1037
    functionLinenumberEnd: 1084
    functionName: pgp_key_pkt_t::write
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::add_uint32
    - pgp_packet_body_t::write
    - pgp_key_pkt_t::fill_hashed_data
    - pgp_packet_body_t::add_byte
    - pgp_packet_body_t::data
    - is_secret_key_pkt
    - pgp_packet_body_t::size
    - pgp_packet_body_t::add
    - rnp::rnp_exception::rnp_exception
    - empty
    - pgp_key_pkt_t::make_s2k_params
    - size
    - is_key_pkt
    linkageType: ''
    returnType: void
    signature: void pgp_key_pkt_t::write(pgp_dest_t &dst)
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: stream_pkt_type
      Src: /src/rnp/src/librepgp/stream-key.cpp:1090,1
    - Dst: is_key_pkt
      Src: /src/rnp/src/librepgp/stream-key.cpp:1091,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1092,1
    - Dst: pgp_packet_body_t::read
      Src: /src/rnp/src/librepgp/stream-key.cpp:1098,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-key.cpp:1106,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1107,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1124,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-key.cpp:1129,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-key.cpp:1133,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-key.cpp:1138,1
    - Dst: pgp::KeyMaterial::create
      Src: /src/rnp/src/librepgp/stream-key.cpp:1142,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1144,1
    - Dst: is_rsa_key_alg
      Src: /src/rnp/src/librepgp/stream-key.cpp:1151,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1152,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-key.cpp:1161,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1162,1
    - Dst: is_public_key_pkt
      Src: /src/rnp/src/librepgp/stream-key.cpp:1165,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-key.cpp:1165,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1166,1
    - Dst: rnp::Key::is_pqc_alg
      Src: /src/rnp/src/librepgp/stream-key.cpp:1175,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1176,1
    - Dst: pgp_key_pkt_t::parse
      Src: /src/rnp/src/librepgp/stream-key.cpp:1182,1
    - Dst: assign
      Src: /src/rnp/src/librepgp/stream-key.cpp:1187,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:1187,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:1187,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:1187,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-key.cpp:1187,1
    - Dst: is_secret_key_pkt
      Src: /src/rnp/src/librepgp/stream-key.cpp:1190,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-key.cpp:1192,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1193,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1198,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-key.cpp:1208,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1209,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-key.cpp:1218,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1219,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-key.cpp:1232,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1233,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-key.cpp:1240,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1241,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-key.cpp:1246,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1247,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-key.cpp:1257,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1258,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-key.cpp:1261,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1262,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-key.cpp:1268,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1269,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-key.cpp:1273,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1274,1
    - Dst: pgp_block_size
      Src: /src/rnp/src/librepgp/stream-key.cpp:1297,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-key.cpp:1298,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1299,1
    - Dst: pgp_cipher_aead_nonce_len
      Src: /src/rnp/src/librepgp/stream-key.cpp:1306,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-key.cpp:1307,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1308,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-key.cpp:1316,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1317,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-key.cpp:1320,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1321,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-key.cpp:1327,1
    - Dst: resize
      Src: /src/rnp/src/librepgp/stream-key.cpp:1328,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-key.cpp:1329,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-key.cpp:1329,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-key.cpp:1334,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1335,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-key.cpp:1335,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 179
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1339
      start: 1086
    functionDepth: 1
    functionLinenumber: 1086
    functionLinenumberEnd: 1339
    functionName: pgp_key_pkt_t::parse
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 5
    functionsReached:
    - data
    - pgp_cipher_aead_nonce_len
    - pgp_packet_body_t::size
    - pgp_packet_body_t::get
    - pgp::KeyMaterial::create
    - is_key_pkt
    - is_public_key_pkt
    - pgp_block_size
    - stream_pkt_type
    - RNP_LOG
    - is_rsa_key_alg
    - resize
    - pgp_packet_body_t::read
    - pgp_packet_body_t::left
    - rnp::Key::is_pqc_alg
    - pgp_packet_body_t::data
    - is_secret_key_pkt
    - assign
    - pgp_key_pkt_t::parse
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t pgp_key_pkt_t::parse(pgp_source_t &src)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-key.cpp:1353,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-key.cpp:1354,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-key.cpp:1358,1
    - Dst: pgp_packet_body_t::add_uint32
      Src: /src/rnp/src/librepgp/stream-key.cpp:1359,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-key.cpp:1360,1
    - Dst: pgp_key_pkt_t::write
      Src: /src/rnp/src/librepgp/stream-key.cpp:1364,1
    - Dst: pgp_packet_body_t::add_uint32
      Src: /src/rnp/src/librepgp/stream-key.cpp:1367,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:1367,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-key.cpp:1370,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:1370,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:1370,1
    - Dst: assign
      Src: /src/rnp/src/librepgp/stream-key.cpp:1371,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:1371,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-key.cpp:1371,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-key.cpp:1371,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1341
    functionDepth: 3
    functionLinenumber: 1341
    functionLinenumberEnd: 1372
    functionName: pgp_key_pkt_t::fill_hashed_data
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::add_uint32
    - pgp_packet_body_t::add_byte
    - pgp_packet_body_t::data
    - pgp_key_pkt_t::write
    - pgp_packet_body_t::size
    - pgp_packet_body_t::add
    - rnp::rnp_exception::rnp_exception
    - assign
    linkageType: ''
    returnType: void
    signature: void pgp_key_pkt_t::fill_hashed_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_pkt_t
      Src: /src/rnp/src/librepgp/stream-key.cpp:1377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - src
    - pubonly
    argTypes:
    - pgp_transferable_subkey_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1379
      start: 1374
    functionDepth: 1
    functionLinenumber: 1374
    functionLinenumberEnd: 1379
    functionName: pgp_transferable_subkey_t::pgp_transferable_subkey_t
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 2
    functionsReached:
    - pgp_key_pkt_t
    linkageType: ''
    returnType: void
    signature: "void pgp_transferable_subkey_t::pgp_transferable_subkey_t(const pgp_transferable_subkey_t
      &src,\n                                                     bool                             pubonly)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_pkt_t
      Src: /src/rnp/src/librepgp/stream-key.cpp:1383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - src
    - pubonly
    argTypes:
    - pgp_transferable_key_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1387
      start: 1381
    functionDepth: 1
    functionLinenumber: 1381
    functionLinenumberEnd: 1387
    functionName: pgp_transferable_key_t::pgp_transferable_key_t
    functionSourceFile: /src/rnp/src/librepgp/stream-key.cpp
    functionUses: 1
    functionsReached:
    - pgp_key_pkt_t
    linkageType: ''
    returnType: void
    signature: void pgp_transferable_key_t::pgp_transferable_key_t(const pgp_transferable_key_t
      &src, bool pubonly)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rng::get
      Src: /src/rnp/src/librepgp/stream-ctx.cpp:44,1
    - Dst: rnp_symmetric_pass_info_t::s2k::salt_size
      Src: /src/rnp/src/librepgp/stream-ctx.cpp:44,1
    - Dst: s2k_iterations
      Src: /src/rnp/src/librepgp/stream-ctx.cpp:46,1
    - Dst: pgp_s2k_encode_iterations
      Src: /src/rnp/src/librepgp/stream-ctx.cpp:51,1
    - Dst: pgp_s2k_derive_key
      Src: /src/rnp/src/librepgp/stream-ctx.cpp:64,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/librepgp/stream-ctx.cpp:64,1
    - Dst: rnp_symmetric_pass_info_t::key::data
      Src: /src/rnp/src/librepgp/stream-ctx.cpp:64,1
    - Dst: rnp_symmetric_pass_info_t::key::size
      Src: /src/rnp/src/librepgp/stream-ctx.cpp:64,1
    - Dst: push_back
      Src: /src/rnp/src/librepgp/stream-ctx.cpp:67,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-ctx.cpp:67,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 4
    argNames:
    - password
    - halg
    - ealg
    - iterations
    argTypes:
    - std::string
    - pgp_hash_alg_t
    - pgp_symm_alg_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 69
    functionName: rnp_ctx_t::add_encryption_password
    functionSourceFile: /src/rnp/src/librepgp/stream-ctx.cpp
    functionUses: 1
    functionsReached:
    - pgp_s2k_encode_iterations
    - push_back
    - s2k_iterations
    - rnp_symmetric_pass_info_t::key::size
    - rng::get
    - std::string::c_str
    - rnp_symmetric_pass_info_t::key::data
    - pgp_s2k_derive_key
    - rnp_symmetric_pass_info_t::s2k::salt_size
    - std::move
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t rnp_ctx_t::add_encryption_password(const std::string
      &password,\n                                   pgp_hash_alg_t     halg,\n                                   pgp_symm_alg_t
      \    ealg,\n                                   size_t             iterations)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: version
      Src: /src/rnp/src/librepgp/stream-ctx.cpp:81,1
    - Dst: is_primary
      Src: /src/rnp/src/librepgp/stream-ctx.cpp:86,1
    - Dst: has_primary_fp
      Src: /src/rnp/src/librepgp/stream-ctx.cpp:89,1
    - Dst: primary_fp
      Src: /src/rnp/src/librepgp/stream-ctx.cpp:90,1
    - Dst: rnp::KeyProvider*::request_key
      Src: /src/rnp/src/librepgp/stream-ctx.cpp:91,1
    - Dst: rnp::Key*::latest_selfsig
      Src: /src/rnp/src/librepgp/stream-ctx.cpp:102,1
    - Dst: rnp::Signature*::sig::key_has_features
      Src: /src/rnp/src/librepgp/stream-ctx.cpp:104,1
    - Dst: rnp::Key*::latest_selfsig
      Src: /src/rnp/src/librepgp/stream-ctx.cpp:107,1
    - Dst: rnp::Signature*::sig::key_has_features
      Src: /src/rnp/src/librepgp/stream-ctx.cpp:109,1
    - Dst: rnp::Key*::latest_selfsig
      Src: /src/rnp/src/librepgp/stream-ctx.cpp:112,1
    - Dst: rnp::Signature*::sig::key_has_features
      Src: /src/rnp/src/librepgp/stream-ctx.cpp:114,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 26
    argCount: 1
    argNames:
    - key_provider
    argTypes:
    - rnp::KeyProvider*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 120
    functionName: rnp_ctx_t::pkeskv6_capable
    functionSourceFile: /src/rnp/src/librepgp/stream-ctx.cpp
    functionUses: 1
    functionsReached:
    - rnp::Key*::latest_selfsig
    - rnp::Signature*::sig::key_has_features
    - primary_fp
    - rnp::KeyProvider*::request_key
    - version
    - has_primary_fp
    - is_primary
    linkageType: ''
    returnType: bool
    signature: bool rnp_ctx_t::pkeskv6_capable(rnp::KeyProvider *key_provider)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write_uint32
      Src: /src/rnp/src/librepgp/stream-packet.cpp:60,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 63
    functionName: write_packet_len
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 1
    functionsReached:
    - write_uint32
    linkageType: ''
    returnType: size_t
    signature: size_t write_packet_len(uint8_t *buf, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - ptag
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 77
    functionName: get_packet_type
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int get_packet_type(uint8_t ptag)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/librepgp/stream-packet.cpp:82,1
    - Dst: stream_pkt_hdr_len
      Src: /src/rnp/src/librepgp/stream-packet.cpp:86,1
    - Dst: pgp_source_t::peek_eq
      Src: /src/rnp/src/librepgp/stream-packet.cpp:90,1
    - Dst: get_packet_type
      Src: /src/rnp/src/librepgp/stream-packet.cpp:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 94
    functionName: stream_pkt_type
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 8
    functionsReached:
    - pgp_source_t::peek_eq
    - get_packet_type
    - pgp_source_t::eof
    - stream_pkt_hdr_len
    linkageType: ''
    returnType: int
    signature: int stream_pkt_type(pgp_source_t &src)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t::peek_eq
      Src: /src/rnp/src/librepgp/stream-packet.cpp:101,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 2
    argNames:
    - src
    - hdrlen
    argTypes:
    - pgp_source_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 96
    functionDepth: 2
    functionLinenumber: 96
    functionLinenumberEnd: 134
    functionName: stream_pkt_hdr_len
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 1
    functionsReached:
    - pgp_source_t::peek_eq
    linkageType: ''
    returnType: bool
    signature: bool stream_pkt_hdr_len(pgp_source_t &src, size_t &hdrlen)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: read_uint32
      Src: /src/rnp/src/librepgp/stream-packet.cpp:155,1
    - Dst: read_uint16
      Src: /src/rnp/src/librepgp/stream-packet.cpp:164,1
    - Dst: read_uint32
      Src: /src/rnp/src/librepgp/stream-packet.cpp:167,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 2
    argNames:
    - hdr
    - pktlen
    argTypes:
    - uint8_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 172
    functionName: get_pkt_len
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 0
    functionsReached:
    - read_uint32
    - read_uint16
    linkageType: ''
    returnType: bool
    signature: bool get_pkt_len(uint8_t *hdr, size_t *pktlen)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: stream_pkt_hdr_len
      Src: /src/rnp/src/librepgp/stream-packet.cpp:180,1
    - Dst: pgp_source_t::read_eq
      Src: /src/rnp/src/librepgp/stream-packet.cpp:184,1
    - Dst: get_pkt_len
      Src: /src/rnp/src/librepgp/stream-packet.cpp:188,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - src
    - pktlen
    argTypes:
    - pgp_source_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 174
    functionDepth: 3
    functionLinenumber: 174
    functionLinenumberEnd: 189
    functionName: stream_read_pkt_len
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 0
    functionsReached:
    - stream_pkt_hdr_len
    - get_pkt_len
    - pgp_source_t::read_eq
    linkageType: ''
    returnType: bool
    signature: bool stream_read_pkt_len(pgp_source_t &src, size_t *pktlen)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t*::read
      Src: /src/rnp/src/librepgp/stream-packet.cpp:197,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:198,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:202,1
    - Dst: get_partial_pkt_len
      Src: /src/rnp/src/librepgp/stream-packet.cpp:210,1
    - Dst: pgp_source_t*::read_eq
      Src: /src/rnp/src/librepgp/stream-packet.cpp:220,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:221,1
    - Dst: pgp_source_t*::read_eq
      Src: /src/rnp/src/librepgp/stream-packet.cpp:228,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:229,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 3
    argNames:
    - src
    - clen
    - last
    argTypes:
    - pgp_source_t*
    - size_t*
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 235
    functionName: stream_read_partial_chunk_len
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - get_partial_pkt_len
    - pgp_source_t*::read_eq
    - pgp_source_t*::read
    linkageType: ''
    returnType: bool
    signature: bool stream_read_partial_chunk_len(pgp_source_t *src, size_t *clen,
      bool *last)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t*::peek_eq
      Src: /src/rnp/src/librepgp/stream-packet.cpp:241,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 246
    functionName: stream_old_indeterminate_pkt_len
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_t*::peek_eq
    linkageType: ''
    returnType: bool
    signature: bool stream_old_indeterminate_pkt_len(pgp_source_t *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t*::peek_eq
      Src: /src/rnp/src/librepgp/stream-packet.cpp:252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 256
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 256
    functionName: stream_partial_pkt_len
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_t*::peek_eq
    linkageType: ''
    returnType: bool
    signature: bool stream_partial_pkt_len(pgp_source_t *src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - blen
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 262
    functionName: get_partial_pkt_len
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t get_partial_pkt_len(uint8_t blen)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/rnp/src/librepgp/stream-packet.cpp:268,1
    - Dst: stream_pkt_hdr_len
      Src: /src/rnp/src/librepgp/stream-packet.cpp:269,1
    - Dst: pgp_source_t*::peek_eq
      Src: /src/rnp/src/librepgp/stream-packet.cpp:271,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:272,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:276,1
    - Dst: pgp_source_t*::peek_eq
      Src: /src/rnp/src/librepgp/stream-packet.cpp:280,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:281,1
    - Dst: get_packet_type
      Src: /src/rnp/src/librepgp/stream-packet.cpp:286,1
    - Dst: stream_partial_pkt_len
      Src: /src/rnp/src/librepgp/stream-packet.cpp:288,1
    - Dst: stream_old_indeterminate_pkt_len
      Src: /src/rnp/src/librepgp/stream-packet.cpp:290,1
    - Dst: get_pkt_len
      Src: /src/rnp/src/librepgp/stream-packet.cpp:293,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 2
    argNames:
    - src
    - hdr
    argTypes:
    - pgp_source_t*
    - pgp_packet_hdr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 264
    functionDepth: 3
    functionLinenumber: 264
    functionLinenumberEnd: 297
    functionName: stream_peek_packet_hdr
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - get_packet_type
    - get_pkt_len
    - memset
    - stream_old_indeterminate_pkt_len
    - stream_partial_pkt_len
    - stream_pkt_hdr_len
    - pgp_source_t*::peek_eq
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t stream_peek_packet_hdr(pgp_source_t *src, pgp_packet_hdr_t
      *hdr)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t*::read_eq
      Src: /src/rnp/src/librepgp/stream-packet.cpp:303,1
    - Dst: stream_read_partial_chunk_len
      Src: /src/rnp/src/librepgp/stream-packet.cpp:309,1
    - Dst: malloc
      Src: /src/rnp/src/librepgp/stream-packet.cpp:313,1
    - Dst: std::min
      Src: /src/rnp/src/librepgp/stream-packet.cpp:319,1
    - Dst: pgp_source_t*::read_eq
      Src: /src/rnp/src/librepgp/stream-packet.cpp:320,1
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-packet.cpp:321,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-packet.cpp:325,1
    - Dst: stream_read_partial_chunk_len
      Src: /src/rnp/src/librepgp/stream-packet.cpp:334,1
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-packet.cpp:335,1
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-packet.cpp:339,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - pgp_source_t*
    - pgp_dest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 299
    functionDepth: 2
    functionLinenumber: 299
    functionLinenumberEnd: 341
    functionName: stream_read_packet_partial
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 0
    functionsReached:
    - malloc
    - dst_write
    - stream_read_partial_chunk_len
    - std::min
    - pgp_source_t*::read_eq
    - free
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t stream_read_packet_partial(pgp_source_t *src, pgp_dest_t
      *dst)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: stream_old_indeterminate_pkt_len
      Src: /src/rnp/src/librepgp/stream-packet.cpp:346,1
    - Dst: dst_write_src
      Src: /src/rnp/src/librepgp/stream-packet.cpp:347,1
    - Dst: stream_partial_pkt_len
      Src: /src/rnp/src/librepgp/stream-packet.cpp:350,1
    - Dst: stream_read_packet_partial
      Src: /src/rnp/src/librepgp/stream-packet.cpp:351,1
    - Dst: pgp_packet_body_t::read
      Src: /src/rnp/src/librepgp/stream-packet.cpp:356,1
    - Dst: pgp_packet_body_t::write
      Src: /src/rnp/src/librepgp/stream-packet.cpp:358,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:362,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-packet.cpp:362,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - src
    - dst
    argTypes:
    - pgp_source_t*
    - pgp_dest_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 365
      start: 343
    functionDepth: 3
    functionLinenumber: 343
    functionLinenumberEnd: 365
    functionName: stream_read_packet
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::write
    - what
    - stream_read_packet_partial
    - dst_write_src
    - pgp_packet_body_t::read
    - stream_old_indeterminate_pkt_len
    - stream_partial_pkt_len
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t stream_read_packet(pgp_source_t *src, pgp_dest_t *dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: stream_read_packet
      Src: /src/rnp/src/librepgp/stream-packet.cpp:370,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 367
    functionDepth: 4
    functionLinenumber: 367
    functionLinenumberEnd: 371
    functionName: stream_skip_packet
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 10
    functionsReached:
    - stream_read_packet
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t stream_skip_packet(pgp_source_t *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::read
      Src: /src/rnp/src/librepgp/stream-packet.cpp:378,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:382,1
    - Dst: memcmp
      Src: /src/rnp/src/librepgp/stream-packet.cpp:383,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:383,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:388,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-packet.cpp:388,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 391
    functionName: stream_parse_marker
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - what
    - pgp_packet_body_t::data
    - pgp_packet_body_t::size
    - memcmp
    - pgp_packet_body_t::read
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t stream_parse_marker(pgp_source_t &src)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - tag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 405
    functionName: is_key_pkt
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_key_pkt(int tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 411
      start: 407
    functionDepth: 0
    functionLinenumber: 407
    functionLinenumberEnd: 411
    functionName: is_subkey_pkt
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_subkey_pkt(int tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - tag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 413
    functionDepth: 0
    functionLinenumber: 413
    functionLinenumberEnd: 417
    functionName: is_primary_key_pkt
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_primary_key_pkt(int tag)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 429
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 429
    functionName: is_public_key_pkt
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_public_key_pkt(int tag)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - tag
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 431
    functionDepth: 0
    functionLinenumber: 431
    functionLinenumberEnd: 441
    functionName: is_secret_key_pkt
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_secret_key_pkt(int tag)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 443
    functionDepth: 0
    functionLinenumber: 443
    functionLinenumberEnd: 454
    functionName: is_rsa_key_alg
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_rsa_key_alg(pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/rnp/src/librepgp/stream-packet.cpp:458,1
    - Dst: is_secret_key_pkt
      Src: /src/rnp/src/librepgp/stream-packet.cpp:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - tag
    argTypes:
    - pgp_pkt_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 461
    functionName: pgp_packet_body_t::pgp_packet_body_t
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 0
    functionsReached:
    - is_secret_key_pkt
    - reserve
    linkageType: ''
    returnType: void
    signature: void pgp_packet_body_t::pgp_packet_body_t(pgp_pkt_type_t tag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/librepgp/stream-packet.cpp:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 468
    functionName: pgp_packet_body_t::pgp_packet_body_t
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void pgp_packet_body_t::pgp_packet_body_t(const uint8_t *data, size_t
      len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:471,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:471,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 473
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 473
    functionName: pgp_packet_body_t::pgp_packet_body_t
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - std::vector<uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void pgp_packet_body_t::pgp_packet_body_t(const std::vector<uint8_t>
      &data)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: secure_clear
      Src: /src/rnp/src/librepgp/stream-packet.cpp:478,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:478,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:478,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 475
    functionDepth: 0
    functionLinenumber: 475
    functionLinenumberEnd: 480
    functionName: pgp_packet_body_t::~pgp_packet_body_t()
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::data
    - pgp_packet_body_t::size
    - secure_clear
    linkageType: ''
    returnType: void
    signature: void pgp_packet_body_t::~pgp_packet_body_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 482
    functionDepth: 0
    functionLinenumber: 482
    functionLinenumberEnd: 486
    functionName: pgp_packet_body_t::data
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 18
    functionsReached:
    - pgp_packet_body_t::data
    linkageType: ''
    returnType: uint8_t
    signature: 'uint8_t *

      pgp_packet_body_t::data() noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 492
      start: 488
    functionDepth: 0
    functionLinenumber: 488
    functionLinenumberEnd: 492
    functionName: pgp_packet_body_t::cur
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 4
    functionsReached:
    - pgp_packet_body_t::data
    linkageType: ''
    returnType: uint8_t
    signature: 'uint8_t *

      pgp_packet_body_t::cur() noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:497,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 494
    functionDepth: 0
    functionLinenumber: 494
    functionLinenumberEnd: 498
    functionName: pgp_packet_body_t::size
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 18
    functionsReached:
    - pgp_packet_body_t::size
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_packet_body_t::size() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:503,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 504
      start: 500
    functionDepth: 0
    functionLinenumber: 500
    functionLinenumberEnd: 504
    functionName: pgp_packet_body_t::left
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 14
    functionsReached:
    - pgp_packet_body_t::size
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_packet_body_t::left() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bt
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 510
      start: 506
    functionDepth: 0
    functionLinenumber: 506
    functionLinenumberEnd: 510
    functionName: pgp_packet_body_t::skip
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_packet_body_t::skip(size_t bt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bt
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 512
    functionDepth: 0
    functionLinenumber: 512
    functionLinenumberEnd: 516
    functionName: pgp_packet_body_t::skip_back
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_packet_body_t::skip_back(size_t bt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:521,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 518
    functionDepth: 0
    functionLinenumber: 518
    functionLinenumberEnd: 526
    functionName: pgp_packet_body_t::get
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 17
    functionsReached:
    - pgp_packet_body_t::size
    linkageType: ''
    returnType: bool
    signature: bool pgp_packet_body_t::get(uint8_t &val) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:531,1
    - Dst: read_uint16
      Src: /src/rnp/src/librepgp/stream-packet.cpp:534,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:534,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 537
    functionName: pgp_packet_body_t::get
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 17
    functionsReached:
    - read_uint16
    - pgp_packet_body_t::data
    - pgp_packet_body_t::size
    linkageType: ''
    returnType: bool
    signature: bool pgp_packet_body_t::get(uint16_t &val) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:542,1
    - Dst: read_uint32
      Src: /src/rnp/src/librepgp/stream-packet.cpp:545,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:545,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 548
      start: 539
    functionDepth: 1
    functionLinenumber: 539
    functionLinenumberEnd: 548
    functionName: pgp_packet_body_t::get
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 17
    functionsReached:
    - read_uint32
    - pgp_packet_body_t::data
    - pgp_packet_body_t::size
    linkageType: ''
    returnType: bool
    signature: bool pgp_packet_body_t::get(uint32_t &val) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:553,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-packet.cpp:556,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:556,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - val
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 559
      start: 550
    functionDepth: 0
    functionLinenumber: 550
    functionLinenumberEnd: 559
    functionName: pgp_packet_body_t::get
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 17
    functionsReached:
    - pgp_packet_body_t::data
    - pgp_packet_body_t::size
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool pgp_packet_body_t::get(uint8_t *val, size_t len) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:564,1
    - Dst: std::vector<uint8_t>::assign
      Src: /src/rnp/src/librepgp/stream-packet.cpp:567,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:567,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:567,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - val
    - len
    argTypes:
    - std::vector<uint8_t>
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 570
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 570
    functionName: pgp_packet_body_t::get
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 17
    functionsReached:
    - std::vector<uint8_t>::assign
    - pgp_packet_body_t::data
    - pgp_packet_body_t::size
    linkageType: ''
    returnType: bool
    signature: bool pgp_packet_body_t::get(std::vector<uint8_t> &val, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:577,1
    - Dst: pgp::KeyID::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:577,1
    - Dst: pgp::KeyID::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:577,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - pgp::KeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 572
    functionDepth: 1
    functionLinenumber: 572
    functionLinenumberEnd: 578
    functionName: pgp_packet_body_t::get
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 18
    functionsReached:
    - pgp_packet_body_t::get
    - pgp::KeyID::data
    - pgp::KeyID::size
    linkageType: ''
    returnType: bool
    signature: bool pgp_packet_body_t::get(pgp::KeyID &val) noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:584,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:589,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:593,1
    - Dst: pgp::mpi::resize
      Src: /src/rnp/src/librepgp/stream-packet.cpp:596,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:597,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:597,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:598,1
    - Dst: pgp::mpi::bits
      Src: /src/rnp/src/librepgp/stream-packet.cpp:602,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:604,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - val
    argTypes:
    - pgp::mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 608
    functionName: pgp_packet_body_t::get
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 19
    functionsReached:
    - RNP_LOG
    - pgp::mpi::resize
    - pgp::mpi::data
    - pgp::mpi::bits
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool pgp_packet_body_t::get(pgp::mpi &val) noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:614,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:618,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:622,1
    - Dst: pgp::ec::Curve::by_OID
      Src: /src/rnp/src/librepgp/stream-packet.cpp:625,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:627,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - val
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 610
    functionDepth: 1
    functionLinenumber: 610
    functionLinenumberEnd: 632
    functionName: pgp_packet_body_t::get
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 20
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    - pgp::ec::Curve::by_OID
    linkageType: ''
    returnType: bool
    signature: bool pgp_packet_body_t::get(pgp_curve_t &val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/rnp/src/librepgp/stream-packet.cpp:734,1
    - Dst: end
      Src: /src/rnp/src/librepgp/stream-packet.cpp:734,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 735
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 735
    functionName: pgp_packet_body_t::add
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 9
    functionsReached:
    - end
    - insert
    linkageType: ''
    returnType: void
    signature: void pgp_packet_body_t::add(const void *data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-packet.cpp:740,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:740,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:740,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 741
      start: 737
    functionDepth: 1
    functionLinenumber: 737
    functionLinenumberEnd: 741
    functionName: pgp_packet_body_t::add
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 10
    functionsReached:
    - pgp_packet_body_t::add
    - std::vector<uint8_t>::size
    - std::vector<uint8_t>::data
    linkageType: ''
    returnType: void
    signature: void pgp_packet_body_t::add(const std::vector<uint8_t> &data)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/librepgp/stream-packet.cpp:746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - bt
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 743
    functionDepth: 1
    functionLinenumber: 743
    functionLinenumberEnd: 747
    functionName: pgp_packet_body_t::add_byte
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 11
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void pgp_packet_body_t::add_byte(uint8_t bt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_uint16
      Src: /src/rnp/src/librepgp/stream-packet.cpp:753,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-packet.cpp:754,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 755
      start: 749
    functionDepth: 1
    functionLinenumber: 749
    functionLinenumberEnd: 755
    functionName: pgp_packet_body_t::add_uint16
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 1
    functionsReached:
    - pgp_packet_body_t::add
    - write_uint16
    linkageType: ''
    returnType: void
    signature: void pgp_packet_body_t::add_uint16(uint16_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_uint32
      Src: /src/rnp/src/librepgp/stream-packet.cpp:761,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-packet.cpp:762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 763
      start: 757
    functionDepth: 1
    functionLinenumber: 757
    functionLinenumberEnd: 763
    functionName: pgp_packet_body_t::add_uint32
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 6
    functionsReached:
    - pgp_packet_body_t::add
    - write_uint32
    linkageType: ''
    returnType: void
    signature: void pgp_packet_body_t::add_uint32(uint32_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-packet.cpp:768,1
    - Dst: pgp::KeyID::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:768,1
    - Dst: pgp::KeyID::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - pgp::KeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 769
      start: 765
    functionDepth: 1
    functionLinenumber: 765
    functionLinenumberEnd: 769
    functionName: pgp_packet_body_t::add
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 13
    functionsReached:
    - pgp_packet_body_t::add
    - pgp::KeyID::data
    - pgp::KeyID::size
    linkageType: ''
    returnType: void
    signature: void pgp_packet_body_t::add(const pgp::KeyID &val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:774,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-packet.cpp:775,1
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:779,1
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:783,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-packet.cpp:791,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-packet.cpp:792,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:792,1
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:792,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - val
    argTypes:
    - pgp::mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 771
    functionDepth: 1
    functionLinenumber: 771
    functionLinenumberEnd: 793
    functionName: pgp_packet_body_t::add
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 14
    functionsReached:
    - pgp_packet_body_t::add
    - pgp::mpi::size
    - pgp::mpi::data
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void pgp_packet_body_t::add(const pgp::mpi &val)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: hashed
      Src: /src/rnp/src/librepgp/stream-packet.cpp:801,1
    - Dst: write_packet_len
      Src: /src/rnp/src/librepgp/stream-packet.cpp:806,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:806,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-packet.cpp:807,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:808,1
    - Dst: raw_type
      Src: /src/rnp/src/librepgp/stream-packet.cpp:808,1
    - Dst: critical
      Src: /src/rnp/src/librepgp/stream-packet.cpp:808,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-packet.cpp:809,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:809,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:809,1
    - Dst: pgp_packet_body_t::data_::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:812,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-packet.cpp:813,1
    - Dst: pgp_packet_body_t::add_uint16
      Src: /src/rnp/src/librepgp/stream-packet.cpp:818,1
    - Dst: pgp_packet_body_t::data_::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:818,1
    - Dst: pgp_packet_body_t::add_uint32
      Src: /src/rnp/src/librepgp/stream-packet.cpp:822,1
    - Dst: pgp_packet_body_t::data_::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:822,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:826,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-packet.cpp:827,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-packet.cpp:829,1
    - Dst: pgp_packet_body_t::data_::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:829,1
    - Dst: pgp_packet_body_t::data_::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:829,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - sig
    - hashed
    argTypes:
    - pgp::pkt::Signature
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 795
    functionDepth: 2
    functionLinenumber: 795
    functionLinenumberEnd: 830
    functionName: pgp_packet_body_t::add_subpackets
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 8
    functionsReached:
    - write_packet_len
    - pgp_packet_body_t::add_uint16
    - pgp_packet_body_t::add_uint32
    - RNP_LOG
    - hashed
    - pgp_packet_body_t::data
    - pgp_packet_body_t::add_byte
    - raw_type
    - critical
    - pgp_packet_body_t::data_::size
    - pgp_packet_body_t::add
    - pgp_packet_body_t::data_::data
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void pgp_packet_body_t::add_subpackets(const pgp::pkt::Signature &sig,
      bool hashed)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:835,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-packet.cpp:837,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:839,1
    - Dst: auto::OID::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:839,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-packet.cpp:840,1
    - Dst: auto::OID::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:840,1
    - Dst: auto::OID::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:840,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - curve
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 832
    functionDepth: 2
    functionLinenumber: 832
    functionLinenumberEnd: 841
    functionName: pgp_packet_body_t::add
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 16
    functionsReached:
    - auto::OID::data
    - auto::OID::size
    - pgp_packet_body_t::add_byte
    - pgp::ec::Curve::get
    - pgp_packet_body_t::add
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void pgp_packet_body_t::add(const pgp_curve_t curve)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:848,1
    - Dst: pgp_s2k_t::specifier_len
      Src: /src/rnp/src/librepgp/stream-packet.cpp:848,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:851,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:855,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:858,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-packet.cpp:859,1
    - Dst: pgp_s2k_t::salt_size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:859,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:862,1
    - Dst: pgp_s2k_encode_iterations
      Src: /src/rnp/src/librepgp/stream-packet.cpp:865,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-packet.cpp:867,1
    - Dst: pgp_s2k_t::salt_size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:867,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:868,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-packet.cpp:873,1
    - Dst: pgp_s2k_t::salt_size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:873,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:874,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:875,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:876,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:880,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:883,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-packet.cpp:884,1
    - Dst: pgp_s2k_t::experimental::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:884,1
    - Dst: pgp_s2k_t::experimental::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:884,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-packet.cpp:887,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:888,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:892,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-packet.cpp:893,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:898,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librepgp/stream-packet.cpp:899,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 47
    argCount: 2
    argNames:
    - s2k
    - version
    argTypes:
    - pgp_s2k_t
    - pgp_version_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 843
    functionDepth: 2
    functionLinenumber: 843
    functionLinenumberEnd: 901
    functionName: pgp_packet_body_t::add
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 17
    functionsReached:
    - RNP_LOG
    - pgp_s2k_t::experimental::size
    - pgp_s2k_encode_iterations
    - pgp_packet_body_t::add_byte
    - pgp_packet_body_t::add
    - pgp_s2k_t::salt_size
    - pgp_s2k_t::specifier_len
    - rnp::rnp_exception::rnp_exception
    - pgp_s2k_t::experimental::data
    linkageType: ''
    returnType: void
    signature: void pgp_packet_body_t::add(const pgp_s2k_t &s2k, pgp_version_t version)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t::peek_eq
      Src: /src/rnp/src/librepgp/stream-packet.cpp:907,1
    - Dst: stream_pkt_hdr_len
      Src: /src/rnp/src/librepgp/stream-packet.cpp:913,1
    - Dst: pgp_source_t::peek_eq
      Src: /src/rnp/src/librepgp/stream-packet.cpp:916,1
    - Dst: get_packet_type
      Src: /src/rnp/src/librepgp/stream-packet.cpp:921,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:923,1
    - Dst: stream_read_pkt_len
      Src: /src/rnp/src/librepgp/stream-packet.cpp:928,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:938,1
    - Dst: resize
      Src: /src/rnp/src/librepgp/stream-packet.cpp:944,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:946,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-packet.cpp:946,1
    - Dst: pgp_source_t::read
      Src: /src/rnp/src/librepgp/stream-packet.cpp:951,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:951,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:952,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 38
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 903
    functionDepth: 4
    functionLinenumber: 903
    functionLinenumberEnd: 957
    functionName: pgp_packet_body_t::read
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 9
    functionsReached:
    - RNP_LOG
    - what
    - get_packet_type
    - pgp_packet_body_t::data
    - resize
    - pgp_source_t::read
    - pgp_source_t::peek_eq
    - stream_read_pkt_len
    - stream_pkt_hdr_len
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t pgp_packet_body_t::read(pgp_source_t &src) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_packet_len
      Src: /src/rnp/src/librepgp/stream-packet.cpp:965,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:965,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-packet.cpp:966,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-packet.cpp:968,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:968,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:968,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - dst
    - hdr
    argTypes:
    - pgp_dest_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 969
      start: 959
    functionDepth: 2
    functionLinenumber: 959
    functionLinenumberEnd: 969
    functionName: pgp_packet_body_t::write
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 7
    functionsReached:
    - write_packet_len
    - pgp_packet_body_t::data
    - dst_write
    - pgp_packet_body_t::size
    linkageType: ''
    returnType: void
    signature: void pgp_packet_body_t::write(pgp_dest_t &dst, bool hdr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - secure
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 971
    functionDepth: 0
    functionLinenumber: 971
    functionLinenumberEnd: 975
    functionName: pgp_packet_body_t::mark_secure
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_packet_body_t::mark_secure(bool secure) noexcept
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1062,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1063,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1068,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1069,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1075,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1076,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1081,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1087,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1088,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1093,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1094,1
    - Dst: pgp_cipher_aead_nonce_len
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1098,1
    - Dst: pgp_cipher_aead_tag_len
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1099,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1102,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1103,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1106,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1107,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1111,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1112,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1118,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1119,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1120,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1125
      start: 1053
    functionDepth: 1
    functionLinenumber: 1053
    functionLinenumberEnd: 1125
    functionName: pgp_sk_sesskey_t::parse_v6
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_cipher_aead_nonce_len
    - pgp_packet_body_t::get
    - pgp_packet_body_t::left
    - pgp_cipher_aead_tag_len
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t pgp_sk_sesskey_t::parse_v6(pgp_packet_body_t &pkt)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::read
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1132,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1139,1
    - Dst: pgp_sk_sesskey_t::parse_v6
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1143,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1146,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1151,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1152,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1159,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1160,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1165,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1171,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1172,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1179,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1182,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1185,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1186,1
    - Dst: pgp_cipher_aead_nonce_len
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1195,1
    - Dst: pgp_cipher_aead_tag_len
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1196,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1199,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1200,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1203,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1204,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1208,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1209,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1215,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1216,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1217,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 67
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1222
      start: 1128
    functionDepth: 5
    functionLinenumber: 1128
    functionLinenumberEnd: 1222
    functionName: pgp_sk_sesskey_t::parse
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - pgp_cipher_aead_nonce_len
    - pgp_packet_body_t::get
    - pgp_packet_body_t::read
    - pgp_packet_body_t::left
    - pgp_sk_sesskey_t::parse_v6
    - pgp_cipher_aead_tag_len
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t pgp_sk_sesskey_t::parse(pgp_source_t &src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1228,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1232,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1235,1
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1235,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1236,1
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1236,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1237,1
    - Dst: vec
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1237,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1240,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1241,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1241,1
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1241,1
    - Dst: pgp_packet_body_t::write
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1242,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1243
      start: 1224
    functionDepth: 3
    functionLinenumber: 1224
    functionLinenumberEnd: 1243
    functionName: pgp_pk_sesskey_t::write
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 1
    functionsReached:
    - pgp_packet_body_t::write
    - data
    - vec
    - pgp_packet_body_t::add_byte
    - pgp_packet_body_t::add
    - size
    linkageType: ''
    returnType: void
    signature: void pgp_pk_sesskey_t::write(pgp_dest_t &dst) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::EncMaterial::create
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1358,1
    - Dst: auto::parse
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1366,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1369,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1370,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1370,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1374
      start: 1355
    functionDepth: 1
    functionLinenumber: 1355
    functionLinenumberEnd: 1374
    functionName: pgp_pk_sesskey_t::parse_material
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - auto::parse
    - pgp::EncMaterial::create
    - pgp_packet_body_t::left
    linkageType: ''
    returnType: std::unique_ptr<pgp::EncMaterial>
    signature: std::unique_ptr<pgp::EncMaterial> pgp_pk_sesskey_t::parse_material()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::EncMaterial::write
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1380,1
    - Dst: assign
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1381,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1381,1
    - Dst: pgp_packet_body_t::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1381,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1381,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - material
    argTypes:
    - pgp::EncMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1382
      start: 1376
    functionDepth: 0
    functionLinenumber: 1376
    functionLinenumberEnd: 1382
    functionName: pgp_pk_sesskey_t::write_material
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 1
    functionsReached:
    - pgp_packet_body_t::data
    - pgp::EncMaterial::write
    - pgp_packet_body_t::size
    - assign
    linkageType: ''
    returnType: void
    signature: void pgp_pk_sesskey_t::write_material(const pgp::EncMaterial &material)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1388,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1389,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1390,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1391,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1394,1
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1394,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1395,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1399,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1403,1
    - Dst: vec
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1403,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1406,1
    - Dst: pgp_packet_body_t::write
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1407,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1384
    functionDepth: 3
    functionLinenumber: 1384
    functionLinenumberEnd: 1408
    functionName: pgp_one_pass_sig_t::write
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::write
    - vec
    - pgp_packet_body_t::add_byte
    - pgp_packet_body_t::add
    - size
    linkageType: ''
    returnType: void
    signature: void pgp_one_pass_sig_t::write(pgp_dest_t &dst) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::read
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1415,1
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1421,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1421,1
    - Dst: pgp_one_pass_sig_t::parse_v3
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1426,1
    - Dst: pgp_one_pass_sig_t::parse_v6
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1429,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1432,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1435
      start: 1410
    functionDepth: 5
    functionLinenumber: 1410
    functionLinenumberEnd: 1435
    functionName: pgp_one_pass_sig_t::parse
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - pgp_one_pass_sig_t::parse_v3
    - pgp_one_pass_sig_t::parse_v6
    - pgp_packet_body_t::size
    - pgp_packet_body_t::get
    - pgp_packet_body_t::read
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t pgp_one_pass_sig_t::parse(pgp_source_t &src)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1446,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1451,1
    - Dst: pgp::pkt::Signature::v6_salt_size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1464,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1465,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1469,1
    - Dst: resize
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1472,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1473,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1473,1
    - Dst: size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1473,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1474,1
    - Dst: std::vector::resize
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1480,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1481,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1481,1
    - Dst: std::vector::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1481,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1482,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1485,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1485,1
    - Dst: std::vector::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1485,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1488,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1489,1
    - Dst: pgp_packet_body_t::left
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1494,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1495,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 41
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1499
      start: 1438
    functionDepth: 2
    functionLinenumber: 1438
    functionLinenumberEnd: 1499
    functionName: pgp_one_pass_sig_t::parse_v6
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - data
    - size
    - pgp_packet_body_t::size
    - pgp::Fingerprint::Fingerprint
    - resize
    - pgp_packet_body_t::get
    - pgp_packet_body_t::left
    - std::vector::size
    - std::vector::resize
    - std::vector::data
    - pgp::pkt::Signature::v6_salt_size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t pgp_one_pass_sig_t::parse_v6(pgp_packet_body_t &pkt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::size
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1506,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1506,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1518,1
    - Dst: data
      Src: /src/rnp/src/librepgp/stream-packet.cpp:1518,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1522
      start: 1502
    functionDepth: 1
    functionLinenumber: 1502
    functionLinenumberEnd: 1522
    functionName: pgp_one_pass_sig_t::parse_v3
    functionSourceFile: /src/rnp/src/librepgp/stream-packet.cpp
    functionUses: 1
    functionsReached:
    - pgp_packet_body_t::get
    - data
    - pgp_packet_body_t::size
    - memcpy
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t pgp_one_pass_sig_t::parse_v3(pgp_packet_body_t &pkt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - '   sctx'
    - '       kprov'
    - pprov
    argTypes:
    - rnp::SecurityContext
    - rnp::KeyProvider
    - pgp_password_provider_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 133
    functionName: rnp_ctx_t
    functionSourceFile: /src/rnp/src/librepgp/stream-ctx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void rnp_ctx_t(rnp::SecurityContext &   sctx,\n              rnp::KeyProvider
      &       kprov,\n              pgp_password_provider_t &pprov)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: rnp_ctx_t
    functionSourceFile: /src/rnp/src/librepgp/stream-ctx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_ctx_t(const rnp_ctx_t &)
  - 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: rnp_ctx_t
    functionSourceFile: /src/rnp/src/librepgp/stream-ctx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_ctx_t(rnp_ctx_t &&)
  - 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: '&operator=(const rnp_ctx_t &)'
    functionSourceFile: /src/rnp/src/librepgp/stream-ctx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_ctx_t
    signature: rnp_ctx_t &operator=(const rnp_ctx_t &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: '&operator=(rnp_ctx_t &&)'
    functionSourceFile: /src/rnp/src/librepgp/stream-ctx.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_ctx_t
    signature: rnp_ctx_t &operator=(rnp_ctx_t &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 121
    functionName: pgp_source_encrypted_param_t
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_source_encrypted_param_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 131
    functionName: use_cfb
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool use_cfb()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 138
    functionName: is_v2_seipd
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_v2_seipd() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: pgp_source_signed_param_t
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_source_signed_param_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 168
    functionName: ~pgp_source_signed_param_t()
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~pgp_source_signed_param_t()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 212
    functionName: is_valid_seipd_version
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_valid_seipd_version(uint8_t version)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 212
    functionName: is_valid_seipd_version
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_valid_seipd_version(uint8_t version)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t::peek_eq
      Src: /src/rnp/src/librepgp/stream-parse.cpp:220,1
    - Dst: get_packet_type
      Src: /src/rnp/src/librepgp/stream-parse.cpp:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 216
    functionDepth: 2
    functionLinenumber: 216
    functionLinenumberEnd: 238
    functionName: is_pgp_source
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_t::peek_eq
    - get_packet_type
    linkageType: ''
    returnType: bool
    signature: bool is_pgp_source(pgp_source_t &src)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: stream_read_partial_chunk_len
      Src: /src/rnp/src/librepgp/stream-parse.cpp:263,1
    - Dst: pgp_source_partial_param_t*::readsrc::read
      Src: /src/rnp/src/librepgp/stream-parse.cpp:276,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:277,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:281,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 4
    argNames:
    - src
    - buf
    - len
    - readres
    argTypes:
    - pgp_source_t*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 240
    functionDepth: 2
    functionLinenumber: 240
    functionLinenumberEnd: 293
    functionName: partial_pkt_src_read
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - stream_read_partial_chunk_len
    - pgp_source_partial_param_t*::readsrc::read
    - RNP_LOG
    linkageType: ''
    returnType: bool
    signature: bool partial_pkt_src_read(pgp_source_t *src, void *buf, size_t len,
      size_t *readres)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-parse.cpp:300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 303
    functionName: partial_pkt_src_close
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void partial_pkt_src_close(pgp_source_t *src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: init_src_common
      Src: /src/rnp/src/librepgp/stream-parse.cpp:309,1
    - Dst: assert
      Src: /src/rnp/src/librepgp/stream-parse.cpp:313,1
    - Dst: get_partial_pkt_len
      Src: /src/rnp/src/librepgp/stream-parse.cpp:317,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - src
    - readsrc
    - hdr
    argTypes:
    - pgp_source_t*
    - pgp_source_t*
    - pgp_packet_hdr_t
    assertStmts:
    - condition: (hdr.partial)
      pos:
        line_end: 312
        line_start: 312
        source_file: /src/rnp/src/librepgp/stream-parse.cpp
    constantsTouched: []
    func_position:
      end: 333
      start: 305
    functionDepth: 2
    functionLinenumber: 305
    functionLinenumberEnd: 333
    functionName: init_partial_pkt_src
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - init_src_common
    - assert
    - get_partial_pkt_len
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_partial_pkt_src(pgp_source_t *src, pgp_source_t *readsrc,
      pgp_packet_hdr_t &hdr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_literal_param_t*::pkt::readsrc::read
      Src: /src/rnp/src/librepgp/stream-parse.cpp:342,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - src
    - buf
    - len
    - read
    argTypes:
    - pgp_source_t*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 343
    functionName: literal_src_read
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_literal_param_t*::pkt::readsrc::read
    linkageType: ''
    returnType: bool
    signature: bool literal_src_read(pgp_source_t *src, void *buf, size_t len, size_t
      *read)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_literal_param_t*::pkt::readsrc::close
      Src: /src/rnp/src/librepgp/stream-parse.cpp:351,1
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-parse.cpp:352,1
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-parse.cpp:356,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 359
    functionName: literal_src_close
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - free
    - pgp_source_literal_param_t*::pkt::readsrc::close
    linkageType: ''
    returnType: void
    signature: void literal_src_close(pgp_source_t *src)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_compressed_param_t*::pkt::readsrc::read
      Src: /src/rnp/src/librepgp/stream-parse.cpp:375,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:376,1
    - Dst: pgp_source_compressed_param_t*::pkt::readsrc::read
      Src: /src/rnp/src/librepgp/stream-parse.cpp:390,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:391,1
    - Dst: inflate
      Src: /src/rnp/src/librepgp/stream-parse.cpp:399,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:403,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:408,1
    - Dst: pgp_source_compressed_param_t*::pkt::readsrc::eof
      Src: /src/rnp/src/librepgp/stream-parse.cpp:411,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:412,1
    - Dst: pgp_source_compressed_param_t*::pkt::readsrc::read
      Src: /src/rnp/src/librepgp/stream-parse.cpp:430,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:431,1
    - Dst: BZ2_bzDecompress
      Src: /src/rnp/src/librepgp/stream-parse.cpp:439,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:443,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:448,1
    - Dst: pgp_source_compressed_param_t*::pkt::readsrc::eof
      Src: /src/rnp/src/librepgp/stream-parse.cpp:451,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:452,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 88
    argCount: 4
    argNames:
    - src
    - buf
    - len
    - readres
    argTypes:
    - pgp_source_t*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 463
      start: 361
    functionDepth: 1
    functionLinenumber: 361
    functionLinenumberEnd: 463
    functionName: compressed_src_read
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_source_compressed_param_t*::pkt::readsrc::eof
    - pgp_source_compressed_param_t*::pkt::readsrc::read
    - inflate
    - BZ2_bzDecompress
    linkageType: ''
    returnType: bool
    signature: bool compressed_src_read(pgp_source_t *src, void *buf, size_t len,
      size_t *readres)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_compressed_param_t*::pkt::readsrc::close
      Src: /src/rnp/src/librepgp/stream-parse.cpp:474,1
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-parse.cpp:475,1
    - Dst: BZ2_bzDecompressEnd
      Src: /src/rnp/src/librepgp/stream-parse.cpp:481,1
    - Dst: inflateEnd
      Src: /src/rnp/src/librepgp/stream-parse.cpp:485,1
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-parse.cpp:488,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 465
    functionDepth: 0
    functionLinenumber: 465
    functionLinenumberEnd: 490
    functionName: compressed_src_close
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_compressed_param_t*::pkt::readsrc::close
    - BZ2_bzDecompressEnd
    - inflateEnd
    - free
    linkageType: ''
    returnType: void
    signature: void compressed_src_close(pgp_source_t *src)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pgp_cipher_aead_reset
      Src: /src/rnp/src/librepgp/stream-parse.cpp:506,1
    - Dst: write_uint64
      Src: /src/rnp/src/librepgp/stream-parse.cpp:508,1
    - Dst: write_uint64
      Src: /src/rnp/src/librepgp/stream-parse.cpp:519,1
    - Dst: pgp_cipher_aead_set_ad
      Src: /src/rnp/src/librepgp/stream-parse.cpp:521,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:522,1
    - Dst: write_uint64
      Src: /src/rnp/src/librepgp/stream-parse.cpp:530,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/librepgp/stream-parse.cpp:532,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/librepgp/stream-parse.cpp:533,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/librepgp/stream-parse.cpp:534,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/librepgp/stream-parse.cpp:535,1
    - Dst: pgp_source_encrypted_param_t*::is_v2_seipd
      Src: /src/rnp/src/librepgp/stream-parse.cpp:538,1
    - Dst: std::copy
      Src: /src/rnp/src/librepgp/stream-parse.cpp:540,1
    - Dst: std::back_inserter
      Src: /src/rnp/src/librepgp/stream-parse.cpp:542,1
    - Dst: pgp_cipher_aead_set_ad
      Src: /src/rnp/src/librepgp/stream-parse.cpp:544,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:545,1
    - Dst: std::vector::size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:545,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:546,1
    - Dst: pgp_cipher_aead_nonce
      Src: /src/rnp/src/librepgp/stream-parse.cpp:561,1
    - Dst: pgp_cipher_aead_start
      Src: /src/rnp/src/librepgp/stream-parse.cpp:564,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 3
    argNames:
    - param
    - idx
    - last
    argTypes:
    - pgp_source_encrypted_param_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 565
      start: 493
    functionDepth: 1
    functionLinenumber: 493
    functionLinenumberEnd: 565
    functionName: encrypted_start_aead_chunk
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 2
    functionsReached:
    - pgp_cipher_aead_set_ad
    - RNP_LOG
    - write_uint64
    - std::back_inserter
    - pgp_cipher_aead_start
    - std::copy
    - pgp_cipher_aead_reset
    - pgp_cipher_aead_nonce
    - pgp_source_encrypted_param_t*::is_v2_seipd
    - std::vector::size
    - std::vector::data
    - static_cast<uint8_t>
    linkageType: ''
    returnType: bool
    signature: bool encrypted_start_aead_chunk(pgp_source_encrypted_param_t *param,
      size_t idx, bool last)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-parse.cpp:580,1
    - Dst: pgp_source_encrypted_param_t*::chunk_buf::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:580,1
    - Dst: pgp_cipher_aead_tag_len
      Src: /src/rnp/src/librepgp/stream-parse.cpp:603,1
    - Dst: pgp_cipher_aead_granularity
      Src: /src/rnp/src/librepgp/stream-parse.cpp:620,1
    - Dst: pgp_source_encrypted_param_t*::pkt::readsrc::read
      Src: /src/rnp/src/librepgp/stream-parse.cpp:623,1
    - Dst: pgp_source_encrypted_param_t*::pkt::readsrc::peek
      Src: /src/rnp/src/librepgp/stream-parse.cpp:629,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:647,1
    - Dst: pgp_cipher_aead_update
      Src: /src/rnp/src/librepgp/stream-parse.cpp:654,1
    - Dst: pgp_source_encrypted_param_t*::chunk_buf::empty
      Src: /src/rnp/src/librepgp/stream-parse.cpp:661,1
    - Dst: pgp_source_encrypted_param_t*::chunk_buf::resize
      Src: /src/rnp/src/librepgp/stream-parse.cpp:662,1
    - Dst: pgp_source_encrypted_param_t*::chunk_buf::size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:664,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-parse.cpp:665,1
    - Dst: pgp_source_encrypted_param_t*::chunk_buf::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:665,1
    - Dst: memmove
      Src: /src/rnp/src/librepgp/stream-parse.cpp:671,1
    - Dst: pgp_source_encrypted_param_t*::pkt::readsrc::skip
      Src: /src/rnp/src/librepgp/stream-parse.cpp:684,1
    - Dst: pgp_cipher_aead_finish
      Src: /src/rnp/src/librepgp/stream-parse.cpp:688,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:689,1
    - Dst: pgp_source_encrypted_param_t*::chunk_buf::empty
      Src: /src/rnp/src/librepgp/stream-parse.cpp:691,1
    - Dst: secure_clear
      Src: /src/rnp/src/librepgp/stream-parse.cpp:692,1
    - Dst: pgp_source_encrypted_param_t*::chunk_buf::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:692,1
    - Dst: pgp_source_encrypted_param_t*::chunk_buf::empty
      Src: /src/rnp/src/librepgp/stream-parse.cpp:705,1
    - Dst: pgp_source_encrypted_param_t*::chunk_buf::resize
      Src: /src/rnp/src/librepgp/stream-parse.cpp:706,1
    - Dst: pgp_source_encrypted_param_t*::chunk_buf::size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:709,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-parse.cpp:710,1
    - Dst: pgp_source_encrypted_param_t*::chunk_buf::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:711,1
    - Dst: encrypted_start_aead_chunk
      Src: /src/rnp/src/librepgp/stream-parse.cpp:726,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:727,1
    - Dst: pgp_source_encrypted_param_t*::pkt::readsrc::skip
      Src: /src/rnp/src/librepgp/stream-parse.cpp:736,1
    - Dst: pgp_cipher_aead_finish
      Src: /src/rnp/src/librepgp/stream-parse.cpp:739,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:741,1
    - Dst: pgp_source_encrypted_param_t*::chunk_buf::empty
      Src: /src/rnp/src/librepgp/stream-parse.cpp:742,1
    - Dst: secure_clear
      Src: /src/rnp/src/librepgp/stream-parse.cpp:743,1
    - Dst: pgp_source_encrypted_param_t*::chunk_buf::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:743,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-parse.cpp:762,1
    - Dst: pgp_source_encrypted_param_t*::chunk_buf::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:762,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 125
    argCount: 1
    argNames:
    - param
    argTypes:
    - pgp_source_encrypted_param_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 768
    functionName: encrypted_src_read_aead_part
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_source_encrypted_param_t*::chunk_buf::data
    - pgp_source_encrypted_param_t*::chunk_buf::resize
    - memmove
    - pgp_source_encrypted_param_t*::pkt::readsrc::peek
    - memcpy
    - pgp_source_encrypted_param_t*::chunk_buf::size
    - encrypted_start_aead_chunk
    - pgp_source_encrypted_param_t*::pkt::readsrc::skip
    - pgp_source_encrypted_param_t*::chunk_buf::empty
    - pgp_cipher_aead_granularity
    - pgp_cipher_aead_finish
    - pgp_source_encrypted_param_t*::pkt::readsrc::read
    - pgp_cipher_aead_tag_len
    - pgp_cipher_aead_update
    - secure_clear
    linkageType: ''
    returnType: bool
    signature: bool encrypted_src_read_aead_part(pgp_source_encrypted_param_t *param)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-parse.cpp:785,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-parse.cpp:793,1
    - Dst: encrypted_src_read_aead_part
      Src: /src/rnp/src/librepgp/stream-parse.cpp:799,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 4
    argNames:
    - src
    - buf
    - len
    - read
    argTypes:
    - pgp_source_t*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 807
      start: 771
    functionDepth: 2
    functionLinenumber: 771
    functionLinenumberEnd: 807
    functionName: encrypted_src_read_aead
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - encrypted_src_read_aead_part
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool encrypted_src_read_aead(pgp_source_t *src, void *buf, size_t len,
      size_t *read)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_encrypted_param_t*::pkt::readsrc::read
      Src: /src/rnp/src/librepgp/stream-parse.cpp:823,1
    - Dst: pgp_source_encrypted_param_t*::pkt::readsrc::peek
      Src: /src/rnp/src/librepgp/stream-parse.cpp:836,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:838,1
    - Dst: pgp_source_encrypted_param_t*::pkt::readsrc::skip
      Src: /src/rnp/src/librepgp/stream-parse.cpp:842,1
    - Dst: memmove
      Src: /src/rnp/src/librepgp/stream-parse.cpp:844,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-parse.cpp:845,1
    - Dst: pgp_cipher_cfb_decrypt
      Src: /src/rnp/src/librepgp/stream-parse.cpp:851,1
    - Dst: pgp_source_encrypted_param_t*::mdc::add
      Src: /src/rnp/src/librepgp/stream-parse.cpp:855,1
    - Dst: pgp_cipher_cfb_decrypt
      Src: /src/rnp/src/librepgp/stream-parse.cpp:858,1
    - Dst: pgp_cipher_cfb_finish
      Src: /src/rnp/src/librepgp/stream-parse.cpp:859,1
    - Dst: pgp_source_encrypted_param_t*::mdc::add
      Src: /src/rnp/src/librepgp/stream-parse.cpp:860,1
    - Dst: pgp_source_encrypted_param_t*::mdc::finish
      Src: /src/rnp/src/librepgp/stream-parse.cpp:862,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:866,1
    - Dst: memcmp
      Src: /src/rnp/src/librepgp/stream-parse.cpp:870,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:871,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:878,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-parse.cpp:878,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 55
    argCount: 4
    argNames:
    - src
    - buf
    - len
    - readres
    argTypes:
    - pgp_source_t*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 809
    functionDepth: 1
    functionLinenumber: 809
    functionLinenumberEnd: 885
    functionName: encrypted_src_read_cfb
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - memmove
    - what
    - pgp_source_encrypted_param_t*::pkt::readsrc::peek
    - memcpy
    - pgp_cipher_cfb_decrypt
    - memcmp
    - pgp_source_encrypted_param_t*::mdc::finish
    - pgp_source_encrypted_param_t*::pkt::readsrc::read
    - pgp_source_encrypted_param_t*::mdc::add
    - pgp_source_encrypted_param_t*::pkt::readsrc::skip
    - pgp_cipher_cfb_finish
    linkageType: ''
    returnType: bool
    signature: bool encrypted_src_read_cfb(pgp_source_t *src, void *buf, size_t len,
      size_t *readres)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_encrypted_param_t*::handler::on_decryption_done
      Src: /src/rnp/src/librepgp/stream-parse.cpp:895,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:903,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:906,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:909,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 19
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 887
    functionDepth: 1
    functionLinenumber: 887
    functionLinenumberEnd: 913
    functionName: encrypted_src_finish
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_source_encrypted_param_t*::handler::on_decryption_done
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t encrypted_src_finish(pgp_source_t *src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_encrypted_param_t*::pkt::readsrc::close
      Src: /src/rnp/src/librepgp/stream-parse.cpp:923,1
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-parse.cpp:924,1
    - Dst: pgp_source_encrypted_param_t*::use_cfb
      Src: /src/rnp/src/librepgp/stream-parse.cpp:928,1
    - Dst: pgp_cipher_aead_destroy
      Src: /src/rnp/src/librepgp/stream-parse.cpp:930,1
    - Dst: pgp_cipher_cfb_finish
      Src: /src/rnp/src/librepgp/stream-parse.cpp:933,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 915
    functionDepth: 1
    functionLinenumber: 915
    functionLinenumberEnd: 938
    functionName: encrypted_src_close
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - pgp_cipher_aead_destroy
    - pgp_source_encrypted_param_t*::use_cfb
    - pgp_source_encrypted_param_t*::pkt::readsrc::close
    - free
    - pgp_cipher_cfb_finish
    linkageType: ''
    returnType: void
    signature: void encrypted_src_close(pgp_source_t *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_signed_param_t*::txt_hashes::add_alg
      Src: /src/rnp/src/librepgp/stream-parse.cpp:945,1
    - Dst: pgp_source_signed_param_t*::hashes::add_alg
      Src: /src/rnp/src/librepgp/stream-parse.cpp:947,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - param
    - stype
    - halg
    argTypes:
    - pgp_source_signed_param_t*
    - pgp_sig_type_t
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 940
    functionDepth: 0
    functionLinenumber: 940
    functionLinenumberEnd: 948
    functionName: add_hash_for_sig
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_signed_param_t*::txt_hashes::add_alg
    - pgp_source_signed_param_t*::hashes::add_alg
    linkageType: ''
    returnType: void
    signature: void add_hash_for_sig(pgp_source_signed_param_t *param, pgp_sig_type_t
      stype, pgp_hash_alg_t halg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_signed_param_t*::txt_hashes::add_alg
      Src: /src/rnp/src/librepgp/stream-parse.cpp:959,1
    - Dst: pgp_source_signed_param_t*::hashes::add_alg
      Src: /src/rnp/src/librepgp/stream-parse.cpp:961,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - param
    - stype
    - halg
    - salt
    argTypes:
    - pgp_source_signed_param_t*
    - pgp_sig_type_t
    - pgp_hash_alg_t
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 962
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 962
    functionName: add_hash_for_sig_v6
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_signed_param_t*::txt_hashes::add_alg
    - pgp_source_signed_param_t*::hashes::add_alg
    linkageType: ''
    returnType: void
    signature: "void add_hash_for_sig_v6(pgp_source_signed_param_t *param,\n                    pgp_sig_type_t
      \            stype,\n                    pgp_hash_alg_t             halg,\n
      \                   std::vector<uint8_t>       salt)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SignatureInfo::sig::type
      Src: /src/rnp/src/librepgp/stream-parse.cpp:971,1
    - Dst: pgp_source_signed_param_t::txt_hashes::get
      Src: /src/rnp/src/librepgp/stream-parse.cpp:972,1
    - Dst: pgp_source_signed_param_t::hashes::get
      Src: /src/rnp/src/librepgp/stream-parse.cpp:974,1
    - Dst: rnp::SignatureInfo::sig::type
      Src: /src/rnp/src/librepgp/stream-parse.cpp:977,1
    - Dst: pgp_source_signed_param_t::txt_hashes::get
      Src: /src/rnp/src/librepgp/stream-parse.cpp:978,1
    - Dst: pgp_source_signed_param_t::hashes::get
      Src: /src/rnp/src/librepgp/stream-parse.cpp:980,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - param
    - sinfo
    argTypes:
    - pgp_source_signed_param_t
    - rnp::SignatureInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 981
      start: 965
    functionDepth: 1
    functionLinenumber: 965
    functionLinenumberEnd: 981
    functionName: get_hash_for_sig
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_signed_param_t::hashes::get
    - rnp::SignatureInfo::sig::type
    - pgp_source_signed_param_t::txt_hashes::get
    linkageType: ''
    returnType: rnp::Hash
    signature: 'rnp::Hash *

      get_hash_for_sig(pgp_source_signed_param_t &param, rnp::SignatureInfo &sinfo)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SignatureInfo::sig::is_document
      Src: /src/rnp/src/librepgp/stream-parse.cpp:987,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:988,1
    - Dst: rnp::SignatureInfo::sig::type
      Src: /src/rnp/src/librepgp/stream-parse.cpp:988,1
    - Dst: rnp::SignatureInfo::validity::add_error
      Src: /src/rnp/src/librepgp/stream-parse.cpp:989,1
    - Dst: rnp::SignatureInfo::sig::has_keyfp
      Src: /src/rnp/src/librepgp/stream-parse.cpp:994,1
    - Dst: rnp::KeySearch::create
      Src: /src/rnp/src/librepgp/stream-parse.cpp:995,1
    - Dst: rnp::SignatureInfo::sig::keyfp
      Src: /src/rnp/src/librepgp/stream-parse.cpp:995,1
    - Dst: rnp::SignatureInfo::sig::has_keyid
      Src: /src/rnp/src/librepgp/stream-parse.cpp:996,1
    - Dst: rnp::KeySearch::create
      Src: /src/rnp/src/librepgp/stream-parse.cpp:997,1
    - Dst: rnp::SignatureInfo::sig::keyid
      Src: /src/rnp/src/librepgp/stream-parse.cpp:997,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:999,1
    - Dst: rnp::SignatureInfo::validity::mark_validated
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1000,1
    - Dst: pgp_source_signed_param_t::handler::key_provider::request_key
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1004,1
    - Dst: pgp_source_signed_param_t::handler::key_provider::request_key
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1007,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1008,1
    - Dst: rnp::SignatureInfo::validity::mark_validated
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1009,1
    - Dst: auto::can_sign
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1013,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1014,1
    - Dst: rnp::SignatureInfo::validity::mark_validated
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1015,1
    - Dst: get_hash_for_sig
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1019,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1021,1
    - Dst: rnp::SignatureInfo::validity::mark_validated
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1022,1
    - Dst: auto::clone
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1025,1
    - Dst: auto::validate_sig
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1026,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 2
    argNames:
    - param
    - sinfo
    argTypes:
    - pgp_source_signed_param_t
    - rnp::SignatureInfo
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1028
      start: 983
    functionDepth: 2
    functionLinenumber: 983
    functionLinenumberEnd: 1028
    functionName: signed_validate_signature
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::SignatureInfo::sig::keyid
    - auto::can_sign
    - rnp::SignatureInfo::sig::type
    - rnp::SignatureInfo::validity::mark_validated
    - get_hash_for_sig
    - rnp::SignatureInfo::sig::has_keyid
    - auto::validate_sig
    - rnp::SignatureInfo::sig::has_keyfp
    - rnp::SignatureInfo::validity::add_error
    - pgp_source_signed_param_t::handler::key_provider::request_key
    - rnp::KeySearch::create
    - rnp::SignatureInfo::sig::is_document
    - auto::clone
    - rnp::SignatureInfo::sig::keyfp
    linkageType: ''
    returnType: void
    signature: void signed_validate_signature(pgp_source_signed_param_t &param, rnp::SignatureInfo
      &sinfo)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - begin
    - end
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1040
      start: 1030
    functionDepth: 0
    functionLinenumber: 1030
    functionLinenumberEnd: 1040
    functionName: stripped_line_len
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: long
    signature: long stripped_line_len(uint8_t *begin, uint8_t *end)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_source_signed_param_t *>
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - src
    - hdr
    argTypes:
    - pgp_source_t
    - pgp_literal_hdr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1048
      start: 1042
    functionDepth: 0
    functionLinenumber: 1042
    functionLinenumberEnd: 1048
    functionName: signed_src_set_literal_hdr
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - static_cast<pgp_source_signed_param_t *>
    linkageType: ''
    returnType: void
    signature: void signed_src_set_literal_hdr(pgp_source_t &src, const pgp_literal_hdr_t
      &hdr)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: signed_src_update
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1058,1
    - Dst: signed_src_update
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1060,1
    - Dst: pgp_source_signed_param_t*::hashes::add
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1064,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1066,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1066,1
    - Dst: pgp_source_signed_param_t*::txt_hashes::hashes::empty
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1069,1
    - Dst: pgp_source_signed_param_t*::txt_hashes::add
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1083,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1085,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1085,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1092,1
    - Dst: stripped_line_len
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1106,1
    - Dst: pgp_source_signed_param_t*::txt_hashes::add
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1109,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1111,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1111,1
    - Dst: pgp_source_signed_param_t*::txt_hashes::add
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1117,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1119,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1119,1
    - Dst: stripped_line_len
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1126,1
    - Dst: pgp_source_signed_param_t*::txt_hashes::add
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1132,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1134,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1134,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 67
    argCount: 3
    argNames:
    - src
    - buf
    - len
    argTypes:
    - pgp_source_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1138
      start: 1050
    functionDepth: 1
    functionLinenumber: 1050
    functionLinenumberEnd: 1138
    functionName: signed_src_update
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - stripped_line_len
    - what
    - pgp_source_signed_param_t*::txt_hashes::add
    - signed_src_update
    - pgp_source_signed_param_t*::hashes::add
    - pgp_source_signed_param_t*::txt_hashes::hashes::empty
    linkageType: ''
    returnType: void
    signature: void signed_src_update(pgp_source_t *src, const void *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_signed_param_t*::readsrc::read
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - src
    - buf
    - len
    - read
    argTypes:
    - pgp_source_t*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1148
    functionName: signed_src_read
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_signed_param_t*::readsrc::read
    linkageType: ''
    returnType: bool
    signature: bool signed_src_read(pgp_source_t *src, void *buf, size_t len, size_t
      *read)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1150
    functionDepth: 0
    functionLinenumber: 1150
    functionLinenumberEnd: 1156
    functionName: signed_src_close
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void signed_src_close(pgp_source_t *src)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t*::peek_eq
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1166,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1167,1
    - Dst: get_packet_type
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1171,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1173,1
    - Dst: pgp_source_signed_param_t*::siginfos::size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1177,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1178,1
    - Dst: pgp_source_signed_param_t*::siginfos::emplace_back
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1183,1
    - Dst: pgp_source_signed_param_t*::siginfos::back
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1184,1
    - Dst: pgp::pkt::Signature::Signature
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1185,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1186,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1187,1
    - Dst: rnp::SignatureInfo::validity::add_error
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1188,1
    - Dst: pgp_source_signed_param_t*::sigs::push_back
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1194,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1194,1
    - Dst: pgp_source_signed_param_t*::sigs::back
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1195,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1202,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1202,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 33
    argCount: 3
    argNames:
    - param
    - readsrc
    - sig
    argTypes:
    - pgp_source_signed_param_t*
    - pgp_source_t*
    - pgp::pkt::Signature**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1206
      start: 1160
    functionDepth: 1
    functionLinenumber: 1160
    functionLinenumberEnd: 1206
    functionName: signed_read_single_signature
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::pkt::Signature::Signature
    - what
    - pgp_source_signed_param_t*::siginfos::emplace_back
    - get_packet_type
    - pgp_source_signed_param_t*::siginfos::back
    - pgp_source_signed_param_t*::sigs::push_back
    - pgp_source_signed_param_t*::sigs::back
    - pgp::pkt::Signature::parse
    - pgp_source_signed_param_t*::siginfos::size
    - rnp::SignatureInfo::validity::add_error
    - pgp_source_t*::peek_eq
    - std::move
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t signed_read_single_signature(pgp_source_signed_param_t
      *param,\n                             pgp_source_t *             readsrc,\n
      \                            pgp::pkt::Signature **     sig)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::ArmoredSource::eof
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1213,1
    - Dst: signed_read_single_signature
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1214,1
    - Dst: rnp::ArmoredSource::src
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1214,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1222,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1222,1
    - Dst: code
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1223,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1227,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1227,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 2
    argNames:
    - src
    - param
    argTypes:
    - pgp_source_t
    - pgp_source_signed_param_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1231
      start: 1208
    functionDepth: 2
    functionLinenumber: 1208
    functionLinenumberEnd: 1231
    functionName: signed_read_cleartext_signatures
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - signed_read_single_signature
    - rnp::ArmoredSource::eof
    - code
    - rnp::ArmoredSource::src
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t signed_read_cleartext_signatures(pgp_source_t &src, pgp_source_signed_param_t
      *param)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_signed_param_t*::onepasses::rbegin
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1239,1
    - Dst: pgp_source_signed_param_t*::onepasses::rend
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1239,1
    - Dst: signed_read_single_signature
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1241,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1244,1
    - Dst: pgp_source_signed_param_t*::siginfos::empty
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1245,1
    - Dst: pgp::pkt::Signature*::matches_onepass
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1252,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1253,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1233
    functionDepth: 2
    functionLinenumber: 1233
    functionLinenumberEnd: 1257
    functionName: signed_read_signatures
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_source_signed_param_t*::siginfos::empty
    - signed_read_single_signature
    - pgp_source_signed_param_t*::onepasses::rend
    - pgp::pkt::Signature*::matches_onepass
    - pgp_source_signed_param_t*::onepasses::rbegin
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t signed_read_signatures(pgp_source_t *src)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: signed_read_cleartext_signatures
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1266,1
    - Dst: signed_read_signatures
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1268,1
    - Dst: pgp_source_t*::eof
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1283,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1284,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1295,1
    - Dst: signed_validate_signature
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1301,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1304,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1304,1
    - Dst: validity::mark_validated
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1305,1
    - Dst: validity::valid
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1308,1
    - Dst: pgp_source_signed_param_t*::handler::on_signatures
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1316,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1319
      start: 1259
    functionDepth: 3
    functionLinenumber: 1259
    functionLinenumberEnd: 1319
    functionName: signed_src_finish
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - signed_read_signatures
    - validity::valid
    - pgp_source_t*::eof
    - validity::mark_validated
    - pgp_source_signed_param_t*::handler::on_signatures
    - signed_read_cleartext_signatures
    - signed_validate_signature
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t signed_src_finish(pgp_source_t *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: T::clear
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1333,1
    - Dst: typename T::value_type::find_first_not_of
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1337,1
    - Dst: typename T::value_type::find_first_of
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1342,1
    - Dst: T::push_back
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1344,1
    - Dst: typename T::value_type::substr
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1344,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 3
    argNames:
    - str
    - delims
    - result
    argTypes:
    - typename T::value_type
    - typename T::value_type
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1346
      start: 1327
    functionDepth: 1
    functionLinenumber: 1327
    functionLinenumberEnd: 1346
    functionName: tokenize
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - typename T::value_type::find_first_not_of
    - T::push_back
    - typename T::value_type::find_first_of
    - typename T::value_type::substr
    - T::clear
    linkageType: ''
    returnType: void
    signature: void tokenize(const typename T::value_type &str, const typename T::value_type
      &delims, T &result)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_signed_param_t*::readsrc::peek_line
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1357,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1358,1
    - Dst: rnp::is_blank_line
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1366,1
    - Dst: pgp_source_signed_param_t*::readsrc::skip
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1367,1
    - Dst: strncmp
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1372,1
    - Dst: tokenize
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1380,1
    - Dst: rnp::Hash::alg
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1383,1
    - Dst: c_str
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1383,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1384,1
    - Dst: c_str
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1384,1
    - Dst: add_hash_for_sig
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1387,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1390,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1394,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1394,1
    - Dst: pgp_source_signed_param_t*::readsrc::skip
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1399,1
    - Dst: pgp_source_signed_param_t*::readsrc::skip_eol
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1401,1
    - Dst: pgp_source_signed_param_t*::readsrc::skip_eol
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1407,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 36
    argCount: 1
    argNames:
    - param
    argTypes:
    - pgp_source_signed_param_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1348
    functionDepth: 2
    functionLinenumber: 1348
    functionLinenumberEnd: 1408
    functionName: cleartext_parse_headers
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::is_blank_line
    - tokenize
    - what
    - strncmp
    - pgp_source_signed_param_t*::readsrc::skip
    - rnp::Hash::alg
    - pgp_source_signed_param_t*::readsrc::peek_line
    - c_str
    - pgp_source_signed_param_t*::readsrc::skip_eol
    - add_hash_for_sig
    linkageType: ''
    returnType: bool
    signature: bool cleartext_parse_headers(pgp_source_signed_param_t *param)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1421,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1425,1
    - Dst: signed_src_update
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1432,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1441,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1455,1
    - Dst: signed_src_update
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1457,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 32
    argCount: 4
    argNames:
    - src
    - buf
    - len
    - eol
    argTypes:
    - pgp_source_t*
    - uint8_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1459
      start: 1410
    functionDepth: 2
    functionLinenumber: 1410
    functionLinenumberEnd: 1459
    functionName: cleartext_process_line
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - memcmp
    - memcpy
    - signed_src_update
    linkageType: ''
    returnType: void
    signature: void cleartext_process_line(pgp_source_t *src, const uint8_t *buf,
      size_t len, bool eol)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1476,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1484,1
    - Dst: pgp_source_signed_param_t*::readsrc::peek
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1496,1
    - Dst: cleartext_process_line
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1506,1
    - Dst: cleartext_process_line
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1529,1
    - Dst: pgp_source_signed_param_t*::readsrc::skip
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1533,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1537,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 70
    argCount: 4
    argNames:
    - src
    - buf
    - len
    - readres
    argTypes:
    - pgp_source_t*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1555
      start: 1461
    functionDepth: 3
    functionLinenumber: 1461
    functionLinenumberEnd: 1555
    functionName: cleartext_src_read
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - cleartext_process_line
    - pgp_source_signed_param_t*::readsrc::peek
    - memcpy
    - pgp_source_signed_param_t*::readsrc::skip
    linkageType: ''
    returnType: bool
    signature: bool cleartext_src_read(pgp_source_t *src, void *buf, size_t len, size_t
      *readres)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp_block_size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1567,1
    - Dst: pgp_source_encrypted_param_t*::pkt::readsrc::peek_eq
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1572,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1573,1
    - Dst: pgp_cipher_cfb_start
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1578,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1579,1
    - Dst: pgp_cipher_cfb_decrypt
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1583,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1586,1
    - Dst: pgp_source_encrypted_param_t*::pkt::readsrc::skip
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1590,1
    - Dst: pgp_cipher_cfb_resync
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1597,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1602,1
    - Dst: pgp_source_encrypted_param_t*::mdc::add
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1603,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1606,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1606,1
    - Dst: pgp_cipher_cfb_finish
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1612,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 37
    argCount: 3
    argNames:
    - param
    - alg
    - key
    argTypes:
    - pgp_source_encrypted_param_t*
    - pgp_symm_alg_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1614
      start: 1557
    functionDepth: 1
    functionLinenumber: 1557
    functionLinenumberEnd: 1614
    functionName: encrypted_decrypt_cfb_header
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_cipher_cfb_resync
    - pgp_source_encrypted_param_t*::pkt::readsrc::peek_eq
    - pgp_cipher_cfb_start
    - what
    - pgp_cipher_cfb_decrypt
    - pgp_block_size
    - pgp_source_encrypted_param_t*::mdc::add
    - rnp::Hash::create
    - pgp_source_encrypted_param_t*::pkt::readsrc::skip
    - pgp_cipher_cfb_finish
    linkageType: ''
    returnType: bool
    signature: "bool encrypted_decrypt_cfb_header(pgp_source_encrypted_param_t *param,\n
      \                            pgp_symm_alg_t                alg,\n                             uint8_t
      *                     key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1620,1
    - Dst: pgp_source_encrypted_param_t*::is_v2_seipd
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1630,1
    - Dst: seipd_v2_key_and_nonce_derivation
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1632,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1634,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1634,1
    - Dst: seipd_v2_aead_fields_t::nonce::size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1636,1
    - Dst: seipd_v2_aead_fields_t::nonce::resize
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1638,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1640,1
    - Dst: seipd_v2_aead_fields_t::nonce::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1640,1
    - Dst: seipd_v2_aead_fields_t::nonce::size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1640,1
    - Dst: pgp_cipher_aead_init
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1645,1
    - Dst: pgp_cipher_aead_granularity
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1650,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1652,1
    - Dst: encrypted_start_aead_chunk
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1656,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - param
    - alg
    - key
    argTypes:
    - pgp_source_encrypted_param_t*
    - pgp_symm_alg_t
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1658
      start: 1616
    functionDepth: 2
    functionLinenumber: 1616
    functionLinenumberEnd: 1658
    functionName: encrypted_start_aead
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - memcpy
    - seipd_v2_aead_fields_t::nonce::data
    - encrypted_start_aead_chunk
    - seipd_v2_aead_fields_t::nonce::size
    - seipd_v2_aead_fields_t::nonce::resize
    - pgp_cipher_aead_granularity
    - seipd_v2_key_and_nonce_derivation
    - pgp_source_encrypted_param_t*::is_v2_seipd
    - pgp_cipher_aead_init
    - std::vector::data
    - std::move
    linkageType: ''
    returnType: bool
    signature: bool encrypted_start_aead(pgp_source_encrypted_param_t *param, pgp_symm_alg_t
      alg, uint8_t *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: have_pkesk_checksum
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1664,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1665,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1666,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1675,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1679,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1682,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 17
    argCount: 3
    argNames:
    - alg
    - keylen
    - decbuf
    argTypes:
    - pgp_pubkey_alg_t
    - size_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1660
    functionDepth: 1
    functionLinenumber: 1660
    functionLinenumberEnd: 1684
    functionName: check_decrypted_symkey
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - have_pkesk_checksum
    - rnp::secure_bytes::resize
    - rnp::secure_bytes::size
    linkageType: ''
    returnType: bool
    signature: bool check_decrypted_symkey(pgp_pubkey_alg_t alg, size_t keylen, rnp::secure_bytes
      &decbuf)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: parse_material
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1692,1
    - Dst: material
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1693,1
    - Dst: material
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1696,1
    - Dst: material
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1697,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1699,1
    - Dst: pgp_source_encrypted_param_t*::is_v2_seipd
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1709,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1711,1
    - Dst: check_enforce_aes_v3_pkesk
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1720,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1721,1
    - Dst: dynamic_cast<pgp::ECDHEncMaterial *>
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1730,1
    - Dst: auto::get
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1730,1
    - Dst: assert
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1731,1
    - Dst: fp
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1732,1
    - Dst: pkt
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1734,1
    - Dst: decrypt
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1734,1
    - Dst: do_encrypt_pkesk_v3_alg_id
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1740,1
    - Dst: static_cast<pgp_symm_alg_t>
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1741,1
    - Dst: rnp::secure_bytes::erase
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1742,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1742,1
    - Dst: pgp_key_size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1746,1
    - Dst: pgp_key_size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1750,1
    - Dst: check_decrypted_symkey
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1754,1
    - Dst: RNP_LOG_U8VEC
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1759,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1760,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1760,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1760,1
    - Dst: encrypted_start_aead
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1767,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1767,1
    - Dst: pgp_source_encrypted_param_t*::use_cfb
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1772,1
    - Dst: encrypted_decrypt_cfb_header
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1774,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1774,1
    - Dst: encrypted_start_aead
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1777,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1777,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 50
    argCount: 4
    argNames:
    - param
    - '            sesskey'
    - '                    seckey'
    - '        ctx'
    argTypes:
    - pgp_source_encrypted_param_t*
    - pgp_pk_sesskey_t
    - rnp::Key
    - rnp::SecurityContext
    assertStmts:
    - condition: (ecdh)
      pos:
        line_end: 1730
        line_start: 1730
        source_file: /src/rnp/src/librepgp/stream-parse.cpp
    constantsTouched: []
    func_position:
      end: 1783
      start: 1686
    functionDepth: 3
    functionLinenumber: 1686
    functionLinenumberEnd: 1783
    functionName: encrypted_try_key
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - do_encrypt_pkesk_v3_alg_id
    - RNP_LOG_U8VEC
    - pgp_source_encrypted_param_t*::is_v2_seipd
    - rnp::secure_bytes::data
    - pkt
    - pgp_source_encrypted_param_t*::use_cfb
    - fp
    - rnp::secure_bytes::begin
    - RNP_LOG
    - decrypt
    - parse_material
    - dynamic_cast<pgp::ECDHEncMaterial *>
    - assert
    - rnp::secure_bytes::erase
    - pgp_key_size
    - auto::get
    - check_decrypted_symkey
    - encrypted_start_aead
    - std::vector<uint8_t>
    - material
    - encrypted_decrypt_cfb_header
    - static_cast<pgp_symm_alg_t>
    - check_enforce_aes_v3_pkesk
    linkageType: ''
    returnType: bool
    signature: "bool encrypted_try_key(pgp_source_encrypted_param_t *param,\n                  pgp_pk_sesskey_t
      &            sesskey,\n                  rnp::Key &                    seckey,\n
      \                 rnp::SecurityContext &        ctx)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1793,1
    - Dst: pgp_s2k_derive_key
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1794,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1794,1
    - Dst: pgp_cipher_cfb_start
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1804,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1804,1
    - Dst: pgp_cipher_cfb_decrypt
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1808,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1808,1
    - Dst: pgp_cipher_cfb_finish
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1809,1
    - Dst: pgp_key_size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1812,1
    - Dst: memmove
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1816,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1816,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1816,1
    - Dst: pgp_block_size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1821,1
    - Dst: defined
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1830,1
    - Dst: pgp_cipher_aead_tag_len
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1834,1
    - Dst: pgp_key_size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1835,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1837,1
    - Dst: rnp::Hkdf::create
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1846,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1849,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1851,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1852,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1853,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1855,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1856,1
    - Dst: pgp_key_size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1856,1
    - Dst: auto::extract_expand
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1858,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1860,1
    - Dst: std::vector::size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1861,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1862,1
    - Dst: std::vector::size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1863,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1864,1
    - Dst: rnp::secure_array::size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1865,1
    - Dst: pgp_cipher_aead_init
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1868,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1868,1
    - Dst: encrypted_sesk_set_ad
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1873,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1874,1
    - Dst: pgp_cipher_aead_nonce
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1880,1
    - Dst: pgp_cipher_aead_start
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1884,1
    - Dst: pgp_cipher_aead_finish
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1885,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1885,1
    - Dst: pgp_cipher_aead_destroy
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1886,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 52
    argCount: 2
    argNames:
    - param
    - password
    argTypes:
    - pgp_source_encrypted_param_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1785
    functionDepth: 1
    functionLinenumber: 1785
    functionLinenumberEnd: 1895
    functionName: encrypted_try_password
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - pgp_cipher_cfb_decrypt
    - pgp_cipher_aead_finish
    - auto::extract_expand
    - rnp::secure_array::data
    - pgp_block_size
    - rnp::Hkdf::create
    - pgp_cipher_aead_init
    - pgp_cipher_cfb_finish
    - memmove
    - RNP_LOG
    - rnp::secure_array::size
    - pgp_cipher_aead_destroy
    - encrypted_sesk_set_ad
    - defined
    - pgp_cipher_aead_start
    - pgp_key_size
    - pgp_cipher_aead_nonce
    - std::vector::size
    - pgp_cipher_aead_tag_len
    - std::vector::data
    - std::vector::push_back
    - pgp_cipher_cfb_start
    - pgp_s2k_derive_key
    linkageType: ''
    returnType: int
    signature: int encrypted_try_password(pgp_source_encrypted_param_t *param, const
      char *password)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: stream_peek_packet_hdr
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1933,1
    - Dst: pgp_source_packet_param_t::readsrc::skip
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1937,1
    - Dst: calloc
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1943,1
    - Dst: init_partial_pkt_src
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1947,1
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1949,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - param
    argTypes:
    - pgp_source_packet_param_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1955
      start: 1927
    functionDepth: 4
    functionLinenumber: 1927
    functionLinenumberEnd: 1955
    functionName: init_packet_params
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - stream_peek_packet_hdr
    - init_partial_pkt_src
    - pgp_source_packet_param_t::readsrc::skip
    - free
    - calloc
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_packet_params(pgp_source_packet_param_t &param)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: init_src_common
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1966,1
    - Dst: init_packet_params
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1977,1
    - Dst: pgp_source_literal_param_t*::pkt::readsrc::read_eq
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1982,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1983,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:1997,1
    - Dst: pgp_source_literal_param_t*::pkt::readsrc::read_eq
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2002,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2003,1
    - Dst: pgp_source_literal_param_t*::pkt::readsrc::read_eq
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2007,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2008,1
    - Dst: pgp_source_literal_param_t*::pkt::readsrc::read_eq
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2015,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2016,1
    - Dst: read_uint32
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2020,1
    - Dst: pgp_source_t*::close
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2035,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 69
    argCount: 2
    argNames:
    - src
    - readsrc
    argTypes:
    - pgp_source_t*
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2038
      start: 1957
    functionDepth: 5
    functionLinenumber: 1957
    functionLinenumberEnd: 2038
    functionName: init_literal_src
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - init_packet_params
    - read_uint32
    - pgp_source_t*::close
    - init_src_common
    - pgp_source_literal_param_t*::pkt::readsrc::read_eq
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_literal_src(pgp_source_t *src, pgp_source_t *readsrc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_source_literal_param_t *>
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2043,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2044
      start: 2040
    functionDepth: 0
    functionLinenumber: 2040
    functionLinenumberEnd: 2044
    functionName: get_literal_src_hdr
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 4
    functionsReached:
    - static_cast<pgp_source_literal_param_t *>
    linkageType: ''
    returnType: pgp_literal_hdr_t
    signature: 'pgp_literal_hdr_t &

      get_literal_src_hdr(pgp_source_t &src)'
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: init_src_common
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2054,1
    - Dst: init_packet_params
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2065,1
    - Dst: pgp_source_compressed_param_t*::pkt::readsrc::read_eq
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2071,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2072,1
    - Dst: memset
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2083,1
    - Dst: inflateInit2
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2085,1
    - Dst: inflateInit
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2085,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2087,1
    - Dst: memset
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2094,1
    - Dst: BZ2_bzDecompressInit
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2095,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2097,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2104,1
    - Dst: pgp_source_t*::close
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2115,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 60
    argCount: 2
    argNames:
    - src
    - readsrc
    argTypes:
    - pgp_source_t*
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2118
      start: 2046
    functionDepth: 5
    functionLinenumber: 2046
    functionLinenumberEnd: 2118
    functionName: init_compressed_src
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - init_packet_params
    - memset
    - inflateInit
    - pgp_source_compressed_param_t*::pkt::readsrc::read_eq
    - pgp_source_t*::close
    - init_src_common
    - inflateInit2
    - BZ2_bzDecompressInit
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_compressed_src(pgp_source_t *src, pgp_source_t *readsrc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - src
    - alg
    argTypes:
    - pgp_source_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2133
      start: 2120
    functionDepth: 1
    functionLinenumber: 2120
    functionLinenumberEnd: 2133
    functionName: get_compressed_src_alg
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: bool
    signature: bool get_compressed_src_alg(pgp_source_t *src, uint8_t *alg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2139,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - chunk_size_octet
    - chunk_size
    argTypes:
    - uint8_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2135
    functionDepth: 1
    functionLinenumber: 2135
    functionLinenumberEnd: 2147
    functionName: parse_aead_chunk_size
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: bool
    signature: bool parse_aead_chunk_size(uint8_t chunk_size_octet, size_t &chunk_size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t*::read_eq
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2155,1
    - Dst: std::memcpy
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2163,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - src
    - hdr
    argTypes:
    - pgp_source_t*
    - pgp_seipdv2_hdr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2165
      start: 2150
    functionDepth: 0
    functionLinenumber: 2150
    functionLinenumberEnd: 2165
    functionName: get_seipdv2_src_hdr
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - std::memcpy
    - pgp_source_t*::read_eq
    linkageType: ''
    returnType: bool
    signature: bool get_seipdv2_src_hdr(pgp_source_t *src, pgp_seipdv2_hdr_t *hdr)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t*::read_eq
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2173,1
    - Dst: pgp_cipher_aead_nonce_len
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2182,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2183,1
    - Dst: pgp_source_t*::read_eq
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2187,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - src
    - hdr
    argTypes:
    - pgp_source_t*
    - pgp_aead_hdr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2168
    functionDepth: 1
    functionLinenumber: 2168
    functionLinenumberEnd: 2188
    functionName: get_aead_src_hdr
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - pgp_source_t*::read_eq
    - pgp_cipher_aead_nonce_len
    linkageType: ''
    returnType: bool
    signature: bool get_aead_src_hdr(pgp_source_t *src, pgp_aead_hdr_t *hdr)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_encrypted_param_t*::pubencs::size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2201,1
    - Dst: pgp_source_encrypted_param_t*::symencs::size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2201,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2202,1
    - Dst: pgp_source_encrypted_param_t*::pkt::readsrc::peek_eq
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2206,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2207,1
    - Dst: get_packet_type
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2210,1
    - Dst: pgp_sk_sesskey_t::parse
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2214,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2216,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2220,1
    - Dst: pgp_source_encrypted_param_t*::symencs::push_back
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2224,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2224,1
    - Dst: pgp_pk_sesskey_t::parse
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2229,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2231,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2235,1
    - Dst: pgp_source_encrypted_param_t*::pubencs::push_back
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2239,1
    - Dst: std::move
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2239,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2248,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2254,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2254,1
    - Dst: code
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2254,1
    - Dst: code
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2255,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2259,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2259,1
    - Dst: init_packet_params
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2265,1
    - Dst: pgp_source_encrypted_param_t*::pkt::readsrc::peek_eq
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2274,1
    - Dst: get_aead_src_hdr
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2278,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2279,1
    - Dst: is_valid_seipd_version
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2284,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2285,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2289,1
    - Dst: parse_aead_chunk_size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2294,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2301,1
    - Dst: memset
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2302,1
    - Dst: pgp_source_encrypted_param_t*::pkt::readsrc::read_eq
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2305,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2318,1
    - Dst: pgp_source_encrypted_param_t*::pkt::readsrc::peek_eq
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2326,1
    - Dst: get_seipdv2_src_hdr
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2330,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2331,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2338,1
    - Dst: parse_aead_chunk_size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2343,1
    - Dst: memcpy
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2350,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2358,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 123
    argCount: 1
    argNames:
    - param
    argTypes:
    - pgp_source_encrypted_param_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2361
      start: 2192
    functionDepth: 5
    functionLinenumber: 2192
    functionLinenumberEnd: 2361
    functionName: encrypted_read_packet_data
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - pgp_sk_sesskey_t::parse
    - pgp_source_encrypted_param_t*::pkt::readsrc::read_eq
    - std::move
    - pgp_source_encrypted_param_t*::pubencs::size
    - pgp_source_encrypted_param_t*::symencs::size
    - pgp_source_encrypted_param_t*::symencs::push_back
    - RNP_LOG
    - memcpy
    - get_packet_type
    - get_aead_src_hdr
    - is_valid_seipd_version
    - memset
    - parse_aead_chunk_size
    - code
    - pgp_source_encrypted_param_t*::pkt::readsrc::peek_eq
    - what
    - pgp_pk_sesskey_t::parse
    - init_packet_params
    - get_seipdv2_src_hdr
    - pgp_source_encrypted_param_t*::pubencs::push_back
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t encrypted_read_packet_data(pgp_source_encrypted_param_t
      *param)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: init_src_common
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2376,1
    - Dst: pgp_source_encrypted_param_t::pgp_source_encrypted_param_t
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2379,1
    - Dst: encrypted_read_packet_data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2392,1
    - Dst: pgp_source_encrypted_param_t*::use_cfb
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2397,1
    - Dst: pgp_source_encrypted_param_t*::is_v2_seipd
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2399,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2408,1
    - Dst: pgp_parse_handler_t*::on_recipients
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2416,1
    - Dst: pgp_source_encrypted_param_t*::pubencs::empty
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2422,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2425,1
    - Dst: pgp_source_encrypted_param_t*::pubencs::size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2434,1
    - Dst: rnp::KeySearch::create
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2440,1
    - Dst: rnp::KeySearch::create
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2443,1
    - Dst: pgp_parse_handler_t*::key_provider::request_key
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2448,1
    - Dst: pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2458,1
    - Dst: fp::size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2461,1
    - Dst: auto::has_secret
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2467,1
    - Dst: auto::can_encrypt
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2467,1
    - Dst: auto::alg
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2471,1
    - Dst: auto::unlock
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2476,1
    - Dst: encrypted_try_key
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2483,1
    - Dst: pgp_parse_handler_t*::on_decryption_start
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2487,1
    - Dst: pgp_source_encrypted_param_t*::symencs::empty
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2495,1
    - Dst: pgp_request_password
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2501,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2502,1
    - Dst: rnp::secure_array::size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2502,1
    - Dst: encrypted_try_password
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2507,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2507,1
    - Dst: pgp_parse_handler_t*::on_decryption_info
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2522,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2529,1
    - Dst: pgp_source_t*::close
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2538,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 110
    argCount: 3
    argNames:
    - handler
    - src
    - readsrc
    argTypes:
    - pgp_parse_handler_t*
    - pgp_source_t*
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2541
      start: 2373
    functionDepth: 6
    functionLinenumber: 2373
    functionLinenumberEnd: 2541
    functionName: init_encrypted_src
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - pgp_parse_handler_t*::key_provider::request_key
    - pgp_source_encrypted_param_t::pgp_source_encrypted_param_t
    - encrypted_try_key
    - pgp_parse_handler_t*::on_recipients
    - auto::has_secret
    - pgp_source_encrypted_param_t*::is_v2_seipd
    - init_src_common
    - pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
    - pgp_source_encrypted_param_t*::pubencs::size
    - pgp_source_encrypted_param_t*::use_cfb
    - rnp::secure_array::data
    - auto::unlock
    - fp::size
    - auto::alg
    - encrypted_try_password
    - RNP_LOG
    - rnp::secure_array::size
    - pgp_parse_handler_t*::on_decryption_start
    - pgp_request_password
    - rnp::KeySearch::create
    - pgp_parse_handler_t*::on_decryption_info
    - pgp_source_encrypted_param_t*::symencs::empty
    - pgp_source_t*::close
    - pgp_source_encrypted_param_t*::pubencs::empty
    - encrypted_read_packet_data
    - auto::can_encrypt
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_encrypted_src(pgp_parse_handler_t *handler, pgp_source_t
      *src, pgp_source_t *readsrc)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2547,1
    - Dst: pgp_source_signed_param_t*::readsrc::read_eq
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2551,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2552,1
    - Dst: memcmp
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2556,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2557,1
    - Dst: pgp_source_signed_param_t*::readsrc::skip_eol
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2562,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2563,1
    - Dst: cleartext_parse_headers
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2568,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2575
      start: 2543
    functionDepth: 3
    functionLinenumber: 2543
    functionLinenumberEnd: 2575
    functionName: init_cleartext_signed_src
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - cleartext_parse_headers
    - memcmp
    - pgp_source_signed_param_t*::readsrc::read_eq
    - strlen
    - pgp_source_signed_param_t*::readsrc::skip_eol
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_cleartext_signed_src(pgp_source_t *src)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: init_src_common
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2590,1
    - Dst: pgp_source_signed_param_t::pgp_source_signed_param_t
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2594,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2597,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2597,1
    - Dst: pgp_source_t*::is_cleartext
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2603,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2616,1
    - Dst: init_cleartext_signed_src
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2623,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2631,1
    - Dst: pgp_source_t*::peek_eq
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2637,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2638,1
    - Dst: get_packet_type
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2643,1
    - Dst: pgp_source_signed_param_t*::onepasses::size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2646,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2647,1
    - Dst: pgp_one_pass_sig_t::parse
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2653,1
    - Dst: pgp_source_signed_param_t*::onepasses::push_back
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2670,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2673,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2673,1
    - Dst: add_hash_for_sig_v6
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2683,1
    - Dst: add_hash_for_sig
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2687,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2690,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2693,1
    - Dst: signed_read_single_signature
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2704,1
    - Dst: add_hash_for_sig_v6
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2712,1
    - Dst: pgp::pkt::Signature*::type
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2712,1
    - Dst: add_hash_for_sig
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2716,1
    - Dst: pgp::pkt::Signature*::type
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2716,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2719,1
    - Dst: pgp::pkt::Signature*::type
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2721,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2722,1
    - Dst: pgp_source_t*::eof
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2737,1
    - Dst: pgp_source_signed_param_t*::onepasses::empty
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2744,1
    - Dst: pgp_source_signed_param_t*::sigs::empty
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2744,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2745,1
    - Dst: pgp_source_signed_param_t*::onepasses::empty
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2749,1
    - Dst: pgp_source_signed_param_t*::sigs::empty
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2749,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2750,1
    - Dst: pgp_source_t*::close
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2756,1
    CyclomaticComplexity: 45
    EdgeCount: 45
    ICount: 141
    argCount: 3
    argNames:
    - handler
    - src
    - readsrc
    argTypes:
    - pgp_parse_handler_t*
    - pgp_source_t*
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2579
    functionDepth: 4
    functionLinenumber: 2579
    functionLinenumberEnd: 2760
    functionName: init_signed_src
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - pgp_source_t*::is_cleartext
    - pgp_source_signed_param_t::pgp_source_signed_param_t
    - pgp_source_signed_param_t*::sigs::empty
    - init_src_common
    - pgp_source_signed_param_t*::onepasses::size
    - add_hash_for_sig
    - RNP_LOG
    - pgp::pkt::Signature*::type
    - signed_read_single_signature
    - get_packet_type
    - pgp_source_signed_param_t*::onepasses::empty
    - what
    - pgp_one_pass_sig_t::parse
    - init_cleartext_signed_src
    - add_hash_for_sig_v6
    - pgp_source_t*::eof
    - pgp_source_signed_param_t*::onepasses::push_back
    - pgp_source_t*::close
    - pgp_source_t*::peek_eq
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_signed_src(pgp_parse_handler_t *handler, pgp_source_t
      *src, pgp_source_t *readsrc)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2765,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2767
      start: 2762
    functionDepth: 0
    functionLinenumber: 2762
    functionLinenumberEnd: 2767
    functionName: pgp_processing_ctx_t::~pgp_processing_ctx_t()
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void pgp_processing_ctx_t::~pgp_processing_ctx_t()
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: pgp_processing_ctx_t::sources::size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2776,1
    - Dst: pgp_source_t*::peek_eq
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2780,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2781,1
    - Dst: get_packet_type
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2785,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2787,1
    - Dst: pgp_processing_ctx_t::sources::size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2791,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2792,1
    - Dst: init_encrypted_src
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2801,1
    - Dst: init_signed_src
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2805,1
    - Dst: init_compressed_src
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2808,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2813,1
    - Dst: init_literal_src
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2817,1
    - Dst: pgp_processing_ctx_t::sources::size
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2820,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2821,1
    - Dst: stream_parse_marker
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2823,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2825,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2830,1
    - Dst: pgp_processing_ctx_t::sources::push_back
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2839,1
    - Dst: pgp_processing_ctx_t::sources::back
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2840,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2843,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2844,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2844,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 72
    argCount: 2
    argNames:
    - ctx
    - src
    argTypes:
    - pgp_processing_ctx_t
    - pgp_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2863
      start: 2772
    functionDepth: 7
    functionLinenumber: 2772
    functionLinenumberEnd: 2863
    functionName: init_packet_sequence
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - init_encrypted_src
    - what
    - get_packet_type
    - pgp_source_t::close
    - stream_parse_marker
    - pgp_processing_ctx_t::sources::back
    - init_compressed_src
    - init_literal_src
    - init_signed_src
    - pgp_processing_ctx_t::sources::size
    - pgp_source_t*::peek_eq
    - pgp_processing_ctx_t::sources::push_back
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_packet_sequence(pgp_processing_ctx_t &ctx, pgp_source_t
      &src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_signed_src
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2871,1
    - Dst: pgp_processing_ctx_t::sources::push_back
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2875,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2878,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2878,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2879,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - src
    argTypes:
    - pgp_processing_ctx_t
    - pgp_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2884
      start: 2865
    functionDepth: 5
    functionLinenumber: 2865
    functionLinenumberEnd: 2884
    functionName: init_cleartext_sequence
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - pgp_source_t::close
    - init_signed_src
    - pgp_processing_ctx_t::sources::push_back
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_cleartext_sequence(pgp_processing_ctx_t &ctx, pgp_source_t
      &src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: init_armored_src
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2892,1
    - Dst: pgp_processing_ctx_t::sources::push_back
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2897,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2900,1
    - Dst: what
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2900,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2901,1
    - Dst: init_packet_sequence
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2905,1
    - Dst: pgp_processing_ctx_t::sources::back
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2905,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - ctx
    - src
    argTypes:
    - pgp_processing_ctx_t
    - pgp_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2906
      start: 2886
    functionDepth: 8
    functionLinenumber: 2886
    functionLinenumberEnd: 2906
    functionName: init_armored_sequence
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - pgp_source_t::close
    - init_armored_src
    - pgp_processing_ctx_t::sources::back
    - init_packet_sequence
    - pgp_processing_ctx_t::sources::push_back
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t init_armored_sequence(pgp_processing_ctx_t &ctx, pgp_source_t
      &src)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: is_pgp_source
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2922,1
    - Dst: init_packet_sequence
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2923,1
    - Dst: pgp_source_t::is_cleartext
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2926,1
    - Dst: init_cleartext_sequence
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2928,1
    - Dst: pgp_source_t::is_armored
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2929,1
    - Dst: init_armored_sequence
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2931,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2933,1
    - Dst: calloc
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2943,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2945,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2954,1
    - Dst: pgp_parse_handler_t*::src_provider
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2958,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2959,1
    - Dst: pgp_source_t::read
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2966,1
    - Dst: signed_src_update
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2971,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2974,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2977,1
    - Dst: pgp_processing_ctx_t::sources::back
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2982,1
    - Dst: get_literal_src_hdr
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2986,1
    - Dst: signed_src_set_literal_hdr
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2988,1
    - Dst: pgp_parse_handler_t*::dest_provider
      Src: /src/rnp/src/librepgp/stream-parse.cpp:2993,1
    - Dst: pgp_source_t*::read
      Src: /src/rnp/src/librepgp/stream-parse.cpp:3001,1
    - Dst: signed_src_update
      Src: /src/rnp/src/librepgp/stream-parse.cpp:3009,1
    - Dst: dst_write
      Src: /src/rnp/src/librepgp/stream-parse.cpp:3011,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librepgp/stream-parse.cpp:3013,1
    - Dst: finish
      Src: /src/rnp/src/librepgp/stream-parse.cpp:3023,1
    - Dst: dst_close
      Src: /src/rnp/src/librepgp/stream-parse.cpp:3031,1
    - Dst: free
      Src: /src/rnp/src/librepgp/stream-parse.cpp:3035,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 102
    argCount: 2
    argNames:
    - handler
    - src
    argTypes:
    - pgp_parse_handler_t*
    - pgp_source_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3037
      start: 2908
    functionDepth: 9
    functionLinenumber: 2908
    functionLinenumberEnd: 3037
    functionName: process_pgp_source
    functionSourceFile: /src/rnp/src/librepgp/stream-parse.cpp
    functionUses: 0
    functionsReached:
    - signed_src_set_literal_hdr
    - pgp_source_t::close
    - dst_write
    - dst_close
    - signed_src_update
    - get_literal_src_hdr
    - pgp_source_t::read
    - free
    - is_pgp_source
    - pgp_source_t*::read
    - pgp_parse_handler_t*::src_provider
    - pgp_processing_ctx_t::sources::back
    - RNP_LOG
    - pgp_parse_handler_t*::dest_provider
    - pgp_source_t::is_cleartext
    - init_packet_sequence
    - init_armored_sequence
    - init_cleartext_sequence
    - pgp_source_t::is_armored
    - finish
    - calloc
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t process_pgp_source(pgp_parse_handler_t *handler, pgp_source_t
      &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 61
    functionName: pgp_key_pkt_t
    functionSourceFile: /src/rnp/src/librepgp/stream-key.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_key_pkt_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 90
    functionName: pgp_transferable_subkey_t
    functionSourceFile: /src/rnp/src/librepgp/stream-key.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_transferable_subkey_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: '&operator=(const pgp_transferable_subkey_t &)'
    functionSourceFile: /src/rnp/src/librepgp/stream-key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_transferable_subkey_t
    signature: pgp_transferable_subkey_t &operator=(const pgp_transferable_subkey_t
      &)
  - 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: pgp_transferable_key_t
    functionSourceFile: /src/rnp/src/librepgp/stream-key.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_transferable_key_t()
  - 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: '&operator=(const pgp_transferable_key_t &)'
    functionSourceFile: /src/rnp/src/librepgp/stream-key.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_transferable_key_t
    signature: pgp_transferable_key_t &operator=(const pgp_transferable_key_t &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:36,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:37,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:39,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - str_in
    - msg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 41
    functionName: ExceptionTests::do_scan_with_exception
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - FAIL
    - EXPECT_STREQ
    - sexp_input_stream_t::set_byte_size
    - what
    linkageType: ''
    returnType: void
    signature: void do_scan_with_exception(const char *str_in, const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, UnexpectedEof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, UnexpectedCharacter4bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, IllegalCharacter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:65,1
    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: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, UnexpectedEofAfterQuote)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, IllegalCharacterBase64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, InvalidHex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, InvalidOctal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, TooBigOctal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, InvalidEscape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, StringTooShortQuoted)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::set_verbosity
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:107,1
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:108,1
    - Dst: sexp::set_verbosity
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    - sexp::set_verbosity
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, StringTooShortBase64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::set_verbosity
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:116,1
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:117,1
    - Dst: sexp::set_verbosity
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    - sexp::set_verbosity
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, StringTooShortHex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, StringBadLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, StringTooLongTruncated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, StringTruncated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, DecimalTooLong)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, Base64CurlyBracket)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::set_verbosity
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:155,1
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:156,1
    - Dst: sexp::set_verbosity
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    - sexp::set_verbosity
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, UnusedBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_list_t::parse
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:170,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:170,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:171,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:173,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 176
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - what
    - sexp_input_stream_t::set_byte_size
    - FAIL
    - sexp_list_t::parse
    - EXPECT_STREQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, NotAListWhenExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:183,1
    - Dst: sexp_output_stream_t::change_output_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:187,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:188,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:190,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 194
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - what
    - sexp_input_stream_t::set_byte_size
    - FAIL
    - sexp_output_stream_t::change_output_byte_size
    - EXPECT_STREQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, InvalidByteSizeAndMode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testing::internal::CaptureStdout
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:198,1
    - Dst: sexp::set_interactive
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:199,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:200,1
    - Dst: testing::internal::GetCapturedStdout
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:201,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:202,1
    - Dst: sexp::set_interactive
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 204
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - testing::internal::CaptureStdout
    - testing::internal::GetCapturedStdout
    - sexp_error
    - sexp::set_interactive
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, SexpWarning)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_list_t::parse
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:211,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: do_parse_list_from_string
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - sexp_list_t::parse
    - sexp_input_stream_t::set_byte_size
    linkageType: ''
    returnType: void
    signature: void do_parse_list_from_string(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_list_t::parse
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:219,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - m_depth
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: do_parse_list_from_string_with_limit
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - sexp_list_t::parse
    - sexp_input_stream_t::set_byte_size
    linkageType: ''
    returnType: void
    signature: void do_parse_list_from_string_with_limit(const char *str, size_t m_depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_parse_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:231,1
    - Dst: do_parse_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:232,1
    - Dst: do_parse_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:233,1
    - Dst: do_parse_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:234,1
    - Dst: do_parse_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:235,1
    - Dst: do_parse_list_from_string_with_limit
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:237,1
    - Dst: do_parse_list_from_string_with_limit
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:238,1
    - Dst: do_parse_list_from_string_with_limit
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:239,1
    - Dst: do_parse_list_from_string_with_limit
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:242,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:243,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:245,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:246,1
    - Dst: do_parse_list_from_string_with_limit
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:251,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:252,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:254,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 258
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - what
    - do_parse_list_from_string_with_limit
    - FAIL
    - do_parse_list_from_string
    - EXPECT_STREQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, MaxDepthParse)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sexp_list_t::parse
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:265,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:265,1
    - Dst: sexp_list_t::print_advanced
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:270,1
    - Dst: sexp_list_t::print_canonical
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - str
    - advanced
    argTypes:
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 273
    functionName: do_print_list_from_string
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - sexp_list_t::parse
    - sexp_list_t::print_advanced
    - sexp_input_stream_t::set_byte_size
    - sexp_list_t::print_canonical
    linkageType: ''
    returnType: void
    signature: void do_print_list_from_string(const char *str, bool advanced, size_t
      m_depth = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:284,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:285,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:286,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:287,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:288,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:290,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:291,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:292,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:295,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:296,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:298,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:298,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:302,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:303,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:305,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 307
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - FAIL
    - EXPECT_STREQ
    - do_print_list_from_string
    - what
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, MaxDepthPrintAdvanced)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:318,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:319,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:320,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:321,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:322,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:324,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:325,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:326,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:329,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:330,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:332,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:332,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:336,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:337,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:339,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 341
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - FAIL
    - EXPECT_STREQ
    - do_print_list_from_string
    - what
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, MaxDepthPrintCanonical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:36,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:37,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:39,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - str_in
    - msg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 41
    functionName: ExceptionTests::do_scan_with_exception
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - FAIL
    - EXPECT_STREQ
    - sexp_input_stream_t::set_byte_size
    - what
    linkageType: ''
    returnType: void
    signature: void do_scan_with_exception(const char *str_in, const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, UnexpectedEof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 55
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, UnexpectedCharacter4bit)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:59,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, IllegalCharacter)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:65,1
    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: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, UnexpectedEofAfterQuote)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, IllegalCharacterBase64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, InvalidHex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 84
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, InvalidOctal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, TooBigOctal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, InvalidEscape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 103
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, StringTooShortQuoted)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::set_verbosity
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:107,1
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:108,1
    - Dst: sexp::set_verbosity
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 112
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    - sexp::set_verbosity
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, StringTooShortBase64)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::set_verbosity
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:116,1
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:117,1
    - Dst: sexp::set_verbosity
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 121
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    - sexp::set_verbosity
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, StringTooShortHex)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, StringBadLength)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:131,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, StringTooLongTruncated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:137,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, StringTruncated)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, DecimalTooLong)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, Base64CurlyBracket)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::set_verbosity
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:155,1
    - Dst: do_scan_with_exception
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:156,1
    - Dst: sexp::set_verbosity
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 160
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_with_exception
    - sexp::set_verbosity
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, UnusedBits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_list_t::parse
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:170,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:170,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:171,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:173,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 162
    functionDepth: 1
    functionLinenumber: 162
    functionLinenumberEnd: 176
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - what
    - sexp_input_stream_t::set_byte_size
    - FAIL
    - sexp_list_t::parse
    - EXPECT_STREQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, NotAListWhenExpected)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:183,1
    - Dst: sexp_output_stream_t::change_output_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:187,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:188,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:190,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 178
    functionDepth: 0
    functionLinenumber: 178
    functionLinenumberEnd: 194
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - what
    - sexp_input_stream_t::set_byte_size
    - FAIL
    - sexp_output_stream_t::change_output_byte_size
    - EXPECT_STREQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, InvalidByteSizeAndMode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testing::internal::CaptureStdout
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:198,1
    - Dst: sexp::set_interactive
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:199,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:200,1
    - Dst: testing::internal::GetCapturedStdout
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:201,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:202,1
    - Dst: sexp::set_interactive
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 204
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 204
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - testing::internal::CaptureStdout
    - testing::internal::GetCapturedStdout
    - sexp_error
    - sexp::set_interactive
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, SexpWarning)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_list_t::parse
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:211,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:211,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 206
    functionDepth: 1
    functionLinenumber: 206
    functionLinenumberEnd: 212
    functionName: do_parse_list_from_string
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 1
    functionsReached:
    - sexp_list_t::parse
    - sexp_input_stream_t::set_byte_size
    linkageType: ''
    returnType: void
    signature: void do_parse_list_from_string(const char *str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_list_t::parse
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:219,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - str
    - m_depth
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 214
    functionDepth: 1
    functionLinenumber: 214
    functionLinenumberEnd: 220
    functionName: do_parse_list_from_string_with_limit
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 1
    functionsReached:
    - sexp_list_t::parse
    - sexp_input_stream_t::set_byte_size
    linkageType: ''
    returnType: void
    signature: void do_parse_list_from_string_with_limit(const char *str, size_t m_depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_parse_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:231,1
    - Dst: do_parse_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:232,1
    - Dst: do_parse_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:233,1
    - Dst: do_parse_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:234,1
    - Dst: do_parse_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:235,1
    - Dst: do_parse_list_from_string_with_limit
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:237,1
    - Dst: do_parse_list_from_string_with_limit
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:238,1
    - Dst: do_parse_list_from_string_with_limit
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:239,1
    - Dst: do_parse_list_from_string_with_limit
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:242,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:243,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:245,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:246,1
    - Dst: do_parse_list_from_string_with_limit
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:251,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:252,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:254,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:255,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 222
    functionDepth: 2
    functionLinenumber: 222
    functionLinenumberEnd: 258
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - what
    - do_parse_list_from_string_with_limit
    - FAIL
    - do_parse_list_from_string
    - EXPECT_STREQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, MaxDepthParse)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sexp_list_t::parse
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:265,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:265,1
    - Dst: sexp_list_t::print_advanced
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:270,1
    - Dst: sexp_list_t::print_canonical
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:272,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - str
    - advanced
    argTypes:
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 273
    functionName: do_print_list_from_string
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 2
    functionsReached:
    - sexp_list_t::parse
    - sexp_list_t::print_advanced
    - sexp_input_stream_t::set_byte_size
    - sexp_list_t::print_canonical
    linkageType: ''
    returnType: void
    signature: void do_print_list_from_string(const char *str, bool advanced, size_t
      m_depth = 0)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:284,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:285,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:286,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:287,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:288,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:290,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:291,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:292,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:295,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:296,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:298,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:298,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:302,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:303,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:305,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:305,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 275
    functionDepth: 2
    functionLinenumber: 275
    functionLinenumberEnd: 307
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - FAIL
    - EXPECT_STREQ
    - do_print_list_from_string
    - what
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, MaxDepthPrintAdvanced)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:318,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:319,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:320,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:321,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:322,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:324,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:325,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:326,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:329,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:330,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:332,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:332,1
    - Dst: do_print_list_from_string
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:336,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:337,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:339,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 341
      start: 309
    functionDepth: 2
    functionLinenumber: 309
    functionLinenumberEnd: 341
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
    functionUses: 0
    functionsReached:
    - FAIL
    - EXPECT_STREQ
    - do_print_list_from_string
    - what
    linkageType: ''
    returnType: void
    signature: void TEST_F(ExceptionTests, MaxDepthPrintCanonical)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::tellg
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:35,1
    - Dst: std::ifstream::tellg
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:35,1
    - Dst: std::ifstream::seekg
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:36,1
    - Dst: std::ifstream::seekg
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:37,1
    - Dst: std::equal
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:42,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:42,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - filename1
    - filename2
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 29
    functionDepth: 0
    functionLinenumber: 29
    functionLinenumberEnd: 46
    functionName: compare_binary_files
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/compare-files.cpp
    functionUses: 0
    functionsReached:
    - std::ifstream::tellg
    - std::ifstream::seekg
    - std::equal
    - std::istreambuf_iterator<char>
    linkageType: ''
    returnType: bool
    signature: bool compare_binary_files(const std::string &filename1, const std::string
      &filename2)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::equal
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:54,1
    - Dst: std::istreambuf_iterator<char>
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - filename1
    - file2
    argTypes:
    - std::string
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 55
    functionName: compare_binary_files
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/compare-files.cpp
    functionUses: 0
    functionsReached:
    - std::equal
    - std::istreambuf_iterator<char>
    linkageType: ''
    returnType: bool
    signature: bool compare_binary_files(const std::string &filename1, std::istream
      &file2)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: std::string::clear
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:59,1
    - Dst: std::istream::rdbuf
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:68,1
    - Dst: std::streambuf*::sbumpc
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:71,1
    - Dst: std::streambuf*::sgetc
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:76,1
    - Dst: std::streambuf*::sbumpc
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:77,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:79,1
    - Dst: std::string::empty
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:81,1
    - Dst: std::istream::setstate
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:82,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 2
    argNames:
    - is
    - t
    argTypes:
    - std::istream
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 88
    functionName: safe_get_line
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/compare-files.cpp
    functionUses: 0
    functionsReached:
    - std::streambuf*::sgetc
    - pgp_source_t::eof
    - std::streambuf*::sbumpc
    - std::istream::rdbuf
    - std::istream::setstate
    - std::string::empty
    - std::string::clear
    linkageType: ''
    returnType: std::istream
    signature: std::istream &safe_get_line(std::istream &is, std::string &t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::eof
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:98,1
    - Dst: std::ifstream::eof
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:98,1
    - Dst: safe_get_line
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:100,1
    - Dst: safe_get_line
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:101,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 2
    argNames:
    - filename1
    - filename2
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 107
    functionName: compare_text_files
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/compare-files.cpp
    functionUses: 0
    functionsReached:
    - std::ifstream::eof
    - safe_get_line
    linkageType: ''
    returnType: bool
    signature: bool compare_text_files(const std::string &filename1, const std::string
      &filename2)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::istream::seekg
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:114,1
    - Dst: std::ifstream::eof
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:117,1
    - Dst: std::istream::eof
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:117,1
    - Dst: safe_get_line
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:119,1
    - Dst: safe_get_line
      Src: /src/rnp/src/libsexpp/tests/src/compare-files.cpp:120,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - filename1
    - file2
    argTypes:
    - std::string
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 126
    functionName: compare_text_files
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/compare-files.cpp
    functionUses: 0
    functionsReached:
    - std::istream::eof
    - std::istream::seekg
    - std::ifstream::eof
    - safe_get_line
    linkageType: ''
    returnType: bool
    signature: bool compare_text_files(const std::string &filename1, std::istream
      &file2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/g10-compat-tests.cpp:36,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/g10-compat-tests.cpp:36,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/g10-compat-tests.cpp:38,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/g10-compat-tests.cpp:40,1
    - Dst: sexp_output_stream_t::print_canonical
      Src: /src/rnp/src/libsexpp/tests/src/g10-compat-tests.cpp:44,1
    - Dst: std::ostringstream::str
      Src: /src/rnp/src/libsexpp/tests/src/g10-compat-tests.cpp:46,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/g10-compat-tests.cpp:47,1
    - Dst: compare_binary_files
      Src: /src/rnp/src/libsexpp/tests/src/g10-compat-tests.cpp:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 49
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g10-compat-tests.cpp
    functionUses: 0
    functionsReached:
    - compare_binary_files
    - std::ifstream::fail
    - EXPECT_TRUE
    - sexp_input_stream_t::set_byte_size
    - std::ostringstream::str
    - sexp_output_stream_t::print_canonical
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(G10CompatTests, Canonical)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/g10-compat-tests.cpp:36,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/g10-compat-tests.cpp:36,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/g10-compat-tests.cpp:38,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/g10-compat-tests.cpp:40,1
    - Dst: sexp_output_stream_t::print_canonical
      Src: /src/rnp/src/libsexpp/tests/src/g10-compat-tests.cpp:44,1
    - Dst: std::ostringstream::str
      Src: /src/rnp/src/libsexpp/tests/src/g10-compat-tests.cpp:46,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/g10-compat-tests.cpp:47,1
    - Dst: compare_binary_files
      Src: /src/rnp/src/libsexpp/tests/src/g10-compat-tests.cpp:47,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 32
    functionDepth: 1
    functionLinenumber: 32
    functionLinenumberEnd: 49
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g10-compat-tests.cpp
    functionUses: 0
    functionsReached:
    - compare_binary_files
    - std::ifstream::fail
    - EXPECT_TRUE
    - sexp_input_stream_t::set_byte_size
    - std::ostringstream::str
    - sexp_output_stream_t::print_canonical
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(G10CompatTests, Canonical)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:38,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:39,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:41,1
    - Dst: ext_key_input_stream_t::scan
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:44,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:45,1
    - Dst: extended_private_key_t::fields::size
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:45,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:46,1
    - Dst: extended_private_key_t::fields::count
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:46,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:47,1
    - Dst: extended_private_key_t::fields::count
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:47,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:48,1
    - Dst: extended_private_key_t::fields::count
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:48,1
    - Dst: extended_private_key_t::fields::find
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:50,1
    - Dst: extended_private_key_t::fields::end
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:51,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - fn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 55
    functionName: G23CompatTests::scan_and_check_correct
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::ifstream::fail
    - extended_private_key_t::fields::size
    - extended_private_key_t::fields::count
    - extended_private_key_t::fields::end
    - ext_key_input_stream_t::scan
    - EXPECT_FALSE
    - extended_private_key_t::fields::find
    linkageType: ''
    returnType: void
    signature: void scan_and_check_correct(const char *fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:62,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:63,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:65,1
    - Dst: ext_key_input_stream_t::scan
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:68,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:69,1
    - Dst: extended_private_key_t::fields::size
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 71
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::ifstream::fail
    - extended_private_key_t::fields::size
    - ext_key_input_stream_t::scan
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23CompatTests, G10Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scan_and_check_correct
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp
    functionUses: 0
    functionsReached:
    - scan_and_check_correct
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23CompatTests, G23Correct)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scan_and_check_correct
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp
    functionUses: 0
    functionsReached:
    - scan_and_check_correct
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23CompatTests, G23CorrectNoEol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scan_and_check_correct
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp
    functionUses: 0
    functionsReached:
    - scan_and_check_correct
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23CompatTests, G23CorrectWithComment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scan_and_check_correct
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp
    functionUses: 0
    functionsReached:
    - scan_and_check_correct
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23CompatTests, G23CorrectWithTwoEmptyLines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scan_and_check_correct
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp
    functionUses: 0
    functionsReached:
    - scan_and_check_correct
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23CompatTests, G23CorrectWithEmptyLine)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scan_and_check_correct
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp
    functionUses: 0
    functionsReached:
    - scan_and_check_correct
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23CompatTests, G23CorrectWithWindowsEol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scan_and_check_correct
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp
    functionUses: 0
    functionsReached:
    - scan_and_check_correct
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23CompatTests, G23CorrectWithCommentAtEof)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:120,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:121,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:123,1
    - Dst: extended_private_key_t::parse
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:126,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:127,1
    - Dst: extended_private_key_t::fields::size
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:127,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:128,1
    - Dst: extended_private_key_t::fields::count
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:128,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:129,1
    - Dst: extended_private_key_t::fields::count
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:129,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:130,1
    - Dst: extended_private_key_t::fields::count
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:130,1
    - Dst: extended_private_key_t::fields::find
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:132,1
    - Dst: extended_private_key_t::fields::end
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:133,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 137
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::ifstream::fail
    - extended_private_key_t::fields::size
    - extended_private_key_t::fields::count
    - extended_private_key_t::fields::end
    - extended_private_key_t::parse
    - EXPECT_FALSE
    - extended_private_key_t::fields::find
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23CompatTests, G23CorrectWithMultFields)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:38,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:39,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:41,1
    - Dst: ext_key_input_stream_t::scan
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:44,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:45,1
    - Dst: extended_private_key_t::fields::size
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:45,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:46,1
    - Dst: extended_private_key_t::fields::count
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:46,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:47,1
    - Dst: extended_private_key_t::fields::count
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:47,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:48,1
    - Dst: extended_private_key_t::fields::count
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:48,1
    - Dst: extended_private_key_t::fields::find
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:50,1
    - Dst: extended_private_key_t::fields::end
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:51,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - fn
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 55
    functionName: G23CompatTests::scan_and_check_correct
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::ifstream::fail
    - extended_private_key_t::fields::size
    - extended_private_key_t::fields::count
    - extended_private_key_t::fields::end
    - ext_key_input_stream_t::scan
    - EXPECT_FALSE
    - extended_private_key_t::fields::find
    linkageType: ''
    returnType: void
    signature: void scan_and_check_correct(const char *fn)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:62,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:63,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:65,1
    - Dst: ext_key_input_stream_t::scan
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:68,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:69,1
    - Dst: extended_private_key_t::fields::size
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:69,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 71
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::ifstream::fail
    - extended_private_key_t::fields::size
    - ext_key_input_stream_t::scan
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23CompatTests, G10Test)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scan_and_check_correct
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 77
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp
    functionUses: 0
    functionsReached:
    - scan_and_check_correct
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23CompatTests, G23Correct)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scan_and_check_correct
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 83
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp
    functionUses: 0
    functionsReached:
    - scan_and_check_correct
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23CompatTests, G23CorrectNoEol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scan_and_check_correct
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 89
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp
    functionUses: 0
    functionsReached:
    - scan_and_check_correct
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23CompatTests, G23CorrectWithComment)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scan_and_check_correct
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp
    functionUses: 0
    functionsReached:
    - scan_and_check_correct
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23CompatTests, G23CorrectWithTwoEmptyLines)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scan_and_check_correct
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp
    functionUses: 0
    functionsReached:
    - scan_and_check_correct
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23CompatTests, G23CorrectWithEmptyLine)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scan_and_check_correct
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 107
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp
    functionUses: 0
    functionsReached:
    - scan_and_check_correct
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23CompatTests, G23CorrectWithWindowsEol)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scan_and_check_correct
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 113
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp
    functionUses: 0
    functionsReached:
    - scan_and_check_correct
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23CompatTests, G23CorrectWithCommentAtEof)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:120,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:121,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:123,1
    - Dst: extended_private_key_t::parse
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:126,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:127,1
    - Dst: extended_private_key_t::fields::size
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:127,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:128,1
    - Dst: extended_private_key_t::fields::count
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:128,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:129,1
    - Dst: extended_private_key_t::fields::count
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:129,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:130,1
    - Dst: extended_private_key_t::fields::count
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:130,1
    - Dst: extended_private_key_t::fields::find
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:132,1
    - Dst: extended_private_key_t::fields::end
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:133,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp:134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 137
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::ifstream::fail
    - extended_private_key_t::fields::size
    - extended_private_key_t::fields::count
    - extended_private_key_t::fields::end
    - extended_private_key_t::parse
    - EXPECT_FALSE
    - extended_private_key_t::fields::find
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23CompatTests, G23CorrectWithMultFields)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: BaselineTests::BaselineTests
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BaselineTests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:57,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:58,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:60,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:62,1
    - Dst: sexp_output_stream_t::print_canonical
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:66,1
    - Dst: std::ostringstream::str
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:68,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:69,1
    - Dst: compare_binary_files
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 72
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp
    functionUses: 0
    functionsReached:
    - compare_binary_files
    - std::ifstream::fail
    - EXPECT_TRUE
    - sexp_input_stream_t::set_byte_size
    - std::ostringstream::str
    - sexp_output_stream_t::print_canonical
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(BaselineTests, Scan2Canonical)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:78,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:78,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:80,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:82,1
    - Dst: sexp_output_stream_t::set_max_column
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:87,1
    - Dst: std::ostringstream::str
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:90,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:91,1
    - Dst: compare_text_files
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 94
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp
    functionUses: 0
    functionsReached:
    - std::ifstream::fail
    - EXPECT_TRUE
    - sexp_input_stream_t::set_byte_size
    - compare_text_files
    - std::ostringstream::str
    - EXPECT_FALSE
    - sexp_output_stream_t::set_max_column
    linkageType: ''
    returnType: void
    signature: void TEST_F(BaselineTests, Scan2Base64)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:100,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:100,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:102,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:104,1
    - Dst: sexp_output_stream_t::print_advanced
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:108,1
    - Dst: std::ostringstream::str
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:110,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:111,1
    - Dst: compare_text_files
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 114
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp
    functionUses: 0
    functionsReached:
    - std::ifstream::fail
    - EXPECT_TRUE
    - sexp_input_stream_t::set_byte_size
    - compare_text_files
    - std::ostringstream::str
    - EXPECT_FALSE
    - sexp_output_stream_t::print_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(BaselineTests, Scan2Advanced)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 44
    functionName: BaselineTests::BaselineTests
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BaselineTests()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:57,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:58,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:60,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:62,1
    - Dst: sexp_output_stream_t::print_canonical
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:66,1
    - Dst: std::ostringstream::str
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:68,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:69,1
    - Dst: compare_binary_files
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:69,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 72
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp
    functionUses: 0
    functionsReached:
    - compare_binary_files
    - std::ifstream::fail
    - EXPECT_TRUE
    - sexp_input_stream_t::set_byte_size
    - std::ostringstream::str
    - sexp_output_stream_t::print_canonical
    - EXPECT_FALSE
    linkageType: ''
    returnType: void
    signature: void TEST_F(BaselineTests, Scan2Canonical)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:78,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:78,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:80,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:82,1
    - Dst: sexp_output_stream_t::set_max_column
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:87,1
    - Dst: std::ostringstream::str
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:90,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:91,1
    - Dst: compare_text_files
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 74
    functionDepth: 3
    functionLinenumber: 74
    functionLinenumberEnd: 94
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp
    functionUses: 0
    functionsReached:
    - std::ifstream::fail
    - EXPECT_TRUE
    - sexp_input_stream_t::set_byte_size
    - compare_text_files
    - std::ostringstream::str
    - EXPECT_FALSE
    - sexp_output_stream_t::set_max_column
    linkageType: ''
    returnType: void
    signature: void TEST_F(BaselineTests, Scan2Base64)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:100,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:100,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:102,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:104,1
    - Dst: sexp_output_stream_t::print_advanced
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:108,1
    - Dst: std::ostringstream::str
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:110,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:111,1
    - Dst: compare_text_files
      Src: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 96
    functionDepth: 3
    functionLinenumber: 96
    functionLinenumberEnd: 114
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp
    functionUses: 0
    functionsReached:
    - std::ifstream::fail
    - EXPECT_TRUE
    - sexp_input_stream_t::set_byte_size
    - compare_text_files
    - std::ostringstream::str
    - EXPECT_FALSE
    - sexp_output_stream_t::print_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(BaselineTests, Scan2Advanced)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::assign
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:34,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - std::assign
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, Assign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:42,1
    - Dst: pgp_source_t::read_eq
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - pgp_source_t::read_eq
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, Eq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:49,1
    - Dst: std::lt
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - std::lt
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, Lt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_LT
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:56,1
    - Dst: std::compare
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - std::compare
    - EXPECT_LT
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, Compare)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:63,1
    - Dst: std::find
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::find
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, Find)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigremove_remove
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:70,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:71,1
    - Dst: memcmp
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sigremove_remove
    - memcmp
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, Move)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:78,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:79,1
    - Dst: memcmp
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::copy
    - memcmp
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, Copy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::assign
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:86,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - std::assign
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, AssignMultiple)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:95,1
    - Dst: std::to_char_type
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::to_char_type
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, ToCharType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:101,1
    - Dst: std::to_int_type
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::to_int_type
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, ToIntType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:108,1
    - Dst: std::eq_int_type
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - std::eq_int_type
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, EqIntType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:114,1
    - Dst: std::not_eof
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::not_eof
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, NotEof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::assign
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:34,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:35,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 30
    functionDepth: 1
    functionLinenumber: 30
    functionLinenumberEnd: 36
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - std::assign
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, Assign)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:42,1
    - Dst: pgp_source_t::read_eq
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 38
    functionDepth: 2
    functionLinenumber: 38
    functionLinenumberEnd: 43
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - pgp_source_t::read_eq
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, Eq)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:49,1
    - Dst: std::lt
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 50
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - std::lt
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, Lt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_LT
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:56,1
    - Dst: std::compare
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - std::compare
    - EXPECT_LT
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, Compare)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:63,1
    - Dst: std::find
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 64
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::find
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, Find)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sigremove_remove
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:70,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:71,1
    - Dst: memcmp
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 72
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sigremove_remove
    - memcmp
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, Move)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::copy
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:78,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:79,1
    - Dst: memcmp
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::copy
    - memcmp
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, Copy)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::assign
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:86,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 90
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - std::assign
    - EXPECT_EQ
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, AssignMultiple)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:95,1
    - Dst: std::to_char_type
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::to_char_type
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, ToCharType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:101,1
    - Dst: std::to_int_type
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::to_int_type
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, ToIntType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:108,1
    - Dst: std::eq_int_type
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - std::eq_int_type
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, EqIntType)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:114,1
    - Dst: std::not_eof
      Src: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: TEST
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::not_eof
    linkageType: ''
    returnType: void
    signature: void TEST(OctetTraitsTest, NotEof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:35,1
    - Dst: sexp_output_stream_t::print_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:39,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:41,1
    - Dst: std::ostringstream::str
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - str_in
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: PrimitivesTests::do_test_advanced
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::ostringstream::str
    - sexp_input_stream_t::set_byte_size
    - sexp_output_stream_t::print_advanced
    linkageType: ''
    returnType: void
    signature: void do_test_advanced(const char *str_in, const char *str_out = nullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:48,1
    - Dst: sexp_output_stream_t::print_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:52,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:54,1
    - Dst: std::ostringstream::str
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - str_in
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: PrimitivesTests::do_test_canonical
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::ostringstream::str
    - sexp_input_stream_t::set_byte_size
    - sexp_output_stream_t::print_canonical
    linkageType: ''
    returnType: void
    signature: void do_test_canonical(const char *str_in, const char *str_out = nullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:60,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, EmptyList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::set_verbosity
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:66,1
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:67,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:68,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: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - sexp::set_verbosity
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, EmptyString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::set_verbosity
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:73,1
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:74,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:75,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: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - sexp::set_verbosity
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, String)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::set_verbosity
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:80,1
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:81,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - sexp::set_verbosity
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, QuotedStringWithOctal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::set_verbosity
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:87,1
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:88,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - sexp::set_verbosity
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, QuotedStringWithEscape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::set_verbosity
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:94,1
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:95,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - sexp::set_verbosity
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, HexString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:101,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, ListList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:109,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, Base64Ofoctet_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:115,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, Base64OfVerbatim)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:121,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, MultilineLinux)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:127,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, MultilineMac)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:133,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, MultilineWin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:139,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, MultilineBsd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:164,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 166
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, Wrap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:170,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:171,1
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:173,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:174,1
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:176,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 178
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, Escapes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sexp_list_t::parse
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:188,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:188,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:190,1
    - Dst: sexp_list_t::sexp_list_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:190,1
    - Dst: EXPECT_NE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:191,1
    - Dst: sexp_list_t::sexp_list_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:191,1
    - Dst: EXPECT_NE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:193,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:193,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:194,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:194,1
    - Dst: sexp_list_t::sexp_list_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:196,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:199,1
    - Dst: sexp_object_t*::sexp_list_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:199,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:200,1
    - Dst: sexp_object_t*::sexp_list_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:200,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:203,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:204,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:204,1
    - Dst: sexp_string_t*::get_string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 205
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_NE
    - sexp_string_t*::get_string
    - sexp_input_stream_t::set_byte_size
    - sexp_list_t::sexp_string_at
    - reinterpret_cast<const char *>
    - sexp_list_t::sexp_list_at
    - sexp_object_t*::sexp_list_at
    - sexp_list_t::parse
    - EXPECT_STREQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, at4rnp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_list_t::parse
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:215,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:215,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:217,1
    - Dst: sexp_list_t::at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:217,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:218,1
    - Dst: sexp_list_t::at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:218,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:219,1
    - Dst: sexp_list_t::at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:219,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:220,1
    - Dst: sexp_list_t::at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:220,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:222,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:222,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:223,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:223,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:224,1
    - Dst: sexp_list_t::sexp_simple_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:224,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:225,1
    - Dst: sexp_list_t::sexp_simple_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:225,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:227,1
    - Dst: sexp_list_t::sexp_list_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:227,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:228,1
    - Dst: sexp_list_t::sexp_list_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:228,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:230,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:230,1
    - Dst: string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:230,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:231,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:231,1
    - Dst: string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:231,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:232,1
    - Dst: sexp_list_t::sexp_simple_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:232,1
    - Dst: string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:232,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:233,1
    - Dst: sexp_list_t::sexp_simple_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:233,1
    - Dst: string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 234
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - sexp_input_stream_t::set_byte_size
    - sexp_list_t::at
    - sexp_list_t::sexp_string_at
    - string
    - sexp_list_t::sexp_list_at
    - EXPECT_FALSE
    - sexp_list_t::parse
    - sexp_list_t::sexp_simple_string_at
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, eq4rnp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_list_t::parse
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:244,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:244,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:246,1
    - Dst: sexp_list_t::at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:246,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:247,1
    - Dst: sexp_list_t::at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:247,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:248,1
    - Dst: sexp_list_t::at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:248,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:249,1
    - Dst: sexp_list_t::at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:249,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:251,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:251,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:252,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:252,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:253,1
    - Dst: sexp_list_t::sexp_simple_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:253,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:254,1
    - Dst: sexp_list_t::sexp_simple_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:254,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:256,1
    - Dst: sexp_list_t::sexp_list_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:256,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:257,1
    - Dst: sexp_list_t::sexp_list_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:257,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:259,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:259,1
    - Dst: string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:259,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:260,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:260,1
    - Dst: string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:260,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:261,1
    - Dst: sexp_list_t::sexp_simple_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:261,1
    - Dst: string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:261,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:262,1
    - Dst: sexp_list_t::sexp_simple_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:262,1
    - Dst: string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 263
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - sexp_input_stream_t::set_byte_size
    - sexp_list_t::at
    - sexp_list_t::sexp_string_at
    - string
    - sexp_list_t::sexp_list_at
    - EXPECT_FALSE
    - sexp_list_t::parse
    - sexp_list_t::sexp_simple_string_at
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, ne4rnp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_list_t::parse
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:275,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:275,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:276,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:276,1
    - Dst: sexp_list_t::clear
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:278,1
    - Dst: sexp_list_t::parse
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:279,1
    - Dst: sexp_input_stream_t::set_input
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:279,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:280,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 281
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sexp_list_t::clear
    - sexp_input_stream_t::set_byte_size
    - sexp_list_t::sexp_string_at
    - sexp_input_stream_t::set_input
    - sexp_list_t::parse
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, u4rnp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:286,1
    - Dst: sexp_list_t::is_sexp_string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:286,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:287,1
    - Dst: sexp_list_t::is_sexp_list
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:287,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:288,1
    - Dst: sexp_list_t::sexp_string_view
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:288,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:289,1
    - Dst: sexp_list_t::sexp_list_view
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:289,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:290,1
    - Dst: sexp_list_t::as_unsigned
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:290,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:290,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:291,1
    - Dst: sexp_list_t::sexp_list_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:291,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:292,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:292,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:293,1
    - Dst: sexp_list_t::sexp_simple_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:293,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:296,1
    - Dst: sexp_string_t::is_sexp_list
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:296,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:297,1
    - Dst: sexp_string_t::is_sexp_string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:297,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:298,1
    - Dst: sexp_string_t::sexp_string_view
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:298,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:299,1
    - Dst: sexp_string_t::sexp_list_view
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:299,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:300,1
    - Dst: sexp_string_t::sexp_list_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:300,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:301,1
    - Dst: sexp_string_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:301,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:302,1
    - Dst: sexp_string_t::sexp_simple_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 303
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sexp_list_t::is_sexp_list
    - sexp_string_t::sexp_string_view
    - sexp_string_t::sexp_simple_string_at
    - sexp_list_t::sexp_string_at
    - sexp_list_t::sexp_list_at
    - sexp_string_t::is_sexp_list
    - sexp_list_t::sexp_simple_string_at
    - sexp_string_t::is_sexp_string
    - sexp_list_t::sexp_list_view
    - sexp_list_t::sexp_string_view
    - std::numeric_limits<uint32_t>::max
    - sexp_string_t::sexp_list_at
    - EXPECT_TRUE
    - sexp_list_t::as_unsigned
    - sexp_list_t::is_sexp_string
    - sexp_string_t::sexp_string_at
    - EXPECT_FALSE
    - sexp_string_t::sexp_list_view
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, proInheritance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:307,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, DisplayHint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_input_stream_t::scan_to_eof
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:318,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:319,1
    - Dst: auto::is_sexp_string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:319,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:321,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:322,1
    - Dst: sexp_input_stream_t::get_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:322,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:324,1
    - Dst: sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:324,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:325,1
    - Dst: sexp_input_stream_t::get_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 326
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_TRUE
    - sexp_input_stream_t::set_byte_size
    - sexp_input_stream_t::get_byte_size
    - auto::is_sexp_string
    - sexp_input_stream_t::scan_to_eof
    - sexp_input_stream_t::get_char
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, scanToEof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:333,1
    - Dst: sexp_output_stream_t::change_output_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:333,1
    - Dst: sexp_output_stream_t::change_output_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:336,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:337,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:339,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:339,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:342,1
    - Dst: sexp_output_stream_t::change_output_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:342,1
    - Dst: sexp_output_stream_t::change_output_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:345,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:346,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:348,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 350
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - what
    - FAIL
    - sexp_output_stream_t::change_output_byte_size
    - EXPECT_STREQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, ChangeOutputByteSizeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:358,1
    - Dst: sexp_output_stream_t::change_output_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:359,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:361,1
    - Dst: std::ostringstream::str
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:361,1
    - Dst: sexp_output_stream_t::set_output
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:362,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:367,1
    - Dst: std::ostringstream::str
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 368
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - sexp_output_stream_t::change_output_byte_size
    - EXPECT_EQ
    - std::ostringstream::str
    - sexp_output_stream_t::set_output
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, FlushTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:374,1
    - Dst: sexp_output_stream_t::set_max_column
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:378,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:379,1
    - Dst: std::ostringstream::str
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 380
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sexp_output_stream_t::set_max_column
    - sexp_input_stream_t::set_byte_size
    - std::ostringstream::str
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, ListWrapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:386,1
    - Dst: sexp_output_stream_t::print_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:390,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:391,1
    - Dst: std::ostringstream::str
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 392
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::ostringstream::str
    - sexp_input_stream_t::set_byte_size
    - sexp_output_stream_t::print_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, EnsureHexTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:35,1
    - Dst: sexp_output_stream_t::print_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:39,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:41,1
    - Dst: std::ostringstream::str
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:41,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - str_in
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 42
    functionName: PrimitivesTests::do_test_advanced
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::ostringstream::str
    - sexp_input_stream_t::set_byte_size
    - sexp_output_stream_t::print_advanced
    linkageType: ''
    returnType: void
    signature: void do_test_advanced(const char *str_in, const char *str_out = nullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:48,1
    - Dst: sexp_output_stream_t::print_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:52,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:54,1
    - Dst: std::ostringstream::str
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - str_in
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: PrimitivesTests::do_test_canonical
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::ostringstream::str
    - sexp_input_stream_t::set_byte_size
    - sexp_output_stream_t::print_canonical
    linkageType: ''
    returnType: void
    signature: void do_test_canonical(const char *str_in, const char *str_out = nullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:60,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, EmptyList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::set_verbosity
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:66,1
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:67,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:68,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: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - sexp::set_verbosity
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, EmptyString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::set_verbosity
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:73,1
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:74,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:75,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: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - sexp::set_verbosity
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, String)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::set_verbosity
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:80,1
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:81,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 83
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - sexp::set_verbosity
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, QuotedStringWithOctal)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::set_verbosity
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:87,1
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:88,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 85
    functionDepth: 1
    functionLinenumber: 85
    functionLinenumberEnd: 90
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - sexp::set_verbosity
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, QuotedStringWithEscape)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::set_verbosity
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:94,1
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:95,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 97
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - sexp::set_verbosity
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, HexString)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:101,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 105
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, ListList)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:109,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, Base64Ofoctet_t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:115,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 117
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, Base64OfVerbatim)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:121,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, MultilineLinux)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:127,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, MultilineMac)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:133,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 131
    functionDepth: 0
    functionLinenumber: 131
    functionLinenumberEnd: 135
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, MultilineWin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:139,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 141
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, MultilineBsd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:164,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 166
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, Wrap)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:170,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:171,1
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:173,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:174,1
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:176,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 178
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, Escapes)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sexp_list_t::parse
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:188,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:188,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:190,1
    - Dst: sexp_list_t::sexp_list_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:190,1
    - Dst: EXPECT_NE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:191,1
    - Dst: sexp_list_t::sexp_list_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:191,1
    - Dst: EXPECT_NE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:193,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:193,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:194,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:194,1
    - Dst: sexp_list_t::sexp_list_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:196,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:199,1
    - Dst: sexp_object_t*::sexp_list_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:199,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:200,1
    - Dst: sexp_object_t*::sexp_list_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:200,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:203,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:204,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:204,1
    - Dst: sexp_string_t*::get_string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:204,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 205
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_NE
    - sexp_string_t*::get_string
    - sexp_input_stream_t::set_byte_size
    - sexp_list_t::sexp_string_at
    - reinterpret_cast<const char *>
    - sexp_list_t::sexp_list_at
    - sexp_object_t*::sexp_list_at
    - sexp_list_t::parse
    - EXPECT_STREQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, at4rnp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_list_t::parse
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:215,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:215,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:217,1
    - Dst: sexp_list_t::at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:217,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:218,1
    - Dst: sexp_list_t::at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:218,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:219,1
    - Dst: sexp_list_t::at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:219,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:220,1
    - Dst: sexp_list_t::at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:220,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:222,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:222,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:223,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:223,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:224,1
    - Dst: sexp_list_t::sexp_simple_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:224,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:225,1
    - Dst: sexp_list_t::sexp_simple_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:225,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:227,1
    - Dst: sexp_list_t::sexp_list_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:227,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:228,1
    - Dst: sexp_list_t::sexp_list_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:228,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:230,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:230,1
    - Dst: string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:230,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:231,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:231,1
    - Dst: string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:231,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:232,1
    - Dst: sexp_list_t::sexp_simple_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:232,1
    - Dst: string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:232,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:233,1
    - Dst: sexp_list_t::sexp_simple_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:233,1
    - Dst: string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 207
    functionDepth: 1
    functionLinenumber: 207
    functionLinenumberEnd: 234
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - sexp_input_stream_t::set_byte_size
    - sexp_list_t::at
    - sexp_list_t::sexp_string_at
    - string
    - sexp_list_t::sexp_list_at
    - EXPECT_FALSE
    - sexp_list_t::parse
    - sexp_list_t::sexp_simple_string_at
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, eq4rnp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_list_t::parse
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:244,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:244,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:246,1
    - Dst: sexp_list_t::at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:246,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:247,1
    - Dst: sexp_list_t::at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:247,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:248,1
    - Dst: sexp_list_t::at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:248,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:249,1
    - Dst: sexp_list_t::at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:249,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:251,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:251,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:252,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:252,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:253,1
    - Dst: sexp_list_t::sexp_simple_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:253,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:254,1
    - Dst: sexp_list_t::sexp_simple_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:254,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:256,1
    - Dst: sexp_list_t::sexp_list_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:256,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:257,1
    - Dst: sexp_list_t::sexp_list_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:257,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:259,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:259,1
    - Dst: string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:259,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:260,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:260,1
    - Dst: string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:260,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:261,1
    - Dst: sexp_list_t::sexp_simple_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:261,1
    - Dst: string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:261,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:262,1
    - Dst: sexp_list_t::sexp_simple_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:262,1
    - Dst: string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 263
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_TRUE
    - sexp_input_stream_t::set_byte_size
    - sexp_list_t::at
    - sexp_list_t::sexp_string_at
    - string
    - sexp_list_t::sexp_list_at
    - EXPECT_FALSE
    - sexp_list_t::parse
    - sexp_list_t::sexp_simple_string_at
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, ne4rnp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_list_t::parse
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:275,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:275,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:276,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:276,1
    - Dst: sexp_list_t::clear
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:278,1
    - Dst: sexp_list_t::parse
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:279,1
    - Dst: sexp_input_stream_t::set_input
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:279,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:280,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 265
    functionDepth: 1
    functionLinenumber: 265
    functionLinenumberEnd: 281
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sexp_list_t::clear
    - sexp_input_stream_t::set_byte_size
    - sexp_list_t::sexp_string_at
    - sexp_input_stream_t::set_input
    - sexp_list_t::parse
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, u4rnp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:286,1
    - Dst: sexp_list_t::is_sexp_string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:286,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:287,1
    - Dst: sexp_list_t::is_sexp_list
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:287,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:288,1
    - Dst: sexp_list_t::sexp_string_view
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:288,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:289,1
    - Dst: sexp_list_t::sexp_list_view
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:289,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:290,1
    - Dst: sexp_list_t::as_unsigned
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:290,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:290,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:291,1
    - Dst: sexp_list_t::sexp_list_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:291,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:292,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:292,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:293,1
    - Dst: sexp_list_t::sexp_simple_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:293,1
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:296,1
    - Dst: sexp_string_t::is_sexp_list
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:296,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:297,1
    - Dst: sexp_string_t::is_sexp_string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:297,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:298,1
    - Dst: sexp_string_t::sexp_string_view
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:298,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:299,1
    - Dst: sexp_string_t::sexp_list_view
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:299,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:300,1
    - Dst: sexp_string_t::sexp_list_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:300,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:301,1
    - Dst: sexp_string_t::sexp_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:301,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:302,1
    - Dst: sexp_string_t::sexp_simple_string_at
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:302,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 283
    functionDepth: 1
    functionLinenumber: 283
    functionLinenumberEnd: 303
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sexp_list_t::is_sexp_list
    - sexp_string_t::sexp_string_view
    - sexp_string_t::sexp_simple_string_at
    - sexp_list_t::sexp_string_at
    - sexp_list_t::sexp_list_at
    - sexp_string_t::is_sexp_list
    - sexp_list_t::sexp_simple_string_at
    - sexp_string_t::is_sexp_string
    - sexp_list_t::sexp_list_view
    - sexp_list_t::sexp_string_view
    - std::numeric_limits<uint32_t>::max
    - sexp_string_t::sexp_list_at
    - EXPECT_TRUE
    - sexp_list_t::as_unsigned
    - sexp_list_t::is_sexp_string
    - sexp_string_t::sexp_string_at
    - EXPECT_FALSE
    - sexp_string_t::sexp_list_view
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, proInheritance)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_test_canonical
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:307,1
    - Dst: do_test_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - do_test_canonical
    - do_test_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, DisplayHint)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_input_stream_t::scan_to_eof
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:318,1
    - Dst: EXPECT_TRUE
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:319,1
    - Dst: auto::is_sexp_string
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:319,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:321,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:322,1
    - Dst: sexp_input_stream_t::get_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:322,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:324,1
    - Dst: sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:324,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:325,1
    - Dst: sexp_input_stream_t::get_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:325,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 311
    functionDepth: 1
    functionLinenumber: 311
    functionLinenumberEnd: 326
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - EXPECT_TRUE
    - sexp_input_stream_t::set_byte_size
    - sexp_input_stream_t::get_byte_size
    - auto::is_sexp_string
    - sexp_input_stream_t::scan_to_eof
    - sexp_input_stream_t::get_char
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, scanToEof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:333,1
    - Dst: sexp_output_stream_t::change_output_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:333,1
    - Dst: sexp_output_stream_t::change_output_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:336,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:337,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:339,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:339,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:342,1
    - Dst: sexp_output_stream_t::change_output_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:342,1
    - Dst: sexp_output_stream_t::change_output_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:345,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:346,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:348,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:348,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 350
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - what
    - FAIL
    - sexp_output_stream_t::change_output_byte_size
    - EXPECT_STREQ
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, ChangeOutputByteSizeTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:358,1
    - Dst: sexp_output_stream_t::change_output_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:359,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:361,1
    - Dst: std::ostringstream::str
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:361,1
    - Dst: sexp_output_stream_t::set_output
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:362,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:367,1
    - Dst: std::ostringstream::str
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:367,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 368
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - sexp_output_stream_t::change_output_byte_size
    - EXPECT_EQ
    - std::ostringstream::str
    - sexp_output_stream_t::set_output
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, FlushTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:374,1
    - Dst: sexp_output_stream_t::set_max_column
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:378,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:379,1
    - Dst: std::ostringstream::str
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 370
    functionDepth: 0
    functionLinenumber: 370
    functionLinenumberEnd: 380
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - sexp_output_stream_t::set_max_column
    - sexp_input_stream_t::set_byte_size
    - std::ostringstream::str
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, ListWrapTest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:386,1
    - Dst: sexp_output_stream_t::print_advanced
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:390,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:391,1
    - Dst: std::ostringstream::str
      Src: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp:391,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 392
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - std::ostringstream::str
    - sexp_input_stream_t::set_byte_size
    - sexp_output_stream_t::print_advanced
    linkageType: ''
    returnType: void
    signature: void TEST_F(PrimitivesTests, EnsureHexTest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:38,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:38,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:39,1
    - Dst: ext_key_input_stream_t::scan
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:43,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:44,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:46,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - fn
    - msg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 49
    functionName: G23ExceptionTests::do_scan_ex
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp
    functionUses: 0
    functionsReached:
    - std::ifstream::fail
    - what
    - ext_key_input_stream_t::scan
    - FAIL
    - EXPECT_FALSE
    - EXPECT_STREQ
    linkageType: ''
    returnType: void
    signature: void do_scan_ex(const char *fn, const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_ex
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_ex
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23ExceptionTests, G23MalformedNameBreak)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_ex
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_ex
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23ExceptionTests, G23MalformedNameEof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_ex
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_ex
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23ExceptionTests, G23MalformedInvalidNameChar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_ex
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_ex
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23ExceptionTests, G23MalformedInvalidNameFirstChar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_ex
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_ex
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23ExceptionTests, G23MalformedNoKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_ex
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_ex
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23ExceptionTests, G23MalformedTwoKeys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testing::internal::CaptureStdout
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:100,1
    - Dst: sexp::set_interactive
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:101,1
    - Dst: ext_key_error
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:102,1
    - Dst: testing::internal::GetCapturedStdout
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:103,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:104,1
    - Dst: sexp::set_interactive
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - testing::internal::CaptureStdout
    - ext_key_error
    - testing::internal::GetCapturedStdout
    - sexp::set_interactive
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23ExceptionTests, G23Warning)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EXPECT_FALSE
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:38,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:38,1
    - Dst: std::ifstream::fail
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:39,1
    - Dst: ext_key_input_stream_t::scan
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:43,1
    - Dst: FAIL
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:44,1
    - Dst: EXPECT_STREQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:46,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:46,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - fn
    - msg
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 49
    functionName: G23ExceptionTests::do_scan_ex
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp
    functionUses: 0
    functionsReached:
    - std::ifstream::fail
    - what
    - ext_key_input_stream_t::scan
    - FAIL
    - EXPECT_FALSE
    - EXPECT_STREQ
    linkageType: ''
    returnType: void
    signature: void do_scan_ex(const char *fn, const char *msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_ex
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_ex
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23ExceptionTests, G23MalformedNameBreak)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_ex
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_ex
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23ExceptionTests, G23MalformedNameEof)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_ex
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_ex
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23ExceptionTests, G23MalformedInvalidNameChar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_ex
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 82
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_ex
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23ExceptionTests, G23MalformedInvalidNameFirstChar)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_ex
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_ex
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23ExceptionTests, G23MalformedNoKey)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_scan_ex
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp
    functionUses: 0
    functionsReached:
    - do_scan_ex
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23ExceptionTests, G23MalformedTwoKeys)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: testing::internal::CaptureStdout
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:100,1
    - Dst: sexp::set_interactive
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:101,1
    - Dst: ext_key_error
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:102,1
    - Dst: testing::internal::GetCapturedStdout
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:103,1
    - Dst: EXPECT_EQ
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:104,1
    - Dst: sexp::set_interactive
      Src: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 98
    functionDepth: 1
    functionLinenumber: 98
    functionLinenumberEnd: 106
    functionName: TEST_F
    functionSourceFile: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp
    functionUses: 0
    functionsReached:
    - EXPECT_EQ
    - testing::internal::CaptureStdout
    - ext_key_error
    - testing::internal::GetCapturedStdout
    - sexp::set_interactive
    linkageType: ''
    returnType: void
    signature: void TEST_F(G23ExceptionTests, G23Warning)
  - BBCount: 45
    BranchProfiles: []
    Callsites:
    - Dst: sexp::set_interactive
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:71,1
    - Dst: sexp_input_stream_t::sexp_input_stream_t
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:81,1
    - Dst: sexp_output_stream_t::sexp_output_stream_t
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:82,1
    - Dst: sexp_exception_t
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:89,1
    - Dst: string
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:90,1
    - Dst: exit
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:100,1
    - Dst: std::ifstream::ifstream
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:104,1
    - Dst: std::ifstream*::fail
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:105,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:106,1
    - Dst: sexp_input_stream_t*::set_input
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:107,1
    - Dst: std::ofstream::ofstream
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:114,1
    - Dst: std::ofstream*::fail
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:115,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:116,1
    - Dst: sexp_output_stream_t*::set_output
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:117,1
    - Dst: sexp_output_stream_t*::set_max_column
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:126,1
    - Dst: atoi
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:126,1
    - Dst: sexp_exception_t
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:130,1
    - Dst: string
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:131,1
    - Dst: sexp_input_stream_t*::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:139,1
    - Dst: sexp_input_stream_t*::set_next_char
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:141,1
    - Dst: sexp_input_stream_t*::get_next_char
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:142,1
    - Dst: std::string::empty
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:144,1
    - Dst: flush
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:149,1
    - Dst: sexp_input_stream_t*::set_byte_size
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:152,1
    - Dst: sexp_input_stream_t*::get_next_char
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:153,1
    - Dst: sexp_input_stream_t*::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:154,1
    - Dst: sexp_input_stream_t*::skip_white_space
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:156,1
    - Dst: sexp_input_stream_t*::get_next_char
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:157,1
    - Dst: sexp_input_stream_t*::scan_to_eof
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:160,1
    - Dst: sexp_input_stream_t*::scan_object
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:160,1
    - Dst: std::string::empty
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:167,1
    - Dst: std::shared_ptr::print_canonical
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:172,1
    - Dst: std::string::empty
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:180,1
    - Dst: sexp_output_stream_t*::set_output
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:186,1
    - Dst: flush
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:189,1
    - Dst: std::string::empty
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:195,1
    - Dst: sexp_output_stream_t*::set_output
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:200,1
    - Dst: flush
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:203,1
    - Dst: sexp_input_stream_t*::skip_white_space
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:210,1
    - Dst: flush
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:213,1
    - Dst: what
      Src: /src/rnp/src/libsexpp/src/sexp-main.cpp:218,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 136
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 231
    functionName: main
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-main.cpp
    functionUses: 1
    functionsReached:
    - std::ifstream::ifstream
    - flush
    - std::ofstream::ofstream
    - sexp_output_stream_t*::set_max_column
    - sexp_input_stream_t*::get_char
    - string
    - sexp_input_stream_t*::set_byte_size
    - sexp_input_stream_t*::get_next_char
    - sexp_input_stream_t*::skip_white_space
    - sexp_input_stream_t*::set_input
    - sexp_input_stream_t::sexp_input_stream_t
    - std::ifstream*::fail
    - sexp_input_stream_t*::set_next_char
    - atoi
    - sexp_output_stream_t::sexp_output_stream_t
    - sexp_error
    - std::string::empty
    - sexp_input_stream_t*::scan_object
    - sexp::set_interactive
    - what
    - sexp_output_stream_t*::set_output
    - sexp_input_stream_t*::scan_to_eof
    - sexp_exception_t
    - std::ofstream*::fail
    - std::shared_ptr::print_canonical
    - exit
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::set_input
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - m_depth
    argTypes:
    - std::istream*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: sexp::sexp_input_stream_t::sexp_input_stream_t
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 0
    functionsReached:
    - sexp::sexp_input_stream_t::set_input
    linkageType: ''
    returnType: void
    signature: void sexp_input_stream_t::sexp_input_stream_t(std::istream *i, size_t
      m_depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset_depth
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - i
    - m_depth
    argTypes:
    - std::istream*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: sexp::sexp_input_stream_t::set_input
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 1
    functionsReached:
    - reset_depth
    linkageType: ''
    returnType: sexp_input_stream_t
    signature: sexp_input_stream_t *sexp_input_stream_t::set_input(std::istream *i,
      size_t m_depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - newByteSize
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: sexp::sexp_input_stream_t::set_byte_size
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sexp_input_stream_t
    signature: sexp_input_stream_t *sexp_input_stream_t::set_byte_size(uint32_t newByteSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: sexp::sexp_input_stream_t::read_char
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: int
    signature: int sexp_input_stream_t::read_char(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::read_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:94,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:101,1
    - Dst: sexp::sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:107,1
    - Dst: is_white_space
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:108,1
    - Dst: is_base64_digit
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:117,1
    - Dst: base64value
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:118,1
    - Dst: is_hex_digit
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:119,1
    - Dst: hexvalue
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:120,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:122,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 135
    functionName: sexp::sexp_input_stream_t::get_char
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 0
    functionsReached:
    - hexvalue
    - sexp::sexp_input_stream_t::set_byte_size
    - is_base64_digit
    - sexp::sexp_input_stream_t::read_char
    - sexp_error
    - is_white_space
    - base64value
    - is_hex_digit
    linkageType: ''
    returnType: sexp_input_stream_t
    signature: sexp_input_stream_t *sexp_input_stream_t::get_char(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_white_space
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:143,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: sexp::sexp_input_stream_t::skip_white_space
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 0
    functionsReached:
    - is_white_space
    - sexp::sexp_input_stream_t::get_char
    linkageType: ''
    returnType: sexp_input_stream_t
    signature: sexp_input_stream_t *sexp_input_stream_t::skip_white_space(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:156,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 162
    functionName: sexp::sexp_input_stream_t::skip_char
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 0
    functionsReached:
    - sexp_error
    - sexp::sexp_input_stream_t::get_char
    linkageType: ''
    returnType: sexp_input_stream_t
    signature: sexp_input_stream_t *sexp_input_stream_t::skip_char(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::skip_white_space
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:170,1
    - Dst: is_token_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:171,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:172,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sexp_simple_string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 168
    functionDepth: 4
    functionLinenumber: 168
    functionLinenumberEnd: 175
    functionName: sexp::sexp_input_stream_t::scan_token
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 0
    functionsReached:
    - is_token_char
    - sexp::sexp_input_stream_t::skip_white_space
    - sexp::sexp_input_stream_t::get_char
    - sexp_simple_string_t::append
    linkageType: ''
    returnType: void
    signature: void sexp_input_stream_t::scan_token(sexp_simple_string_t &ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::skip_white_space
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:185,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:187,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:188,1
    - Dst: std::make_shared<sexp_string_t>
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:190,1
    - Dst: auto::set_string
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 182
    functionDepth: 4
    functionLinenumber: 182
    functionLinenumberEnd: 193
    functionName: sexp::sexp_input_stream_t::scan_to_eof
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<sexp_string_t>
    - sexp::sexp_input_stream_t::get_char
    - sexp_simple_string_t::append
    - auto::set_string
    - sexp::sexp_input_stream_t::skip_white_space
    linkageType: ''
    returnType: std::shared_ptr<sexp_object_t>
    signature: std::shared_ptr<sexp_object_t> sexp_input_stream_t::scan_to_eof(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_dec_digit
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:203,1
    - Dst: decvalue
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:204,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:205,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 210
    functionName: sexp::sexp_input_stream_t::scan_decimal_string
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 0
    functionsReached:
    - decvalue
    - sexp_error
    - is_dec_digit
    - sexp::sexp_input_stream_t::get_char
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t sexp_input_stream_t::scan_decimal_string(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::skip_white_space
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:218,1
    - Dst: assert
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:221,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:221,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:224,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:228,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:231,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ss
    - length
    argTypes:
    - sexp_simple_string_t
    - uint32_t
    assertStmts:
    - condition: (length != std::numeric_limits<uint32_t>::max())
      pos:
        line_end: 220
        line_start: 220
        source_file: /src/rnp/src/libsexpp/src/sexp-input.cpp
    constantsTouched: []
    func_position:
      end: 234
      start: 216
    functionDepth: 4
    functionLinenumber: 216
    functionLinenumberEnd: 234
    functionName: sexp::sexp_input_stream_t::scan_verbatim_string
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 0
    functionsReached:
    - sexp_simple_string_t::append
    - sexp::sexp_input_stream_t::get_char
    - sexp::sexp_input_stream_t::skip_white_space
    - assert
    - sexp_error
    - std::numeric_limits<uint32_t>::max
    linkageType: ''
    returnType: void
    signature: void sexp_input_stream_t::scan_verbatim_string(sexp_simple_string_t
      &ss, uint32_t length)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::skip_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:244,1
    - Dst: sexp_simple_string_t::length
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:245,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:247,1
    - Dst: sexp_simple_string_t::length
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:247,1
    - Dst: sexp::sexp_input_stream_t::skip_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:248,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:251,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:258,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:261,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:264,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:267,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:270,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:273,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:276,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:279,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:282,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:285,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:291,1
    - Dst: is_hex_digit
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:293,1
    - Dst: hexvalue
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:294,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:296,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:299,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:305,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:308,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:313,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:331,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:333,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:340,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:345,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:348,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:356,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:358,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:360,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 98
    argCount: 2
    argNames:
    - ss
    - length
    argTypes:
    - sexp_simple_string_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 242
    functionDepth: 4
    functionLinenumber: 242
    functionLinenumberEnd: 362
    functionName: sexp::sexp_input_stream_t::scan_quoted_string
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 0
    functionsReached:
    - hexvalue
    - sexp::sexp_input_stream_t::get_char
    - sexp_simple_string_t::append
    - sexp::sexp_input_stream_t::skip_char
    - sexp_simple_string_t::length
    - sexp_error
    - is_hex_digit
    - std::numeric_limits<uint32_t>::max
    linkageType: ''
    returnType: void
    signature: void sexp_input_stream_t::scan_quoted_string(sexp_simple_string_t &ss,
      uint32_t length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:372,1
    - Dst: get_byte_size
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:373,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:374,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:375,1
    - Dst: sexp::sexp_input_stream_t::skip_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:377,1
    - Dst: sexp_simple_string_t::length
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:378,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:378,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:379,1
    - Dst: sexp_simple_string_t::length
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:381,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - ss
    - length
    argTypes:
    - sexp_simple_string_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 370
    functionDepth: 4
    functionLinenumber: 370
    functionLinenumberEnd: 384
    functionName: sexp::sexp_input_stream_t::scan_hexadecimal_string
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 0
    functionsReached:
    - get_byte_size
    - sexp::sexp_input_stream_t::get_char
    - sexp_simple_string_t::append
    - sexp::sexp_input_stream_t::skip_char
    - sexp::sexp_input_stream_t::set_byte_size
    - sexp_simple_string_t::length
    - sexp_error
    - std::numeric_limits<uint32_t>::max
    linkageType: ''
    returnType: void
    signature: void sexp_input_stream_t::scan_hexadecimal_string(sexp_simple_string_t
      &ss, uint32_t length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:394,1
    - Dst: get_byte_size
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:395,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:396,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:397,1
    - Dst: sexp::sexp_input_stream_t::skip_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:399,1
    - Dst: sexp_simple_string_t::length
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:400,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:400,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:401,1
    - Dst: sexp_simple_string_t::length
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:403,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - ss
    - length
    argTypes:
    - sexp_simple_string_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 392
    functionDepth: 4
    functionLinenumber: 392
    functionLinenumberEnd: 406
    functionName: sexp::sexp_input_stream_t::scan_base64_string
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 0
    functionsReached:
    - get_byte_size
    - sexp::sexp_input_stream_t::get_char
    - sexp_simple_string_t::append
    - sexp::sexp_input_stream_t::skip_char
    - sexp::sexp_input_stream_t::set_byte_size
    - sexp_simple_string_t::length
    - sexp_error
    - std::numeric_limits<uint32_t>::max
    linkageType: ''
    returnType: void
    signature: void sexp_input_stream_t::scan_base64_string(sexp_simple_string_t &ss,
      uint32_t length)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::skip_white_space
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:418,1
    - Dst: is_token_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:423,1
    - Dst: is_dec_digit
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:423,1
    - Dst: sexp::sexp_input_stream_t::scan_token
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:424,1
    - Dst: is_dec_digit
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:426,1
    - Dst: sexp::sexp_input_stream_t::scan_decimal_string
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:426,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:427,1
    - Dst: sexp::sexp_input_stream_t::scan_quoted_string
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:431,1
    - Dst: sexp::sexp_input_stream_t::scan_hexadecimal_string
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:434,1
    - Dst: sexp::sexp_input_stream_t::scan_base64_string
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:437,1
    - Dst: sexp::sexp_input_stream_t::scan_verbatim_string
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:441,1
    - Dst: isprint
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:445,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:447,1
    - Dst: sexp_simple_string_t::length
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:452,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:453,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 414
    functionDepth: 5
    functionLinenumber: 414
    functionLinenumberEnd: 455
    functionName: sexp::sexp_input_stream_t::scan_simple_string
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 0
    functionsReached:
    - sexp::sexp_input_stream_t::scan_quoted_string
    - sexp::sexp_input_stream_t::scan_verbatim_string
    - is_dec_digit
    - sexp::sexp_input_stream_t::scan_decimal_string
    - sexp::sexp_input_stream_t::scan_base64_string
    - is_token_char
    - sexp::sexp_input_stream_t::skip_white_space
    - sexp_simple_string_t::length
    - isprint
    - sexp::sexp_input_stream_t::scan_token
    - sexp_error
    - sexp::sexp_input_stream_t::scan_hexadecimal_string
    - std::numeric_limits<uint32_t>::max
    linkageType: ''
    returnType: sexp_simple_string_t
    signature: sexp_simple_string_t sexp_input_stream_t::scan_simple_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<sexp_string_t>
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:463,1
    - Dst: auto::parse
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 467
    functionName: sexp::sexp_input_stream_t::scan_string
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<sexp_string_t>
    - auto::parse
    linkageType: ''
    returnType: std::shared_ptr<sexp_string_t>
    signature: std::shared_ptr<sexp_string_t> sexp_input_stream_t::scan_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<sexp_list_t>
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:475,1
    - Dst: auto::parse
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 478
    functionName: sexp::sexp_input_stream_t::scan_list
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 0
    functionsReached:
    - auto::parse
    - std::make_shared<sexp_list_t>
    linkageType: ''
    returnType: std::shared_ptr<sexp_list_t>
    signature: std::shared_ptr<sexp_list_t> sexp_input_stream_t::scan_list(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::skip_white_space
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:487,1
    - Dst: sexp::sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:489,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:490,1
    - Dst: sexp::sexp_input_stream_t::skip_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:491,1
    - Dst: sexp::sexp_input_stream_t::scan_list
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:494,1
    - Dst: sexp::sexp_input_stream_t::scan_string
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:496,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 484
    functionDepth: 4
    functionLinenumber: 484
    functionLinenumberEnd: 499
    functionName: sexp::sexp_input_stream_t::scan_object
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 17
    functionsReached:
    - sexp::sexp_input_stream_t::scan_object
    - sexp::sexp_input_stream_t::skip_char
    - sexp::sexp_input_stream_t::set_byte_size
    - sexp::sexp_input_stream_t::skip_white_space
    - sexp::sexp_input_stream_t::scan_string
    - sexp::sexp_input_stream_t::scan_list
    linkageType: ''
    returnType: std::shared_ptr<sexp_object_t>
    signature: std::shared_ptr<sexp_object_t> sexp_input_stream_t::scan_object(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::skip_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:506,1
    - Dst: increase_depth
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 504
    functionDepth: 4
    functionLinenumber: 504
    functionLinenumberEnd: 511
    functionName: sexp::sexp_input_stream_t::open_list
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 0
    functionsReached:
    - sexp::sexp_input_stream_t::skip_char
    - increase_depth
    linkageType: ''
    returnType: sexp_input_stream_t
    signature: sexp_input_stream_t *sexp_input_stream_t::open_list(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::skip_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:517,1
    - Dst: decrease_depth
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 515
    functionDepth: 4
    functionLinenumber: 515
    functionLinenumberEnd: 520
    functionName: sexp::sexp_input_stream_t::close_list
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 0
    functionsReached:
    - decrease_depth
    - sexp::sexp_input_stream_t::skip_char
    linkageType: ''
    returnType: sexp_input_stream_t
    signature: sexp_input_stream_t *sexp_input_stream_t::close_list(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::set_input
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:40,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - i
    - m_depth
    argTypes:
    - std::istream*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 41
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 41
    functionName: sexp::sexp_input_stream_t::sexp_input_stream_t
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 0
    functionsReached:
    - sexp::sexp_input_stream_t::set_input
    linkageType: ''
    returnType: void
    signature: void sexp_input_stream_t::sexp_input_stream_t(std::istream *i, size_t
      m_depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset_depth
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - i
    - m_depth
    argTypes:
    - std::istream*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 57
    functionName: sexp::sexp_input_stream_t::set_input
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 2
    functionsReached:
    - reset_depth
    linkageType: ''
    returnType: sexp_input_stream_t
    signature: sexp_input_stream_t *sexp_input_stream_t::set_input(std::istream *i,
      size_t m_depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - newByteSize
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 68
    functionName: sexp::sexp_input_stream_t::set_byte_size
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: sexp_input_stream_t
    signature: sexp_input_stream_t *sexp_input_stream_t::set_byte_size(uint32_t newByteSize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 74
    functionName: sexp::sexp_input_stream_t::read_char
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 1
    functionsReached:
    - get
    linkageType: ''
    returnType: int
    signature: int sexp_input_stream_t::read_char(void)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::read_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:94,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:101,1
    - Dst: sexp::sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:107,1
    - Dst: is_white_space
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:108,1
    - Dst: is_base64_digit
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:117,1
    - Dst: base64value
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:118,1
    - Dst: is_hex_digit
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:119,1
    - Dst: hexvalue
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:120,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:122,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 85
    functionDepth: 2
    functionLinenumber: 85
    functionLinenumberEnd: 135
    functionName: sexp::sexp_input_stream_t::get_char
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 9
    functionsReached:
    - hexvalue
    - sexp::sexp_input_stream_t::set_byte_size
    - is_base64_digit
    - sexp::sexp_input_stream_t::read_char
    - sexp_error
    - is_white_space
    - base64value
    - is_hex_digit
    linkageType: ''
    returnType: sexp_input_stream_t
    signature: sexp_input_stream_t *sexp_input_stream_t::get_char(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_white_space
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:143,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:144,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 141
    functionDepth: 3
    functionLinenumber: 141
    functionLinenumberEnd: 146
    functionName: sexp::sexp_input_stream_t::skip_white_space
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 5
    functionsReached:
    - is_white_space
    - sexp::sexp_input_stream_t::get_char
    linkageType: ''
    returnType: sexp_input_stream_t
    signature: sexp_input_stream_t *sexp_input_stream_t::skip_white_space(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:156,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 153
    functionDepth: 3
    functionLinenumber: 153
    functionLinenumberEnd: 162
    functionName: sexp::sexp_input_stream_t::skip_char
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 6
    functionsReached:
    - sexp_error
    - sexp::sexp_input_stream_t::get_char
    linkageType: ''
    returnType: sexp_input_stream_t
    signature: sexp_input_stream_t *sexp_input_stream_t::skip_char(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::skip_white_space
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:170,1
    - Dst: is_token_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:171,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:172,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sexp_simple_string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 168
    functionDepth: 4
    functionLinenumber: 168
    functionLinenumberEnd: 175
    functionName: sexp::sexp_input_stream_t::scan_token
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 1
    functionsReached:
    - is_token_char
    - sexp::sexp_input_stream_t::skip_white_space
    - sexp::sexp_input_stream_t::get_char
    - sexp_simple_string_t::append
    linkageType: ''
    returnType: void
    signature: void sexp_input_stream_t::scan_token(sexp_simple_string_t &ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::skip_white_space
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:185,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:187,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:188,1
    - Dst: std::make_shared<sexp_string_t>
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:190,1
    - Dst: auto::set_string
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:191,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 182
    functionDepth: 4
    functionLinenumber: 182
    functionLinenumberEnd: 193
    functionName: sexp::sexp_input_stream_t::scan_to_eof
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<sexp_string_t>
    - sexp::sexp_input_stream_t::get_char
    - sexp_simple_string_t::append
    - auto::set_string
    - sexp::sexp_input_stream_t::skip_white_space
    linkageType: ''
    returnType: std::shared_ptr<sexp_object_t>
    signature: std::shared_ptr<sexp_object_t> sexp_input_stream_t::scan_to_eof(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_dec_digit
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:203,1
    - Dst: decvalue
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:204,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:205,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 210
    functionName: sexp::sexp_input_stream_t::scan_decimal_string
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 1
    functionsReached:
    - decvalue
    - sexp_error
    - is_dec_digit
    - sexp::sexp_input_stream_t::get_char
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t sexp_input_stream_t::scan_decimal_string(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::skip_white_space
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:218,1
    - Dst: assert
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:221,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:221,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:224,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:228,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:231,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:232,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - ss
    - length
    argTypes:
    - sexp_simple_string_t
    - uint32_t
    assertStmts:
    - condition: (length != std::numeric_limits<uint32_t>::max())
      pos:
        line_end: 220
        line_start: 220
        source_file: /src/rnp/src/libsexpp/src/sexp-input.cpp
    constantsTouched: []
    func_position:
      end: 234
      start: 216
    functionDepth: 4
    functionLinenumber: 216
    functionLinenumberEnd: 234
    functionName: sexp::sexp_input_stream_t::scan_verbatim_string
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 1
    functionsReached:
    - sexp_simple_string_t::append
    - sexp::sexp_input_stream_t::get_char
    - sexp::sexp_input_stream_t::skip_white_space
    - assert
    - sexp_error
    - std::numeric_limits<uint32_t>::max
    linkageType: ''
    returnType: void
    signature: void sexp_input_stream_t::scan_verbatim_string(sexp_simple_string_t
      &ss, uint32_t length)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::skip_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:244,1
    - Dst: sexp_simple_string_t::length
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:245,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:247,1
    - Dst: sexp_simple_string_t::length
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:247,1
    - Dst: sexp::sexp_input_stream_t::skip_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:248,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:251,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:258,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:261,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:264,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:267,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:270,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:273,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:276,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:279,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:282,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:285,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:291,1
    - Dst: is_hex_digit
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:293,1
    - Dst: hexvalue
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:294,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:296,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:299,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:305,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:308,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:313,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:331,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:333,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:340,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:345,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:348,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:356,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:358,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:360,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 98
    argCount: 2
    argNames:
    - ss
    - length
    argTypes:
    - sexp_simple_string_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 242
    functionDepth: 4
    functionLinenumber: 242
    functionLinenumberEnd: 362
    functionName: sexp::sexp_input_stream_t::scan_quoted_string
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 1
    functionsReached:
    - hexvalue
    - sexp::sexp_input_stream_t::get_char
    - sexp_simple_string_t::append
    - sexp::sexp_input_stream_t::skip_char
    - sexp_simple_string_t::length
    - sexp_error
    - is_hex_digit
    - std::numeric_limits<uint32_t>::max
    linkageType: ''
    returnType: void
    signature: void sexp_input_stream_t::scan_quoted_string(sexp_simple_string_t &ss,
      uint32_t length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:372,1
    - Dst: get_byte_size
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:373,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:374,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:375,1
    - Dst: sexp::sexp_input_stream_t::skip_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:377,1
    - Dst: sexp_simple_string_t::length
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:378,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:378,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:379,1
    - Dst: sexp_simple_string_t::length
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:381,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - ss
    - length
    argTypes:
    - sexp_simple_string_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 370
    functionDepth: 4
    functionLinenumber: 370
    functionLinenumberEnd: 384
    functionName: sexp::sexp_input_stream_t::scan_hexadecimal_string
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 1
    functionsReached:
    - get_byte_size
    - sexp::sexp_input_stream_t::get_char
    - sexp_simple_string_t::append
    - sexp::sexp_input_stream_t::skip_char
    - sexp::sexp_input_stream_t::set_byte_size
    - sexp_simple_string_t::length
    - sexp_error
    - std::numeric_limits<uint32_t>::max
    linkageType: ''
    returnType: void
    signature: void sexp_input_stream_t::scan_hexadecimal_string(sexp_simple_string_t
      &ss, uint32_t length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:394,1
    - Dst: get_byte_size
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:395,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:396,1
    - Dst: sexp::sexp_input_stream_t::get_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:397,1
    - Dst: sexp::sexp_input_stream_t::skip_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:399,1
    - Dst: sexp_simple_string_t::length
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:400,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:400,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:401,1
    - Dst: sexp_simple_string_t::length
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:403,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 2
    argNames:
    - ss
    - length
    argTypes:
    - sexp_simple_string_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 392
    functionDepth: 4
    functionLinenumber: 392
    functionLinenumberEnd: 406
    functionName: sexp::sexp_input_stream_t::scan_base64_string
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 1
    functionsReached:
    - get_byte_size
    - sexp::sexp_input_stream_t::get_char
    - sexp_simple_string_t::append
    - sexp::sexp_input_stream_t::skip_char
    - sexp::sexp_input_stream_t::set_byte_size
    - sexp_simple_string_t::length
    - sexp_error
    - std::numeric_limits<uint32_t>::max
    linkageType: ''
    returnType: void
    signature: void sexp_input_stream_t::scan_base64_string(sexp_simple_string_t &ss,
      uint32_t length)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::skip_white_space
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:418,1
    - Dst: is_token_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:423,1
    - Dst: is_dec_digit
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:423,1
    - Dst: sexp::sexp_input_stream_t::scan_token
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:424,1
    - Dst: is_dec_digit
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:426,1
    - Dst: sexp::sexp_input_stream_t::scan_decimal_string
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:426,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:427,1
    - Dst: sexp::sexp_input_stream_t::scan_quoted_string
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:431,1
    - Dst: sexp::sexp_input_stream_t::scan_hexadecimal_string
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:434,1
    - Dst: sexp::sexp_input_stream_t::scan_base64_string
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:437,1
    - Dst: sexp::sexp_input_stream_t::scan_verbatim_string
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:441,1
    - Dst: isprint
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:445,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:447,1
    - Dst: sexp_simple_string_t::length
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:452,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:453,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 414
    functionDepth: 5
    functionLinenumber: 414
    functionLinenumberEnd: 455
    functionName: sexp::sexp_input_stream_t::scan_simple_string
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 0
    functionsReached:
    - sexp::sexp_input_stream_t::scan_quoted_string
    - sexp::sexp_input_stream_t::scan_verbatim_string
    - is_dec_digit
    - sexp::sexp_input_stream_t::scan_decimal_string
    - sexp::sexp_input_stream_t::scan_base64_string
    - is_token_char
    - sexp::sexp_input_stream_t::skip_white_space
    - sexp_simple_string_t::length
    - isprint
    - sexp::sexp_input_stream_t::scan_token
    - sexp_error
    - sexp::sexp_input_stream_t::scan_hexadecimal_string
    - std::numeric_limits<uint32_t>::max
    linkageType: ''
    returnType: sexp_simple_string_t
    signature: sexp_simple_string_t sexp_input_stream_t::scan_simple_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<sexp_string_t>
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:463,1
    - Dst: auto::parse
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:465,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 461
    functionDepth: 1
    functionLinenumber: 461
    functionLinenumberEnd: 467
    functionName: sexp::sexp_input_stream_t::scan_string
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 1
    functionsReached:
    - std::make_shared<sexp_string_t>
    - auto::parse
    linkageType: ''
    returnType: std::shared_ptr<sexp_string_t>
    signature: std::shared_ptr<sexp_string_t> sexp_input_stream_t::scan_string(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<sexp_list_t>
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:475,1
    - Dst: auto::parse
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 478
    functionName: sexp::sexp_input_stream_t::scan_list
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 1
    functionsReached:
    - auto::parse
    - std::make_shared<sexp_list_t>
    linkageType: ''
    returnType: std::shared_ptr<sexp_list_t>
    signature: std::shared_ptr<sexp_list_t> sexp_input_stream_t::scan_list(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::skip_white_space
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:487,1
    - Dst: sexp::sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:489,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:490,1
    - Dst: sexp::sexp_input_stream_t::skip_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:491,1
    - Dst: sexp::sexp_input_stream_t::scan_list
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:494,1
    - Dst: sexp::sexp_input_stream_t::scan_string
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:496,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 484
    functionDepth: 4
    functionLinenumber: 484
    functionLinenumberEnd: 499
    functionName: sexp::sexp_input_stream_t::scan_object
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 18
    functionsReached:
    - sexp::sexp_input_stream_t::scan_object
    - sexp::sexp_input_stream_t::skip_char
    - sexp::sexp_input_stream_t::set_byte_size
    - sexp::sexp_input_stream_t::skip_white_space
    - sexp::sexp_input_stream_t::scan_string
    - sexp::sexp_input_stream_t::scan_list
    linkageType: ''
    returnType: std::shared_ptr<sexp_object_t>
    signature: std::shared_ptr<sexp_object_t> sexp_input_stream_t::scan_object(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::skip_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:506,1
    - Dst: increase_depth
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:509,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 511
      start: 504
    functionDepth: 4
    functionLinenumber: 504
    functionLinenumberEnd: 511
    functionName: sexp::sexp_input_stream_t::open_list
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 0
    functionsReached:
    - sexp::sexp_input_stream_t::skip_char
    - increase_depth
    linkageType: ''
    returnType: sexp_input_stream_t
    signature: sexp_input_stream_t *sexp_input_stream_t::open_list(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::skip_char
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:517,1
    - Dst: decrease_depth
      Src: /src/rnp/src/libsexpp/src/sexp-input.cpp:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 520
      start: 515
    functionDepth: 4
    functionLinenumber: 515
    functionLinenumberEnd: 520
    functionName: sexp::sexp_input_stream_t::close_list
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-input.cpp
    functionUses: 0
    functionsReached:
    - decrease_depth
    - sexp::sexp_input_stream_t::skip_char
    linkageType: ''
    returnType: sexp_input_stream_t
    signature: sexp_input_stream_t *sexp_input_stream_t::close_list(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/rnp/src/libsexpp/src/sexp-error.cpp:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - prf
    - message
    - level
    - position
    argTypes:
    - std::string
    - std::string
    - severity
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: sexp::sexp_exception_t::format
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-error.cpp
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: std::string
    signature: "std::string sexp_exception_t::format(std::string prf,\n                                     std::string
      message,\n                                     severity    level,\n                                     int
      \        position)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/rnp/src/libsexpp/src/sexp-error.cpp:47,1
    - Dst: sexp::shall_throw
      Src: /src/rnp/src/libsexpp/src/sexp-error.cpp:48,1
    - Dst: sexp_exception_t
      Src: /src/rnp/src/libsexpp/src/sexp-error.cpp:49,1
    - Dst: sexp::is_interactive
      Src: /src/rnp/src/libsexpp/src/sexp-error.cpp:50,1
    - Dst: flush
      Src: /src/rnp/src/libsexpp/src/sexp-error.cpp:51,1
    - Dst: sexp::sexp_exception_t::format
      Src: /src/rnp/src/libsexpp/src/sexp-error.cpp:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - level
    - msg
    - c1
    - c2
    - pos
    argTypes:
    - sexp_exception_t::severity
    - char*
    - size_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: sexp::sexp_error
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-error.cpp
    functionUses: 0
    functionsReached:
    - sexp::sexp_exception_t::format
    - sexp_exception_t
    - sexp::shall_throw
    - flush
    - sexp::is_interactive
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void sexp_error(\n  sexp_exception_t::severity level, const char *msg,
      size_t c1, size_t c2, int pos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/rnp/src/libsexpp/src/sexp-error.cpp:38,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 4
    argNames:
    - prf
    - message
    - level
    - position
    argTypes:
    - std::string
    - std::string
    - severity
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 31
    functionDepth: 1
    functionLinenumber: 31
    functionLinenumberEnd: 40
    functionName: sexp::sexp_exception_t::format
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-error.cpp
    functionUses: 1
    functionsReached:
    - to_string
    linkageType: ''
    returnType: std::string
    signature: "std::string sexp_exception_t::format(std::string prf,\n                                     std::string
      message,\n                                     severity    level,\n                                     int
      \        position)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/rnp/src/libsexpp/src/sexp-error.cpp:47,1
    - Dst: sexp::shall_throw
      Src: /src/rnp/src/libsexpp/src/sexp-error.cpp:48,1
    - Dst: sexp_exception_t
      Src: /src/rnp/src/libsexpp/src/sexp-error.cpp:49,1
    - Dst: sexp::is_interactive
      Src: /src/rnp/src/libsexpp/src/sexp-error.cpp:50,1
    - Dst: flush
      Src: /src/rnp/src/libsexpp/src/sexp-error.cpp:51,1
    - Dst: sexp::sexp_exception_t::format
      Src: /src/rnp/src/libsexpp/src/sexp-error.cpp:52,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - level
    - msg
    - c1
    - c2
    - pos
    argTypes:
    - sexp_exception_t::severity
    - char*
    - size_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: sexp::sexp_error
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-error.cpp
    functionUses: 0
    functionsReached:
    - sexp::sexp_exception_t::format
    - sexp_exception_t
    - sexp::shall_throw
    - flush
    - sexp::is_interactive
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void sexp_error(\n  sexp_exception_t::severity level, const char *msg,
      size_t c1, size_t c2, int pos)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sexp_input_stream_t*::get_next_char
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:40,1
    - Dst: sexp_input_stream_t*::skip_char
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:41,1
    - Dst: set_presentation_hint
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:42,1
    - Dst: sexp_input_stream_t*::scan_simple_string
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:42,1
    - Dst: sexp_input_stream_t*::skip_white_space
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:43,1
    - Dst: set_string
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:45,1
    - Dst: sexp_input_stream_t*::scan_simple_string
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sis
    argTypes:
    - sexp_input_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: sexp::sexp_string_t::parse
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-object.cpp
    functionUses: 0
    functionsReached:
    - set_presentation_hint
    - sexp_input_stream_t*::scan_simple_string
    - set_string
    - sexp_input_stream_t*::skip_char
    - sexp_input_stream_t*::get_next_char
    - sexp_input_stream_t*::skip_white_space
    linkageType: ''
    returnType: void
    signature: void sexp_string_t::parse(sexp_input_stream_t *sis)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sexp_output_stream_t*::var_put_char
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:55,1
    - Dst: print_canonical_verbatim
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:56,1
    - Dst: sexp_output_stream_t*::var_put_char
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:57,1
    - Dst: print_canonical_verbatim
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: sexp::sexp_string_t::print_canonical
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-object.cpp
    functionUses: 0
    functionsReached:
    - sexp_output_stream_t*::var_put_char
    - print_canonical_verbatim
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_string_t::print_canonical(sexp_output_stream_t
      *os) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_object_t::print_advanced
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:69,1
    - Dst: sexp_output_stream_t*::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:71,1
    - Dst: sexp::sexp_string_t::print_advanced
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:72,1
    - Dst: sexp_output_stream_t*::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:73,1
    - Dst: sexp::sexp_string_t::print_advanced
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: sexp::sexp_string_t::print_advanced
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-object.cpp
    functionUses: 1
    functionsReached:
    - sexp::sexp_string_t::print_advanced
    - sexp_output_stream_t*::put_char
    - sexp::sexp_object_t::print_advanced
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_string_t::print_advanced(sexp_output_stream_t
      *os) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_string_t::advanced_length
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:87,1
    - Dst: sexp::sexp_string_t::advanced_length
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: sexp::sexp_string_t::advanced_length
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-object.cpp
    functionUses: 1
    functionsReached:
    - sexp::sexp_string_t::advanced_length
    linkageType: ''
    returnType: size_t
    signature: size_t sexp_string_t::advanced_length(sexp_output_stream_t *os) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sexp_input_stream_t*::open_list
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:99,1
    - Dst: sexp_input_stream_t*::get_next_char
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:100,1
    - Dst: push_back
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:103,1
    - Dst: sexp_input_stream_t*::scan_object
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:103,1
    - Dst: sexp_input_stream_t*::skip_white_space
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:107,1
    - Dst: sexp_input_stream_t*::get_next_char
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:108,1
    - Dst: sexp_input_stream_t*::close_list
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:109,1
    - Dst: push_back
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:113,1
    - Dst: sexp_input_stream_t*::scan_object
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - sis
    argTypes:
    - sexp_input_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 116
    functionName: sexp::sexp_list_t::parse
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-object.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - sexp_input_stream_t*::close_list
    - sexp_input_stream_t*::open_list
    - sexp_input_stream_t*::get_next_char
    - sexp_input_stream_t*::skip_white_space
    - sexp_input_stream_t*::scan_object
    linkageType: ''
    returnType: void
    signature: void sexp_list_t::parse(sexp_input_stream_t *sis)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_output_stream_t*::var_open_list
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:124,1
    - Dst: std::for_each
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:125,1
    - Dst: begin
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:125,1
    - Dst: end
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:125,1
    - Dst: sexp::sexp_list_t::print_canonical
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:126,1
    - Dst: sexp_output_stream_t*::var_close_list
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: sexp::sexp_list_t::print_canonical
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-object.cpp
    functionUses: 1
    functionsReached:
    - std::for_each
    - sexp_output_stream_t*::var_close_list
    - sexp_output_stream_t*::var_open_list
    - end
    - begin
    - sexp::sexp_list_t::print_canonical
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_list_t::print_canonical(sexp_output_stream_t
      *os) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_object_t::print_advanced
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:142,1
    - Dst: sexp_output_stream_t*::open_list
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:145,1
    - Dst: sexp::sexp_list_t::advanced_length
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:146,1
    - Dst: sexp_output_stream_t*::get_max_column
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:146,1
    - Dst: sexp_output_stream_t*::get_column
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:146,1
    - Dst: std::for_each
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:148,1
    - Dst: begin
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:148,1
    - Dst: end
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:148,1
    - Dst: sexp_output_stream_t*::new_line
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:151,1
    - Dst: sexp_output_stream_t*::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:153,1
    - Dst: sexp::sexp_list_t::print_advanced
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:155,1
    - Dst: sexp_output_stream_t*::get_max_column
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:159,1
    - Dst: sexp_output_stream_t*::get_column
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:159,1
    - Dst: sexp_output_stream_t*::get_max_column
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:159,1
    - Dst: sexp_output_stream_t*::new_line
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:160,1
    - Dst: sexp_output_stream_t*::dec_indent
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 162
    functionName: sexp::sexp_list_t::print_advanced
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-object.cpp
    functionUses: 1
    functionsReached:
    - std::for_each
    - sexp_output_stream_t*::get_column
    - sexp_output_stream_t*::get_max_column
    - sexp::sexp_list_t::print_advanced
    - sexp_output_stream_t*::open_list
    - end
    - sexp::sexp_list_t::advanced_length
    - sexp_output_stream_t*::new_line
    - sexp_output_stream_t*::dec_indent
    - begin
    - sexp_output_stream_t*::put_char
    - sexp::sexp_object_t::print_advanced
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_list_t::print_advanced(sexp_output_stream_t
      *os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::for_each
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:171,1
    - Dst: begin
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:171,1
    - Dst: end
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:171,1
    - Dst: sexp::sexp_list_t::advanced_length
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 175
    functionName: sexp::sexp_list_t::advanced_length
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-object.cpp
    functionUses: 2
    functionsReached:
    - std::for_each
    - end
    - begin
    - sexp::sexp_list_t::advanced_length
    linkageType: ''
    returnType: size_t
    signature: size_t sexp_list_t::advanced_length(sexp_output_stream_t *os) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sexp_output_stream_t*::get_max_column
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:183,1
    - Dst: sexp_output_stream_t*::get_column
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:183,1
    - Dst: sexp_output_stream_t*::get_max_column
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:183,1
    - Dst: sexp_output_stream_t*::new_line
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 186
    functionName: sexp::sexp_object_t::print_advanced
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-object.cpp
    functionUses: 2
    functionsReached:
    - sexp_output_stream_t*::get_column
    - sexp_output_stream_t*::get_max_column
    - sexp_output_stream_t*::new_line
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_object_t::print_advanced(sexp_output_stream_t
      *os) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sexp_input_stream_t*::get_next_char
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:40,1
    - Dst: sexp_input_stream_t*::skip_char
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:41,1
    - Dst: set_presentation_hint
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:42,1
    - Dst: sexp_input_stream_t*::scan_simple_string
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:42,1
    - Dst: sexp_input_stream_t*::skip_white_space
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:43,1
    - Dst: set_string
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:45,1
    - Dst: sexp_input_stream_t*::scan_simple_string
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:45,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - sis
    argTypes:
    - sexp_input_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 46
    functionName: sexp::sexp_string_t::parse
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-object.cpp
    functionUses: 0
    functionsReached:
    - set_presentation_hint
    - sexp_input_stream_t*::scan_simple_string
    - set_string
    - sexp_input_stream_t*::skip_char
    - sexp_input_stream_t*::get_next_char
    - sexp_input_stream_t*::skip_white_space
    linkageType: ''
    returnType: void
    signature: void sexp_string_t::parse(sexp_input_stream_t *sis)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sexp_output_stream_t*::var_put_char
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:55,1
    - Dst: print_canonical_verbatim
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:56,1
    - Dst: sexp_output_stream_t*::var_put_char
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:57,1
    - Dst: print_canonical_verbatim
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 61
    functionName: sexp::sexp_string_t::print_canonical
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-object.cpp
    functionUses: 0
    functionsReached:
    - sexp_output_stream_t*::var_put_char
    - print_canonical_verbatim
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_string_t::print_canonical(sexp_output_stream_t
      *os) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_object_t::print_advanced
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:69,1
    - Dst: sexp_output_stream_t*::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:71,1
    - Dst: sexp::sexp_string_t::print_advanced
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:72,1
    - Dst: sexp_output_stream_t*::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:73,1
    - Dst: sexp::sexp_string_t::print_advanced
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 77
    functionName: sexp::sexp_string_t::print_advanced
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-object.cpp
    functionUses: 2
    functionsReached:
    - sexp::sexp_string_t::print_advanced
    - sexp_output_stream_t*::put_char
    - sexp::sexp_object_t::print_advanced
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_string_t::print_advanced(sexp_output_stream_t
      *os) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_string_t::advanced_length
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:87,1
    - Dst: sexp::sexp_string_t::advanced_length
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 90
    functionName: sexp::sexp_string_t::advanced_length
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-object.cpp
    functionUses: 2
    functionsReached:
    - sexp::sexp_string_t::advanced_length
    linkageType: ''
    returnType: size_t
    signature: size_t sexp_string_t::advanced_length(sexp_output_stream_t *os) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sexp_input_stream_t*::open_list
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:99,1
    - Dst: sexp_input_stream_t*::get_next_char
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:100,1
    - Dst: push_back
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:103,1
    - Dst: sexp_input_stream_t*::scan_object
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:103,1
    - Dst: sexp_input_stream_t*::skip_white_space
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:107,1
    - Dst: sexp_input_stream_t*::get_next_char
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:108,1
    - Dst: sexp_input_stream_t*::close_list
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:109,1
    - Dst: push_back
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:113,1
    - Dst: sexp_input_stream_t*::scan_object
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:113,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - sis
    argTypes:
    - sexp_input_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 116
    functionName: sexp::sexp_list_t::parse
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-object.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - sexp_input_stream_t*::close_list
    - sexp_input_stream_t*::open_list
    - sexp_input_stream_t*::get_next_char
    - sexp_input_stream_t*::skip_white_space
    - sexp_input_stream_t*::scan_object
    linkageType: ''
    returnType: void
    signature: void sexp_list_t::parse(sexp_input_stream_t *sis)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_output_stream_t*::var_open_list
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:124,1
    - Dst: std::for_each
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:125,1
    - Dst: begin
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:125,1
    - Dst: end
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:125,1
    - Dst: sexp::sexp_list_t::print_canonical
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:126,1
    - Dst: sexp_output_stream_t*::var_close_list
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 130
    functionName: sexp::sexp_list_t::print_canonical
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-object.cpp
    functionUses: 2
    functionsReached:
    - std::for_each
    - sexp_output_stream_t*::var_close_list
    - sexp_output_stream_t*::var_open_list
    - end
    - begin
    - sexp::sexp_list_t::print_canonical
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_list_t::print_canonical(sexp_output_stream_t
      *os) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_object_t::print_advanced
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:142,1
    - Dst: sexp_output_stream_t*::open_list
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:145,1
    - Dst: sexp::sexp_list_t::advanced_length
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:146,1
    - Dst: sexp_output_stream_t*::get_max_column
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:146,1
    - Dst: sexp_output_stream_t*::get_column
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:146,1
    - Dst: std::for_each
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:148,1
    - Dst: begin
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:148,1
    - Dst: end
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:148,1
    - Dst: sexp_output_stream_t*::new_line
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:151,1
    - Dst: sexp_output_stream_t*::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:153,1
    - Dst: sexp::sexp_list_t::print_advanced
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:155,1
    - Dst: sexp_output_stream_t*::get_max_column
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:159,1
    - Dst: sexp_output_stream_t*::get_column
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:159,1
    - Dst: sexp_output_stream_t*::get_max_column
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:159,1
    - Dst: sexp_output_stream_t*::new_line
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:160,1
    - Dst: sexp_output_stream_t*::dec_indent
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:161,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 140
    functionDepth: 2
    functionLinenumber: 140
    functionLinenumberEnd: 162
    functionName: sexp::sexp_list_t::print_advanced
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-object.cpp
    functionUses: 2
    functionsReached:
    - std::for_each
    - sexp_output_stream_t*::get_column
    - sexp_output_stream_t*::get_max_column
    - sexp::sexp_list_t::print_advanced
    - sexp_output_stream_t*::open_list
    - end
    - sexp::sexp_list_t::advanced_length
    - sexp_output_stream_t*::new_line
    - sexp_output_stream_t*::dec_indent
    - begin
    - sexp_output_stream_t*::put_char
    - sexp::sexp_object_t::print_advanced
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_list_t::print_advanced(sexp_output_stream_t
      *os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::for_each
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:171,1
    - Dst: begin
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:171,1
    - Dst: end
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:171,1
    - Dst: sexp::sexp_list_t::advanced_length
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 175
    functionName: sexp::sexp_list_t::advanced_length
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-object.cpp
    functionUses: 4
    functionsReached:
    - std::for_each
    - end
    - begin
    - sexp::sexp_list_t::advanced_length
    linkageType: ''
    returnType: size_t
    signature: size_t sexp_list_t::advanced_length(sexp_output_stream_t *os) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sexp_output_stream_t*::get_max_column
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:183,1
    - Dst: sexp_output_stream_t*::get_column
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:183,1
    - Dst: sexp_output_stream_t*::get_max_column
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:183,1
    - Dst: sexp_output_stream_t*::new_line
      Src: /src/rnp/src/libsexpp/src/sexp-object.cpp:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 186
    functionName: sexp::sexp_object_t::print_advanced
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-object.cpp
    functionUses: 4
    functionsReached:
    - sexp_output_stream_t*::get_column
    - sexp_output_stream_t*::get_max_column
    - sexp_output_stream_t*::new_line
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_object_t::print_advanced(sexp_output_stream_t
      *os) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:35,1
    - Dst: sexp::shall_throw
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:36,1
    - Dst: sexp_exception_t
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:37,1
    - Dst: sexp::is_interactive
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:38,1
    - Dst: flush
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:39,1
    - Dst: sexp::sexp_exception_t::format
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - level
    - msg
    - c1
    - c2
    - pos
    argTypes:
    - sexp_exception_t::severity
    - char*
    - size_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: ext_key_format::ext_key_error
    functionSourceFile: /src/rnp/src/libsexpp/src/ext-key-format.cpp
    functionUses: 0
    functionsReached:
    - sexp::sexp_exception_t::format
    - sexp_exception_t
    - sexp::shall_throw
    - flush
    - sexp::is_interactive
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void ext_key_error(\n  sexp_exception_t::severity level, const char
      *msg, size_t c1, size_t c2, int pos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:142,1
    - Dst: is_newline_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 145
    functionName: ext_key_format::ext_key_input_stream_t::skip_line
    functionSourceFile: /src/rnp/src/libsexpp/src/ext-key-format.cpp
    functionUses: 0
    functionsReached:
    - is_newline_char
    - get
    linkageType: ''
    returnType: int
    signature: int ext_key_input_stream_t::skip_line(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:152,1
    - Dst: is_newline_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:154,1
    - Dst: peek
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:156,1
    - Dst: get
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:158,1
    - Dst: peek
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:160,1
    - Dst: get
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:163,1
    - Dst: peek
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:165,1
    - Dst: ext_key_format::ext_key_input_stream_t::skip_line
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:167,1
    - Dst: is_newline_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:170,1
    - Dst: get
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:174,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 181
    functionName: ext_key_format::ext_key_input_stream_t::read_char
    functionSourceFile: /src/rnp/src/libsexpp/src/ext-key-format.cpp
    functionUses: 0
    functionsReached:
    - is_newline_char
    - ext_key_format::ext_key_input_stream_t::skip_line
    - peek
    - get
    linkageType: ''
    returnType: int
    signature: int ext_key_input_stream_t::read_char(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_alpha
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:194,1
    - Dst: ext_key_error
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:195,1
    - Dst: isprint
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:196,1
    - Dst: ext_key_format::ext_key_input_stream_t::read_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:204,1
    - Dst: ext_key_error
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:207,1
    - Dst: is_newline_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:209,1
    - Dst: ext_key_error
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:210,1
    - Dst: is_namechar
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:212,1
    - Dst: ext_key_error
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:213,1
    - Dst: isprint
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:214,1
    - Dst: ext_key_format::ext_key_input_stream_t::read_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:222,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 226
    functionName: ext_key_format::ext_key_input_stream_t::scan_name
    functionSourceFile: /src/rnp/src/libsexpp/src/ext-key-format.cpp
    functionUses: 0
    functionsReached:
    - ext_key_error
    - is_alpha
    - is_namechar
    - isprint
    - is_newline_char
    - ext_key_format::ext_key_input_stream_t::read_char
    linkageType: ''
    returnType: std::string
    signature: std::string ext_key_input_stream_t::scan_name(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ext_key_format::ext_key_input_stream_t::read_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:240,1
    - Dst: is_white_space
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:241,1
    - Dst: is_newline_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:242,1
    - Dst: ext_key_format::ext_key_input_stream_t::read_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 247
    functionName: ext_key_format::ext_key_input_stream_t::scan_value
    functionSourceFile: /src/rnp/src/libsexpp/src/ext-key-format.cpp
    functionUses: 0
    functionsReached:
    - is_white_space
    - is_newline_char
    - ext_key_format::ext_key_input_stream_t::read_char
    linkageType: ''
    returnType: std::string
    signature: std::string ext_key_input_stream_t::scan_value(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: set_byte_size
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:257,1
    - Dst: ext_key_format::ext_key_input_stream_t::read_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:258,1
    - Dst: set_next_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:260,1
    - Dst: extended_private_key_t::key::parse
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:261,1
    - Dst: ext_key_format::ext_key_input_stream_t::scan_name
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:266,1
    - Dst: ext_key_format::iequals
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:273,1
    - Dst: ext_key_error
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:275,1
    - Dst: ext_key_format::ext_key_input_stream_t::read_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:282,1
    - Dst: is_white_space
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:283,1
    - Dst: set_next_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:284,1
    - Dst: extended_private_key_t::key::parse
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:285,1
    - Dst: ext_key_format::ext_key_input_stream_t::scan_value
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:288,1
    - Dst: extended_private_key_t::fields::insert
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:289,1
    - Dst: ext_key_format::ext_key_input_stream_t::read_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:291,1
    - Dst: ext_key_error
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:296,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - res
    argTypes:
    - extended_private_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 255
    functionDepth: 4
    functionLinenumber: 255
    functionLinenumberEnd: 298
    functionName: ext_key_format::ext_key_input_stream_t::scan
    functionSourceFile: /src/rnp/src/libsexpp/src/ext-key-format.cpp
    functionUses: 0
    functionsReached:
    - extended_private_key_t::key::parse
    - ext_key_error
    - set_byte_size
    - ext_key_format::iequals
    - extended_private_key_t::fields::insert
    - set_next_char
    - ext_key_format::ext_key_input_stream_t::scan_name
    - is_white_space
    - ext_key_format::ext_key_input_stream_t::scan_value
    - ext_key_format::ext_key_input_stream_t::read_char
    linkageType: ''
    returnType: void
    signature: void ext_key_input_stream_t::scan(extended_private_key_t &res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ext_key_input_stream_t::scan
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - is
    argTypes:
    - ext_key_input_stream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: ext_key_format::extended_private_key_t::parse
    functionSourceFile: /src/rnp/src/libsexpp/src/ext-key-format.cpp
    functionUses: 0
    functionsReached:
    - ext_key_input_stream_t::scan
    linkageType: ''
    returnType: void
    signature: void extended_private_key_t::parse(ext_key_input_stream_t &is)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:35,1
    - Dst: sexp::shall_throw
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:36,1
    - Dst: sexp_exception_t
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:37,1
    - Dst: sexp::is_interactive
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:38,1
    - Dst: flush
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:39,1
    - Dst: sexp::sexp_exception_t::format
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:41,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 5
    argNames:
    - level
    - msg
    - c1
    - c2
    - pos
    argTypes:
    - sexp_exception_t::severity
    - char*
    - size_t
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 2
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: ext_key_format::ext_key_error
    functionSourceFile: /src/rnp/src/libsexpp/src/ext-key-format.cpp
    functionUses: 0
    functionsReached:
    - sexp::sexp_exception_t::format
    - sexp_exception_t
    - sexp::shall_throw
    - flush
    - sexp::is_interactive
    - snprintf
    linkageType: ''
    returnType: void
    signature: "void ext_key_error(\n  sexp_exception_t::severity level, const char
      *msg, size_t c1, size_t c2, int pos)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:142,1
    - Dst: is_newline_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 145
    functionName: ext_key_format::ext_key_input_stream_t::skip_line
    functionSourceFile: /src/rnp/src/libsexpp/src/ext-key-format.cpp
    functionUses: 1
    functionsReached:
    - is_newline_char
    - get
    linkageType: ''
    returnType: int
    signature: int ext_key_input_stream_t::skip_line(void)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:152,1
    - Dst: is_newline_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:154,1
    - Dst: peek
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:156,1
    - Dst: get
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:158,1
    - Dst: peek
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:160,1
    - Dst: get
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:163,1
    - Dst: peek
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:165,1
    - Dst: ext_key_format::ext_key_input_stream_t::skip_line
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:167,1
    - Dst: is_newline_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:170,1
    - Dst: get
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:174,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 150
    functionDepth: 2
    functionLinenumber: 150
    functionLinenumberEnd: 181
    functionName: ext_key_format::ext_key_input_stream_t::read_char
    functionSourceFile: /src/rnp/src/libsexpp/src/ext-key-format.cpp
    functionUses: 3
    functionsReached:
    - is_newline_char
    - ext_key_format::ext_key_input_stream_t::skip_line
    - peek
    - get
    linkageType: ''
    returnType: int
    signature: int ext_key_input_stream_t::read_char(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_alpha
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:194,1
    - Dst: ext_key_error
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:195,1
    - Dst: isprint
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:196,1
    - Dst: ext_key_format::ext_key_input_stream_t::read_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:204,1
    - Dst: ext_key_error
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:207,1
    - Dst: is_newline_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:209,1
    - Dst: ext_key_error
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:210,1
    - Dst: is_namechar
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:212,1
    - Dst: ext_key_error
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:213,1
    - Dst: isprint
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:214,1
    - Dst: ext_key_format::ext_key_input_stream_t::read_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:222,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 226
    functionName: ext_key_format::ext_key_input_stream_t::scan_name
    functionSourceFile: /src/rnp/src/libsexpp/src/ext-key-format.cpp
    functionUses: 1
    functionsReached:
    - ext_key_error
    - is_alpha
    - is_namechar
    - isprint
    - is_newline_char
    - ext_key_format::ext_key_input_stream_t::read_char
    linkageType: ''
    returnType: std::string
    signature: std::string ext_key_input_stream_t::scan_name(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ext_key_format::ext_key_input_stream_t::read_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:240,1
    - Dst: is_white_space
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:241,1
    - Dst: is_newline_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:242,1
    - Dst: ext_key_format::ext_key_input_stream_t::read_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:244,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 235
    functionDepth: 3
    functionLinenumber: 235
    functionLinenumberEnd: 247
    functionName: ext_key_format::ext_key_input_stream_t::scan_value
    functionSourceFile: /src/rnp/src/libsexpp/src/ext-key-format.cpp
    functionUses: 1
    functionsReached:
    - is_white_space
    - is_newline_char
    - ext_key_format::ext_key_input_stream_t::read_char
    linkageType: ''
    returnType: std::string
    signature: std::string ext_key_input_stream_t::scan_value(void)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: set_byte_size
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:257,1
    - Dst: ext_key_format::ext_key_input_stream_t::read_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:258,1
    - Dst: set_next_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:260,1
    - Dst: extended_private_key_t::key::parse
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:261,1
    - Dst: ext_key_format::ext_key_input_stream_t::scan_name
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:266,1
    - Dst: ext_key_format::iequals
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:273,1
    - Dst: ext_key_error
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:275,1
    - Dst: ext_key_format::ext_key_input_stream_t::read_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:282,1
    - Dst: is_white_space
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:283,1
    - Dst: set_next_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:284,1
    - Dst: extended_private_key_t::key::parse
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:285,1
    - Dst: ext_key_format::ext_key_input_stream_t::scan_value
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:288,1
    - Dst: extended_private_key_t::fields::insert
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:289,1
    - Dst: ext_key_format::ext_key_input_stream_t::read_char
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:291,1
    - Dst: ext_key_error
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:296,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - res
    argTypes:
    - extended_private_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 255
    functionDepth: 4
    functionLinenumber: 255
    functionLinenumberEnd: 298
    functionName: ext_key_format::ext_key_input_stream_t::scan
    functionSourceFile: /src/rnp/src/libsexpp/src/ext-key-format.cpp
    functionUses: 0
    functionsReached:
    - extended_private_key_t::key::parse
    - ext_key_error
    - set_byte_size
    - ext_key_format::iequals
    - extended_private_key_t::fields::insert
    - set_next_char
    - ext_key_format::ext_key_input_stream_t::scan_name
    - is_white_space
    - ext_key_format::ext_key_input_stream_t::scan_value
    - ext_key_format::ext_key_input_stream_t::read_char
    linkageType: ''
    returnType: void
    signature: void ext_key_input_stream_t::scan(extended_private_key_t &res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ext_key_input_stream_t::scan
      Src: /src/rnp/src/libsexpp/src/ext-key-format.cpp:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - is
    argTypes:
    - ext_key_input_stream_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 306
    functionName: ext_key_format::extended_private_key_t::parse
    functionSourceFile: /src/rnp/src/libsexpp/src/ext-key-format.cpp
    functionUses: 0
    functionsReached:
    - ext_key_input_stream_t::scan
    linkageType: ''
    returnType: void
    signature: void extended_private_key_t::parse(ext_key_input_stream_t &is)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_output_stream_t::set_output
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - o
    - m_depth
    argTypes:
    - std::ostream*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: sexp::sexp_output_stream_t::sexp_output_stream_t
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-output.cpp
    functionUses: 0
    functionsReached:
    - sexp::sexp_output_stream_t::set_output
    linkageType: ''
    returnType: void
    signature: void sexp_output_stream_t::sexp_output_stream_t(std::ostream *o, size_t
      m_depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset_depth
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - o
    - m_depth
    argTypes:
    - std::ostream*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: sexp::sexp_output_stream_t::set_output
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-output.cpp
    functionUses: 1
    functionsReached:
    - reset_depth
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_output_stream_t::set_output(std::ostream
      *o, size_t m_depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: sexp::sexp_output_stream_t::put_char
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-output.cpp
    functionUses: 0
    functionsReached:
    - put
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_output_stream_t::put_char(int c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_output_stream_t::new_line
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:91,1
    - Dst: sexp::sexp_output_stream_t::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:93,1
    - Dst: sexp::sexp_output_stream_t::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:95,1
    - Dst: sexp::sexp_output_stream_t::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:97,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 102
    functionName: sexp::sexp_output_stream_t::var_put_char
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-output.cpp
    functionUses: 0
    functionsReached:
    - sexp::sexp_output_stream_t::new_line
    - sexp::sexp_output_stream_t::put_char
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_output_stream_t::var_put_char(int c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:113,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - newByteSize
    - newMode
    argTypes:
    - int
    - sexp_print_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 126
    functionName: sexp::sexp_output_stream_t::change_output_byte_size
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-output.cpp
    functionUses: 0
    functionsReached:
    - sexp_error
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: "sexp_output_stream_t *sexp_output_stream_t::change_output_byte_size(int
      newByteSize,\n                                                                    sexp_print_mode
      newMode)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:135,1
    - Dst: sexp::sexp_output_stream_t::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:136,1
    - Dst: sexp::sexp_output_stream_t::new_line
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:143,1
    - Dst: sexp::sexp_output_stream_t::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (byte_size == 6)
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/rnp/src/libsexpp/src/sexp-output.cpp
    constantsTouched: []
    func_position:
      end: 149
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 149
    functionName: sexp::sexp_output_stream_t::flush
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-output.cpp
    functionUses: 0
    functionsReached:
    - assert
    - sexp::sexp_output_stream_t::put_char
    - sexp::sexp_output_stream_t::new_line
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_output_stream_t::flush(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_output_stream_t::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:161,1
    - Dst: sexp::sexp_output_stream_t::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - mode
    argTypes:
    - sexp_print_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 169
    functionName: sexp::sexp_output_stream_t::new_line
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-output.cpp
    functionUses: 2
    functionsReached:
    - sexp::sexp_output_stream_t::put_char
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_output_stream_t::new_line(sexp_print_mode
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:179,1
    - Dst: sexp::sexp_output_stream_t::var_put_char
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 183
    functionName: sexp::sexp_output_stream_t::print_decimal
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-output.cpp
    functionUses: 0
    functionsReached:
    - sexp::sexp_output_stream_t::var_put_char
    - snprintf
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_output_stream_t::print_decimal(uint64_t
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_output_stream_t::change_output_byte_size
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:193,1
    - Dst: print_canonical
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:194,1
    - Dst: sexp::sexp_output_stream_t::flush
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - std::shared_ptr<sexp_object_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: sexp::sexp_output_stream_t::print_base64
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-output.cpp
    functionUses: 0
    functionsReached:
    - print_canonical
    - sexp::sexp_output_stream_t::change_output_byte_size
    - sexp::sexp_output_stream_t::flush
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: "sexp_output_stream_t *sexp_output_stream_t::print_base64(\n  const
      std::shared_ptr<sexp_object_t> &object)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_output_stream_t::set_output
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - o
    - m_depth
    argTypes:
    - std::ostream*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: sexp::sexp_output_stream_t::sexp_output_stream_t
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-output.cpp
    functionUses: 0
    functionsReached:
    - sexp::sexp_output_stream_t::set_output
    linkageType: ''
    returnType: void
    signature: void sexp_output_stream_t::sexp_output_stream_t(std::ostream *o, size_t
      m_depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset_depth
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - o
    - m_depth
    argTypes:
    - std::ostream*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 63
    functionName: sexp::sexp_output_stream_t::set_output
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-output.cpp
    functionUses: 2
    functionsReached:
    - reset_depth
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_output_stream_t::set_output(std::ostream
      *o, size_t m_depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 75
    functionName: sexp::sexp_output_stream_t::put_char
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-output.cpp
    functionUses: 3
    functionsReached:
    - put
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_output_stream_t::put_char(int c)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_output_stream_t::new_line
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:91,1
    - Dst: sexp::sexp_output_stream_t::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:93,1
    - Dst: sexp::sexp_output_stream_t::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:95,1
    - Dst: sexp::sexp_output_stream_t::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:97,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 17
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 102
    functionName: sexp::sexp_output_stream_t::var_put_char
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-output.cpp
    functionUses: 1
    functionsReached:
    - sexp::sexp_output_stream_t::new_line
    - sexp::sexp_output_stream_t::put_char
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_output_stream_t::var_put_char(int c)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:113,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:115,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - newByteSize
    - newMode
    argTypes:
    - int
    - sexp_print_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 126
    functionName: sexp::sexp_output_stream_t::change_output_byte_size
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-output.cpp
    functionUses: 1
    functionsReached:
    - sexp_error
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: "sexp_output_stream_t *sexp_output_stream_t::change_output_byte_size(int
      newByteSize,\n                                                                    sexp_print_mode
      newMode)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:135,1
    - Dst: sexp::sexp_output_stream_t::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:136,1
    - Dst: sexp::sexp_output_stream_t::new_line
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:143,1
    - Dst: sexp::sexp_output_stream_t::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:144,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (byte_size == 6)
      pos:
        line_end: 134
        line_start: 134
        source_file: /src/rnp/src/libsexpp/src/sexp-output.cpp
    constantsTouched: []
    func_position:
      end: 149
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 149
    functionName: sexp::sexp_output_stream_t::flush
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-output.cpp
    functionUses: 1
    functionsReached:
    - assert
    - sexp::sexp_output_stream_t::put_char
    - sexp::sexp_output_stream_t::new_line
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_output_stream_t::flush(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_output_stream_t::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:161,1
    - Dst: sexp::sexp_output_stream_t::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:166,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - mode
    argTypes:
    - sexp_print_mode
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 169
    functionName: sexp::sexp_output_stream_t::new_line
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-output.cpp
    functionUses: 4
    functionsReached:
    - sexp::sexp_output_stream_t::put_char
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_output_stream_t::new_line(sexp_print_mode
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:179,1
    - Dst: sexp::sexp_output_stream_t::var_put_char
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - n
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 175
    functionDepth: 2
    functionLinenumber: 175
    functionLinenumberEnd: 183
    functionName: sexp::sexp_output_stream_t::print_decimal
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-output.cpp
    functionUses: 0
    functionsReached:
    - sexp::sexp_output_stream_t::var_put_char
    - snprintf
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_output_stream_t::print_decimal(uint64_t
      n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_output_stream_t::change_output_byte_size
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:193,1
    - Dst: print_canonical
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:194,1
    - Dst: sexp::sexp_output_stream_t::flush
      Src: /src/rnp/src/libsexpp/src/sexp-output.cpp:195,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - object
    argTypes:
    - std::shared_ptr<sexp_object_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 196
    functionName: sexp::sexp_output_stream_t::print_base64
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-output.cpp
    functionUses: 0
    functionsReached:
    - print_canonical
    - sexp::sexp_output_stream_t::change_output_byte_size
    - sexp::sexp_output_stream_t::flush
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: "sexp_output_stream_t *sexp_output_stream_t::print_base64(\n  const
      std::shared_ptr<sexp_object_t> &object)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_depth_manager::reset_depth
      Src: /src/rnp/src/libsexpp/src/sexp-depth-manager.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m_depth
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: sexp::sexp_depth_manager::sexp_depth_manager
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-depth-manager.cpp
    functionUses: 0
    functionsReached:
    - sexp::sexp_depth_manager::reset_depth
    linkageType: ''
    returnType: void
    signature: void sexp_depth_manager::sexp_depth_manager(size_t m_depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m_depth
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: sexp::sexp_depth_manager::reset_depth
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-depth-manager.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sexp_depth_manager::reset_depth(size_t m_depth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-depth-manager.cpp:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - count
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: sexp::sexp_depth_manager::increase_depth
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-depth-manager.cpp
    functionUses: 0
    functionsReached:
    - sexp_error
    linkageType: ''
    returnType: void
    signature: void sexp_depth_manager::increase_depth(int count)
  - 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: sexp::sexp_depth_manager::decrease_depth
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-depth-manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sexp_depth_manager::decrease_depth(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_depth_manager::reset_depth
      Src: /src/rnp/src/libsexpp/src/sexp-depth-manager.cpp:30,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - m_depth
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 31
      start: 28
    functionDepth: 1
    functionLinenumber: 28
    functionLinenumberEnd: 31
    functionName: sexp::sexp_depth_manager::sexp_depth_manager
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-depth-manager.cpp
    functionUses: 0
    functionsReached:
    - sexp::sexp_depth_manager::reset_depth
    linkageType: ''
    returnType: void
    signature: void sexp_depth_manager::sexp_depth_manager(size_t m_depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - m_depth
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 36
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 36
    functionName: sexp::sexp_depth_manager::reset_depth
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-depth-manager.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sexp_depth_manager::reset_depth(size_t m_depth)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-depth-manager.cpp:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - count
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: sexp::sexp_depth_manager::increase_depth
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-depth-manager.cpp
    functionUses: 0
    functionsReached:
    - sexp_error
    linkageType: ''
    returnType: void
    signature: void sexp_depth_manager::increase_depth(int count)
  - 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: sexp::sexp_depth_manager::decrease_depth
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-depth-manager.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sexp_depth_manager::decrease_depth(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:39,1
    - Dst: sexp_output_stream_t*::print_decimal
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:41,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:41,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:43,1
    - Dst: sexp_output_stream_t*::var_put_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: sexp::sexp_simple_string_t::print_canonical_verbatim
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp
    functionUses: 0
    functionsReached:
    - length
    - sexp_output_stream_t*::var_put_char
    - sexp_output_stream_t*::print_decimal
    - c_str
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: "sexp_output_stream_t *sexp_simple_string_t::print_canonical_verbatim(\r\n
      \ sexp_output_stream_t *os) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_simple_string_t::can_print_as_token
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:54,1
    - Dst: advanced_length_token
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:55,1
    - Dst: sexp::sexp_simple_string_t::can_print_as_quoted_string
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:56,1
    - Dst: advanced_length_quoted
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:57,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:58,1
    - Dst: sexp_output_stream_t*::get_byte_size
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:58,1
    - Dst: advanced_length_hexadecimal
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:59,1
    - Dst: sexp_output_stream_t*::get_byte_size
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:60,1
    - Dst: advanced_length_base64
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 64
    functionName: sexp::sexp_simple_string_t::advanced_length
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp
    functionUses: 0
    functionsReached:
    - advanced_length_quoted
    - sexp::sexp_simple_string_t::can_print_as_quoted_string
    - advanced_length_hexadecimal
    - sexp_output_stream_t*::get_byte_size
    - sexp::sexp_simple_string_t::can_print_as_token
    - advanced_length_base64
    - length
    - advanced_length_token
    linkageType: ''
    returnType: size_t
    signature: size_t sexp_simple_string_t::advanced_length(sexp_output_stream_t *os)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:73,1
    - Dst: sexp_output_stream_t*::get_max_column
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:74,1
    - Dst: sexp_output_stream_t*::get_column
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:74,1
    - Dst: sexp_output_stream_t*::get_max_column
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:74,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:74,1
    - Dst: sexp_output_stream_t*::new_line
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:75,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:76,1
    - Dst: sexp_output_stream_t*::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: sexp::sexp_simple_string_t::print_token
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp
    functionUses: 0
    functionsReached:
    - sexp_output_stream_t*::get_column
    - sexp_output_stream_t*::get_max_column
    - sexp_output_stream_t*::new_line
    - length
    - c_str
    - sexp_output_stream_t*::put_char
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_simple_string_t::print_token(sexp_output_stream_t
      *os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:87,1
    - Dst: sexp_output_stream_t*::var_put_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:88,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:89,1
    - Dst: sexp_output_stream_t*::var_put_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:90,1
    - Dst: sexp_output_stream_t*::flush
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: sexp::sexp_simple_string_t::print_base64
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp
    functionUses: 0
    functionsReached:
    - sexp_output_stream_t*::var_put_char
    - length
    - sexp_output_stream_t*::flush
    - c_str
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_simple_string_t::print_base64(sexp_output_stream_t
      *os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:102,1
    - Dst: sexp_output_stream_t*::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:103,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:104,1
    - Dst: sexp_output_stream_t*::var_put_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:105,1
    - Dst: sexp_output_stream_t*::flush
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: sexp::sexp_simple_string_t::print_hexadecimal
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp
    functionUses: 0
    functionsReached:
    - sexp_output_stream_t*::flush
    - sexp_output_stream_t*::var_put_char
    - length
    - c_str
    - sexp_output_stream_t*::put_char
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_simple_string_t::print_hexadecimal(sexp_output_stream_t
      *os) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:120,1
    - Dst: sexp_output_stream_t*::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:121,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:122,1
    - Dst: sexp_output_stream_t*::get_max_column
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:123,1
    - Dst: sexp_output_stream_t*::get_column
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:123,1
    - Dst: sexp_output_stream_t*::get_max_column
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:123,1
    - Dst: sexp_output_stream_t*::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:124,1
    - Dst: sexp_output_stream_t*::reset_column
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:125,1
    - Dst: sexp_output_stream_t*::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:127,1
    - Dst: sexp_output_stream_t*::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: sexp::sexp_simple_string_t::print_quoted
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp
    functionUses: 0
    functionsReached:
    - sexp_output_stream_t*::get_max_column
    - sexp_output_stream_t*::get_column
    - length
    - c_str
    - sexp_output_stream_t*::reset_column
    - sexp_output_stream_t*::put_char
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_simple_string_t::print_quoted(sexp_output_stream_t
      *os) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_simple_string_t::can_print_as_token
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:138,1
    - Dst: sexp::sexp_simple_string_t::print_token
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:139,1
    - Dst: sexp::sexp_simple_string_t::can_print_as_quoted_string
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:140,1
    - Dst: sexp::sexp_simple_string_t::print_quoted
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:141,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:142,1
    - Dst: sexp_output_stream_t*::get_byte_size
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:142,1
    - Dst: sexp::sexp_simple_string_t::print_hexadecimal
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:143,1
    - Dst: sexp_output_stream_t*::get_byte_size
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:144,1
    - Dst: sexp::sexp_simple_string_t::print_base64
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:145,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:147,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 153
    functionName: sexp::sexp_simple_string_t::print_advanced
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp
    functionUses: 0
    functionsReached:
    - sexp::sexp_simple_string_t::print_quoted
    - sexp::sexp_simple_string_t::can_print_as_quoted_string
    - sexp_output_stream_t*::get_byte_size
    - sexp::sexp_simple_string_t::can_print_as_token
    - sexp::sexp_simple_string_t::print_token
    - length
    - sexp_error
    - sexp::sexp_simple_string_t::print_hexadecimal
    - sexp::sexp_simple_string_t::print_base64
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_simple_string_t::print_advanced(sexp_output_stream_t
      *os) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:162,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:163,1
    - Dst: is_token_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 168
    functionName: sexp::sexp_simple_string_t::can_print_as_quoted_string
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp
    functionUses: 2
    functionsReached:
    - length
    - is_token_char
    - c_str
    linkageType: ''
    returnType: bool
    signature: bool sexp_simple_string_t::can_print_as_quoted_string(void) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:177,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:178,1
    - Dst: is_dec_digit
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:180,1
    - Dst: sexp_output_stream_t*::get_max_column
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:182,1
    - Dst: sexp_output_stream_t*::get_column
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:182,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:182,1
    - Dst: sexp_output_stream_t*::get_max_column
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:182,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:184,1
    - Dst: is_token_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:185,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 189
    functionName: sexp::sexp_simple_string_t::can_print_as_token
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp
    functionUses: 2
    functionsReached:
    - sexp_output_stream_t*::get_max_column
    - sexp_output_stream_t*::get_column
    - is_dec_digit
    - is_token_char
    - length
    - c_str
    linkageType: ''
    returnType: bool
    signature: bool sexp_simple_string_t::can_print_as_token(const sexp_output_stream_t
      *os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:39,1
    - Dst: sexp_output_stream_t*::print_decimal
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:41,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:41,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:43,1
    - Dst: sexp_output_stream_t*::var_put_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:44,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 46
    functionName: sexp::sexp_simple_string_t::print_canonical_verbatim
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp
    functionUses: 0
    functionsReached:
    - length
    - sexp_output_stream_t*::var_put_char
    - sexp_output_stream_t*::print_decimal
    - c_str
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: "sexp_output_stream_t *sexp_simple_string_t::print_canonical_verbatim(\r\n
      \ sexp_output_stream_t *os) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_simple_string_t::can_print_as_token
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:54,1
    - Dst: advanced_length_token
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:55,1
    - Dst: sexp::sexp_simple_string_t::can_print_as_quoted_string
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:56,1
    - Dst: advanced_length_quoted
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:57,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:58,1
    - Dst: sexp_output_stream_t*::get_byte_size
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:58,1
    - Dst: advanced_length_hexadecimal
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:59,1
    - Dst: sexp_output_stream_t*::get_byte_size
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:60,1
    - Dst: advanced_length_base64
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:61,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 64
    functionName: sexp::sexp_simple_string_t::advanced_length
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp
    functionUses: 0
    functionsReached:
    - advanced_length_quoted
    - sexp::sexp_simple_string_t::can_print_as_quoted_string
    - advanced_length_hexadecimal
    - sexp_output_stream_t*::get_byte_size
    - sexp::sexp_simple_string_t::can_print_as_token
    - advanced_length_base64
    - length
    - advanced_length_token
    linkageType: ''
    returnType: size_t
    signature: size_t sexp_simple_string_t::advanced_length(sexp_output_stream_t *os)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:73,1
    - Dst: sexp_output_stream_t*::get_max_column
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:74,1
    - Dst: sexp_output_stream_t*::get_column
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:74,1
    - Dst: sexp_output_stream_t*::get_max_column
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:74,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:74,1
    - Dst: sexp_output_stream_t*::new_line
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:75,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:76,1
    - Dst: sexp_output_stream_t*::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:77,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: sexp::sexp_simple_string_t::print_token
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp
    functionUses: 1
    functionsReached:
    - sexp_output_stream_t*::get_column
    - sexp_output_stream_t*::get_max_column
    - sexp_output_stream_t*::new_line
    - length
    - c_str
    - sexp_output_stream_t*::put_char
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_simple_string_t::print_token(sexp_output_stream_t
      *os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:87,1
    - Dst: sexp_output_stream_t*::var_put_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:88,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:89,1
    - Dst: sexp_output_stream_t*::var_put_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:90,1
    - Dst: sexp_output_stream_t*::flush
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 94
    functionName: sexp::sexp_simple_string_t::print_base64
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp
    functionUses: 1
    functionsReached:
    - sexp_output_stream_t*::var_put_char
    - length
    - sexp_output_stream_t*::flush
    - c_str
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_simple_string_t::print_base64(sexp_output_stream_t
      *os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:102,1
    - Dst: sexp_output_stream_t*::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:103,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:104,1
    - Dst: sexp_output_stream_t*::var_put_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:105,1
    - Dst: sexp_output_stream_t*::flush
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:106,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 109
    functionName: sexp::sexp_simple_string_t::print_hexadecimal
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp
    functionUses: 1
    functionsReached:
    - sexp_output_stream_t*::flush
    - sexp_output_stream_t*::var_put_char
    - length
    - c_str
    - sexp_output_stream_t*::put_char
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_simple_string_t::print_hexadecimal(sexp_output_stream_t
      *os) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:120,1
    - Dst: sexp_output_stream_t*::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:121,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:122,1
    - Dst: sexp_output_stream_t*::get_max_column
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:123,1
    - Dst: sexp_output_stream_t*::get_column
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:123,1
    - Dst: sexp_output_stream_t*::get_max_column
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:123,1
    - Dst: sexp_output_stream_t*::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:124,1
    - Dst: sexp_output_stream_t*::reset_column
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:125,1
    - Dst: sexp_output_stream_t*::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:127,1
    - Dst: sexp_output_stream_t*::put_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:129,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: sexp::sexp_simple_string_t::print_quoted
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp
    functionUses: 1
    functionsReached:
    - sexp_output_stream_t*::get_max_column
    - sexp_output_stream_t*::get_column
    - length
    - c_str
    - sexp_output_stream_t*::reset_column
    - sexp_output_stream_t*::put_char
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_simple_string_t::print_quoted(sexp_output_stream_t
      *os) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_simple_string_t::can_print_as_token
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:138,1
    - Dst: sexp::sexp_simple_string_t::print_token
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:139,1
    - Dst: sexp::sexp_simple_string_t::can_print_as_quoted_string
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:140,1
    - Dst: sexp::sexp_simple_string_t::print_quoted
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:141,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:142,1
    - Dst: sexp_output_stream_t*::get_byte_size
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:142,1
    - Dst: sexp::sexp_simple_string_t::print_hexadecimal
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:143,1
    - Dst: sexp_output_stream_t*::get_byte_size
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:144,1
    - Dst: sexp::sexp_simple_string_t::print_base64
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:145,1
    - Dst: sexp_error
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:147,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 153
    functionName: sexp::sexp_simple_string_t::print_advanced
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp
    functionUses: 0
    functionsReached:
    - sexp::sexp_simple_string_t::print_quoted
    - sexp::sexp_simple_string_t::can_print_as_quoted_string
    - sexp_output_stream_t*::get_byte_size
    - sexp::sexp_simple_string_t::can_print_as_token
    - sexp::sexp_simple_string_t::print_token
    - length
    - sexp_error
    - sexp::sexp_simple_string_t::print_hexadecimal
    - sexp::sexp_simple_string_t::print_base64
    linkageType: ''
    returnType: sexp_output_stream_t
    signature: sexp_output_stream_t *sexp_simple_string_t::print_advanced(sexp_output_stream_t
      *os) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:162,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:163,1
    - Dst: is_token_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:164,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 168
    functionName: sexp::sexp_simple_string_t::can_print_as_quoted_string
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp
    functionUses: 4
    functionsReached:
    - length
    - is_token_char
    - c_str
    linkageType: ''
    returnType: bool
    signature: bool sexp_simple_string_t::can_print_as_quoted_string(void) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:177,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:178,1
    - Dst: is_dec_digit
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:180,1
    - Dst: sexp_output_stream_t*::get_max_column
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:182,1
    - Dst: sexp_output_stream_t*::get_column
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:182,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:182,1
    - Dst: sexp_output_stream_t*::get_max_column
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:182,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:184,1
    - Dst: is_token_char
      Src: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp:185,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 12
    argCount: 1
    argNames:
    - os
    argTypes:
    - sexp_output_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 189
    functionName: sexp::sexp_simple_string_t::can_print_as_token
    functionSourceFile: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp
    functionUses: 4
    functionsReached:
    - sexp_output_stream_t*::get_max_column
    - sexp_output_stream_t*::get_column
    - is_dec_digit
    - is_token_char
    - length
    - c_str
    linkageType: ''
    returnType: bool
    signature: bool sexp_simple_string_t::can_print_as_token(const sexp_output_stream_t
      *os) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - __c1
    - __c2
    argTypes:
    - char_type
    - char_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: std::assign
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void assign(char_type &__c1, const char_type &__c2) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - __c1
    - __c2
    argTypes:
    - char_type
    - char_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: std::eq
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool eq(const char_type &__c1, const char_type &__c2) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - __c1
    - __c2
    argTypes:
    - char_type
    - char_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: std::lt
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool lt(const char_type &__c1, const char_type &__c2) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - __s1
    - __s2
    - __n
    argTypes:
    - char_type*
    - char_type*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: std::compare
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 2
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int compare(const char_type *__s1, const char_type *__s2, size_t __n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:84,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - __s
    argTypes:
    - char_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: std::length
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - strlen
    - reinterpret_cast<const char *>
    linkageType: ''
    returnType: size_t
    signature: size_t length(const char_type *__s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const char_type *>
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:89,1
    - Dst: memchr
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - __s
    - __n
    - __a
    argTypes:
    - char_type*
    - size_t
    - char_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: std::find
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 2
    functionsReached:
    - memchr
    - static_cast<const char_type *>
    linkageType: ''
    returnType: char_type
    signature: char_type *find(const char_type *__s, size_t __n, const char_type &__a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char_type *>
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:94,1
    - Dst: memmove
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - __s1
    - __s2
    - __n
    argTypes:
    - char_type*
    - char_type*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: std::move
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 104
    functionsReached:
    - memmove
    - static_cast<char_type *>
    linkageType: ''
    returnType: char_type
    signature: char_type *move(char_type *__s1, const char_type *__s2, size_t __n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char_type *>
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:99,1
    - Dst: memcpy
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - __s1
    - __s2
    - __n
    argTypes:
    - char_type*
    - char_type*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: std::copy
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 3
    functionsReached:
    - memcpy
    - static_cast<char_type *>
    linkageType: ''
    returnType: char_type
    signature: char_type *copy(char_type *__s1, const char_type *__s2, size_t __n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char_type *>
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:104,1
    - Dst: memset
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - __s
    - __n
    - __a
    argTypes:
    - char_type*
    - size_t
    - char_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: std::assign
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 4
    functionsReached:
    - memset
    - static_cast<char_type *>
    linkageType: ''
    returnType: char_type
    signature: char_type *assign(char_type *__s, size_t __n, char_type __a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char_type>
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - __c
    argTypes:
    - int_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: std::to_char_type
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 2
    functionsReached:
    - static_cast<char_type>
    linkageType: ''
    returnType: char_type
    signature: char_type to_char_type(const int_type &__c) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int_type>
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:116,1
    - Dst: static_cast<unsigned char>
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - __c
    argTypes:
    - char_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: std::to_int_type
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 2
    functionsReached:
    - static_cast<int_type>
    - static_cast<unsigned char>
    linkageType: ''
    returnType: int_type
    signature: int_type to_int_type(const char_type &__c) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - __c1
    - __c2
    argTypes:
    - int_type
    - int_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: std::eq_int_type
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool eq_int_type(const int_type &__c1, const int_type &__c2) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int_type>
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: std::eof
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - static_cast<int_type>
    linkageType: ''
    returnType: int_type
    signature: int_type eof() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::eof
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - __c
    argTypes:
    - int_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: std::not_eof
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 2
    functionsReached:
    - std::eof
    linkageType: ''
    returnType: int_type
    signature: int_type not_eof(const int_type &__c) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - __c1
    - __c2
    argTypes:
    - char_type
    - char_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 65
    functionName: std::assign
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void assign(char_type &__c1, const char_type &__c2) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - __c1
    - __c2
    argTypes:
    - char_type
    - char_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 70
    functionName: std::eq
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool eq(const char_type &__c1, const char_type &__c2) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - __c1
    - __c2
    argTypes:
    - char_type
    - char_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: std::lt
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool lt(const char_type &__c1, const char_type &__c2) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcmp
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:79,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - __s1
    - __s2
    - __n
    argTypes:
    - char_type*
    - char_type*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: std::compare
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 2
    functionsReached:
    - memcmp
    linkageType: ''
    returnType: int
    signature: int compare(const char_type *__s1, const char_type *__s2, size_t __n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:84,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - __s
    argTypes:
    - char_type*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 85
    functionName: std::length
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - strlen
    - reinterpret_cast<const char *>
    linkageType: ''
    returnType: size_t
    signature: size_t length(const char_type *__s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<const char_type *>
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:89,1
    - Dst: memchr
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - __s
    - __n
    - __a
    argTypes:
    - char_type*
    - size_t
    - char_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 90
    functionName: std::find
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 2
    functionsReached:
    - memchr
    - static_cast<const char_type *>
    linkageType: ''
    returnType: char_type
    signature: char_type *find(const char_type *__s, size_t __n, const char_type &__a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char_type *>
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:94,1
    - Dst: memmove
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - __s1
    - __s2
    - __n
    argTypes:
    - char_type*
    - char_type*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 95
    functionName: std::move
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 104
    functionsReached:
    - memmove
    - static_cast<char_type *>
    linkageType: ''
    returnType: char_type
    signature: char_type *move(char_type *__s1, const char_type *__s2, size_t __n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char_type *>
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:99,1
    - Dst: memcpy
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - __s1
    - __s2
    - __n
    argTypes:
    - char_type*
    - char_type*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 100
    functionName: std::copy
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 3
    functionsReached:
    - memcpy
    - static_cast<char_type *>
    linkageType: ''
    returnType: char_type
    signature: char_type *copy(char_type *__s1, const char_type *__s2, size_t __n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char_type *>
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:104,1
    - Dst: memset
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - __s
    - __n
    - __a
    argTypes:
    - char_type*
    - size_t
    - char_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 105
    functionName: std::assign
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 4
    functionsReached:
    - memset
    - static_cast<char_type *>
    linkageType: ''
    returnType: char_type
    signature: char_type *assign(char_type *__s, size_t __n, char_type __a)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char_type>
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - __c
    argTypes:
    - int_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 110
    functionName: std::to_char_type
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 2
    functionsReached:
    - static_cast<char_type>
    linkageType: ''
    returnType: char_type
    signature: char_type to_char_type(const int_type &__c) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int_type>
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:116,1
    - Dst: static_cast<unsigned char>
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - __c
    argTypes:
    - char_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 117
    functionName: std::to_int_type
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 2
    functionsReached:
    - static_cast<int_type>
    - static_cast<unsigned char>
    linkageType: ''
    returnType: int_type
    signature: int_type to_int_type(const char_type &__c) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - __c1
    - __c2
    argTypes:
    - int_type
    - int_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 122
    functionName: std::eq_int_type
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool eq_int_type(const int_type &__c1, const int_type &__c2) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int_type>
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 124
    functionDepth: 0
    functionLinenumber: 124
    functionLinenumberEnd: 124
    functionName: std::eof
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 1
    functionsReached:
    - static_cast<int_type>
    linkageType: ''
    returnType: int_type
    signature: int_type eof() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::eof
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - __c
    argTypes:
    - int_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 129
    functionName: std::not_eof
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 2
    functionsReached:
    - std::eof
    linkageType: ''
    returnType: int_type
    signature: int_type not_eof(const int_type &__c) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::isspace
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:149,1
    - Dst: std::isdigit
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:153,1
    - Dst: std::isxdigit
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:157,1
    - Dst: std::isalpha
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:163,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 175
    functionName: sexp::sexp_char_defs_t
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - std::isdigit
    - std::isalpha
    - std::isspace
    - std::isxdigit
    linkageType: ''
    returnType: class SEXP_PUBLIC_SYMBOL
    signature: class SEXP_PUBLIC_SYMBOL sexp_char_defs_t
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::isspace
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: sexp::is_white_space
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - std::isspace
    linkageType: ''
    returnType: bool
    signature: bool is_white_space(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::isdigit
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: sexp::is_dec_digit
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - std::isdigit
    linkageType: ''
    returnType: bool
    signature: bool is_dec_digit(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::isxdigit
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: sexp::is_hex_digit
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - std::isxdigit
    linkageType: ''
    returnType: bool
    signature: bool is_hex_digit(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: sexp::is_base64_digit
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_base64_digit(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    functionName: sexp::is_token_char
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_token_char(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::isalpha
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: sexp::is_alpha
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - std::isalpha
    linkageType: ''
    returnType: bool
    signature: bool is_alpha(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: sexp::decvalue
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char decvalue(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: sexp::hexvalue
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char hexvalue(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: sexp::base64value
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char base64value(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dt
    argTypes:
    - octet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: sexp::sexp_simple_string_t
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sexp_simple_string_t(const octet_t *dt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - bt
    - ln
    argTypes:
    - octet_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: sexp::sexp_simple_string_t
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sexp_simple_string_t(const octet_t *bt, size_t ln)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: sexp::append
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sexp_simple_string_t
    signature: sexp_simple_string_t &append(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h: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: sexp::advanced_length_token
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - length
    linkageType: ''
    returnType: size_t
    signature: size_t advanced_length_token(void) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:203,1
    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: sexp::advanced_length_base64
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - length
    linkageType: ''
    returnType: size_t
    signature: size_t advanced_length_base64(void) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:205,1
    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: sexp::advanced_length_quoted
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - length
    linkageType: ''
    returnType: size_t
    signature: size_t advanced_length_quoted(void) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: sexp::advanced_length_hexadecimal
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - length
    linkageType: ''
    returnType: size_t
    signature: size_t advanced_length_hexadecimal(void) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:222,1
    - Dst: std::strlen
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:222,1
    - Dst: std::memcmp
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:222,1
    - Dst: data
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:222,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - right
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: operator==(const char *right) const noexcept
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - std::strlen
    - std::memcmp
    - data
    - length
    linkageType: ''
    returnType: bool
    signature: bool operator==(const char *right) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:227,1
    - Dst: std::strlen
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:227,1
    - Dst: std::memcmp
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:227,1
    - Dst: data
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:227,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - right
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: operator!=(const char *right) const noexcept
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - std::strlen
    - std::memcmp
    - data
    - length
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const char *right) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:232,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:232,1
    - Dst: atoi
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:233,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:233,1
    - Dst: c_str
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: sexp::as_unsigned
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - atoi
    - reinterpret_cast<const char *>
    - c_str
    - empty
    - std::numeric_limits<uint32_t>::max
    linkageType: ''
    returnType: unsigned
    signature: unsigned as_unsigned() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::isspace
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:149,1
    - Dst: std::isdigit
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:153,1
    - Dst: std::isxdigit
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:157,1
    - Dst: std::isalpha
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:163,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 175
    functionName: sexp::sexp_char_defs_t
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - std::isdigit
    - std::isalpha
    - std::isspace
    - std::isxdigit
    linkageType: ''
    returnType: class SEXP_PUBLIC_SYMBOL
    signature: class SEXP_PUBLIC_SYMBOL sexp_char_defs_t
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::isspace
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:149,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 150
    functionName: sexp::is_white_space
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - std::isspace
    linkageType: ''
    returnType: bool
    signature: bool is_white_space(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::isdigit
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 154
    functionName: sexp::is_dec_digit
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - std::isdigit
    linkageType: ''
    returnType: bool
    signature: bool is_dec_digit(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::isxdigit
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:157,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 155
    functionDepth: 0
    functionLinenumber: 155
    functionLinenumberEnd: 158
    functionName: sexp::is_hex_digit
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - std::isxdigit
    linkageType: ''
    returnType: bool
    signature: bool is_hex_digit(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: sexp::is_base64_digit
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_base64_digit(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    functionName: sexp::is_token_char
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_token_char(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::isalpha
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:163,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 164
    functionName: sexp::is_alpha
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - std::isalpha
    linkageType: ''
    returnType: bool
    signature: bool is_alpha(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 167
    functionDepth: 0
    functionLinenumber: 167
    functionLinenumberEnd: 167
    functionName: sexp::decvalue
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char decvalue(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 169
    functionDepth: 0
    functionLinenumber: 169
    functionLinenumberEnd: 169
    functionName: sexp::hexvalue
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char hexvalue(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: sexp::base64value
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: unsigned char
    signature: unsigned char base64value(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - dt
    argTypes:
    - octet_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 193
    functionName: sexp::sexp_simple_string_t
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sexp_simple_string_t(const octet_t *dt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - bt
    - ln
    argTypes:
    - octet_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 194
    functionDepth: 0
    functionLinenumber: 194
    functionLinenumberEnd: 194
    functionName: sexp::sexp_simple_string_t
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sexp_simple_string_t(const octet_t *bt, size_t ln)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 0
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: sexp::append
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sexp_simple_string_t
    signature: sexp_simple_string_t &append(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h: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: sexp::advanced_length_token
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - length
    linkageType: ''
    returnType: size_t
    signature: size_t advanced_length_token(void) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:203,1
    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: sexp::advanced_length_base64
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - length
    linkageType: ''
    returnType: size_t
    signature: size_t advanced_length_base64(void) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:205,1
    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: sexp::advanced_length_quoted
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - length
    linkageType: ''
    returnType: size_t
    signature: size_t advanced_length_quoted(void) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 207
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 207
    functionName: sexp::advanced_length_hexadecimal
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - length
    linkageType: ''
    returnType: size_t
    signature: size_t advanced_length_hexadecimal(void) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:222,1
    - Dst: std::strlen
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:222,1
    - Dst: std::memcmp
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:222,1
    - Dst: data
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:222,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:222,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - right
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 223
    functionName: operator==(const char *right) const noexcept
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - std::strlen
    - std::memcmp
    - data
    - length
    linkageType: ''
    returnType: bool
    signature: bool operator==(const char *right) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:227,1
    - Dst: std::strlen
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:227,1
    - Dst: std::memcmp
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:227,1
    - Dst: data
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:227,1
    - Dst: length
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - right
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 228
    functionName: operator!=(const char *right) const noexcept
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - std::strlen
    - std::memcmp
    - data
    - length
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const char *right) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:232,1
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:232,1
    - Dst: atoi
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:233,1
    - Dst: reinterpret_cast<const char *>
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:233,1
    - Dst: c_str
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: sexp::as_unsigned
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - atoi
    - reinterpret_cast<const char *>
    - c_str
    - empty
    - std::numeric_limits<uint32_t>::max
    linkageType: ''
    returnType: unsigned
    signature: unsigned as_unsigned() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::c_str
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - sexp_simple_string_t*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 237
    functionDepth: 0
    functionLinenumber: 237
    functionLinenumberEnd: 240
    functionName: operator==(const sexp_simple_string_t *left, const std::string &right)
      noexcept
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: bool operator==(const sexp_simple_string_t *left, const std::string
      &right) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::c_str
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - sexp_simple_string_t*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 245
      start: 242
    functionDepth: 0
    functionLinenumber: 242
    functionLinenumberEnd: 245
    functionName: operator!=(const sexp_simple_string_t *left, const std::string &right)
      noexcept
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const sexp_simple_string_t *left, const std::string
      &right) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 285
    functionName: sexp_object_t
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - std::numeric_limits<uint32_t>::max
    linkageType: ''
    returnType: class SEXP_PUBLIC_SYMBOL
    signature: class SEXP_PUBLIC_SYMBOL sexp_object_t
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 259
    functionDepth: 0
    functionLinenumber: 259
    functionLinenumberEnd: 259
    functionName: sexp_list_view
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: sexp_list_t
    signature: sexp_list_t *  sexp_list_view(void) noexcept
  - 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: sexp_string_view
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: sexp_string_t
    signature: sexp_string_t *sexp_string_view(void) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 261
    functionName: is_sexp_list
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_sexp_list(void) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 262
    functionName: is_sexp_string
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_sexp_string(void) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pos
    argTypes:
    - std::vector<std::shared_ptr<sexp_object_t>>::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 268
    functionName: sexp_list_at
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: sexp_list_t
    signature: "sexp_list_t *sexp_list_at(\r\n      std::vector<std::shared_ptr<sexp_object_t>>::size_type
      pos) const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pos
    argTypes:
    - std::vector<std::shared_ptr<sexp_object_t>>::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 273
    functionName: sexp_string_at
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: sexp_string_t
    signature: "sexp_string_t *sexp_string_at(\r\n      std::vector<std::shared_ptr<sexp_object_t>>::size_type
      pos) const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pos
    argTypes:
    - std::vector<std::shared_ptr<sexp_object_t>>::size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 274
    functionDepth: 0
    functionLinenumber: 274
    functionLinenumberEnd: 278
    functionName: sexp_simple_string_at
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: sexp_simple_string_t
    signature: "sexp_simple_string_t *sexp_simple_string_at(\r\n      std::vector<std::shared_ptr<sexp_object_t>>::size_type
      pos) const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - right
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 279
    functionName: operator==(const char *right) const noexcept
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const char *right) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - right
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 280
    functionName: operator!=(const char *right) const noexcept
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const char *right) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::numeric_limits<uint32_t>::max
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: as_unsigned
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 2
    functionsReached:
    - std::numeric_limits<uint32_t>::max
    linkageType: ''
    returnType: unsigned
    signature: unsigned as_unsigned() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_string_t
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:298,1
    - Dst: reinterpret_cast<const octet_t *>
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:305,1
    - Dst: data
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:305,1
    - Dst: parse
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:309,1
    - Dst: sexp_simple_string_t::as_unsigned
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 32
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 339
    functionName: sexp_string_t
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 1
    functionsReached:
    - data
    - reinterpret_cast<const octet_t *>
    - parse
    - sexp_string_t
    - sexp_simple_string_t::as_unsigned
    linkageType: ''
    returnType: class SEXP_PUBLIC_SYMBOL
    signature: class SEXP_PUBLIC_SYMBOL sexp_string_t
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - bt
    - ln
    argTypes:
    - octet_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 302
      start: 299
    functionDepth: 0
    functionLinenumber: 299
    functionLinenumberEnd: 302
    functionName: sexp_string_t
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sexp_string_t(const octet_t *bt, size_t ln)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const octet_t *>
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:305,1
    - Dst: std::string::data
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:305,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 307
    functionName: sexp_string_t
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 1
    functionsReached:
    - reinterpret_cast<const octet_t *>
    - std::string::data
    linkageType: ''
    returnType: void
    signature: void sexp_string_t(const std::string &str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 308
    functionDepth: 0
    functionLinenumber: 308
    functionLinenumberEnd: 308
    functionName: sexp_string_t
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void sexp_string_t(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parse
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sis
    argTypes:
    - sexp_input_stream_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 309
    functionDepth: 1
    functionLinenumber: 309
    functionLinenumberEnd: 309
    functionName: sexp_string_t
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 1
    functionsReached:
    - parse
    linkageType: ''
    returnType: void
    signature: void sexp_string_t(sexp_input_stream_t *sis)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 311
    functionName: has_presentation_hint
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_presentation_hint(void) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: get_string
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: sexp_simple_string_t
    signature: sexp_simple_string_t &get_string(void) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ss
    argTypes:
    - sexp_simple_string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 316
    functionName: set_string
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: sexp_simple_string_t
    signature: sexp_simple_string_t &set_string(const sexp_simple_string_t &ss)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 320
      start: 317
    functionDepth: 0
    functionLinenumber: 317
    functionLinenumberEnd: 320
    functionName: get_presentation_hint
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: sexp_simple_string_t
    signature: sexp_simple_string_t &get_presentation_hint(void) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ph
    argTypes:
    - sexp_simple_string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 321
    functionDepth: 0
    functionLinenumber: 321
    functionLinenumberEnd: 325
    functionName: set_presentation_hint
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: sexp_simple_string_t
    signature: sexp_simple_string_t &set_presentation_hint(const sexp_simple_string_t
      &ph)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 331
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 331
    functionName: sexp_string_view
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: sexp_string_t
    signature: sexp_string_t *sexp_string_view(void) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 332
      start: 332
    functionDepth: 0
    functionLinenumber: 332
    functionLinenumberEnd: 332
    functionName: is_sexp_string
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_sexp_string(void) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - right
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 334
    functionName: operator==(const char *right) const noexcept
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const char *right) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - right
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 335
    functionName: operator!=(const char *right) const noexcept
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const char *right) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: as_unsigned
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 338
    functionDepth: 1
    functionLinenumber: 338
    functionLinenumberEnd: 338
    functionName: as_unsigned
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 4
    functionsReached:
    - as_unsigned
    linkageType: ''
    returnType: unsigned
    signature: unsigned as_unsigned() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::c_str
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - sexp_string_t*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 341
    functionDepth: 0
    functionLinenumber: 341
    functionLinenumberEnd: 344
    functionName: operator==(const sexp_string_t *left, const std::string &right)
      noexcept
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: bool operator==(const sexp_string_t *left, const std::string &right)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::c_str
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp.h:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - sexp_string_t*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 349
    functionName: operator!=(const sexp_string_t *left, const std::string &right)
      noexcept
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    functionUses: 0
    functionsReached:
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const sexp_string_t *left, const std::string &right)
      noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::lexicographical_compare
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:45,1
    - Dst: begin
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:46,1
    - Dst: end
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:46,1
    - Dst: begin
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:46,1
    - Dst: end
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:46,1
    - Dst: std::tolower
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:47,1
    - Dst: std::tolower
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:47,1
    - Dst: size
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:55,1
    - Dst: size
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:56,1
    - Dst: tolower
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:59,1
    - Dst: tolower
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 70
    functionName: ext_key_format::extended_private_key_t
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h
    functionUses: 0
    functionsReached:
    - std::tolower
    - tolower
    - end
    - std::lexicographical_compare
    - begin
    - size
    linkageType: ''
    returnType: class SEXP_PUBLIC_SYMBOL
    signature: class SEXP_PUBLIC_SYMBOL extended_private_key_t
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::lexicographical_compare
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:45,1
    - Dst: std::string::begin
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:46,1
    - Dst: std::string::end
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:46,1
    - Dst: std::string::begin
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:46,1
    - Dst: std::string::end
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:46,1
    - Dst: std::tolower
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:47,1
    - Dst: std::tolower
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: operator()(const std::string &s1, const std::string &s2) const
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h
    functionUses: 0
    functionsReached:
    - std::tolower
    - std::string::begin
    - std::lexicographical_compare
    - std::string::end
    linkageType: ''
    returnType: bool
    signature: bool operator()(const std::string &s1, const std::string &s2) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:55,1
    - Dst: std::string::size
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:56,1
    - Dst: tolower
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:59,1
    - Dst: tolower
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: ext_key_format::iequals
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h
    functionUses: 2
    functionsReached:
    - tolower
    - std::string::size
    linkageType: ''
    returnType: bool
    signature: bool iequals(const std::string &a, const std::string &b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ext_key_input_stream_t
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:88,1
    - Dst: ext_key_format::sexp::sexp_input_stream_t
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:89,1
    - Dst: is_scanning_value
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:89,1
    - Dst: has_key
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 94
    functionName: ext_key_format::sexp::sexp_input_stream_t
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h
    functionUses: 1
    functionsReached:
    - has_key
    - ext_key_input_stream_t
    - ext_key_format::sexp::sexp_input_stream_t
    - is_scanning_value
    linkageType: ''
    returnType: class SEXP_PUBLIC_SYMBOL
    signature: class SEXP_PUBLIC_SYMBOL sexp::sexp_input_stream_t
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: ext_key_format::is_newline_char
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_newline_char(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: ext_key_format::is_namechar
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_namechar(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: ~ext_key_input_stream_t()
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ext_key_input_stream_t()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::lexicographical_compare
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:45,1
    - Dst: begin
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:46,1
    - Dst: end
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:46,1
    - Dst: begin
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:46,1
    - Dst: end
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:46,1
    - Dst: std::tolower
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:47,1
    - Dst: std::tolower
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:47,1
    - Dst: size
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:55,1
    - Dst: size
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:56,1
    - Dst: tolower
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:59,1
    - Dst: tolower
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 70
    functionName: ext_key_format::extended_private_key_t
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h
    functionUses: 0
    functionsReached:
    - std::tolower
    - tolower
    - end
    - std::lexicographical_compare
    - begin
    - size
    linkageType: ''
    returnType: class SEXP_PUBLIC_SYMBOL
    signature: class SEXP_PUBLIC_SYMBOL extended_private_key_t
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::lexicographical_compare
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:45,1
    - Dst: std::string::begin
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:46,1
    - Dst: std::string::end
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:46,1
    - Dst: std::string::begin
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:46,1
    - Dst: std::string::end
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:46,1
    - Dst: std::tolower
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:47,1
    - Dst: std::tolower
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 49
    functionName: operator()(const std::string &s1, const std::string &s2) const
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h
    functionUses: 0
    functionsReached:
    - std::tolower
    - std::string::begin
    - std::lexicographical_compare
    - std::string::end
    linkageType: ''
    returnType: bool
    signature: bool operator()(const std::string &s1, const std::string &s2) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:55,1
    - Dst: std::string::size
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:56,1
    - Dst: tolower
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:59,1
    - Dst: tolower
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:59,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - a
    - b
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 62
    functionName: ext_key_format::iequals
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h
    functionUses: 2
    functionsReached:
    - tolower
    - std::string::size
    linkageType: ''
    returnType: bool
    signature: bool iequals(const std::string &a, const std::string &b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ext_key_input_stream_t
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:88,1
    - Dst: ext_key_format::sexp::sexp_input_stream_t
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:89,1
    - Dst: is_scanning_value
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:89,1
    - Dst: has_key
      Src: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h:89,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 94
    functionName: ext_key_format::sexp::sexp_input_stream_t
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h
    functionUses: 2
    functionsReached:
    - has_key
    - ext_key_input_stream_t
    - ext_key_format::sexp::sexp_input_stream_t
    - is_scanning_value
    linkageType: ''
    returnType: class SEXP_PUBLIC_SYMBOL
    signature: class SEXP_PUBLIC_SYMBOL sexp::sexp_input_stream_t
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 76
    functionName: ext_key_format::is_newline_char
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_newline_char(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 77
    functionName: ext_key_format::is_namechar
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_namechar(int c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 92
    functionName: ~ext_key_input_stream_t()
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ext_key_input_stream_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_exception_t
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h:49,1
    - Dst: format
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h:54,1
    - Dst: std::move
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h:54,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 69
    functionName: sexp::std::exception
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h
    functionUses: 0
    functionsReached:
    - format
    - sexp_exception_t
    - std::string::c_str
    - std::move
    linkageType: ''
    returnType: class SEXP_PUBLIC_SYMBOL
    signature: class SEXP_PUBLIC_SYMBOL std::exception
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - level
    argTypes:
    - severity
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: sexp::shall_throw
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool shall_throw(severity level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp-error.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: sexp::what
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *what(void) const throw()
  - 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: sexp::get_level
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: severity
    signature: severity get_level(void) 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: sexp::get_position
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_position(void) 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: sexp::get_verbosity
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: severity
    signature: severity get_verbosity(void)
  - 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: sexp::is_interactive
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_interactive(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - new_verbosity
    argTypes:
    - severity
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: sexp::set_verbosity
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_verbosity(severity new_verbosity)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - new_interactive
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: sexp::set_interactive
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_interactive(bool new_interactive)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp_exception_t
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h:49,1
    - Dst: format
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h:54,1
    - Dst: std::move
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h:54,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h:62,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 34
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 69
    functionName: sexp::std::exception
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h
    functionUses: 0
    functionsReached:
    - format
    - sexp_exception_t
    - std::string::c_str
    - std::move
    linkageType: ''
    returnType: class SEXP_PUBLIC_SYMBOL
    signature: class SEXP_PUBLIC_SYMBOL std::exception
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - level
    argTypes:
    - severity
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: sexp::shall_throw
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool shall_throw(severity level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_str
      Src: /src/rnp/src/libsexpp/include/sexpp/sexp-error.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: sexp::what
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h
    functionUses: 0
    functionsReached:
    - c_str
    linkageType: ''
    returnType: char
    signature: char *what(void) const throw()
  - 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: sexp::get_level
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: severity
    signature: severity get_level(void) 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: sexp::get_position
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_position(void) 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: sexp::get_verbosity
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: severity
    signature: severity get_verbosity(void)
  - 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: sexp::is_interactive
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_interactive(void)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - new_verbosity
    argTypes:
    - severity
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: sexp::set_verbosity
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_verbosity(severity new_verbosity)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - new_interactive
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 68
    functionName: sexp::set_interactive
    functionSourceFile: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_interactive(bool new_interactive)
  - 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: ~kbx_blob_t()
    functionSourceFile: /src/rnp/src/librekey/kbx_blob.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~kbx_blob_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: kbx_blob_t::parse
    functionSourceFile: /src/rnp/src/librekey/kbx_blob.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool parse()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: kbx_blob_t::type
    functionSourceFile: /src/rnp/src/librekey/kbx_blob.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: kbx_blob_type_t
    signature: kbx_blob_type_t type()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: "&\n    image()"
    functionSourceFile: /src/rnp/src/librekey/kbx_blob.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    image()"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librekey/kbx_blob.hpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: kbx_blob_t::length
    functionSourceFile: /src/rnp/src/librekey/kbx_blob.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t length() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: kbx_header_blob_t::kbx_header_blob_t
    functionSourceFile: /src/rnp/src/librekey/kbx_blob.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void kbx_header_blob_t(std::vector<uint8_t> &data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: kbx_header_blob_t::file_created_at
    functionSourceFile: /src/rnp/src/librekey/kbx_blob.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t file_created_at()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 133
    functionName: kbx_pgp_blob_t::kbx_pgp_blob_t
    functionSourceFile: /src/rnp/src/librekey/kbx_blob.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void kbx_pgp_blob_t(std::vector<uint8_t> &data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: kbx_pgp_blob_t::keyblock_offset
    functionSourceFile: /src/rnp/src/librekey/kbx_blob.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t keyblock_offset()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: kbx_pgp_blob_t::keyblock_length
    functionSourceFile: /src/rnp/src/librekey/kbx_blob.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t keyblock_length()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librekey/kbx_blob.hpp: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: kbx_pgp_blob_t::nkeys
    functionSourceFile: /src/rnp/src/librekey/kbx_blob.hpp
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t nkeys()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librekey/kbx_blob.hpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 1
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: kbx_pgp_blob_t::nuids
    functionSourceFile: /src/rnp/src/librekey/kbx_blob.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t nuids()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librekey/kbx_blob.hpp: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: kbx_pgp_blob_t::nsigs
    functionSourceFile: /src/rnp/src/librekey/kbx_blob.hpp
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t nsigs()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: kbx_blob_t::ru8
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t kbx_blob_t::ru8(size_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_uint16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:68,1
    - Dst: data
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: kbx_blob_t::ru16
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - data
    - read_uint16
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t kbx_blob_t::ru16(size_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:74,1
    - Dst: data
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: kbx_blob_t::ru32
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - read_uint32
    - data
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t kbx_blob_t::ru32(size_t idx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:79,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:80,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:81,1
    - Dst: read_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:83,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:83,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:85,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:86,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:88,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:89,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:90,1
    - Dst: kbx_blob_t::ru8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:93,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 15
    argCount: 1
    argNames:
    - data
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 94
    functionName: kbx_blob_t::kbx_blob_t
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>::size
    - read_uint32
    - rnp::rnp_exception::rnp_exception
    - std::vector<uint8_t>::data
    - kbx_blob_t::ru8
    linkageType: ''
    returnType: void
    signature: void kbx_blob_t::kbx_blob_t(std::vector<uint8_t> &data)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: length
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:99,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:100,1
    - Dst: length
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:101,1
    - Dst: ru8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:107,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:109,1
    - Dst: ru16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:113,1
    - Dst: memcmp
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:117,1
    - Dst: data
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:117,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:118,1
    - Dst: ru32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:125,1
    - Dst: ru32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:128,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 132
    functionName: kbx_header_blob_t::parse
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - ru8
    - data
    - ru16
    - memcmp
    - length
    - ru32
    linkageType: ''
    returnType: bool
    signature: bool kbx_header_blob_t::parse()
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:141,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:142,1
    - Dst: ru8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:148,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:150,1
    - Dst: ru16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:154,1
    - Dst: ru32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:157,1
    - Dst: ru32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:160,1
    - Dst: size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:163,1
    - Dst: size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:165,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:166,1
    - Dst: size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:168,1
    - Dst: ru16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:174,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:177,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:181,1
    - Dst: ru16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:186,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:189,1
    - Dst: size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:195,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:196,1
    - Dst: memcpy
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:202,1
    - Dst: ru32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:205,1
    - Dst: ru16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:208,1
    - Dst: push_back
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:214,1
    - Dst: std::move
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:214,1
    - Dst: size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:217,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:218,1
    - Dst: ru16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:221,1
    - Dst: size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:224,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:225,1
    - Dst: size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:225,1
    - Dst: begin
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:230,1
    - Dst: begin
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:230,1
    - Dst: size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:234,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:235,1
    - Dst: ru16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:238,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:240,1
    - Dst: ru16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:244,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:248,1
    - Dst: size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:253,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:254,1
    - Dst: ru32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:259,1
    - Dst: ru32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:262,1
    - Dst: ru16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:265,1
    - Dst: ru8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:268,1
    - Dst: push_back
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:275,1
    - Dst: std::move
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:275,1
    - Dst: size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:278,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:279,1
    - Dst: ru16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:283,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:285,1
    - Dst: ru16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:289,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:293,1
    - Dst: size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:298,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:299,1
    - Dst: ru32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:304,1
    - Dst: push_back
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:310,1
    - Dst: size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:313,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:314,1
    - Dst: ru8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:318,1
    - Dst: ru8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:320,1
    - Dst: ru32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:324,1
    - Dst: ru32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:326,1
    - Dst: ru32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:328,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 133
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 338
    functionName: kbx_pgp_blob_t::parse
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - ru8
    - memcpy
    - push_back
    - ru16
    - std::move
    - begin
    - size
    - ru32
    linkageType: ''
    returnType: bool
    signature: bool kbx_pgp_blob_t::parse()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:348,1
    - Dst: std::unique_ptr<kbx_blob_t>
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:358,1
    - Dst: kbx_blob_t::kbx_blob_t
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:358,1
    - Dst: std::unique_ptr<kbx_blob_t>
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:361,1
    - Dst: kbx_header_blob_t::kbx_header_blob_t
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:361,1
    - Dst: std::unique_ptr<kbx_blob_t>
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:364,1
    - Dst: kbx_pgp_blob_t::kbx_pgp_blob_t
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:364,1
    - Dst: std::unique_ptr<kbx_blob_t>
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:368,1
    - Dst: kbx_blob_t::kbx_blob_t
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:368,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:372,1
    - Dst: std::unique_ptr::parse
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:376,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:381,1
    - Dst: what
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:381,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - image
    - image_len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 386
    functionName: rnp::kbx_parse_blob
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - kbx_pgp_blob_t::kbx_pgp_blob_t
    - std::unique_ptr::parse
    - std::unique_ptr<kbx_blob_t>
    - kbx_blob_t::kbx_blob_t
    - kbx_header_blob_t::kbx_header_blob_t
    linkageType: ''
    returnType: std::unique_ptr<kbx_blob_t>
    signature: std::unique_ptr<kbx_blob_t> kbx_parse_blob(const uint8_t *image, size_t
      image_len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:348,1
    - Dst: std::unique_ptr<kbx_blob_t>
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:358,1
    - Dst: kbx_blob_t::kbx_blob_t
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:358,1
    - Dst: std::unique_ptr<kbx_blob_t>
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:361,1
    - Dst: kbx_header_blob_t::kbx_header_blob_t
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:361,1
    - Dst: std::unique_ptr<kbx_blob_t>
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:364,1
    - Dst: kbx_pgp_blob_t::kbx_pgp_blob_t
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:364,1
    - Dst: std::unique_ptr<kbx_blob_t>
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:368,1
    - Dst: kbx_blob_t::kbx_blob_t
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:368,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:372,1
    - Dst: std::unique_ptr::parse
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:376,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:381,1
    - Dst: what
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:381,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - image
    - image_len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 386
    functionName: rnp::kbx_parse_blob
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - kbx_pgp_blob_t::kbx_pgp_blob_t
    - std::unique_ptr::parse
    - std::unique_ptr<kbx_blob_t>
    - kbx_blob_t::kbx_blob_t
    - kbx_header_blob_t::kbx_header_blob_t
    linkageType: ''
    returnType: std::unique_ptr<kbx_blob_t>
    signature: std::unique_ptr<kbx_blob_t> kbx_parse_blob(const uint8_t *image, size_t
      image_len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: MemorySource::size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:394,1
    - Dst: MemorySource::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:395,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:398,1
    - Dst: read_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:402,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:404,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:410,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:414,1
    - Dst: kbx_parse_blob
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:419,1
    - Dst: auto::get
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:420,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:421,1
    - Dst: auto::get
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:424,1
    - Dst: push_back
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:425,1
    - Dst: std::move
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:425,1
    - Dst: kbx_blob_t*::type
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:427,1
    - Dst: dynamic_cast<kbx_pgp_blob_t &>
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:429,1
    - Dst: kbx_pgp_blob_t::keyblock_length
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:430,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:431,1
    - Dst: kbx_pgp_blob_t::image
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:435,1
    - Dst: kbx_pgp_blob_t::keyblock_offset
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:435,1
    - Dst: kbx_pgp_blob_t::keyblock_length
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:436,1
    - Dst: rnp::KeyStore::load_pgp
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:438,1
    - Dst: MemorySource::src
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:438,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:447,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:452,1
    - Dst: what
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:452,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 2
    argNames:
    - src
    - key_provider
    argTypes:
    - pgp_source_t
    - KeyProvider*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 456
    functionName: rnp::KeyStore::load_kbx
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - MemorySource::memory
    - kbx_pgp_blob_t::keyblock_length
    - what
    - rnp::KeyStore::load_pgp
    - push_back
    - MemorySource::src
    - kbx_blob_t*::type
    - MemorySource::size
    - kbx_parse_blob
    - read_uint32
    - kbx_pgp_blob_t::keyblock_offset
    - auto::get
    - dynamic_cast<kbx_pgp_blob_t &>
    - kbx_pgp_blob_t::image
    - std::move
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::load_kbx(pgp_source_t &src, const KeyProvider *key_provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dst_write
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dst
    - buf
    - len
    argTypes:
    - pgp_dest_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 464
    functionName: rnp::pbuf
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - dst_write
    linkageType: ''
    returnType: bool
    signature: bool pbuf(pgp_dest_t &dst, const void *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - p
    argTypes:
    - pgp_dest_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 466
    functionDepth: 3
    functionLinenumber: 466
    functionLinenumberEnd: 470
    functionName: rnp::pu8
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - rnp::pbuf
    linkageType: ''
    returnType: bool
    signature: bool pu8(pgp_dest_t &dst, uint8_t p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - f
    argTypes:
    - pgp_dest_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 472
    functionDepth: 3
    functionLinenumber: 472
    functionLinenumberEnd: 479
    functionName: rnp::pu16
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - rnp::pbuf
    linkageType: ''
    returnType: bool
    signature: bool pu16(pgp_dest_t &dst, uint16_t f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:485,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - f
    argTypes:
    - pgp_dest_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 487
    functionName: rnp::pu32
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - write_uint32
    - rnp::pbuf
    linkageType: ''
    returnType: bool
    signature: bool pu32(pgp_dest_t &dst, uint32_t f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: KeyStore::secctx::time
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:493,1
    - Dst: KeyStore::blobs::empty
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:495,1
    - Dst: type
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:495,1
    - Dst: dynamic_cast<kbx_header_blob_t &>
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:496,1
    - Dst: kbx_header_blob_t::file_created_at
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:497,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:500,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:500,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:501,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:502,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:502,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:502,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:503,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:504,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:504,1
    - Dst: KeyStore::secctx::time
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:504,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:505,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 5
    argCount: 2
    argNames:
    - key_store
    - dst
    argTypes:
    - KeyStore
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 489
    functionDepth: 4
    functionLinenumber: 489
    functionLinenumberEnd: 506
    functionName: rnp::kbx_write_header
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - rnp::pu8
    - rnp::pu32
    - KeyStore::blobs::empty
    - dynamic_cast<kbx_header_blob_t &>
    - rnp::pbuf
    - KeyStore::secctx::time
    - kbx_header_blob_t::file_created_at
    - rnp::pu16
    - type
    linkageType: ''
    returnType: bool
    signature: bool kbx_write_header(const KeyStore &key_store, pgp_dest_t &dst)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:513,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:513,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:517,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:517,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:517,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:517,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:521,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:521,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:525,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:525,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:526,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:526,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:530,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:530,1
    - Dst: Key::subkey_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:530,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:533,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:533,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:537,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:537,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:537,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:537,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:538,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:538,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:538,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:539,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:539,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:540,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:540,1
    - Dst: Key::subkey_fps
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:546,1
    - Dst: KeyStore::get_key
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:547,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:548,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:548,1
    - Dst: auto*::fp
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:548,1
    - Dst: auto*::fp
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:548,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:549,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:549,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:549,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:550,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:550,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:551,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:551,1
    - Dst: auto*::sig_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:555,1
    - Dst: auto*::get_sig
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:556,1
    - Dst: key_expiration
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:556,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:557,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:561,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:561,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:566,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:566,1
    - Dst: Key::uid_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:566,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:566,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:566,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:570,1
    - Dst: Key::uid_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:571,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:572,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:572,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:573,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:573,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:577,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:577,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:581,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:581,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:581,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:581,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:586,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:586,1
    - Dst: Key::sig_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:586,1
    - Dst: std::vector::size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:586,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:587,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:587,1
    - Dst: Key::sig_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:591,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:592,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:592,1
    - Dst: Key::get_sig
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:592,1
    - Dst: key_expiration
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:592,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:597,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:597,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:602,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:602,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:603,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:603,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:607,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:607,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:607,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:607,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:611,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:611,1
    - Dst: KeyStore::secctx::time
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:611,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:612,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:612,1
    - Dst: KeyStore::secctx::time
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:612,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:616,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:616,1
    - Dst: Key::uid_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:621,1
    - Dst: Key::get_uid
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:622,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:623,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:625,1
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:626,1
    - Dst: auto::str::size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:628,1
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:629,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:631,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:631,1
    - Dst: auto::str::c_str
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:631,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:637,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:639,1
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:640,1
    - Dst: Key::write
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:642,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:642,1
    - Dst: MemoryDest::werr
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:643,1
    - Dst: Key::subkey_fps
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:647,1
    - Dst: KeyStore::get_key
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:648,1
    - Dst: auto*::write
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:652,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:652,1
    - Dst: MemoryDest::werr
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:653,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:659,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:660,1
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:661,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:664,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:665,1
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:666,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:669,1
    - Dst: auto::add
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:670,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:670,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:670,1
    - Dst: assert
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:672,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:672,1
    - Dst: auto::finish
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:673,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:675,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:675,1
    - Dst: dst_write
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:680,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:680,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:680,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 105
    argCount: 3
    argNames:
    - key_store
    - key
    - dst
    argTypes:
    - KeyStore
    - Key
    - pgp_dest_t
    assertStmts:
    - condition: (hash->size() == sizeof(checksum))
      pos:
        line_end: 671
        line_start: 671
        source_file: /src/rnp/src/librekey/key_store_kbx.cpp
    constantsTouched: []
    func_position:
      end: 682
      start: 508
    functionDepth: 4
    functionLinenumber: 508
    functionLinenumberEnd: 682
    functionName: rnp::kbx_write_pgp
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - Key::get_sig
    - write_uint32
    - auto*::sig_count
    - rnp::pu8
    - dst_write
    - Key::fp
    - rnp::pu32
    - Key::sig_count
    - key_expiration
    - auto*::write
    - rnp::Hash::create
    - Key::subkey_count
    - MemoryDest::werr
    - auto::str::c_str
    - Key::uid_count
    - auto::finish
    - auto*::fp
    - auto*::get_sig
    - MemoryDest::writeb
    - assert
    - KeyStore::get_key
    - rnp::pbuf
    - Key::get_uid
    - std::vector::size
    - rnp::pu16
    - auto::add
    - std::vector::push_back
    - MemoryDest::dst
    - auto::str::size
    - Key::write
    - MemoryDest::memory
    - auto::size
    - KeyStore::secctx::time
    - Key::subkey_fps
    linkageType: ''
    returnType: bool
    signature: bool kbx_write_pgp(const KeyStore &key_store, const Key &key, pgp_dest_t
      &dst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:688,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:691,1
    - Dst: image
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:691,1
    - Dst: length
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:691,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - key_store
    - dst
    argTypes:
    - KeyStore
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 684
    functionDepth: 3
    functionLinenumber: 684
    functionLinenumberEnd: 696
    functionName: rnp::kbx_write_x509
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - length
    - image
    - rnp::pbuf
    - type
    linkageType: ''
    returnType: bool
    signature: bool kbx_write_x509(const KeyStore &key_store, pgp_dest_t &dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dst_write
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dst
    - buf
    - len
    argTypes:
    - pgp_dest_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 464
    functionName: rnp::pbuf
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 6
    functionsReached:
    - dst_write
    linkageType: ''
    returnType: bool
    signature: bool pbuf(pgp_dest_t &dst, const void *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - p
    argTypes:
    - pgp_dest_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 466
    functionDepth: 3
    functionLinenumber: 466
    functionLinenumberEnd: 470
    functionName: rnp::pu8
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 2
    functionsReached:
    - rnp::pbuf
    linkageType: ''
    returnType: bool
    signature: bool pu8(pgp_dest_t &dst, uint8_t p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - f
    argTypes:
    - pgp_dest_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 472
    functionDepth: 3
    functionLinenumber: 472
    functionLinenumberEnd: 479
    functionName: rnp::pu16
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 2
    functionsReached:
    - rnp::pbuf
    linkageType: ''
    returnType: bool
    signature: bool pu16(pgp_dest_t &dst, uint16_t f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:485,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - f
    argTypes:
    - pgp_dest_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 487
    functionName: rnp::pu32
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 2
    functionsReached:
    - write_uint32
    - rnp::pbuf
    linkageType: ''
    returnType: bool
    signature: bool pu32(pgp_dest_t &dst, uint32_t f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: KeyStore::secctx::time
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:493,1
    - Dst: KeyStore::blobs::empty
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:495,1
    - Dst: type
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:495,1
    - Dst: dynamic_cast<kbx_header_blob_t &>
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:496,1
    - Dst: kbx_header_blob_t::file_created_at
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:497,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:500,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:500,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:501,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:502,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:502,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:502,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:503,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:504,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:504,1
    - Dst: KeyStore::secctx::time
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:504,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:505,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 5
    argCount: 2
    argNames:
    - key_store
    - dst
    argTypes:
    - KeyStore
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 489
    functionDepth: 4
    functionLinenumber: 489
    functionLinenumberEnd: 506
    functionName: rnp::kbx_write_header
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - rnp::pu8
    - rnp::pu32
    - KeyStore::blobs::empty
    - dynamic_cast<kbx_header_blob_t &>
    - rnp::pbuf
    - KeyStore::secctx::time
    - kbx_header_blob_t::file_created_at
    - rnp::pu16
    - type
    linkageType: ''
    returnType: bool
    signature: bool kbx_write_header(const KeyStore &key_store, pgp_dest_t &dst)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:513,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:513,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:517,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:517,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:517,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:517,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:521,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:521,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:525,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:525,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:526,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:526,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:530,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:530,1
    - Dst: Key::subkey_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:530,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:533,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:533,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:537,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:537,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:537,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:537,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:538,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:538,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:538,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:539,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:539,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:540,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:540,1
    - Dst: Key::subkey_fps
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:546,1
    - Dst: KeyStore::get_key
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:547,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:548,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:548,1
    - Dst: auto*::fp
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:548,1
    - Dst: auto*::fp
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:548,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:549,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:549,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:549,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:550,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:550,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:551,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:551,1
    - Dst: auto*::sig_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:555,1
    - Dst: auto*::get_sig
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:556,1
    - Dst: key_expiration
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:556,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:557,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:561,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:561,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:566,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:566,1
    - Dst: Key::uid_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:566,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:566,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:566,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:570,1
    - Dst: Key::uid_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:571,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:572,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:572,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:573,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:573,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:577,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:577,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:581,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:581,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:581,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:581,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:586,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:586,1
    - Dst: Key::sig_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:586,1
    - Dst: std::vector::size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:586,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:587,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:587,1
    - Dst: Key::sig_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:591,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:592,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:592,1
    - Dst: Key::get_sig
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:592,1
    - Dst: key_expiration
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:592,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:597,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:597,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:602,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:602,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:603,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:603,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:607,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:607,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:607,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:607,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:611,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:611,1
    - Dst: KeyStore::secctx::time
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:611,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:612,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:612,1
    - Dst: KeyStore::secctx::time
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:612,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:616,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:616,1
    - Dst: Key::uid_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:621,1
    - Dst: Key::get_uid
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:622,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:623,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:625,1
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:626,1
    - Dst: auto::str::size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:628,1
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:629,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:631,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:631,1
    - Dst: auto::str::c_str
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:631,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:637,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:639,1
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:640,1
    - Dst: Key::write
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:642,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:642,1
    - Dst: MemoryDest::werr
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:643,1
    - Dst: Key::subkey_fps
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:647,1
    - Dst: KeyStore::get_key
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:648,1
    - Dst: auto*::write
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:652,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:652,1
    - Dst: MemoryDest::werr
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:653,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:659,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:660,1
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:661,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:664,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:665,1
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:666,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:669,1
    - Dst: auto::add
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:670,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:670,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:670,1
    - Dst: assert
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:672,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:672,1
    - Dst: auto::finish
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:673,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:675,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:675,1
    - Dst: dst_write
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:680,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:680,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:680,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 105
    argCount: 3
    argNames:
    - key_store
    - key
    - dst
    argTypes:
    - KeyStore
    - Key
    - pgp_dest_t
    assertStmts:
    - condition: (hash->size() == sizeof(checksum))
      pos:
        line_end: 671
        line_start: 671
        source_file: /src/rnp/src/librekey/key_store_kbx.cpp
    constantsTouched: []
    func_position:
      end: 682
      start: 508
    functionDepth: 4
    functionLinenumber: 508
    functionLinenumberEnd: 682
    functionName: rnp::kbx_write_pgp
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - Key::get_sig
    - write_uint32
    - auto*::sig_count
    - rnp::pu8
    - dst_write
    - Key::fp
    - rnp::pu32
    - Key::sig_count
    - key_expiration
    - auto*::write
    - rnp::Hash::create
    - Key::subkey_count
    - MemoryDest::werr
    - auto::str::c_str
    - Key::uid_count
    - auto::finish
    - auto*::fp
    - auto*::get_sig
    - MemoryDest::writeb
    - assert
    - KeyStore::get_key
    - rnp::pbuf
    - Key::get_uid
    - std::vector::size
    - rnp::pu16
    - auto::add
    - std::vector::push_back
    - MemoryDest::dst
    - auto::str::size
    - Key::write
    - MemoryDest::memory
    - auto::size
    - KeyStore::secctx::time
    - Key::subkey_fps
    linkageType: ''
    returnType: bool
    signature: bool kbx_write_pgp(const KeyStore &key_store, const Key &key, pgp_dest_t
      &dst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:688,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:691,1
    - Dst: image
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:691,1
    - Dst: length
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:691,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - key_store
    - dst
    argTypes:
    - KeyStore
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 684
    functionDepth: 3
    functionLinenumber: 684
    functionLinenumberEnd: 696
    functionName: rnp::kbx_write_x509
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - length
    - image
    - rnp::pbuf
    - type
    linkageType: ''
    returnType: bool
    signature: bool kbx_write_x509(const KeyStore &key_store, pgp_dest_t &dst)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: kbx_write_header
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:703,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:704,1
    - Dst: is_primary
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:709,1
    - Dst: kbx_write_pgp
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:712,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:713,1
    - Dst: kbx_write_x509
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:718,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:719,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:725,1
    - Dst: what
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:725,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 729
    functionName: rnp::KeyStore::write_kbx
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - kbx_write_header
    - what
    - kbx_write_x509
    - kbx_write_pgp
    - is_primary
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::write_kbx(pgp_dest_t &dst)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:348,1
    - Dst: std::unique_ptr<kbx_blob_t>
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:358,1
    - Dst: kbx_blob_t::kbx_blob_t
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:358,1
    - Dst: std::unique_ptr<kbx_blob_t>
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:361,1
    - Dst: kbx_header_blob_t::kbx_header_blob_t
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:361,1
    - Dst: std::unique_ptr<kbx_blob_t>
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:364,1
    - Dst: kbx_pgp_blob_t::kbx_pgp_blob_t
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:364,1
    - Dst: std::unique_ptr<kbx_blob_t>
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:368,1
    - Dst: kbx_blob_t::kbx_blob_t
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:368,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:372,1
    - Dst: std::unique_ptr::parse
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:376,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:381,1
    - Dst: what
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:381,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - image
    - image_len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 386
    functionName: rnp::kbx_parse_blob
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - kbx_pgp_blob_t::kbx_pgp_blob_t
    - std::unique_ptr::parse
    - std::unique_ptr<kbx_blob_t>
    - kbx_blob_t::kbx_blob_t
    - kbx_header_blob_t::kbx_header_blob_t
    linkageType: ''
    returnType: std::unique_ptr<kbx_blob_t>
    signature: std::unique_ptr<kbx_blob_t> kbx_parse_blob(const uint8_t *image, size_t
      image_len)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:348,1
    - Dst: std::unique_ptr<kbx_blob_t>
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:358,1
    - Dst: kbx_blob_t::kbx_blob_t
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:358,1
    - Dst: std::unique_ptr<kbx_blob_t>
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:361,1
    - Dst: kbx_header_blob_t::kbx_header_blob_t
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:361,1
    - Dst: std::unique_ptr<kbx_blob_t>
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:364,1
    - Dst: kbx_pgp_blob_t::kbx_pgp_blob_t
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:364,1
    - Dst: std::unique_ptr<kbx_blob_t>
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:368,1
    - Dst: kbx_blob_t::kbx_blob_t
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:368,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:372,1
    - Dst: std::unique_ptr::parse
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:376,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:381,1
    - Dst: what
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:381,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 31
    argCount: 2
    argNames:
    - image
    - image_len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 342
    functionDepth: 2
    functionLinenumber: 342
    functionLinenumberEnd: 386
    functionName: rnp::kbx_parse_blob
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - kbx_pgp_blob_t::kbx_pgp_blob_t
    - std::unique_ptr::parse
    - std::unique_ptr<kbx_blob_t>
    - kbx_blob_t::kbx_blob_t
    - kbx_header_blob_t::kbx_header_blob_t
    linkageType: ''
    returnType: std::unique_ptr<kbx_blob_t>
    signature: std::unique_ptr<kbx_blob_t> kbx_parse_blob(const uint8_t *image, size_t
      image_len)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: MemorySource::size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:394,1
    - Dst: MemorySource::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:395,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:398,1
    - Dst: read_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:402,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:404,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:410,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:414,1
    - Dst: kbx_parse_blob
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:419,1
    - Dst: auto::get
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:420,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:421,1
    - Dst: auto::get
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:424,1
    - Dst: push_back
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:425,1
    - Dst: std::move
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:425,1
    - Dst: kbx_blob_t*::type
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:427,1
    - Dst: dynamic_cast<kbx_pgp_blob_t &>
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:429,1
    - Dst: kbx_pgp_blob_t::keyblock_length
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:430,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:431,1
    - Dst: kbx_pgp_blob_t::image
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:435,1
    - Dst: kbx_pgp_blob_t::keyblock_offset
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:435,1
    - Dst: kbx_pgp_blob_t::keyblock_length
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:436,1
    - Dst: rnp::KeyStore::load_pgp
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:438,1
    - Dst: MemorySource::src
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:438,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:447,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:452,1
    - Dst: what
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:452,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 44
    argCount: 2
    argNames:
    - src
    - key_provider
    argTypes:
    - pgp_source_t
    - KeyProvider*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 456
      start: 389
    functionDepth: 1
    functionLinenumber: 389
    functionLinenumberEnd: 456
    functionName: rnp::KeyStore::load_kbx
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - MemorySource::memory
    - kbx_pgp_blob_t::keyblock_length
    - what
    - rnp::KeyStore::load_pgp
    - push_back
    - MemorySource::src
    - kbx_blob_t*::type
    - MemorySource::size
    - kbx_parse_blob
    - read_uint32
    - kbx_pgp_blob_t::keyblock_offset
    - auto::get
    - dynamic_cast<kbx_pgp_blob_t &>
    - kbx_pgp_blob_t::image
    - std::move
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::load_kbx(pgp_source_t &src, const KeyProvider *key_provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dst_write
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dst
    - buf
    - len
    argTypes:
    - pgp_dest_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 464
    functionName: rnp::pbuf
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 12
    functionsReached:
    - dst_write
    linkageType: ''
    returnType: bool
    signature: bool pbuf(pgp_dest_t &dst, const void *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - p
    argTypes:
    - pgp_dest_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 466
    functionDepth: 3
    functionLinenumber: 466
    functionLinenumberEnd: 470
    functionName: rnp::pu8
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 4
    functionsReached:
    - rnp::pbuf
    linkageType: ''
    returnType: bool
    signature: bool pu8(pgp_dest_t &dst, uint8_t p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - f
    argTypes:
    - pgp_dest_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 472
    functionDepth: 3
    functionLinenumber: 472
    functionLinenumberEnd: 479
    functionName: rnp::pu16
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 4
    functionsReached:
    - rnp::pbuf
    linkageType: ''
    returnType: bool
    signature: bool pu16(pgp_dest_t &dst, uint16_t f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:485,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - f
    argTypes:
    - pgp_dest_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 487
    functionName: rnp::pu32
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 4
    functionsReached:
    - write_uint32
    - rnp::pbuf
    linkageType: ''
    returnType: bool
    signature: bool pu32(pgp_dest_t &dst, uint32_t f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: KeyStore::secctx::time
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:493,1
    - Dst: KeyStore::blobs::empty
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:495,1
    - Dst: type
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:495,1
    - Dst: dynamic_cast<kbx_header_blob_t &>
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:496,1
    - Dst: kbx_header_blob_t::file_created_at
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:497,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:500,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:500,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:501,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:502,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:502,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:502,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:503,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:504,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:504,1
    - Dst: KeyStore::secctx::time
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:504,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:505,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 5
    argCount: 2
    argNames:
    - key_store
    - dst
    argTypes:
    - KeyStore
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 489
    functionDepth: 4
    functionLinenumber: 489
    functionLinenumberEnd: 506
    functionName: rnp::kbx_write_header
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - rnp::pu8
    - rnp::pu32
    - KeyStore::blobs::empty
    - dynamic_cast<kbx_header_blob_t &>
    - rnp::pbuf
    - KeyStore::secctx::time
    - kbx_header_blob_t::file_created_at
    - rnp::pu16
    - type
    linkageType: ''
    returnType: bool
    signature: bool kbx_write_header(const KeyStore &key_store, pgp_dest_t &dst)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:513,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:513,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:517,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:517,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:517,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:517,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:521,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:521,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:525,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:525,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:526,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:526,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:530,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:530,1
    - Dst: Key::subkey_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:530,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:533,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:533,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:537,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:537,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:537,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:537,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:538,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:538,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:538,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:539,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:539,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:540,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:540,1
    - Dst: Key::subkey_fps
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:546,1
    - Dst: KeyStore::get_key
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:547,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:548,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:548,1
    - Dst: auto*::fp
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:548,1
    - Dst: auto*::fp
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:548,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:549,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:549,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:549,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:550,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:550,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:551,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:551,1
    - Dst: auto*::sig_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:555,1
    - Dst: auto*::get_sig
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:556,1
    - Dst: key_expiration
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:556,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:557,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:561,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:561,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:566,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:566,1
    - Dst: Key::uid_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:566,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:566,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:566,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:570,1
    - Dst: Key::uid_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:571,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:572,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:572,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:573,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:573,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:577,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:577,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:581,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:581,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:581,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:581,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:586,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:586,1
    - Dst: Key::sig_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:586,1
    - Dst: std::vector::size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:586,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:587,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:587,1
    - Dst: Key::sig_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:591,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:592,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:592,1
    - Dst: Key::get_sig
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:592,1
    - Dst: key_expiration
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:592,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:597,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:597,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:602,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:602,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:603,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:603,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:607,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:607,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:607,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:607,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:611,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:611,1
    - Dst: KeyStore::secctx::time
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:611,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:612,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:612,1
    - Dst: KeyStore::secctx::time
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:612,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:616,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:616,1
    - Dst: Key::uid_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:621,1
    - Dst: Key::get_uid
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:622,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:623,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:625,1
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:626,1
    - Dst: auto::str::size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:628,1
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:629,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:631,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:631,1
    - Dst: auto::str::c_str
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:631,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:637,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:639,1
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:640,1
    - Dst: Key::write
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:642,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:642,1
    - Dst: MemoryDest::werr
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:643,1
    - Dst: Key::subkey_fps
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:647,1
    - Dst: KeyStore::get_key
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:648,1
    - Dst: auto*::write
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:652,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:652,1
    - Dst: MemoryDest::werr
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:653,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:659,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:660,1
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:661,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:664,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:665,1
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:666,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:669,1
    - Dst: auto::add
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:670,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:670,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:670,1
    - Dst: assert
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:672,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:672,1
    - Dst: auto::finish
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:673,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:675,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:675,1
    - Dst: dst_write
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:680,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:680,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:680,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 105
    argCount: 3
    argNames:
    - key_store
    - key
    - dst
    argTypes:
    - KeyStore
    - Key
    - pgp_dest_t
    assertStmts:
    - condition: (hash->size() == sizeof(checksum))
      pos:
        line_end: 671
        line_start: 671
        source_file: /src/rnp/src/librekey/key_store_kbx.cpp
    constantsTouched: []
    func_position:
      end: 682
      start: 508
    functionDepth: 4
    functionLinenumber: 508
    functionLinenumberEnd: 682
    functionName: rnp::kbx_write_pgp
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - Key::get_sig
    - write_uint32
    - auto*::sig_count
    - rnp::pu8
    - dst_write
    - Key::fp
    - rnp::pu32
    - Key::sig_count
    - key_expiration
    - auto*::write
    - rnp::Hash::create
    - Key::subkey_count
    - MemoryDest::werr
    - auto::str::c_str
    - Key::uid_count
    - auto::finish
    - auto*::fp
    - auto*::get_sig
    - MemoryDest::writeb
    - assert
    - KeyStore::get_key
    - rnp::pbuf
    - Key::get_uid
    - std::vector::size
    - rnp::pu16
    - auto::add
    - std::vector::push_back
    - MemoryDest::dst
    - auto::str::size
    - Key::write
    - MemoryDest::memory
    - auto::size
    - KeyStore::secctx::time
    - Key::subkey_fps
    linkageType: ''
    returnType: bool
    signature: bool kbx_write_pgp(const KeyStore &key_store, const Key &key, pgp_dest_t
      &dst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:688,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:691,1
    - Dst: image
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:691,1
    - Dst: length
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:691,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - key_store
    - dst
    argTypes:
    - KeyStore
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 684
    functionDepth: 3
    functionLinenumber: 684
    functionLinenumberEnd: 696
    functionName: rnp::kbx_write_x509
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - length
    - image
    - rnp::pbuf
    - type
    linkageType: ''
    returnType: bool
    signature: bool kbx_write_x509(const KeyStore &key_store, pgp_dest_t &dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dst_write
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:462,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - dst
    - buf
    - len
    argTypes:
    - pgp_dest_t
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 459
    functionDepth: 2
    functionLinenumber: 459
    functionLinenumberEnd: 464
    functionName: rnp::pbuf
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 18
    functionsReached:
    - dst_write
    linkageType: ''
    returnType: bool
    signature: bool pbuf(pgp_dest_t &dst, const void *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - dst
    - p
    argTypes:
    - pgp_dest_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 466
    functionDepth: 3
    functionLinenumber: 466
    functionLinenumberEnd: 470
    functionName: rnp::pu8
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 6
    functionsReached:
    - rnp::pbuf
    linkageType: ''
    returnType: bool
    signature: bool pu8(pgp_dest_t &dst, uint8_t p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:478,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - f
    argTypes:
    - pgp_dest_t
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 479
      start: 472
    functionDepth: 3
    functionLinenumber: 472
    functionLinenumberEnd: 479
    functionName: rnp::pu16
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 6
    functionsReached:
    - rnp::pbuf
    linkageType: ''
    returnType: bool
    signature: bool pu16(pgp_dest_t &dst, uint16_t f)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:485,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - dst
    - f
    argTypes:
    - pgp_dest_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 481
    functionDepth: 3
    functionLinenumber: 481
    functionLinenumberEnd: 487
    functionName: rnp::pu32
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 6
    functionsReached:
    - write_uint32
    - rnp::pbuf
    linkageType: ''
    returnType: bool
    signature: bool pu32(pgp_dest_t &dst, uint32_t f)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: KeyStore::secctx::time
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:493,1
    - Dst: KeyStore::blobs::empty
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:495,1
    - Dst: type
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:495,1
    - Dst: dynamic_cast<kbx_header_blob_t &>
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:496,1
    - Dst: kbx_header_blob_t::file_created_at
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:497,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:500,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:500,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:501,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:502,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:502,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:502,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:503,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:504,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:504,1
    - Dst: KeyStore::secctx::time
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:504,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:505,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 5
    argCount: 2
    argNames:
    - key_store
    - dst
    argTypes:
    - KeyStore
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 489
    functionDepth: 4
    functionLinenumber: 489
    functionLinenumberEnd: 506
    functionName: rnp::kbx_write_header
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - rnp::pu8
    - rnp::pu32
    - KeyStore::blobs::empty
    - dynamic_cast<kbx_header_blob_t &>
    - rnp::pbuf
    - KeyStore::secctx::time
    - kbx_header_blob_t::file_created_at
    - rnp::pu16
    - type
    linkageType: ''
    returnType: bool
    signature: bool kbx_write_header(const KeyStore &key_store, pgp_dest_t &dst)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:513,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:513,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:517,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:517,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:517,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:517,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:521,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:521,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:525,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:525,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:526,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:526,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:530,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:530,1
    - Dst: Key::subkey_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:530,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:533,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:533,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:537,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:537,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:537,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:537,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:538,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:538,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:538,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:539,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:539,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:540,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:540,1
    - Dst: Key::subkey_fps
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:546,1
    - Dst: KeyStore::get_key
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:547,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:548,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:548,1
    - Dst: auto*::fp
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:548,1
    - Dst: auto*::fp
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:548,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:549,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:549,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:549,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:550,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:550,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:551,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:551,1
    - Dst: auto*::sig_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:555,1
    - Dst: auto*::get_sig
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:556,1
    - Dst: key_expiration
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:556,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:557,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:561,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:561,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:566,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:566,1
    - Dst: Key::uid_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:566,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:566,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:566,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:570,1
    - Dst: Key::uid_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:571,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:572,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:572,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:573,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:573,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:577,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:577,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:581,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:581,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:581,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:581,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:586,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:586,1
    - Dst: Key::sig_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:586,1
    - Dst: std::vector::size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:586,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:587,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:587,1
    - Dst: Key::sig_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:591,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:592,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:592,1
    - Dst: Key::get_sig
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:592,1
    - Dst: key_expiration
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:592,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:597,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:597,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:602,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:602,1
    - Dst: rnp::pu8
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:603,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:603,1
    - Dst: rnp::pu16
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:607,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:607,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:607,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:607,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:611,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:611,1
    - Dst: KeyStore::secctx::time
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:611,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:612,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:612,1
    - Dst: KeyStore::secctx::time
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:612,1
    - Dst: rnp::pu32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:616,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:616,1
    - Dst: Key::uid_count
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:621,1
    - Dst: Key::get_uid
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:622,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:623,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:625,1
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:626,1
    - Dst: auto::str::size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:628,1
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:629,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:631,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:631,1
    - Dst: auto::str::c_str
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:631,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:637,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:639,1
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:640,1
    - Dst: Key::write
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:642,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:642,1
    - Dst: MemoryDest::werr
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:643,1
    - Dst: Key::subkey_fps
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:647,1
    - Dst: KeyStore::get_key
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:648,1
    - Dst: auto*::write
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:652,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:652,1
    - Dst: MemoryDest::werr
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:653,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:659,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:660,1
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:661,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:664,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:665,1
    - Dst: write_uint32
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:666,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:669,1
    - Dst: auto::add
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:670,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:670,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:670,1
    - Dst: assert
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:672,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:672,1
    - Dst: auto::finish
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:673,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:675,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:675,1
    - Dst: dst_write
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:680,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:680,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:680,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 105
    argCount: 3
    argNames:
    - key_store
    - key
    - dst
    argTypes:
    - KeyStore
    - Key
    - pgp_dest_t
    assertStmts:
    - condition: (hash->size() == sizeof(checksum))
      pos:
        line_end: 671
        line_start: 671
        source_file: /src/rnp/src/librekey/key_store_kbx.cpp
    constantsTouched: []
    func_position:
      end: 682
      start: 508
    functionDepth: 4
    functionLinenumber: 508
    functionLinenumberEnd: 682
    functionName: rnp::kbx_write_pgp
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - Key::get_sig
    - write_uint32
    - auto*::sig_count
    - rnp::pu8
    - dst_write
    - Key::fp
    - rnp::pu32
    - Key::sig_count
    - key_expiration
    - auto*::write
    - rnp::Hash::create
    - Key::subkey_count
    - MemoryDest::werr
    - auto::str::c_str
    - Key::uid_count
    - auto::finish
    - auto*::fp
    - auto*::get_sig
    - MemoryDest::writeb
    - assert
    - KeyStore::get_key
    - rnp::pbuf
    - Key::get_uid
    - std::vector::size
    - rnp::pu16
    - auto::add
    - std::vector::push_back
    - MemoryDest::dst
    - auto::str::size
    - Key::write
    - MemoryDest::memory
    - auto::size
    - KeyStore::secctx::time
    - Key::subkey_fps
    linkageType: ''
    returnType: bool
    signature: bool kbx_write_pgp(const KeyStore &key_store, const Key &key, pgp_dest_t
      &dst)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:688,1
    - Dst: rnp::pbuf
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:691,1
    - Dst: image
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:691,1
    - Dst: length
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:691,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - key_store
    - dst
    argTypes:
    - KeyStore
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 684
    functionDepth: 3
    functionLinenumber: 684
    functionLinenumberEnd: 696
    functionName: rnp::kbx_write_x509
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - length
    - image
    - rnp::pbuf
    - type
    linkageType: ''
    returnType: bool
    signature: bool kbx_write_x509(const KeyStore &key_store, pgp_dest_t &dst)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: kbx_write_header
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:703,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:704,1
    - Dst: is_primary
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:709,1
    - Dst: kbx_write_pgp
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:712,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:713,1
    - Dst: kbx_write_x509
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:718,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:719,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:725,1
    - Dst: what
      Src: /src/rnp/src/librekey/key_store_kbx.cpp:725,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 699
    functionDepth: 1
    functionLinenumber: 699
    functionLinenumberEnd: 729
    functionName: rnp::KeyStore::write_kbx
    functionSourceFile: /src/rnp/src/librekey/key_store_kbx.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - kbx_write_header
    - what
    - kbx_write_x509
    - kbx_write_pgp
    - is_primary
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::write_kbx(pgp_dest_t &dst)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/librekey/key_store_g10.cpp:163,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 3
    argNames:
    - cipher
    - mode
    - hash_alg
    argTypes:
    - pgp_symm_alg_t
    - pgp_cipher_mode_t
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 170
    functionName: find_format
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: format_info
    signature: 'format_info *

      find_format(pgp_symm_alg_t cipher, pgp_cipher_mode_t mode, pgp_hash_alg_t hash_alg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/librekey/key_store_g10.cpp:175,1
    - Dst: strlen
      Src: /src/rnp/src/librekey/key_store_g10.cpp:176,1
    - Dst: strncmp
      Src: /src/rnp/src/librekey/key_store_g10.cpp:177,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - format
    - format_len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 182
    functionName: parse_format
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - ARRAY_SIZE
    - strlen
    - strncmp
    linkageType: ''
    returnType: format_info
    signature: 'format_info *

      parse_format(const char *format, size_t format_len)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 184
    functionDepth: 0
    functionLinenumber: 184
    functionLinenumberEnd: 185
    functionName: STR_HELPER
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: 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: 186
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 186
    functionName: STR
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: STR(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: STR
      Src: /src/rnp/src/librekey/key_store_g10.cpp:190,1
    - Dst: snprintf
      Src: /src/rnp/src/librekey/key_store_g10.cpp:191,1
    - Dst: push_back
      Src: /src/rnp/src/librekey/key_store_g10.cpp:192,1
    - Dst: std::make_shared<sexp_string_t>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - u
    argTypes:
    - unsigned
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 193
    functionName: gnupg_sexp_t::add
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - std::make_shared<sexp_string_t>
    - snprintf
    - STR
    linkageType: ''
    returnType: void
    signature: void gnupg_sexp_t::add(unsigned u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<gnupg_sexp_t>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:198,1
    - Dst: push_back
      Src: /src/rnp/src/librekey/key_store_g10.cpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 201
    functionName: gnupg_sexp_t::add_sub
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<gnupg_sexp_t>
    - push_back
    linkageType: ''
    returnType: std::shared_ptr<gnupg_sexp_t>
    signature: std::shared_ptr<gnupg_sexp_t> gnupg_sexp_t::add_sub()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_list_t::parse
      Src: /src/rnp/src/librekey/key_store_g10.cpp:217,1
    - Dst: sexp_input_stream_t::set_byte_size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:217,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:220,1
    - Dst: what
      Src: /src/rnp/src/librekey/key_store_g10.cpp:220,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - r_bytes
    - r_length
    - depth
    argTypes:
    - char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 223
    functionName: gnupg_sexp_t::parse
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - sexp::sexp_list_t::parse
    - sexp_input_stream_t::set_byte_size
    - what
    linkageType: ''
    returnType: bool
    signature: bool gnupg_sexp_t::parse(const char *r_bytes, size_t r_length, size_t
      depth)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ext_key_input_stream_t::scan
      Src: /src/rnp/src/librekey/key_store_g10.cpp:237,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:240,1
    - Dst: what
      Src: /src/rnp/src/librekey/key_store_g10.cpp:240,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - r_bytes
    - r_length
    - depth
    argTypes:
    - char*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 243
    functionName: gnupg_extended_private_key_t::parse
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - ext_key_input_stream_t::scan
    linkageType: ''
    returnType: bool
    signature: bool gnupg_extended_private_key_t::parse(const char *r_bytes, size_t
      r_length, size_t depth)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sexp_list_view
      Src: /src/rnp/src/librekey/key_store_g10.cpp:256,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:257,1
    - Dst: auto::sexp_string_at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:258,1
    - Dst: std::find_if
      Src: /src/rnp/src/librekey/key_store_g10.cpp:264,1
    - Dst: sexp_list_t*::begin
      Src: /src/rnp/src/librekey/key_store_g10.cpp:264,1
    - Dst: sexp_list_t*::end
      Src: /src/rnp/src/librekey/key_store_g10.cpp:264,1
    - Dst: std::move
      Src: /src/rnp/src/librekey/key_store_g10.cpp:264,1
    - Dst: sexp_list_t*::end
      Src: /src/rnp/src/librekey/key_store_g10.cpp:265,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:266,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/librekey/key_store_g10.cpp:266,1
    - Dst: sexp_list_view
      Src: /src/rnp/src/librekey/key_store_g10.cpp:268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - list
    - name
    argTypes:
    - sexp_list_t*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 270
    functionName: lookup_var
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - sexp_list_t*::end
    - auto::size
    - sexp_list_t*::begin
    - std::string::c_str
    - sexp_list_view
    - auto::sexp_string_at
    - std::find_if
    - std::move
    linkageType: ''
    returnType: sexp_list_t
    signature: 'sexp_list_t *

      lookup_var(const sexp_list_t *list, const std::string &name) noexcept'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lookup_var
      Src: /src/rnp/src/librekey/key_store_g10.cpp:275,1
    - Dst: sexp_list_t*::at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:280,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:281,1
    - Dst: sexp_list_t*::sexp_string_at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:285,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - list
    - name
    argTypes:
    - sexp_list_t*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 272
    functionDepth: 2
    functionLinenumber: 272
    functionLinenumberEnd: 286
    functionName: lookup_var_data
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - sexp_list_t*::at
    - sexp_list_t*::sexp_string_at
    - lookup_var
    linkageType: ''
    returnType: sexp_string_t
    signature: 'sexp_string_t *

      lookup_var_data(const sexp_list_t *list, const std::string &name) noexcept'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lookup_var_data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:291,1
    - Dst: sexp_string_t*::get_string
      Src: /src/rnp/src/librekey/key_store_g10.cpp:297,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:298,1
    - Dst: pgp::mpi::assign
      Src: /src/rnp/src/librekey/key_store_g10.cpp:299,1
    - Dst: auto::data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:299,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:299,1
    - Dst: pgp::mpi::assign
      Src: /src/rnp/src/librekey/key_store_g10.cpp:301,1
    - Dst: auto::data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:301,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:301,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 3
    argNames:
    - list
    - name
    - val
    argTypes:
    - sexp_list_t*
    - std::string
    - pgp::mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 288
    functionDepth: 3
    functionLinenumber: 288
    functionLinenumberEnd: 304
    functionName: read_mpi
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - lookup_var_data
    - sexp_string_t*::get_string
    - pgp::mpi::assign
    - auto::size
    - auto::data
    linkageType: ''
    returnType: bool
    signature: bool read_mpi(const sexp_list_t *list, const std::string &name, pgp::mpi
      &val) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: lookup_var_data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:309,1
    - Dst: sexp_string_t*::get_string
      Src: /src/rnp/src/librekey/key_store_g10.cpp:314,1
    - Dst: static_cast<pgp_curve_t>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:315,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/librekey/key_store_g10.cpp:316,1
    - Dst: auto::data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:316,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:321,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:321,1
    - Dst: auto::data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:321,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - list
    - name
    - key
    argTypes:
    - sexp_list_t*
    - std::string
    - pgp::ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 306
    functionDepth: 3
    functionLinenumber: 306
    functionLinenumberEnd: 323
    functionName: read_curve
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - lookup_var_data
    - sexp_string_t*::get_string
    - auto::size
    - auto::data
    - id_str_pair::lookup
    - static_cast<pgp_curve_t>
    linkageType: ''
    returnType: bool
    signature: bool read_curve(const sexp_list_t *list, const std::string &name, pgp::ec::Key
      &key) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: gnupg_sexp_t::add_sub
      Src: /src/rnp/src/librekey/key_store_g10.cpp:328,1
    - Dst: auto::push_back
      Src: /src/rnp/src/librekey/key_store_g10.cpp:329,1
    - Dst: std::make_shared<sexp_string_t>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:329,1
    - Dst: std::make_shared<sexp_string_t>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:330,1
    - Dst: auto::push_back
      Src: /src/rnp/src/librekey/key_store_g10.cpp:331,1
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:334,1
    - Dst: sexp_simple_string_t::append
      Src: /src/rnp/src/librekey/key_store_g10.cpp:342,1
    - Dst: sexp_simple_string_t::std::basic_string<uint8_t>::append
      Src: /src/rnp/src/librekey/key_store_g10.cpp:343,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:343,1
    - Dst: sexp_simple_string_t::assign
      Src: /src/rnp/src/librekey/key_store_g10.cpp:345,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:345,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:345,1
    - Dst: auto::set_string
      Src: /src/rnp/src/librekey/key_store_g10.cpp:347,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - name
    - mpi
    argTypes:
    - std::string
    - pgp::mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 349
    functionName: gnupg_sexp_t::add_mpi
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - std::make_shared<sexp_string_t>
    - pgp::mpi::data
    - sexp_simple_string_t::append
    - auto::set_string
    - gnupg_sexp_t::add_sub
    - sexp_simple_string_t::assign
    - sexp_simple_string_t::std::basic_string<uint8_t>::append
    - pgp::mpi::size
    - auto::push_back
    linkageType: ''
    returnType: void
    signature: void gnupg_sexp_t::add_mpi(const std::string &name, const pgp::mpi
      &mpi)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/librekey/key_store_g10.cpp:354,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:356,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librekey/key_store_g10.cpp:357,1
    - Dst: gnupg_sexp_t::add_sub
      Src: /src/rnp/src/librekey/key_store_g10.cpp:360,1
    - Dst: auto::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:361,1
    - Dst: auto::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:362,1
    - Dst: gnupg_sexp_t::add_sub
      Src: /src/rnp/src/librekey/key_store_g10.cpp:368,1
    - Dst: auto::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:369,1
    - Dst: auto::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:370,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - name
    - kcurve
    argTypes:
    - std::string
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 351
    functionDepth: 2
    functionLinenumber: 351
    functionLinenumberEnd: 371
    functionName: gnupg_sexp_t::add_curve
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - id_str_pair::lookup
    - rnp::rnp_exception::rnp_exception
    - auto::add
    - gnupg_sexp_t::add_sub
    linkageType: ''
    returnType: void
    signature: void gnupg_sexp_t::add_curve(const std::string &name, pgp_curve_t kcurve)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: read_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:381,1
    - Dst: read_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:381,1
    - Dst: read_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:382,1
    - Dst: read_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:382,1
    - Dst: pgp::KeyMaterial::create
      Src: /src/rnp/src/librekey/key_store_g10.cpp:385,1
    - Dst: read_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:392,1
    - Dst: read_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:392,1
    - Dst: pgp::KeyMaterial::create
      Src: /src/rnp/src/librekey/key_store_g10.cpp:395,1
    - Dst: read_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:401,1
    - Dst: read_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:401,1
    - Dst: read_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:402,1
    - Dst: pgp::KeyMaterial::create
      Src: /src/rnp/src/librekey/key_store_g10.cpp:405,1
    - Dst: read_curve
      Src: /src/rnp/src/librekey/key_store_g10.cpp:412,1
    - Dst: read_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:412,1
    - Dst: pgp::KeyMaterial::create
      Src: /src/rnp/src/librekey/key_store_g10.cpp:419,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:423,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 45
    argCount: 3
    argNames:
    - pubkey
    - s_exp
    - alg
    argTypes:
    - pgp_key_pkt_t
    - sexp_list_t*
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 373
    functionDepth: 4
    functionLinenumber: 373
    functionLinenumberEnd: 428
    functionName: parse_pubkey
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - read_curve
    - pgp::KeyMaterial::create
    - read_mpi
    linkageType: ''
    returnType: bool
    signature: bool parse_pubkey(pgp_key_pkt_t &pubkey, const sexp_list_t *s_exp,
      pgp_pubkey_alg_t alg)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<pgp::DSAKeyMaterial *>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:436,1
    - Dst: pgp_key_pkt_t::material::get
      Src: /src/rnp/src/librekey/key_store_g10.cpp:436,1
    - Dst: read_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:437,1
    - Dst: auto::set_secret
      Src: /src/rnp/src/librekey/key_store_g10.cpp:440,1
    - Dst: pgp::mpi::forget
      Src: /src/rnp/src/librekey/key_store_g10.cpp:441,1
    - Dst: dynamic_cast<pgp::RSAKeyMaterial *>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:448,1
    - Dst: pgp_key_pkt_t::material::get
      Src: /src/rnp/src/librekey/key_store_g10.cpp:448,1
    - Dst: read_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:449,1
    - Dst: read_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:449,1
    - Dst: read_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:450,1
    - Dst: read_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:450,1
    - Dst: auto::set_secret
      Src: /src/rnp/src/librekey/key_store_g10.cpp:453,1
    - Dst: pgp::mpi::forget
      Src: /src/rnp/src/librekey/key_store_g10.cpp:454,1
    - Dst: forget
      Src: /src/rnp/src/librekey/key_store_g10.cpp:455,1
    - Dst: forget
      Src: /src/rnp/src/librekey/key_store_g10.cpp:456,1
    - Dst: forget
      Src: /src/rnp/src/librekey/key_store_g10.cpp:457,1
    - Dst: dynamic_cast<pgp::EGKeyMaterial *>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:463,1
    - Dst: pgp_key_pkt_t::material::get
      Src: /src/rnp/src/librekey/key_store_g10.cpp:463,1
    - Dst: read_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:464,1
    - Dst: auto::set_secret
      Src: /src/rnp/src/librekey/key_store_g10.cpp:467,1
    - Dst: pgp::mpi::forget
      Src: /src/rnp/src/librekey/key_store_g10.cpp:468,1
    - Dst: dynamic_cast<pgp::ECKeyMaterial *>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:475,1
    - Dst: pgp_key_pkt_t::material::get
      Src: /src/rnp/src/librekey/key_store_g10.cpp:475,1
    - Dst: read_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:476,1
    - Dst: auto::set_secret
      Src: /src/rnp/src/librekey/key_store_g10.cpp:479,1
    - Dst: pgp::mpi::forget
      Src: /src/rnp/src/librekey/key_store_g10.cpp:480,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:484,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 46
    argCount: 2
    argNames:
    - seckey
    - s_exp
    argTypes:
    - pgp_key_pkt_t
    - sexp_list_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 487
      start: 430
    functionDepth: 4
    functionLinenumber: 430
    functionLinenumberEnd: 487
    functionName: parse_seckey
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - auto::set_secret
    - dynamic_cast<pgp::ECKeyMaterial *>
    - read_mpi
    - dynamic_cast<pgp::DSAKeyMaterial *>
    - dynamic_cast<pgp::RSAKeyMaterial *>
    - pgp_key_pkt_t::material::get
    - forget
    - dynamic_cast<pgp::EGKeyMaterial *>
    - pgp::mpi::forget
    linkageType: ''
    returnType: bool
    signature: bool parse_seckey(pgp_key_pkt_t &seckey, const sexp_list_t *s_exp)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:512,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:514,1
    - Dst: find_format
      Src: /src/rnp/src/librekey/key_store_g10.cpp:518,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:520,1
    - Dst: pgp_s2k_iterated
      Src: /src/rnp/src/librekey/key_store_g10.cpp:528,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/key_store_g10.cpp:531,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:534,1
    - Dst: malloc
      Src: /src/rnp/src/librekey/key_store_g10.cpp:539,1
    - Dst: sexp_simple_string_t::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:539,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:542,1
    - Dst: Cipher::decryption
      Src: /src/rnp/src/librekey/key_store_g10.cpp:546,1
    - Dst: std::unique_ptr::set_key
      Src: /src/rnp/src/librekey/key_store_g10.cpp:548,1
    - Dst: std::unique_ptr::set_ad
      Src: /src/rnp/src/librekey/key_store_g10.cpp:552,1
    - Dst: std::unique_ptr::set_iv
      Src: /src/rnp/src/librekey/key_store_g10.cpp:557,1
    - Dst: std::unique_ptr::finish
      Src: /src/rnp/src/librekey/key_store_g10.cpp:560,1
    - Dst: sexp_simple_string_t::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:561,1
    - Dst: sexp_simple_string_t::data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:563,1
    - Dst: sexp_simple_string_t::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:564,1
    - Dst: parse
      Src: /src/rnp/src/librekey/key_store_g10.cpp:574,1
    - Dst: size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:577,1
    - Dst: at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:577,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:578,1
    - Dst: clear
      Src: /src/rnp/src/librekey/key_store_g10.cpp:584,1
    - Dst: secure_clear
      Src: /src/rnp/src/librekey/key_store_g10.cpp:586,1
    - Dst: free
      Src: /src/rnp/src/librekey/key_store_g10.cpp:587,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 64
    argCount: 6
    argNames:
    - encrypted_data
    - '       seckey'
    - '         password'
    - '              r_s_exp'
    - associated_data
    - associated_data_len
    argTypes:
    - sexp_simple_string_t
    - pgp_key_pkt_t
    - std::string
    - gnupg_sexp_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 589
      start: 489
    functionDepth: 2
    functionLinenumber: 489
    functionLinenumberEnd: 589
    functionName: decrypt_protected_section
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - pgp_s2k_iterated
    - parse
    - free
    - sexp_simple_string_t::size
    - size
    - secure_clear
    - sexp_simple_string_t::data
    - at
    - std::unique_ptr::set_iv
    - Cipher::decryption
    - clear
    - RNP_LOG
    - malloc
    - pgp_key_size
    - std::unique_ptr::finish
    - std::unique_ptr::set_key
    - find_format
    - std::unique_ptr::set_ad
    - c_str
    linkageType: ''
    returnType: bool
    signature: "bool decrypt_protected_section(const sexp_simple_string_t &encrypted_data,\n
      \                         const pgp_key_pkt_t &       seckey,\n                          const
      std::string &         password,\n                          gnupg_sexp_t &              r_s_exp,\n
      \                         uint8_t *                   associated_data,\n                          size_t
      \                     associated_data_len)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: lookup_var
      Src: /src/rnp/src/librekey/key_store_g10.cpp:595,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:597,1
    - Dst: sexp_list_t*::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:600,1
    - Dst: sexp_list_t*::at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:600,1
    - Dst: sexp_list_t*::at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:601,1
    - Dst: sexp_list_t*::at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:601,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:602,1
    - Dst: sexp_list_t*::sexp_string_at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:608,1
    - Dst: parse_format
      Src: /src/rnp/src/librekey/key_store_g10.cpp:609,1
    - Dst: data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:609,1
    - Dst: size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:609,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:611,1
    - Dst: size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:612,1
    - Dst: data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:613,1
    - Dst: sexp_list_t*::sexp_list_at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:624,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:625,1
    - Dst: auto::at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:625,1
    - Dst: auto::at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:626,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:627,1
    - Dst: auto::sexp_list_at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:632,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:633,1
    - Dst: auto::at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:633,1
    - Dst: auto::at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:633,1
    - Dst: auto::at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:634,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:635,1
    - Dst: auto::sexp_string_at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:638,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:640,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:641,1
    - Dst: auto::data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:642,1
    - Dst: auto::sexp_string_at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:652,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:653,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:654,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:654,1
    - Dst: memcpy
      Src: /src/rnp/src/librekey/key_store_g10.cpp:659,1
    - Dst: auto::data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:659,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:659,1
    - Dst: auto::sexp_string_at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:661,1
    - Dst: auto::as_unsigned
      Src: /src/rnp/src/librekey/key_store_g10.cpp:662,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:664,1
    - Dst: auto::get_string
      Src: /src/rnp/src/librekey/key_store_g10.cpp:665,1
    - Dst: auto::get_string
      Src: /src/rnp/src/librekey/key_store_g10.cpp:666,1
    - Dst: auto::sexp_string_at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:671,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:672,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:673,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:673,1
    - Dst: memcpy
      Src: /src/rnp/src/librekey/key_store_g10.cpp:676,1
    - Dst: auto::data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:676,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:676,1
    - Dst: pgp_key_pkt_t::material::clear_secret
      Src: /src/rnp/src/librekey/key_store_g10.cpp:680,1
    - Dst: sexp_list_t*::sexp_string_at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:685,1
    - Dst: sexp_output_stream_t::var_put_char
      Src: /src/rnp/src/librekey/key_store_g10.cpp:698,1
    - Dst: for_each
      Src: /src/rnp/src/librekey/key_store_g10.cpp:699,1
    - Dst: sexp_list_t*::begin
      Src: /src/rnp/src/librekey/key_store_g10.cpp:699,1
    - Dst: sexp_list_t*::end
      Src: /src/rnp/src/librekey/key_store_g10.cpp:699,1
    - Dst: sexp_list_view
      Src: /src/rnp/src/librekey/key_store_g10.cpp:700,1
    - Dst: print_canonical
      Src: /src/rnp/src/librekey/key_store_g10.cpp:701,1
    - Dst: sexp_output_stream_t::var_put_char
      Src: /src/rnp/src/librekey/key_store_g10.cpp:703,1
    - Dst: std::ostringstream::str
      Src: /src/rnp/src/librekey/key_store_g10.cpp:704,1
    - Dst: decrypt_protected_section
      Src: /src/rnp/src/librekey/key_store_g10.cpp:707,1
    - Dst: std::string::data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:712,1
    - Dst: std::string::length
      Src: /src/rnp/src/librekey/key_store_g10.cpp:713,1
    - Dst: lookup_var_data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:718,1
    - Dst: auto::get_string
      Src: /src/rnp/src/librekey/key_store_g10.cpp:720,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:721,1
    - Dst: auto::get_string
      Src: /src/rnp/src/librekey/key_store_g10.cpp:722,1
    - Dst: memcpy
      Src: /src/rnp/src/librekey/key_store_g10.cpp:726,1
    - Dst: auto::get_string
      Src: /src/rnp/src/librekey/key_store_g10.cpp:727,1
    - Dst: auto::get_string
      Src: /src/rnp/src/librekey/key_store_g10.cpp:728,1
    - Dst: parse_seckey
      Src: /src/rnp/src/librekey/key_store_g10.cpp:731,1
    - Dst: gnupg_sexp_t::sexp_list_at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:731,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:732,1
    - Dst: gnupg_sexp_t::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:736,1
    - Dst: gnupg_sexp_t::at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:737,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:738,1
    - Dst: gnupg_sexp_t::sexp_list_at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:741,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:742,1
    - Dst: auto::at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:742,1
    - Dst: auto::at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:743,1
    - Dst: auto::at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:743,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:744,1
    - Dst: auto::sexp_string_at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:748,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:750,1
    - Dst: auto::sexp_string_at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:753,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:755,1
    - Dst: g10_calculated_hash
      Src: /src/rnp/src/librekey/key_store_g10.cpp:759,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:760,1
    - Dst: auto::sexp_string_at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:763,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:764,1
    - Dst: memcmp
      Src: /src/rnp/src/librekey/key_store_g10.cpp:765,1
    - Dst: auto::data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:765,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:766,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 100
    argCount: 3
    argNames:
    - seckey
    - list
    - password
    argTypes:
    - pgp_key_pkt_t
    - sexp_list_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 591
    functionDepth: 5
    functionLinenumber: 591
    functionLinenumberEnd: 771
    functionName: parse_protected_seckey
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - sexp_list_t*::end
    - std::string::length
    - data
    - sexp_list_t*::sexp_string_at
    - gnupg_sexp_t::size
    - auto::get_string
    - auto::sexp_list_at
    - decrypt_protected_section
    - print_canonical
    - std::ostringstream::str
    - auto::sexp_string_at
    - auto::as_unsigned
    - sexp_list_t*::at
    - size
    - sexp_output_stream_t::var_put_char
    - sexp_list_t*::begin
    - memcmp
    - lookup_var
    - RNP_LOG
    - sexp_list_t*::size
    - auto::at
    - lookup_var_data
    - gnupg_sexp_t::sexp_list_at
    - memcpy
    - sexp_list_view
    - std::string::data
    - parse_seckey
    - parse_format
    - auto::size
    - auto::data
    - pgp_key_pkt_t::material::clear_secret
    - g10_calculated_hash
    - sexp_list_t*::sexp_list_at
    - for_each
    - gnupg_sexp_t::at
    linkageType: ''
    returnType: bool
    signature: bool parse_protected_seckey(pgp_key_pkt_t &seckey, const sexp_list_t
      *list, const char *password)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: gnupg_extended_private_key_t::parse
      Src: /src/rnp/src/librekey/key_store_g10.cpp:782,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:783,1
    - Dst: sexp_list_t::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:799,1
    - Dst: sexp_list_t::at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:799,1
    - Dst: sexp_list_t::at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:800,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:801,1
    - Dst: sexp_list_t::sexp_string_at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:807,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:813,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:814,1
    - Dst: auto::data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:815,1
    - Dst: sexp_list_t::sexp_list_at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:819,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:820,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:821,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:821,1
    - Dst: auto::at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:825,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:826,1
    - Dst: auto::sexp_string_at
      Src: /src/rnp/src/librekey/key_store_g10.cpp:833,1
    - Dst: auto::data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:834,1
    - Dst: static_cast<pgp_pubkey_alg_t>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:835,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/librekey/key_store_g10.cpp:836,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:838,1
    - Dst: auto::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:838,1
    - Dst: parse_pubkey
      Src: /src/rnp/src/librekey/key_store_g10.cpp:842,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:843,1
    - Dst: parse_protected_seckey
      Src: /src/rnp/src/librekey/key_store_g10.cpp:849,1
    - Dst: parse_seckey
      Src: /src/rnp/src/librekey/key_store_g10.cpp:856,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:857,1
    - Dst: pgp_key_pkt_t
      Src: /src/rnp/src/librekey/key_store_g10.cpp:864,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 60
    argCount: 4
    argNames:
    - '  seckey'
    - data
    - data_len
    - password
    argTypes:
    - pgp_key_pkt_t
    - uint8_t*
    - size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 867
      start: 773
    functionDepth: 6
    functionLinenumber: 773
    functionLinenumberEnd: 867
    functionName: g23_parse_seckey
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - auto::at
    - parse_protected_seckey
    - auto::size
    - auto::data
    - sexp_list_t::at
    - sexp_list_t::sexp_string_at
    - static_cast<pgp_pubkey_alg_t>
    - id_str_pair::lookup
    - sexp_list_t::sexp_list_at
    - parse_pubkey
    - pgp_key_pkt_t
    - sexp_list_t::size
    - auto::sexp_string_at
    - parse_seckey
    - gnupg_extended_private_key_t::parse
    linkageType: ''
    returnType: bool
    signature: "bool g23_parse_seckey(pgp_key_pkt_t &  seckey,\n                 const
      uint8_t *  data,\n                 size_t           data_len,\n                 const
      char *     password,\n                 pgp_pubkey_alg_t pubalg = PGP_PKA_NOTHING)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<pgp_key_pkt_t>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:877,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/librekey/key_store_g10.cpp:877,1
    - Dst: g23_parse_seckey
      Src: /src/rnp/src/librekey/key_store_g10.cpp:878,1
    - Dst: rnp::RawPacket::data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:879,1
    - Dst: rnp::RawPacket::data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:879,1
    - Dst: auto::release
      Src: /src/rnp/src/librekey/key_store_g10.cpp:882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - raw
    - ' pubkey'
    - password
    argTypes:
    - rnp::RawPacket
    - pgp_key_pkt_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 869
    functionDepth: 7
    functionLinenumber: 869
    functionLinenumberEnd: 883
    functionName: g10_decrypt_seckey
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<pgp_key_pkt_t>
    - rnp::RawPacket::data
    - pgp_key_pkt_t::pgp_key_pkt_t
    - auto::release
    - g23_parse_seckey
    linkageType: ''
    returnType: pgp_key_pkt_t
    signature: "pgp_key_pkt_t *\ng10_decrypt_seckey(const rnp::RawPacket &raw,\n                   const
      pgp_key_pkt_t & pubkey,\n                   const char *          password)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_pkt_t::material::secret
      Src: /src/rnp/src/librekey/key_store_g10.cpp:890,1
    - Dst: dynamic_cast<pgp::DSAKeyMaterial &>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:891,1
    - Dst: dynamic_cast<pgp::DSAKeyMaterial &>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:892,1
    - Dst: auto::set_secret
      Src: /src/rnp/src/librekey/key_store_g10.cpp:893,1
    - Dst: auto::x
      Src: /src/rnp/src/librekey/key_store_g10.cpp:893,1
    - Dst: pgp_key_pkt_t::material::secret
      Src: /src/rnp/src/librekey/key_store_g10.cpp:899,1
    - Dst: dynamic_cast<pgp::RSAKeyMaterial &>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:900,1
    - Dst: dynamic_cast<pgp::RSAKeyMaterial &>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:901,1
    - Dst: auto::set_secret
      Src: /src/rnp/src/librekey/key_store_g10.cpp:902,1
    - Dst: auto::d
      Src: /src/rnp/src/librekey/key_store_g10.cpp:902,1
    - Dst: auto::p
      Src: /src/rnp/src/librekey/key_store_g10.cpp:902,1
    - Dst: auto::q
      Src: /src/rnp/src/librekey/key_store_g10.cpp:902,1
    - Dst: auto::u
      Src: /src/rnp/src/librekey/key_store_g10.cpp:902,1
    - Dst: pgp_key_pkt_t::material::secret
      Src: /src/rnp/src/librekey/key_store_g10.cpp:907,1
    - Dst: dynamic_cast<pgp::EGKeyMaterial &>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:908,1
    - Dst: dynamic_cast<pgp::EGKeyMaterial &>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:909,1
    - Dst: auto::set_secret
      Src: /src/rnp/src/librekey/key_store_g10.cpp:910,1
    - Dst: auto::x
      Src: /src/rnp/src/librekey/key_store_g10.cpp:910,1
    - Dst: pgp_key_pkt_t::material::secret
      Src: /src/rnp/src/librekey/key_store_g10.cpp:916,1
    - Dst: dynamic_cast<pgp::ECKeyMaterial &>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:917,1
    - Dst: dynamic_cast<pgp::ECKeyMaterial &>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:918,1
    - Dst: auto::set_secret
      Src: /src/rnp/src/librekey/key_store_g10.cpp:919,1
    - Dst: auto::x
      Src: /src/rnp/src/librekey/key_store_g10.cpp:919,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:923,1
    - Dst: is_subkey_pkt
      Src: /src/rnp/src/librekey/key_store_g10.cpp:928,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 34
    argCount: 2
    argNames:
    - dst
    - src
    argTypes:
    - pgp_key_pkt_t
    - pgp_key_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 885
    functionDepth: 1
    functionLinenumber: 885
    functionLinenumberEnd: 930
    functionName: copy_secret_fields
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - is_subkey_pkt
    - auto::set_secret
    - dynamic_cast<pgp::DSAKeyMaterial &>
    - auto::p
    - dynamic_cast<pgp::ECKeyMaterial &>
    - auto::d
    - auto::q
    - auto::x
    - pgp_key_pkt_t::material::secret
    - dynamic_cast<pgp::EGKeyMaterial &>
    - dynamic_cast<pgp::RSAKeyMaterial &>
    - auto::u
    linkageType: ''
    returnType: bool
    signature: bool copy_secret_fields(pgp_key_pkt_t &dst, const pgp_key_pkt_t &src)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/librekey/key_store_g10.cpp:940,1
    - Dst: g23_parse_seckey
      Src: /src/rnp/src/librekey/key_store_g10.cpp:941,1
    - Dst: MemorySource::memory
      Src: /src/rnp/src/librekey/key_store_g10.cpp:941,1
    - Dst: MemorySource::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:941,1
    - Dst: pgp_key_pkt_t::material::grip
      Src: /src/rnp/src/librekey/key_store_g10.cpp:947,1
    - Dst: KeyProvider*::request_key
      Src: /src/rnp/src/librekey/key_store_g10.cpp:949,1
    - Dst: rnp::KeySearch::create
      Src: /src/rnp/src/librekey/key_store_g10.cpp:949,1
    - Dst: Key
      Src: /src/rnp/src/librekey/key_store_g10.cpp:955,1
    - Dst: copy_secret_fields
      Src: /src/rnp/src/librekey/key_store_g10.cpp:956,1
    - Dst: Key::pkt
      Src: /src/rnp/src/librekey/key_store_g10.cpp:956,1
    - Dst: Key::set_pkt
      Src: /src/rnp/src/librekey/key_store_g10.cpp:960,1
    - Dst: std::move
      Src: /src/rnp/src/librekey/key_store_g10.cpp:960,1
    - Dst: Key::set_rawpkt
      Src: /src/rnp/src/librekey/key_store_g10.cpp:963,1
    - Dst: RawPacket
      Src: /src/rnp/src/librekey/key_store_g10.cpp:964,1
    - Dst: MemorySource::memory
      Src: /src/rnp/src/librekey/key_store_g10.cpp:964,1
    - Dst: MemorySource::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:964,1
    - Dst: rnp::KeyStore::add_key
      Src: /src/rnp/src/librekey/key_store_g10.cpp:966,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:972,1
    - Dst: what
      Src: /src/rnp/src/librekey/key_store_g10.cpp:972,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - src
    - key_provider
    argTypes:
    - pgp_source_t
    - KeyProvider*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 933
    functionDepth: 7
    functionLinenumber: 933
    functionLinenumberEnd: 976
    functionName: rnp::KeyStore::load_g10
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - MemorySource::memory
    - what
    - rnp::KeySearch::create
    - Key
    - RawPacket
    - MemorySource::size
    - pgp_key_pkt_t::material::grip
    - copy_secret_fields
    - Key::set_pkt
    - pgp_key_pkt_t::pgp_key_pkt_t
    - Key::set_rawpkt
    - Key::pkt
    - rnp::KeyStore::add_key
    - g23_parse_seckey
    - KeyProvider*::request_key
    - std::move
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::load_g10(pgp_source_t &src, const KeyProvider *key_provider)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/librekey/key_store_g10.cpp:940,1
    - Dst: g23_parse_seckey
      Src: /src/rnp/src/librekey/key_store_g10.cpp:941,1
    - Dst: MemorySource::memory
      Src: /src/rnp/src/librekey/key_store_g10.cpp:941,1
    - Dst: MemorySource::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:941,1
    - Dst: pgp_key_pkt_t::material::grip
      Src: /src/rnp/src/librekey/key_store_g10.cpp:947,1
    - Dst: KeyProvider*::request_key
      Src: /src/rnp/src/librekey/key_store_g10.cpp:949,1
    - Dst: rnp::KeySearch::create
      Src: /src/rnp/src/librekey/key_store_g10.cpp:949,1
    - Dst: Key
      Src: /src/rnp/src/librekey/key_store_g10.cpp:955,1
    - Dst: copy_secret_fields
      Src: /src/rnp/src/librekey/key_store_g10.cpp:956,1
    - Dst: Key::pkt
      Src: /src/rnp/src/librekey/key_store_g10.cpp:956,1
    - Dst: Key::set_pkt
      Src: /src/rnp/src/librekey/key_store_g10.cpp:960,1
    - Dst: std::move
      Src: /src/rnp/src/librekey/key_store_g10.cpp:960,1
    - Dst: Key::set_rawpkt
      Src: /src/rnp/src/librekey/key_store_g10.cpp:963,1
    - Dst: RawPacket
      Src: /src/rnp/src/librekey/key_store_g10.cpp:964,1
    - Dst: MemorySource::memory
      Src: /src/rnp/src/librekey/key_store_g10.cpp:964,1
    - Dst: MemorySource::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:964,1
    - Dst: rnp::KeyStore::add_key
      Src: /src/rnp/src/librekey/key_store_g10.cpp:966,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:972,1
    - Dst: what
      Src: /src/rnp/src/librekey/key_store_g10.cpp:972,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 2
    argNames:
    - src
    - key_provider
    argTypes:
    - pgp_source_t
    - KeyProvider*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 976
      start: 933
    functionDepth: 7
    functionLinenumber: 933
    functionLinenumberEnd: 976
    functionName: rnp::KeyStore::load_g10
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - MemorySource::memory
    - what
    - rnp::KeySearch::create
    - Key
    - RawPacket
    - MemorySource::size
    - pgp_key_pkt_t::material::grip
    - copy_secret_fields
    - Key::set_pkt
    - pgp_key_pkt_t::pgp_key_pkt_t
    - Key::set_rawpkt
    - Key::pkt
    - rnp::KeyStore::add_key
    - g23_parse_seckey
    - KeyProvider*::request_key
    - std::move
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::load_g10(pgp_source_t &src, const KeyProvider *key_provider)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_canonical
      Src: /src/rnp/src/librekey/key_store_g10.cpp:991,1
    - Dst: std::ostringstream::str
      Src: /src/rnp/src/librekey/key_store_g10.cpp:992,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/librekey/key_store_g10.cpp:993,1
    - Dst: dst_write
      Src: /src/rnp/src/librekey/key_store_g10.cpp:994,1
    - Dst: std::string::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:994,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1001
      start: 984
    functionDepth: 2
    functionLinenumber: 984
    functionLinenumberEnd: 1001
    functionName: gnupg_sexp_t::write
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - dst_write
    - std::string::c_str
    - print_canonical
    - std::ostringstream::str
    - std::string::size
    linkageType: ''
    returnType: bool
    signature: bool gnupg_sexp_t::write(pgp_dest_t &dst) const noexcept
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const pgp::DSAKeyMaterial &>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1008,1
    - Dst: gnupg_sexp_t::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1009,1
    - Dst: gnupg_sexp_t::add_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1010,1
    - Dst: auto::p
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1010,1
    - Dst: gnupg_sexp_t::add_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1011,1
    - Dst: auto::q
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1011,1
    - Dst: gnupg_sexp_t::add_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1012,1
    - Dst: auto::g
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1012,1
    - Dst: gnupg_sexp_t::add_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1013,1
    - Dst: auto::y
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1013,1
    - Dst: dynamic_cast<const pgp::RSAKeyMaterial &>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1019,1
    - Dst: gnupg_sexp_t::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1020,1
    - Dst: gnupg_sexp_t::add_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1021,1
    - Dst: auto::n
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1021,1
    - Dst: gnupg_sexp_t::add_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1022,1
    - Dst: auto::e
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1022,1
    - Dst: dynamic_cast<const pgp::EGKeyMaterial &>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1026,1
    - Dst: gnupg_sexp_t::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1027,1
    - Dst: gnupg_sexp_t::add_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1028,1
    - Dst: auto::p
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1028,1
    - Dst: gnupg_sexp_t::add_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1029,1
    - Dst: auto::g
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1029,1
    - Dst: gnupg_sexp_t::add_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1030,1
    - Dst: auto::y
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1030,1
    - Dst: dynamic_cast<const pgp::ECKeyMaterial &>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1036,1
    - Dst: gnupg_sexp_t::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1037,1
    - Dst: gnupg_sexp_t::add_curve
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1038,1
    - Dst: auto::curve
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1038,1
    - Dst: gnupg_sexp_t::add_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1039,1
    - Dst: auto::p
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1039,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1043,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1044,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 37
    argCount: 1
    argNames:
    - key
    argTypes:
    - pgp_key_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1046
      start: 1003
    functionDepth: 3
    functionLinenumber: 1003
    functionLinenumberEnd: 1046
    functionName: gnupg_sexp_t::add_pubkey
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - gnupg_sexp_t::add_curve
    - auto::g
    - gnupg_sexp_t::add_mpi
    - RNP_LOG
    - dynamic_cast<const pgp::DSAKeyMaterial &>
    - dynamic_cast<const pgp::RSAKeyMaterial &>
    - auto::e
    - auto::p
    - auto::n
    - dynamic_cast<const pgp::ECKeyMaterial &>
    - auto::curve
    - auto::q
    - dynamic_cast<const pgp::EGKeyMaterial &>
    - rnp::rnp_exception::rnp_exception
    - auto::y
    - gnupg_sexp_t::add
    linkageType: ''
    returnType: void
    signature: void gnupg_sexp_t::add_pubkey(const pgp_key_pkt_t &key)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const pgp::DSAKeyMaterial &>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1053,1
    - Dst: gnupg_sexp_t::add_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1054,1
    - Dst: auto::x
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1054,1
    - Dst: dynamic_cast<const pgp::RSAKeyMaterial &>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1060,1
    - Dst: gnupg_sexp_t::add_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1061,1
    - Dst: auto::d
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1061,1
    - Dst: gnupg_sexp_t::add_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1062,1
    - Dst: auto::p
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1062,1
    - Dst: gnupg_sexp_t::add_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1063,1
    - Dst: auto::q
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1063,1
    - Dst: gnupg_sexp_t::add_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1064,1
    - Dst: auto::u
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1064,1
    - Dst: dynamic_cast<const pgp::EGKeyMaterial &>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1068,1
    - Dst: gnupg_sexp_t::add_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1069,1
    - Dst: auto::x
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1069,1
    - Dst: dynamic_cast<const pgp::ECKeyMaterial &>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1075,1
    - Dst: gnupg_sexp_t::add_mpi
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1076,1
    - Dst: auto::x
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1076,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1080,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1081,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 29
    argCount: 1
    argNames:
    - key
    argTypes:
    - pgp_key_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1048
    functionDepth: 3
    functionLinenumber: 1048
    functionLinenumberEnd: 1083
    functionName: gnupg_sexp_t::add_seckey
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - gnupg_sexp_t::add_mpi
    - dynamic_cast<const pgp::DSAKeyMaterial &>
    - dynamic_cast<const pgp::RSAKeyMaterial &>
    - auto::p
    - dynamic_cast<const pgp::ECKeyMaterial &>
    - auto::q
    - dynamic_cast<const pgp::EGKeyMaterial &>
    - auto::x
    - auto::d
    - rnp::rnp_exception::rnp_exception
    - auto::u
    linkageType: ''
    returnType: void
    signature: void gnupg_sexp_t::add_seckey(const pgp_key_pkt_t &key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::MemoryDest::MemoryDest
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1088,1
    - Dst: rnp::MemoryDest::set_secure
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1089,1
    - Dst: gnupg_sexp_t::write
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1091,1
    - Dst: rnp::MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1091,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1092,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1093,1
    - Dst: rnp::MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1097,1
    - Dst: rnp::MemoryDest::write
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1099,1
    - Dst: rnp::MemoryDest::werr
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1101,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1102,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1103,1
    - Dst: rnp::MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1105,1
    - Dst: rnp::secure_bytes
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1106,1
    - Dst: rnp::MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1106,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - padblock
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1107
      start: 1085
    functionDepth: 3
    functionLinenumber: 1085
    functionLinenumberEnd: 1107
    functionName: gnupg_sexp_t::write_padded
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::secure_bytes
    - gnupg_sexp_t::write
    - rnp::MemoryDest::write
    - rnp::MemoryDest::memory
    - rnp::MemoryDest::set_secure
    - rnp::MemoryDest::writeb
    - rnp::MemoryDest::MemoryDest
    - rnp::rnp_exception::rnp_exception
    - rnp::MemoryDest::dst
    - rnp::MemoryDest::werr
    linkageType: ''
    returnType: rnp::secure_bytes
    signature: rnp::secure_bytes gnupg_sexp_t::write_padded(size_t padblock) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1116,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1117,1
    - Dst: find_format
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1120,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1122,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1123,1
    - Dst: rnp::SecurityContext::rng::get
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1127,1
    - Dst: rnp::SecurityContext::rng::get
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1128,1
    - Dst: pgp_key_protection_t::s2k::salt_size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1128,1
    - Dst: gnupg_sexp_t::add_sub
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1132,1
    - Dst: auto::add_seckey
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1133,1
    - Dst: rnp_gmtime
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1140,1
    - Dst: rnp::SecurityContext::time
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1140,1
    - Dst: strftime
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1141,1
    - Dst: g10_calculated_hash
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1142,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1143,1
    - Dst: gnupg_sexp_t::add_sub
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1146,1
    - Dst: auto::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1147,1
    - Dst: auto::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1148,1
    - Dst: auto::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1149,1
    - Dst: gnupg_sexp_t::write_padded
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1152,1
    - Dst: pgp_key_size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1155,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1157,1
    - Dst: pgp_s2k_iterated
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1161,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1162,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1164,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1167,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1168,1
    - Dst: Cipher::encryption
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1173,1
    - Dst: std::unique_ptr::set_key
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1174,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1174,1
    - Dst: std::unique_ptr::set_iv
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1175,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1176,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1180,1
    - Dst: std::unique_ptr::finish
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1182,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1182,1
    - Dst: std::vector::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1183,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1185,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1186,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1188,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1189,1
    - Dst: gnupg_sexp_t::add_sub
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1193,1
    - Dst: auto::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1194,1
    - Dst: auto::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1195,1
    - Dst: auto::add_sub
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1197,1
    - Dst: auto::add_sub
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1199,1
    - Dst: auto::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1200,1
    - Dst: auto::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1201,1
    - Dst: auto::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1202,1
    - Dst: auto::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1203,1
    - Dst: auto::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1205,1
    - Dst: std::vector::data
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1205,1
    - Dst: std::vector::size
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1205,1
    - Dst: gnupg_sexp_t::add_sub
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1207,1
    - Dst: auto::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1208,1
    - Dst: auto::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1209,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 3
    argNames:
    - '       seckey'
    - '   password'
    - ctx
    argTypes:
    - pgp_key_pkt_t
    - std::string
    - rnp::SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1210
      start: 1109
    functionDepth: 4
    functionLinenumber: 1109
    functionLinenumberEnd: 1210
    functionName: gnupg_sexp_t::add_protected_seckey
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - pgp_s2k_iterated
    - rnp::secure_bytes::size
    - auto::add_seckey
    - gnupg_sexp_t::write_padded
    - pgp_key_protection_t::s2k::salt_size
    - rnp::SecurityContext::rng::get
    - rnp::secure_bytes::data
    - rnp::secure_array::data
    - std::unique_ptr::set_iv
    - rnp_gmtime
    - rnp::rnp_exception::rnp_exception
    - gnupg_sexp_t::add_sub
    - RNP_LOG
    - Cipher::encryption
    - strftime
    - pgp_key_size
    - std::unique_ptr::finish
    - std::vector::size
    - std::vector::data
    - auto::add
    - std::unique_ptr::set_key
    - g10_calculated_hash
    - rnp::SecurityContext::time
    - find_format
    - auto::add_sub
    - c_str
    linkageType: ''
    returnType: void
    signature: "void gnupg_sexp_t::add_protected_seckey(pgp_key_pkt_t &       seckey,\n
      \                                  const std::string &   password,\n                                   rnp::SecurityContext
      &ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1232,1
    - Dst: gnupg_sexp_t::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1238,1
    - Dst: gnupg_sexp_t::add_sub
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1239,1
    - Dst: auto::add_pubkey
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1240,1
    - Dst: auto::add_protected_seckey
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1243,1
    - Dst: auto::add_seckey
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1245,1
    - Dst: gnupg_sexp_t::write
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1247,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1249,1
    - Dst: what
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1249,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 28
    argCount: 4
    argNames:
    - dst
    - seckey
    - password
    - ctx
    argTypes:
    - pgp_dest_t*
    - pgp_key_pkt_t*
    - char*
    - rnp::SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1252
      start: 1212
    functionDepth: 3
    functionLinenumber: 1212
    functionLinenumberEnd: 1252
    functionName: g10_write_seckey
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - auto::add_seckey
    - gnupg_sexp_t::write
    - auto::add_protected_seckey
    - auto::add_pubkey
    - gnupg_sexp_t::add
    - gnupg_sexp_t::add_sub
    linkageType: ''
    returnType: bool
    signature: "bool g10_write_seckey(pgp_dest_t *          dst,\n                 pgp_key_pkt_t
      *       seckey,\n                 const char *          password,\n                 rnp::SecurityContext
      &ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: gnupg_sexp_t::add_pubkey
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1260,1
    - Dst: gnupg_sexp_t::add_seckey
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1261,1
    - Dst: gnupg_sexp_t::add_sub
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1262,1
    - Dst: auto::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1263,1
    - Dst: auto::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1264,1
    - Dst: rnp::MemoryDest::MemoryDest
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1266,1
    - Dst: rnp::MemoryDest::set_secure
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1267,1
    - Dst: gnupg_sexp_t::write
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1268,1
    - Dst: rnp::MemoryDest::dst
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1268,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1269,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1272,1
    - Dst: auto::add
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1273,1
    - Dst: rnp::MemoryDest::memory
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1273,1
    - Dst: rnp::MemoryDest::writeb
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1273,1
    - Dst: auto::finish
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1274,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1277,1
    - Dst: what
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1277,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 3
    argNames:
    - key
    - protected_at
    - checksum
    argTypes:
    - pgp_key_pkt_t
    - char*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1254
    functionDepth: 4
    functionLinenumber: 1254
    functionLinenumberEnd: 1280
    functionName: g10_calculated_hash
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - gnupg_sexp_t::add_seckey
    - gnupg_sexp_t::add_pubkey
    - what
    - gnupg_sexp_t::write
    - rnp::MemoryDest::memory
    - rnp::MemoryDest::set_secure
    - rnp::MemoryDest::writeb
    - rnp::MemoryDest::MemoryDest
    - rnp::MemoryDest::dst
    - rnp::Hash::create
    - auto::finish
    - auto::add
    - gnupg_sexp_t::add_sub
    linkageType: ''
    returnType: bool
    signature: bool g10_calculated_hash(const pgp_key_pkt_t &key, const char *protected_at,
      uint8_t *checksum)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1286,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1286,1
    - Dst: dst_write
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1289,1
    - Dst: rnp::Key::rawpkt
      Src: /src/rnp/src/librekey/key_store_g10.cpp:1289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - key
    - dest
    argTypes:
    - rnp::Key
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1291
      start: 1282
    functionDepth: 2
    functionLinenumber: 1282
    functionLinenumberEnd: 1291
    functionName: rnp_key_store_gnupg_sexp_to_dst
    functionSourceFile: /src/rnp/src/librekey/key_store_g10.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - static_cast<int>
    - dst_write
    - rnp::Key::rawpkt
    linkageType: ''
    returnType: bool
    signature: bool rnp_key_store_gnupg_sexp_to_dst(rnp::Key &key, pgp_dest_t &dest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::add_key
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:48,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:51,1
    - Dst: what
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:51,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - tskey
    - pkey
    argTypes:
    - pgp_transferable_subkey_t
    - Key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 56
    functionName: rnp::KeyStore::add_ts_subkey
    functionSourceFile: /src/rnp/src/librekey/key_store_pgp.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - RNP_LOG_KEY
    - what
    - rnp::KeyStore::add_key
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::add_ts_subkey(const pgp_transferable_subkey_t &tskey,
      Key *pkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::add_key
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:69,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:72,1
    - Dst: what
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:72,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:78,1
    - Dst: rnp::KeyStore::add_ts_subkey
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:84,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:85,1
    - Dst: rnp::KeyStore::remove_key
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:88,1
    - Dst: Key*::revalidate
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - tkey
    argTypes:
    - pgp_transferable_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 97
    functionName: rnp::KeyStore::add_ts_key
    functionSourceFile: /src/rnp/src/librekey/key_store_pgp.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - rnp::KeyStore::remove_key
    - rnp::KeyStore::add_ts_subkey
    - rnp::KeyStore::add_key
    - Key*::revalidate
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::add_ts_key(pgp_transferable_key_t &tkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp_transferable_key_t::pgp_transferable_key_t
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:102,1
    - Dst: process_pgp_key_auto
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:103,1
    - Dst: rnp::KeyStore::add_ts_key
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:111,1
    - Dst: pgp_transferable_key_t::subkeys::empty
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:115,1
    - Dst: rnp::KeyStore::add_ts_subkey
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:119,1
    - Dst: pgp_transferable_key_t::subkeys::front
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:119,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - src
    - skiperrors
    argTypes:
    - pgp_source_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 99
    functionDepth: 5
    functionLinenumber: 99
    functionLinenumberEnd: 120
    functionName: rnp::KeyStore::load_pgp_key
    functionSourceFile: /src/rnp/src/librekey/key_store_pgp.cpp
    functionUses: 0
    functionsReached:
    - rnp::KeyStore::add_ts_key
    - pgp_transferable_key_t::pgp_transferable_key_t
    - rnp::KeyStore::add_ts_subkey
    - pgp_transferable_key_t::subkeys::front
    - pgp_transferable_key_t::subkeys::empty
    - process_pgp_key_auto
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t KeyStore::load_pgp_key(pgp_source_t &src, bool skiperrors)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_subkey_pkt
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:126,1
    - Dst: stream_pkt_type
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:126,1
    - Dst: pgp_transferable_subkey_t::pgp_transferable_subkey_t
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:127,1
    - Dst: process_pgp_subkey
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:128,1
    - Dst: rnp::KeyStore::add_ts_subkey
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:132,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:138,1
    - Dst: rnp::KeyStore::add_ts_key
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:143,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:150,1
    - Dst: what
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - src
    - skiperrors
    argTypes:
    - pgp_source_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 122
    functionDepth: 7
    functionLinenumber: 122
    functionLinenumberEnd: 154
    functionName: rnp::KeyStore::load_pgp
    functionSourceFile: /src/rnp/src/librekey/key_store_pgp.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - is_subkey_pkt
    - process_pgp_keys
    - what
    - rnp::KeyStore::add_ts_key
    - process_pgp_subkey
    - rnp::KeyStore::add_ts_subkey
    - stream_pkt_type
    - pgp_transferable_subkey_t::pgp_transferable_subkey_t
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t KeyStore::load_pgp(pgp_source_t &src, bool skiperrors)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::add_key
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:48,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:51,1
    - Dst: what
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:51,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:52,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - tskey
    - pkey
    argTypes:
    - pgp_transferable_subkey_t
    - Key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 56
    functionName: rnp::KeyStore::add_ts_subkey
    functionSourceFile: /src/rnp/src/librekey/key_store_pgp.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - RNP_LOG_KEY
    - what
    - rnp::KeyStore::add_key
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::add_ts_subkey(const pgp_transferable_subkey_t &tskey,
      Key *pkey)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::add_key
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:69,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:72,1
    - Dst: what
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:72,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:78,1
    - Dst: rnp::KeyStore::add_ts_subkey
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:84,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:85,1
    - Dst: rnp::KeyStore::remove_key
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:88,1
    - Dst: Key*::revalidate
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:95,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - tkey
    argTypes:
    - pgp_transferable_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 97
    functionName: rnp::KeyStore::add_ts_key
    functionSourceFile: /src/rnp/src/librekey/key_store_pgp.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - what
    - rnp::KeyStore::remove_key
    - rnp::KeyStore::add_ts_subkey
    - rnp::KeyStore::add_key
    - Key*::revalidate
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::add_ts_key(pgp_transferable_key_t &tkey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp_transferable_key_t::pgp_transferable_key_t
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:102,1
    - Dst: process_pgp_key_auto
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:103,1
    - Dst: rnp::KeyStore::add_ts_key
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:111,1
    - Dst: pgp_transferable_key_t::subkeys::empty
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:115,1
    - Dst: rnp::KeyStore::add_ts_subkey
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:119,1
    - Dst: pgp_transferable_key_t::subkeys::front
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:119,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - src
    - skiperrors
    argTypes:
    - pgp_source_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 99
    functionDepth: 5
    functionLinenumber: 99
    functionLinenumberEnd: 120
    functionName: rnp::KeyStore::load_pgp_key
    functionSourceFile: /src/rnp/src/librekey/key_store_pgp.cpp
    functionUses: 0
    functionsReached:
    - rnp::KeyStore::add_ts_key
    - pgp_transferable_key_t::pgp_transferable_key_t
    - rnp::KeyStore::add_ts_subkey
    - pgp_transferable_key_t::subkeys::front
    - pgp_transferable_key_t::subkeys::empty
    - process_pgp_key_auto
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t KeyStore::load_pgp_key(pgp_source_t &src, bool skiperrors)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_subkey_pkt
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:126,1
    - Dst: stream_pkt_type
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:126,1
    - Dst: pgp_transferable_subkey_t::pgp_transferable_subkey_t
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:127,1
    - Dst: process_pgp_subkey
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:128,1
    - Dst: rnp::KeyStore::add_ts_subkey
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:132,1
    - Dst: process_pgp_keys
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:138,1
    - Dst: rnp::KeyStore::add_ts_key
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:143,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:150,1
    - Dst: what
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:150,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 2
    argNames:
    - src
    - skiperrors
    argTypes:
    - pgp_source_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 122
    functionDepth: 7
    functionLinenumber: 122
    functionLinenumberEnd: 154
    functionName: rnp::KeyStore::load_pgp
    functionSourceFile: /src/rnp/src/librekey/key_store_pgp.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - is_subkey_pkt
    - process_pgp_keys
    - what
    - rnp::KeyStore::add_ts_key
    - process_pgp_subkey
    - rnp::KeyStore::add_ts_subkey
    - stream_pkt_type
    - pgp_transferable_subkey_t::pgp_transferable_subkey_t
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t KeyStore::load_pgp(pgp_source_t &src, bool skiperrors)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_secret
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:162,1
    - Dst: is_primary
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:166,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:171,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:172,1
    - Dst: write
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:175,1
    - Dst: subkey_fps
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:179,1
    - Dst: rnp::KeyStore::get_key
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:180,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:182,1
    - Dst: auto*::write
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:185,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - key_store
    - dst
    - secret
    argTypes:
    - rnp::KeyStore
    - pgp_dest_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 192
    functionName: do_write
    functionSourceFile: /src/rnp/src/librekey/key_store_pgp.cpp
    functionUses: 0
    functionsReached:
    - is_secret
    - RNP_LOG
    - subkey_fps
    - rnp::KeyStore::get_key
    - static_cast<int>
    - auto*::write
    - write
    - is_primary
    linkageType: ''
    returnType: bool
    signature: bool do_write(rnp::KeyStore &key_store, pgp_dest_t &dst, bool secret)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_secret
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:162,1
    - Dst: is_primary
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:166,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:171,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:172,1
    - Dst: write
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:175,1
    - Dst: subkey_fps
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:179,1
    - Dst: rnp::KeyStore::get_key
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:180,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:182,1
    - Dst: auto*::write
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:185,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 26
    argCount: 3
    argNames:
    - key_store
    - dst
    - secret
    argTypes:
    - rnp::KeyStore
    - pgp_dest_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 192
    functionName: do_write
    functionSourceFile: /src/rnp/src/librekey/key_store_pgp.cpp
    functionUses: 0
    functionsReached:
    - is_secret
    - RNP_LOG
    - subkey_fps
    - rnp::KeyStore::get_key
    - static_cast<int>
    - auto*::write
    - write
    - is_primary
    linkageType: ''
    returnType: bool
    signature: bool do_write(rnp::KeyStore &key_store, pgp_dest_t &dst, bool secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_write
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:200,1
    - Dst: do_write
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: rnp::KeyStore::write_pgp
    functionSourceFile: /src/rnp/src/librekey/key_store_pgp.cpp
    functionUses: 0
    functionsReached:
    - do_write
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::write_pgp(pgp_dest_t &dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: do_write
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:200,1
    - Dst: do_write
      Src: /src/rnp/src/librekey/key_store_pgp.cpp:200,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: rnp::KeyStore::write_pgp
    functionSourceFile: /src/rnp/src/librekey/key_store_pgp.cpp
    functionUses: 0
    functionsReached:
    - do_write
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::write_pgp(pgp_dest_t &dst)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp_opendir
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:68,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:68,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:70,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:70,1
    - Dst: strerror
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:70,1
    - Dst: rnp_readdir_name
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:75,1
    - Dst: empty
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:75,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:76,1
    - Dst: init_file_src
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:78,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:78,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:79,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:79,1
    - Dst: rnp::KeyStore::load_g10
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:83,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:84,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:84,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:86,1
    - Dst: rnp_closedir
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:88,1
    - Dst: init_file_src
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:93,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:93,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:94,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:94,1
    - Dst: rnp::KeyStore::load
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:98,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:99,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - key_provider
    argTypes:
    - KeyProvider*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 62
    functionDepth: 8
    functionLinenumber: 62
    functionLinenumberEnd: 101
    functionName: rnp::KeyStore::load
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp_closedir
    - pgp_source_t::close
    - rnp::path::append
    - std::string::c_str
    - strerror
    - init_file_src
    - rnp::KeyStore::load
    - rnp_opendir
    - c_str
    - rnp_readdir_name
    - empty
    - rnp::KeyStore::load_g10
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::load(const KeyProvider *key_provider)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::load_pgp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:108,1
    - Dst: rnp::KeyStore::load_kbx
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:110,1
    - Dst: rnp::KeyStore::load_g10
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:112,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:114,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - src
    - key_provider
    argTypes:
    - pgp_source_t
    - KeyProvider*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 103
    functionDepth: 8
    functionLinenumber: 103
    functionLinenumberEnd: 119
    functionName: rnp::KeyStore::load
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::KeyStore::load_pgp
    - static_cast<int>
    - rnp::KeyStore::load_kbx
    - rnp::KeyStore::load_g10
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::load(pgp_source_t &src, const KeyProvider *key_provider)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: rnp_stat
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:132,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:132,1
    - Dst: S_ISDIR
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:133,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:134,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:134,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:139,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:139,1
    - Dst: strerror
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:139,1
    - Dst: RNP_MKDIR
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:142,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:142,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:143,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:143,1
    - Dst: strerror
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:143,1
    - Dst: bin_to_hex
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:149,1
    - Dst: grip
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:149,1
    - Dst: grip
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:149,1
    - Dst: snprintf
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:150,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:150,1
    - Dst: auto::c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:150,1
    - Dst: init_tmpfile_dest
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:152,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:153,1
    - Dst: rnp_key_store_gnupg_sexp_to_dst
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:157,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:158,1
    - Dst: dst_close
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:159,1
    - Dst: dst_finish
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:163,1
    - Dst: dst_close
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:164,1
    - Dst: init_tmpfile_dest
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:175,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:175,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:176,1
    - Dst: rnp::KeyStore::write
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:180,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:181,1
    - Dst: dst_close
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:182,1
    - Dst: dst_finish
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:186,1
    - Dst: dst_close
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:187,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 121
    functionDepth: 4
    functionLinenumber: 121
    functionLinenumberEnd: 189
    functionName: rnp::KeyStore::write
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - auto::c_str
    - RNP_MKDIR
    - bin_to_hex
    - grip
    - strerror
    - S_ISDIR
    - init_tmpfile_dest
    - rnp_key_store_gnupg_sexp_to_dst
    - dst_close
    - dst_finish
    - rnp::KeyStore::write
    - rnp_stat
    - c_str
    - snprintf
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::write()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::write_pgp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:196,1
    - Dst: rnp::KeyStore::write_kbx
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:198,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:200,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 205
    functionName: rnp::KeyStore::write
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 1
    functionsReached:
    - rnp::KeyStore::write_kbx
    - static_cast<int>
    - rnp::KeyStore::write_pgp
    - RNP_LOG
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::write(pgp_dest_t &dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::clear
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:210,1
    - Dst: rnp::KeyStore::clear
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:211,1
    - Dst: rnp::KeyStore::clear
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:212,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: rnp::KeyStore::clear
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 1
    functionsReached:
    - rnp::KeyStore::clear
    linkageType: ''
    returnType: void
    signature: void KeyStore::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: rnp::KeyStore::key_count
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t KeyStore::key_count() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Key::is_subkey
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:224,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:225,1
    - Dst: is_subkey
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:233,1
    - Dst: has_primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:233,1
    - Dst: sig_count
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:237,1
    - Dst: get_sig
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:238,1
    - Dst: auto::sig::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:240,1
    - Dst: auto::sig::has_keyfp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:243,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:243,1
    - Dst: auto::sig::keyfp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:243,1
    - Dst: auto::sig::has_keyid
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:247,1
    - Dst: Key::keyid
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:247,1
    - Dst: auto::sig::keyid
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:247,1
    - Dst: Key::link_subkey_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:255,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:258,1
    - Dst: what
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:258,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 266
    functionName: rnp::KeyStore::refresh_subkey_grips
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - auto::sig::has_keyfp
    - what
    - auto::sig::type
    - auto::sig::keyfp
    - get_sig
    - Key::is_subkey
    - Key::fp
    - Key::keyid
    - Key::link_subkey_fp
    - auto::sig::keyid
    - is_subkey
    - auto::sig::has_keyid
    - has_primary_fp
    - sig_count
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::refresh_subkey_grips(Key &key)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::primary_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:273,1
    - Dst: rnp::KeyStore::primary_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:276,1
    - Dst: Key::has_primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:281,1
    - Dst: Key*::has_primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:281,1
    - Dst: Key::primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:282,1
    - Dst: Key*::primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:282,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:283,1
    - Dst: rnp::KeyStore::get_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:284,1
    - Dst: Key::primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:284,1
    - Dst: auto*::remove_subkey_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:286,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:286,1
    - Dst: Key*::merge
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:290,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:291,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:292,1
    - Dst: emplace_back
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:297,1
    - Dst: back
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:298,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:299,1
    - Dst: std::prev
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:299,1
    - Dst: end
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:299,1
    - Dst: Key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:300,1
    - Dst: Key*::link_subkey_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:302,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:306,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:307,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:308,1
    - Dst: what
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:308,1
    - Dst: pop_back
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:310,1
    - Dst: erase
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:311,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:311,1
    - Dst: Key*::validated
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:319,1
    - Dst: Key*::validate_subkey
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:320,1
    - Dst: Key*::refresh_data
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:322,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:323,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:324,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 2
    argNames:
    - srckey
    - oldkey
    argTypes:
    - Key
    - Key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 327
    functionName: rnp::KeyStore::add_subkey
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 0
    functionsReached:
    - Key*::refresh_data
    - Key*::primary_fp
    - emplace_back
    - Key*::link_subkey_fp
    - Key
    - Key::has_primary_fp
    - rnp::KeyStore::get_key
    - Key::fp
    - erase
    - RNP_LOG_KEY
    - std::prev
    - rnp::KeyStore::primary_key
    - auto*::remove_subkey_fp
    - back
    - pop_back
    - RNP_LOG
    - Key::primary_fp
    - Key*::has_primary_fp
    - end
    - Key*::validated
    - Key*::validate_subkey
    - what
    - Key*::merge
    linkageType: ''
    returnType: Key
    signature: 'Key *

      KeyStore::add_subkey(Key &srckey, Key *oldkey)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:333,1
    - Dst: Key::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:333,1
    - Dst: Key::version
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:333,1
    - Dst: rnp::KeyStore::get_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:334,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:334,1
    - Dst: Key::is_subkey
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:340,1
    - Dst: rnp::KeyStore::add_subkey
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:341,1
    - Dst: auto*::merge
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:345,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:346,1
    - Dst: emplace_back
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:351,1
    - Dst: back
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:352,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:353,1
    - Dst: std::prev
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:353,1
    - Dst: end
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:353,1
    - Dst: Key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:354,1
    - Dst: rnp::KeyStore::refresh_subkey_grips
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:356,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:357,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:361,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:362,1
    - Dst: what
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:362,1
    - Dst: pop_back
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:364,1
    - Dst: erase
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:365,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:365,1
    - Dst: auto*::validated
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:373,1
    - Dst: auto*::revalidate
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:374,1
    - Dst: auto*::refresh_data
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:375,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:376,1
    - Dst: validate_desig_revokes
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:384,1
    - Dst: revalidate
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:385,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 1
    argNames:
    - srckey
    argTypes:
    - Key
    assertStmts:
    - condition: (srckey.type() && srckey.version())
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/rnp/src/librekey/rnp_key_store.cpp
    constantsTouched: []
    func_position:
      end: 389
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 389
    functionName: rnp::KeyStore::add_key
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 6
    functionsReached:
    - emplace_back
    - Key
    - rnp::KeyStore::get_key
    - Key::fp
    - erase
    - auto*::refresh_data
    - auto*::merge
    - RNP_LOG_KEY
    - std::prev
    - Key::is_subkey
    - back
    - pop_back
    - RNP_LOG
    - revalidate
    - rnp::KeyStore::refresh_subkey_grips
    - end
    - Key::version
    - rnp::KeyStore::add_subkey
    - validate_desig_revokes
    - assert
    - what
    - auto*::validated
    - Key::type
    - auto*::revalidate
    linkageType: ''
    returnType: Key
    signature: 'Key *

      KeyStore::add_key(Key &srckey)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::get_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:397,1
    - Dst: rnp::KeyStore::get_signer
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:403,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:404,1
    - Dst: auto*::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:406,1
    - Dst: auto*::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:406,1
    - Dst: auto*::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:409,1
    - Dst: auto*::primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:409,1
    - Dst: auto*::uid_idx
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:417,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:419,1
    - Dst: auto*::add_sig
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:423,1
    - Dst: auto*::validate_desig_revokes
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:425,1
    - Dst: auto*::is_primary
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:427,1
    - Dst: auto*::refresh_data
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:428,1
    - Dst: auto*::refresh_data
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:430,1
    - Dst: rnp::KeyStore::primary_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:430,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - '   keyfp'
    - sig
    - uid
    - front
    argTypes:
    - pgp::Fingerprint
    - pgp::pkt::Signature
    - pgp_userid_pkt_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 433
    functionName: rnp::KeyStore::add_key_sig
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - auto*::fp
    - auto*::primary_fp
    - auto*::is_primary
    - auto*::uid_idx
    - auto*::validate_desig_revokes
    - rnp::KeyStore::get_key
    - rnp::KeyStore::primary_key
    - rnp::KeyStore::get_signer
    - auto*::refresh_data
    - auto*::add_sig
    - pgp::pkt::Signature::type
    linkageType: ''
    returnType: Signature
    signature: "Signature *\nKeyStore::add_key_sig(const pgp::Fingerprint &   keyfp,\n
      \                     const pgp::pkt::Signature &sig,\n                      const
      pgp_userid_pkt_t *   uid,\n                      bool                       front)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::get_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:439,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:439,1
    - Dst: auto*::rawpkt_count
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:440,1
    - Dst: rnp::KeyStore::add_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:444,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:447,1
    - Dst: auto*::rawpkt_count
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:450,1
    - Dst: auto*::validated
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:451,1
    - Dst: auto*::revalidate
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:453,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:463,1
    - Dst: what
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:463,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - srckey
    - pubkey
    - status
    argTypes:
    - Key
    - bool
    - pgp_key_import_status_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 435
    functionDepth: 3
    functionLinenumber: 435
    functionLinenumberEnd: 468
    functionName: rnp::KeyStore::import_key
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - auto*::validated
    - rnp::KeyStore::get_key
    - Key::fp
    - rnp::KeyStore::add_key
    - auto*::rawpkt_count
    - auto*::revalidate
    linkageType: ''
    returnType: Key
    signature: 'Key *

      KeyStore::import_key(Key &srckey, bool pubkey, pgp_key_import_status_t *status)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:473,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:473,1
    - Dst: rnp::KeyStore::get_signer
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:476,1
    - Dst: Key::has_primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:477,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:478,1
    - Dst: auto*::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:481,1
    - Dst: Key::primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:481,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:482,1
    - Dst: Key::pkt
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:487,1
    - Dst: Key::add_sig
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:488,1
    - Dst: Key::refresh_data
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:489,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:490,1
    - Dst: Key::rawpkt_count
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:494,1
    - Dst: rnp::KeyStore::add_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:495,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:497,1
    - Dst: auto::rawpkt_count
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:500,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:504,1
    - Dst: what
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:504,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - key
    - sig
    argTypes:
    - Key
    - pgp::pkt::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 470
    functionDepth: 3
    functionLinenumber: 470
    functionLinenumberEnd: 508
    functionName: rnp::KeyStore::import_subkey_signature
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - Key::primary_fp
    - auto*::fp
    - Key::refresh_data
    - what
    - Key::has_primary_fp
    - auto::rawpkt_count
    - Key::add_sig
    - Key::rawpkt_count
    - rnp::KeyStore::get_signer
    - Key::pkt
    - rnp::KeyStore::add_key
    - pgp::pkt::Signature::type
    linkageType: ''
    returnType: pgp_sig_import_status_t
    signature: pgp_sig_import_status_t KeyStore::import_subkey_signature(Key &key,
      const pgp::pkt::Signature &sig)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Key::is_subkey
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:513,1
    - Dst: rnp::KeyStore::import_subkey_signature
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:514,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:516,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:516,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:517,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:517,1
    - Dst: Key::pkt
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:522,1
    - Dst: Key::add_sig
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:523,1
    - Dst: Key::refresh_data
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:524,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:525,1
    - Dst: Key::rawpkt_count
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:529,1
    - Dst: rnp::KeyStore::add_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:530,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:532,1
    - Dst: auto::rawpkt_count
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:535,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:539,1
    - Dst: what
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:539,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - key
    - sig
    argTypes:
    - Key
    - pgp::pkt::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 510
    functionDepth: 4
    functionLinenumber: 510
    functionLinenumberEnd: 543
    functionName: rnp::KeyStore::import_signature
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - Key::refresh_data
    - what
    - rnp::KeyStore::import_subkey_signature
    - Key::is_subkey
    - auto::rawpkt_count
    - Key::add_sig
    - Key::rawpkt_count
    - Key::pkt
    - rnp::KeyStore::add_key
    - pgp::pkt::Signature::type
    linkageType: ''
    returnType: pgp_sig_import_status_t
    signature: pgp_sig_import_status_t KeyStore::import_signature(Key &key, const
      pgp::pkt::Signature &sig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:555,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:555,1
    - Dst: rnp::KeyStore::get_signer
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:559,1
    - Dst: auto*::is_primary
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:560,1
    - Dst: rnp::KeyStore::import_signature
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:564,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - sig
    - status
    argTypes:
    - pgp::pkt::Signature
    - pgp_sig_import_status_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 545
    functionDepth: 1
    functionLinenumber: 545
    functionLinenumberEnd: 566
    functionName: rnp::KeyStore::import_signature
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 1
    functionsReached:
    - rnp::KeyStore::import_signature
    - rnp::KeyStore::get_signer
    - auto*::is_primary
    - pgp::pkt::Signature::type
    linkageType: ''
    returnType: Key
    signature: 'Key *

      KeyStore::import_signature(const pgp::pkt::Signature &sig, pgp_sig_import_status_t
      *status)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:571,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:571,1
    - Dst: end
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:572,1
    - Dst: Key::is_primary
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:577,1
    - Dst: Key::subkey_count
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:577,1
    - Dst: Key::subkey_count
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:578,1
    - Dst: find
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:579,1
    - Dst: Key::get_subkey_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:579,1
    - Dst: end
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:580,1
    - Dst: erase
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:585,1
    - Dst: erase
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:586,1
    - Dst: auto::second::unset_primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:589,1
    - Dst: Key::is_subkey
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:592,1
    - Dst: Key::has_primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:592,1
    - Dst: rnp::KeyStore::primary_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:593,1
    - Dst: auto*::remove_subkey_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:595,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:595,1
    - Dst: erase
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:599,1
    - Dst: erase
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:600,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 2
    argNames:
    - key
    - subkeys
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 568
    functionDepth: 1
    functionLinenumber: 568
    functionLinenumberEnd: 602
    functionName: rnp::KeyStore::remove_key
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 2
    functionsReached:
    - Key::is_primary
    - end
    - Key::fp
    - erase
    - Key::is_subkey
    - Key::has_primary_fp
    - rnp::KeyStore::primary_key
    - find
    - auto*::remove_subkey_fp
    - auto::second::unset_primary_fp
    - Key::get_subkey_fp
    - Key::subkey_count
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::remove_key(const Key &key, bool subkeys)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:607,1
    - Dst: end
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fpr
    argTypes:
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 612
    functionName: rnp::KeyStore::get_key
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 6
    functionsReached:
    - find
    - end
    linkageType: ''
    returnType: Key
    signature: 'Key *

      KeyStore::get_key(const pgp::Fingerprint &fpr) const'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:617,1
    - Dst: end
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fpr
    argTypes:
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 622
    functionName: rnp::KeyStore::get_key
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 6
    functionsReached:
    - find
    - end
    linkageType: ''
    returnType: Key
    signature: 'Key *

      KeyStore::get_key(const pgp::Fingerprint &fpr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Key::subkey_count
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:627,1
    - Dst: rnp::KeyStore::get_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:630,1
    - Dst: Key::get_subkey_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:630,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - key
    - idx
    argTypes:
    - Key
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 624
    functionDepth: 2
    functionLinenumber: 624
    functionLinenumberEnd: 631
    functionName: rnp::KeyStore::get_subkey
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 0
    functionsReached:
    - Key::get_subkey_fp
    - Key::subkey_count
    - rnp::KeyStore::get_key
    linkageType: ''
    returnType: Key
    signature: 'Key *

      KeyStore::get_subkey(const Key &key, size_t idx)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Key::is_subkey
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:636,1
    - Dst: Key::has_primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:640,1
    - Dst: rnp::KeyStore::get_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:641,1
    - Dst: Key::primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:641,1
    - Dst: Key*::is_primary
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:642,1
    - Dst: Key::sig_count
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:645,1
    - Dst: Key::get_sig
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:646,1
    - Dst: auto::sig::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:647,1
    - Dst: rnp::KeyStore::get_signer
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:651,1
    - Dst: Key*::is_primary
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:652,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - subkey
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 633
    functionDepth: 2
    functionLinenumber: 633
    functionLinenumberEnd: 657
    functionName: rnp::KeyStore::primary_key
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 3
    functionsReached:
    - Key::primary_fp
    - Key::get_sig
    - rnp::KeyStore::get_key
    - Key::is_subkey
    - Key::has_primary_fp
    - Key*::is_primary
    - Key::sig_count
    - rnp::KeyStore::get_signer
    - auto::sig::type
    linkageType: ''
    returnType: Key
    signature: 'Key *

      KeyStore::primary_key(const Key &subkey)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: KeySearch::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:663,1
    - Dst: dynamic_cast<const KeyFingerprintSearch *>
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:664,1
    - Dst: assert
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:665,1
    - Dst: rnp::KeyStore::get_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:666,1
    - Dst: auto::get_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:666,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:668,1
    - Dst: std::find_if
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:676,1
    - Dst: begin
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:677,1
    - Dst: end
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:677,1
    - Dst: end
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:678,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:679,1
    - Dst: std::next
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:683,1
    - Dst: std::find_if
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:686,1
    - Dst: end
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:686,1
    - Dst: KeySearch::matches
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:686,1
    - Dst: end
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:687,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - search
    - after
    argTypes:
    - KeySearch
    - Key*
    assertStmts:
    - condition: (fpsearch != nullptr)
      pos:
        line_end: 664
        line_start: 664
        source_file: /src/rnp/src/librekey/rnp_key_store.cpp
    constantsTouched: []
    func_position:
      end: 688
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 688
    functionName: rnp::KeyStore::search
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 0
    functionsReached:
    - KeySearch::type
    - RNP_LOG
    - KeySearch::matches
    - auto::get_fp
    - dynamic_cast<const KeyFingerprintSearch *>
    - end
    - rnp::KeyStore::get_key
    - std::next
    - assert
    - std::find_if
    - begin
    linkageType: ''
    returnType: Key
    signature: 'Key *

      KeyStore::search(const KeySearch &search, Key *after)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::has_keyfp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:695,1
    - Dst: rnp::KeySearch::create
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:696,1
    - Dst: pgp::pkt::Signature::keyfp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:696,1
    - Dst: pgp::pkt::Signature::has_keyid
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:697,1
    - Dst: rnp::KeySearch::create
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:698,1
    - Dst: pgp::pkt::Signature::keyid
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:698,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:700,1
    - Dst: rnp::KeyStore::search
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:704,1
    - Dst: KeyProvider*::request_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:708,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - sig
    - prov
    argTypes:
    - pgp::pkt::Signature
    - KeyProvider*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 690
    functionDepth: 3
    functionLinenumber: 690
    functionLinenumberEnd: 709
    functionName: rnp::KeyStore::get_signer
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - pgp::pkt::Signature::has_keyid
    - pgp::pkt::Signature::keyid
    - rnp::KeyStore::search
    - pgp::pkt::Signature::has_keyfp
    - pgp::pkt::Signature::keyfp
    - rnp::KeySearch::create
    - KeyProvider*::request_key
    linkageType: ''
    returnType: Key
    signature: 'Key *

      KeyStore::get_signer(const pgp::pkt::Signature &sig, const KeyProvider *prov)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:715,1
    - Dst: std::invalid_argument
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - _path
    - ctx
    - _format
    argTypes:
    - std::string
    - SecurityContext
    - KeyFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 720
    functionName: rnp::KeyStore::KeyStore
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 29
    functionsReached:
    - RNP_LOG
    - std::invalid_argument
    linkageType: ''
    returnType: void
    signature: void KeyStore::KeyStore(const std::string &_path, SecurityContext &ctx,
      KeyFormat _format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 725
    functionName: KeyStore::~KeyStore()
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void KeyStore::~KeyStore()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp_opendir
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:68,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:68,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:70,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:70,1
    - Dst: strerror
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:70,1
    - Dst: rnp_readdir_name
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:75,1
    - Dst: empty
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:75,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:76,1
    - Dst: init_file_src
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:78,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:78,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:79,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:79,1
    - Dst: rnp::KeyStore::load_g10
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:83,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:84,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:84,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:86,1
    - Dst: rnp_closedir
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:88,1
    - Dst: init_file_src
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:93,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:93,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:94,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:94,1
    - Dst: rnp::KeyStore::load
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:98,1
    - Dst: pgp_source_t::close
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:99,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 1
    argNames:
    - key_provider
    argTypes:
    - KeyProvider*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 62
    functionDepth: 8
    functionLinenumber: 62
    functionLinenumberEnd: 101
    functionName: rnp::KeyStore::load
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - rnp_closedir
    - pgp_source_t::close
    - rnp::path::append
    - std::string::c_str
    - strerror
    - init_file_src
    - rnp::KeyStore::load
    - rnp_opendir
    - c_str
    - rnp_readdir_name
    - empty
    - rnp::KeyStore::load_g10
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::load(const KeyProvider *key_provider)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::load_pgp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:108,1
    - Dst: rnp::KeyStore::load_kbx
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:110,1
    - Dst: rnp::KeyStore::load_g10
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:112,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:114,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 2
    argNames:
    - src
    - key_provider
    argTypes:
    - pgp_source_t
    - KeyProvider*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 103
    functionDepth: 8
    functionLinenumber: 103
    functionLinenumberEnd: 119
    functionName: rnp::KeyStore::load
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - rnp::KeyStore::load_pgp
    - static_cast<int>
    - rnp::KeyStore::load_kbx
    - rnp::KeyStore::load_g10
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::load(pgp_source_t &src, const KeyProvider *key_provider)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: rnp_stat
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:132,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:132,1
    - Dst: S_ISDIR
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:133,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:134,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:134,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:139,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:139,1
    - Dst: strerror
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:139,1
    - Dst: RNP_MKDIR
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:142,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:142,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:143,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:143,1
    - Dst: strerror
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:143,1
    - Dst: bin_to_hex
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:149,1
    - Dst: grip
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:149,1
    - Dst: grip
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:149,1
    - Dst: snprintf
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:150,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:150,1
    - Dst: auto::c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:150,1
    - Dst: init_tmpfile_dest
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:152,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:153,1
    - Dst: rnp_key_store_gnupg_sexp_to_dst
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:157,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:158,1
    - Dst: dst_close
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:159,1
    - Dst: dst_finish
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:163,1
    - Dst: dst_close
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:164,1
    - Dst: init_tmpfile_dest
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:175,1
    - Dst: c_str
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:175,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:176,1
    - Dst: rnp::KeyStore::write
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:180,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:181,1
    - Dst: dst_close
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:182,1
    - Dst: dst_finish
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:186,1
    - Dst: dst_close
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:187,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 121
    functionDepth: 4
    functionLinenumber: 121
    functionLinenumberEnd: 189
    functionName: rnp::KeyStore::write
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - auto::c_str
    - RNP_MKDIR
    - bin_to_hex
    - grip
    - strerror
    - S_ISDIR
    - init_tmpfile_dest
    - rnp_key_store_gnupg_sexp_to_dst
    - dst_close
    - dst_finish
    - rnp::KeyStore::write
    - rnp_stat
    - c_str
    - snprintf
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::write()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::write_pgp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:196,1
    - Dst: rnp::KeyStore::write_kbx
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:198,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:200,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 191
    functionDepth: 3
    functionLinenumber: 191
    functionLinenumberEnd: 205
    functionName: rnp::KeyStore::write
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 2
    functionsReached:
    - rnp::KeyStore::write_kbx
    - static_cast<int>
    - rnp::KeyStore::write_pgp
    - RNP_LOG
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::write(pgp_dest_t &dst)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::clear
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:210,1
    - Dst: rnp::KeyStore::clear
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:211,1
    - Dst: rnp::KeyStore::clear
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:212,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: rnp::KeyStore::clear
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 2
    functionsReached:
    - rnp::KeyStore::clear
    linkageType: ''
    returnType: void
    signature: void KeyStore::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:218,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 219
    functionName: rnp::KeyStore::key_count
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t KeyStore::key_count() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: Key::is_subkey
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:224,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:225,1
    - Dst: is_subkey
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:233,1
    - Dst: has_primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:233,1
    - Dst: sig_count
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:237,1
    - Dst: get_sig
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:238,1
    - Dst: auto::sig::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:240,1
    - Dst: auto::sig::has_keyfp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:243,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:243,1
    - Dst: auto::sig::keyfp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:243,1
    - Dst: auto::sig::has_keyid
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:247,1
    - Dst: Key::keyid
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:247,1
    - Dst: auto::sig::keyid
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:247,1
    - Dst: Key::link_subkey_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:255,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:258,1
    - Dst: what
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:258,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 31
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 266
    functionName: rnp::KeyStore::refresh_subkey_grips
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - auto::sig::has_keyfp
    - what
    - auto::sig::type
    - auto::sig::keyfp
    - get_sig
    - Key::is_subkey
    - Key::fp
    - Key::keyid
    - Key::link_subkey_fp
    - auto::sig::keyid
    - is_subkey
    - auto::sig::has_keyid
    - has_primary_fp
    - sig_count
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::refresh_subkey_grips(Key &key)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::primary_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:273,1
    - Dst: rnp::KeyStore::primary_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:276,1
    - Dst: Key::has_primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:281,1
    - Dst: Key*::has_primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:281,1
    - Dst: Key::primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:282,1
    - Dst: Key*::primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:282,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:283,1
    - Dst: rnp::KeyStore::get_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:284,1
    - Dst: Key::primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:284,1
    - Dst: auto*::remove_subkey_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:286,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:286,1
    - Dst: Key*::merge
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:290,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:291,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:292,1
    - Dst: emplace_back
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:297,1
    - Dst: back
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:298,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:299,1
    - Dst: std::prev
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:299,1
    - Dst: end
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:299,1
    - Dst: Key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:300,1
    - Dst: Key*::link_subkey_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:302,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:306,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:307,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:308,1
    - Dst: what
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:308,1
    - Dst: pop_back
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:310,1
    - Dst: erase
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:311,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:311,1
    - Dst: Key*::validated
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:319,1
    - Dst: Key*::validate_subkey
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:320,1
    - Dst: Key*::refresh_data
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:322,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:323,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:324,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 47
    argCount: 2
    argNames:
    - srckey
    - oldkey
    argTypes:
    - Key
    - Key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 327
    functionName: rnp::KeyStore::add_subkey
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 1
    functionsReached:
    - Key*::refresh_data
    - Key*::primary_fp
    - emplace_back
    - Key*::link_subkey_fp
    - Key
    - Key::has_primary_fp
    - rnp::KeyStore::get_key
    - Key::fp
    - erase
    - RNP_LOG_KEY
    - std::prev
    - rnp::KeyStore::primary_key
    - auto*::remove_subkey_fp
    - back
    - pop_back
    - RNP_LOG
    - Key::primary_fp
    - Key*::has_primary_fp
    - end
    - Key*::validated
    - Key*::validate_subkey
    - what
    - Key*::merge
    linkageType: ''
    returnType: Key
    signature: 'Key *

      KeyStore::add_subkey(Key &srckey, Key *oldkey)'
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:333,1
    - Dst: Key::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:333,1
    - Dst: Key::version
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:333,1
    - Dst: rnp::KeyStore::get_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:334,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:334,1
    - Dst: Key::is_subkey
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:340,1
    - Dst: rnp::KeyStore::add_subkey
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:341,1
    - Dst: auto*::merge
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:345,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:346,1
    - Dst: emplace_back
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:351,1
    - Dst: back
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:352,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:353,1
    - Dst: std::prev
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:353,1
    - Dst: end
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:353,1
    - Dst: Key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:354,1
    - Dst: rnp::KeyStore::refresh_subkey_grips
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:356,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:357,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:361,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:362,1
    - Dst: what
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:362,1
    - Dst: pop_back
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:364,1
    - Dst: erase
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:365,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:365,1
    - Dst: auto*::validated
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:373,1
    - Dst: auto*::revalidate
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:374,1
    - Dst: auto*::refresh_data
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:375,1
    - Dst: RNP_LOG_KEY
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:376,1
    - Dst: validate_desig_revokes
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:384,1
    - Dst: revalidate
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:385,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 1
    argNames:
    - srckey
    argTypes:
    - Key
    assertStmts:
    - condition: (srckey.type() && srckey.version())
      pos:
        line_end: 332
        line_start: 332
        source_file: /src/rnp/src/librekey/rnp_key_store.cpp
    constantsTouched: []
    func_position:
      end: 389
      start: 330
    functionDepth: 2
    functionLinenumber: 330
    functionLinenumberEnd: 389
    functionName: rnp::KeyStore::add_key
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 9
    functionsReached:
    - emplace_back
    - Key
    - rnp::KeyStore::get_key
    - Key::fp
    - erase
    - auto*::refresh_data
    - auto*::merge
    - RNP_LOG_KEY
    - std::prev
    - Key::is_subkey
    - back
    - pop_back
    - RNP_LOG
    - revalidate
    - rnp::KeyStore::refresh_subkey_grips
    - end
    - Key::version
    - rnp::KeyStore::add_subkey
    - validate_desig_revokes
    - assert
    - what
    - auto*::validated
    - Key::type
    - auto*::revalidate
    linkageType: ''
    returnType: Key
    signature: 'Key *

      KeyStore::add_key(Key &srckey)'
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::get_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:397,1
    - Dst: rnp::KeyStore::get_signer
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:403,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:404,1
    - Dst: auto*::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:406,1
    - Dst: auto*::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:406,1
    - Dst: auto*::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:409,1
    - Dst: auto*::primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:409,1
    - Dst: auto*::uid_idx
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:417,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:419,1
    - Dst: auto*::add_sig
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:423,1
    - Dst: auto*::validate_desig_revokes
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:425,1
    - Dst: auto*::is_primary
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:427,1
    - Dst: auto*::refresh_data
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:428,1
    - Dst: auto*::refresh_data
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:430,1
    - Dst: rnp::KeyStore::primary_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:430,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 30
    argCount: 4
    argNames:
    - '   keyfp'
    - sig
    - uid
    - front
    argTypes:
    - pgp::Fingerprint
    - pgp::pkt::Signature
    - pgp_userid_pkt_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 391
    functionDepth: 4
    functionLinenumber: 391
    functionLinenumberEnd: 433
    functionName: rnp::KeyStore::add_key_sig
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - auto*::fp
    - auto*::primary_fp
    - auto*::is_primary
    - auto*::uid_idx
    - auto*::validate_desig_revokes
    - rnp::KeyStore::get_key
    - rnp::KeyStore::primary_key
    - rnp::KeyStore::get_signer
    - auto*::refresh_data
    - auto*::add_sig
    - pgp::pkt::Signature::type
    linkageType: ''
    returnType: Signature
    signature: "Signature *\nKeyStore::add_key_sig(const pgp::Fingerprint &   keyfp,\n
      \                     const pgp::pkt::Signature &sig,\n                      const
      pgp_userid_pkt_t *   uid,\n                      bool                       front)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::get_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:439,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:439,1
    - Dst: auto*::rawpkt_count
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:440,1
    - Dst: rnp::KeyStore::add_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:444,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:447,1
    - Dst: auto*::rawpkt_count
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:450,1
    - Dst: auto*::validated
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:451,1
    - Dst: auto*::revalidate
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:453,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:463,1
    - Dst: what
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:463,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - srckey
    - pubkey
    - status
    argTypes:
    - Key
    - bool
    - pgp_key_import_status_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 468
      start: 435
    functionDepth: 3
    functionLinenumber: 435
    functionLinenumberEnd: 468
    functionName: rnp::KeyStore::import_key
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - auto*::validated
    - rnp::KeyStore::get_key
    - Key::fp
    - rnp::KeyStore::add_key
    - auto*::rawpkt_count
    - auto*::revalidate
    linkageType: ''
    returnType: Key
    signature: 'Key *

      KeyStore::import_key(Key &srckey, bool pubkey, pgp_key_import_status_t *status)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:473,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:473,1
    - Dst: rnp::KeyStore::get_signer
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:476,1
    - Dst: Key::has_primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:477,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:478,1
    - Dst: auto*::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:481,1
    - Dst: Key::primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:481,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:482,1
    - Dst: Key::pkt
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:487,1
    - Dst: Key::add_sig
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:488,1
    - Dst: Key::refresh_data
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:489,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:490,1
    - Dst: Key::rawpkt_count
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:494,1
    - Dst: rnp::KeyStore::add_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:495,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:497,1
    - Dst: auto::rawpkt_count
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:500,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:504,1
    - Dst: what
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:504,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - key
    - sig
    argTypes:
    - Key
    - pgp::pkt::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 470
    functionDepth: 4
    functionLinenumber: 470
    functionLinenumberEnd: 508
    functionName: rnp::KeyStore::import_subkey_signature
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - Key::primary_fp
    - auto*::fp
    - Key::refresh_data
    - what
    - Key::has_primary_fp
    - auto::rawpkt_count
    - Key::add_sig
    - Key::rawpkt_count
    - rnp::KeyStore::get_signer
    - Key::pkt
    - rnp::KeyStore::add_key
    - pgp::pkt::Signature::type
    linkageType: ''
    returnType: pgp_sig_import_status_t
    signature: pgp_sig_import_status_t KeyStore::import_subkey_signature(Key &key,
      const pgp::pkt::Signature &sig)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Key::is_subkey
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:513,1
    - Dst: rnp::KeyStore::import_subkey_signature
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:514,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:516,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:516,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:517,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:517,1
    - Dst: Key::pkt
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:522,1
    - Dst: Key::add_sig
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:523,1
    - Dst: Key::refresh_data
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:524,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:525,1
    - Dst: Key::rawpkt_count
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:529,1
    - Dst: rnp::KeyStore::add_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:530,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:532,1
    - Dst: auto::rawpkt_count
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:535,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:539,1
    - Dst: what
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:539,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 2
    argNames:
    - key
    - sig
    argTypes:
    - Key
    - pgp::pkt::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 543
      start: 510
    functionDepth: 4
    functionLinenumber: 510
    functionLinenumberEnd: 543
    functionName: rnp::KeyStore::import_signature
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - Key::refresh_data
    - what
    - rnp::KeyStore::import_subkey_signature
    - Key::is_subkey
    - auto::rawpkt_count
    - Key::add_sig
    - Key::rawpkt_count
    - Key::pkt
    - rnp::KeyStore::add_key
    - pgp::pkt::Signature::type
    linkageType: ''
    returnType: pgp_sig_import_status_t
    signature: pgp_sig_import_status_t KeyStore::import_signature(Key &key, const
      pgp::pkt::Signature &sig)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:555,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:555,1
    - Dst: rnp::KeyStore::get_signer
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:559,1
    - Dst: auto*::is_primary
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:560,1
    - Dst: rnp::KeyStore::import_signature
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:564,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - sig
    - status
    argTypes:
    - pgp::pkt::Signature
    - pgp_sig_import_status_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 566
      start: 545
    functionDepth: 4
    functionLinenumber: 545
    functionLinenumberEnd: 566
    functionName: rnp::KeyStore::import_signature
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 2
    functionsReached:
    - rnp::KeyStore::import_signature
    - rnp::KeyStore::get_signer
    - auto*::is_primary
    - pgp::pkt::Signature::type
    linkageType: ''
    returnType: Key
    signature: 'Key *

      KeyStore::import_signature(const pgp::pkt::Signature &sig, pgp_sig_import_status_t
      *status)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:571,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:571,1
    - Dst: end
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:572,1
    - Dst: Key::is_primary
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:577,1
    - Dst: Key::subkey_count
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:577,1
    - Dst: Key::subkey_count
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:578,1
    - Dst: find
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:579,1
    - Dst: Key::get_subkey_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:579,1
    - Dst: end
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:580,1
    - Dst: erase
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:585,1
    - Dst: erase
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:586,1
    - Dst: auto::second::unset_primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:589,1
    - Dst: Key::is_subkey
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:592,1
    - Dst: Key::has_primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:592,1
    - Dst: rnp::KeyStore::primary_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:593,1
    - Dst: auto*::remove_subkey_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:595,1
    - Dst: Key::fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:595,1
    - Dst: erase
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:599,1
    - Dst: erase
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:600,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 25
    argCount: 2
    argNames:
    - key
    - subkeys
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 568
    functionDepth: 3
    functionLinenumber: 568
    functionLinenumberEnd: 602
    functionName: rnp::KeyStore::remove_key
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 2
    functionsReached:
    - Key::is_primary
    - end
    - Key::fp
    - erase
    - Key::is_subkey
    - Key::has_primary_fp
    - rnp::KeyStore::primary_key
    - find
    - auto*::remove_subkey_fp
    - auto::second::unset_primary_fp
    - Key::get_subkey_fp
    - Key::subkey_count
    linkageType: ''
    returnType: bool
    signature: bool KeyStore::remove_key(const Key &key, bool subkeys)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:607,1
    - Dst: end
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:608,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fpr
    argTypes:
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 604
    functionDepth: 1
    functionLinenumber: 604
    functionLinenumberEnd: 612
    functionName: rnp::KeyStore::get_key
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 13
    functionsReached:
    - find
    - end
    linkageType: ''
    returnType: Key
    signature: 'Key *

      KeyStore::get_key(const pgp::Fingerprint &fpr) const'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:617,1
    - Dst: end
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - fpr
    argTypes:
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 614
    functionDepth: 1
    functionLinenumber: 614
    functionLinenumberEnd: 622
    functionName: rnp::KeyStore::get_key
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 13
    functionsReached:
    - find
    - end
    linkageType: ''
    returnType: Key
    signature: 'Key *

      KeyStore::get_key(const pgp::Fingerprint &fpr)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Key::subkey_count
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:627,1
    - Dst: rnp::KeyStore::get_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:630,1
    - Dst: Key::get_subkey_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:630,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - key
    - idx
    argTypes:
    - Key
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 624
    functionDepth: 2
    functionLinenumber: 624
    functionLinenumberEnd: 631
    functionName: rnp::KeyStore::get_subkey
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 0
    functionsReached:
    - Key::get_subkey_fp
    - Key::subkey_count
    - rnp::KeyStore::get_key
    linkageType: ''
    returnType: Key
    signature: 'Key *

      KeyStore::get_subkey(const Key &key, size_t idx)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Key::is_subkey
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:636,1
    - Dst: Key::has_primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:640,1
    - Dst: rnp::KeyStore::get_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:641,1
    - Dst: Key::primary_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:641,1
    - Dst: Key*::is_primary
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:642,1
    - Dst: Key::sig_count
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:645,1
    - Dst: Key::get_sig
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:646,1
    - Dst: auto::sig::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:647,1
    - Dst: rnp::KeyStore::get_signer
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:651,1
    - Dst: Key*::is_primary
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:652,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 16
    argCount: 1
    argNames:
    - subkey
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 633
    functionDepth: 4
    functionLinenumber: 633
    functionLinenumberEnd: 657
    functionName: rnp::KeyStore::primary_key
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 6
    functionsReached:
    - Key::primary_fp
    - Key::get_sig
    - rnp::KeyStore::get_key
    - Key::is_subkey
    - Key::has_primary_fp
    - Key*::is_primary
    - Key::sig_count
    - rnp::KeyStore::get_signer
    - auto::sig::type
    linkageType: ''
    returnType: Key
    signature: 'Key *

      KeyStore::primary_key(const Key &subkey)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: KeySearch::type
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:663,1
    - Dst: dynamic_cast<const KeyFingerprintSearch *>
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:664,1
    - Dst: assert
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:665,1
    - Dst: rnp::KeyStore::get_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:666,1
    - Dst: auto::get_fp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:666,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:668,1
    - Dst: std::find_if
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:676,1
    - Dst: begin
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:677,1
    - Dst: end
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:677,1
    - Dst: end
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:678,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:679,1
    - Dst: std::next
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:683,1
    - Dst: std::find_if
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:686,1
    - Dst: end
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:686,1
    - Dst: KeySearch::matches
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:686,1
    - Dst: end
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:687,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 2
    argNames:
    - search
    - after
    argTypes:
    - KeySearch
    - Key*
    assertStmts:
    - condition: (fpsearch != nullptr)
      pos:
        line_end: 664
        line_start: 664
        source_file: /src/rnp/src/librekey/rnp_key_store.cpp
    constantsTouched: []
    func_position:
      end: 688
      start: 659
    functionDepth: 2
    functionLinenumber: 659
    functionLinenumberEnd: 688
    functionName: rnp::KeyStore::search
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 1
    functionsReached:
    - KeySearch::type
    - RNP_LOG
    - KeySearch::matches
    - auto::get_fp
    - dynamic_cast<const KeyFingerprintSearch *>
    - end
    - rnp::KeyStore::get_key
    - std::next
    - assert
    - std::find_if
    - begin
    linkageType: ''
    returnType: Key
    signature: 'Key *

      KeyStore::search(const KeySearch &search, Key *after)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::has_keyfp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:695,1
    - Dst: rnp::KeySearch::create
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:696,1
    - Dst: pgp::pkt::Signature::keyfp
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:696,1
    - Dst: pgp::pkt::Signature::has_keyid
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:697,1
    - Dst: rnp::KeySearch::create
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:698,1
    - Dst: pgp::pkt::Signature::keyid
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:698,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:700,1
    - Dst: rnp::KeyStore::search
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:704,1
    - Dst: KeyProvider*::request_key
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:708,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - sig
    - prov
    argTypes:
    - pgp::pkt::Signature
    - KeyProvider*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 709
      start: 690
    functionDepth: 3
    functionLinenumber: 690
    functionLinenumberEnd: 709
    functionName: rnp::KeyStore::get_signer
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 8
    functionsReached:
    - RNP_LOG
    - pgp::pkt::Signature::has_keyid
    - pgp::pkt::Signature::keyid
    - rnp::KeyStore::search
    - pgp::pkt::Signature::has_keyfp
    - pgp::pkt::Signature::keyfp
    - rnp::KeySearch::create
    - KeyProvider*::request_key
    linkageType: ''
    returnType: Key
    signature: 'Key *

      KeyStore::get_signer(const pgp::pkt::Signature &sig, const KeyProvider *prov)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:715,1
    - Dst: std::invalid_argument
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:716,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - _path
    - ctx
    - _format
    argTypes:
    - std::string
    - SecurityContext
    - KeyFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 711
    functionDepth: 1
    functionLinenumber: 711
    functionLinenumberEnd: 720
    functionName: rnp::KeyStore::KeyStore
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 29
    functionsReached:
    - RNP_LOG
    - std::invalid_argument
    linkageType: ''
    returnType: void
    signature: void KeyStore::KeyStore(const std::string &_path, SecurityContext &ctx,
      KeyFormat _format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/librekey/rnp_key_store.cpp:724,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 725
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 725
    functionName: KeyStore::~KeyStore()
    functionSourceFile: /src/rnp/src/librekey/rnp_key_store.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void KeyStore::~KeyStore()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/librekey/g23_sexp.hpp:46,1
    - Dst: std::shared_ptr<sexp::sexp_string_t>
      Src: /src/rnp/src/librekey/g23_sexp.hpp:46,1
    - Dst: sexp::sexp_string_t::sexp_string_t
      Src: /src/rnp/src/librekey/g23_sexp.hpp:46,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 2
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: gnupg_sexp_t::add
    functionSourceFile: /src/rnp/src/librekey/g23_sexp.hpp
    functionUses: 2
    functionsReached:
    - std::shared_ptr<sexp::sexp_string_t>
    - sexp::sexp_string_t::sexp_string_t
    - push_back
    linkageType: ''
    returnType: void
    signature: void add(const std::string &str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/librekey/g23_sexp.hpp:51,1
    - Dst: std::shared_ptr<sexp::sexp_string_t>
      Src: /src/rnp/src/librekey/g23_sexp.hpp:51,1
    - Dst: sexp::sexp_string_t::sexp_string_t
      Src: /src/rnp/src/librekey/g23_sexp.hpp:51,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 2
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: gnupg_sexp_t::add
    functionSourceFile: /src/rnp/src/librekey/g23_sexp.hpp
    functionUses: 2
    functionsReached:
    - std::shared_ptr<sexp::sexp_string_t>
    - sexp::sexp_string_t::sexp_string_t
    - push_back
    linkageType: ''
    returnType: void
    signature: void add(const uint8_t *data, size_t size)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/rnp/src/rnp/fficli.cpp:88,1
    - Dst: setrlimit
      Src: /src/rnp/src/rnp/fficli.cpp:89,1
    - Dst: getrlimit
      Src: /src/rnp/src/rnp/fficli.cpp:92,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:94,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 103
    functionName: disable_core_dumps
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - getrlimit
    - ERR_MSG
    - setrlimit
    - memset
    linkageType: ''
    returnType: bool
    signature: bool disable_core_dumps(void)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: CommandLineToArgvW
      Src: /src/rnp/src/rnp/fficli.cpp:116,1
    - Dst: GetCommandLineW
      Src: /src/rnp/src/rnp/fficli.cpp:116,1
    - Dst: std::runtime_error
      Src: /src/rnp/src/rnp/fficli.cpp:118,1
    - Dst: std::vector::reserve
      Src: /src/rnp/src/rnp/fficli.cpp:123,1
    - Dst: wstr_to_utf8
      Src: /src/rnp/src/rnp/fficli.cpp:125,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/rnp/fficli.cpp:126,1
    - Dst: LocalFree
      Src: /src/rnp/src/rnp/fficli.cpp:128,1
    - Dst: LocalFree
      Src: /src/rnp/src/rnp/fficli.cpp:131,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 134
    functionName: get_utf8_args
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - std::runtime_error
    - std::vector::reserve
    - std::vector::push_back
    - LocalFree
    - wstr_to_utf8
    - CommandLineToArgvW
    - GetCommandLineW
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> get_utf8_args()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: free
      Src: /src/rnp/src/rnp/fficli.cpp:141,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 145
    functionName: rnp_win_clear_args
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - free
    linkageType: ''
    returnType: void
    signature: void rnp_win_clear_args(int argc, char **argv)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_utf8_args
      Src: /src/rnp/src/rnp/fficli.cpp:153,1
    - Dst: auto::size
      Src: /src/rnp/src/rnp/fficli.cpp:154,1
    - Dst: char::char
      Src: /src/rnp/src/rnp/fficli.cpp:156,1
    - Dst: std::bad_alloc
      Src: /src/rnp/src/rnp/fficli.cpp:158,1
    - Dst: strdup
      Src: /src/rnp/src/rnp/fficli.cpp:161,1
    - Dst: c_str
      Src: /src/rnp/src/rnp/fficli.cpp:161,1
    - Dst: std::bad_alloc
      Src: /src/rnp/src/rnp/fficli.cpp:163,1
    - Dst: rnp_win_clear_args
      Src: /src/rnp/src/rnp/fficli.cpp:171,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 178
    functionName: rnp_win_substitute_cmdline_args
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - auto::size
    - std::bad_alloc
    - get_utf8_args
    - strdup
    - rnp_win_clear_args
    - char::char
    - c_str
    linkageType: ''
    returnType: bool
    signature: bool rnp_win_substitute_cmdline_args(int *argc, char ***argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp_fdopen
      Src: /src/rnp/src/rnp/fficli.cpp:187,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:189,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - file
    - passfd
    argTypes:
    - FILE**
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 193
    functionName: set_pass_fd
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - ERR_MSG
    - rnp_fdopen
    linkageType: ''
    returnType: bool
    signature: bool set_pass_fd(FILE **file, int passfd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_gmtime
      Src: /src/rnp/src/rnp/fficli.cpp:199,1
    - Dst: snprintf
      Src: /src/rnp/src/rnp/fficli.cpp:200,1
    - Dst: rnp_y2k38_warning
      Src: /src/rnp/src/rnp/fficli.cpp:203,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - dest
    - size
    - t
    argTypes:
    - char*
    - size_t
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 208
    functionName: ptimestr
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - rnp_y2k38_warning
    - snprintf
    - rnp_gmtime
    linkageType: ''
    returnType: char
    signature: 'char *

      ptimestr(char *dest, size_t size, time_t t)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: va_start
      Src: /src/rnp/src/rnp/fficli.cpp:217,1
    - Dst: vfprintf
      Src: /src/rnp/src/rnp/fficli.cpp:218,1
    - Dst: va_end
      Src: /src/rnp/src/rnp/fficli.cpp:219,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:220,1
    - Dst: fflush
      Src: /src/rnp/src/rnp/fficli.cpp:221,1
    - Dst: fgets
      Src: /src/rnp/src/rnp/fficli.cpp:223,1
    - Dst: rnp::strip_eol
      Src: /src/rnp/src/rnp/fficli.cpp:227,1
    - Dst: strlen
      Src: /src/rnp/src/rnp/fficli.cpp:229,1
    - Dst: toupper
      Src: /src/rnp/src/rnp/fficli.cpp:230,1
    - Dst: toupper
      Src: /src/rnp/src/rnp/fficli.cpp:232,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:236,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 2
    argNames:
    - rnp
    - msg
    argTypes:
    - cli_rnp_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 243
    functionName: cli_rnp_get_confirmation
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - va_start
    - fgets
    - toupper
    - fprintf
    - fflush
    - vfprintf
    - va_end
    - strlen
    - rnp::strip_eol
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_get_confirmation(const cli_rnp_t *rnp, const char *msg,
      ...)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:248,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:248,1
    - Dst: fflush
      Src: /src/rnp/src/rnp/fficli.cpp:249,1
    - Dst: fgets
      Src: /src/rnp/src/rnp/fficli.cpp:253,1
    - Dst: string
      Src: /src/rnp/src/rnp/fficli.cpp:256,1
    - Dst: rnp::strip_eol
      Src: /src/rnp/src/rnp/fficli.cpp:257,1
    - Dst: std::move
      Src: /src/rnp/src/rnp/fficli.cpp:258,1
    - Dst: std::string::size
      Src: /src/rnp/src/rnp/fficli.cpp:261,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:262,1
    - Dst: fflush
      Src: /src/rnp/src/rnp/fficli.cpp:263,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - msg
    - res
    - rnp
    argTypes:
    - std::string
    - std::string
    - cli_rnp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 267
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 267
    functionName: rnp_ask_filename
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - fgets
    - fprintf
    - string
    - std::string::c_str
    - fflush
    - std::string::size
    - rnp::strip_eol
    - std::move
    linkageType: ''
    returnType: bool
    signature: bool rnp_ask_filename(const std::string &msg, std::string &res, cli_rnp_t
      &rnp)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:280,1
    - Dst: rnp_ask_filename
      Src: /src/rnp/src/rnp/fficli.cpp:281,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/rnp/fficli.cpp:286,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:286,1
    - Dst: std::move
      Src: /src/rnp/src/rnp/fficli.cpp:287,1
    - Dst: cli_rnp_t::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:290,1
    - Dst: cli_rnp_get_confirmation
      Src: /src/rnp/src/rnp/fficli.cpp:291,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:294,1
    - Dst: rnp_unlink
      Src: /src/rnp/src/rnp/fficli.cpp:295,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:295,1
    - Dst: std::move
      Src: /src/rnp/src/rnp/fficli.cpp:296,1
    - Dst: rnp_ask_filename
      Src: /src/rnp/src/rnp/fficli.cpp:300,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:303,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 3
    argNames:
    - path
    - res
    - rnp
    argTypes:
    - std::string
    - std::string
    - cli_rnp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 276
    functionDepth: 2
    functionLinenumber: 276
    functionLinenumberEnd: 307
    functionName: rnp_get_output_filename
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - cli_rnp_get_confirmation
    - std::string::c_str
    - cli_rnp_t::cfg
    - rnp_unlink
    - rnp_file_exists
    - rnp_ask_filename
    - std::string::empty
    - std::move
    linkageType: ''
    returnType: bool
    signature: bool rnp_get_output_filename(const std::string &path, std::string &res,
      cli_rnp_t &rnp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:328,1
    - Dst: fopen
      Src: /src/rnp/src/rnp/fficli.cpp:330,1
    - Dst: tcgetattr
      Src: /src/rnp/src/rnp/fficli.cpp:344,1
    - Dst: fileno
      Src: /src/rnp/src/rnp/fficli.cpp:344,1
    - Dst: tcsetattr
      Src: /src/rnp/src/rnp/fficli.cpp:348,1
    - Dst: fileno
      Src: /src/rnp/src/rnp/fficli.cpp:348,1
    - Dst: fputs
      Src: /src/rnp/src/rnp/fficli.cpp:352,1
    - Dst: fgets
      Src: /src/rnp/src/rnp/fficli.cpp:354,1
    - Dst: rnp::strip_eol
      Src: /src/rnp/src/rnp/fficli.cpp:358,1
    - Dst: tcsetattr
      Src: /src/rnp/src/rnp/fficli.cpp:363,1
    - Dst: fileno
      Src: /src/rnp/src/rnp/fficli.cpp:363,1
    - Dst: fclose
      Src: /src/rnp/src/rnp/fficli.cpp:367,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 4
    argNames:
    - prompt
    - buffer
    - size
    - rnp
    argTypes:
    - char*
    - char*
    - size_t
    - cli_rnp_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 370
    functionName: stdin_getpass
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - fgets
    - fopen
    - fclose
    - fputs
    - fileno
    - cli_rnp_t::cfg
    - tcgetattr
    - tcsetattr
    - rnp::strip_eol
    linkageType: ''
    returnType: bool
    signature: bool stdin_getpass(const char *prompt, char *buffer, size_t size, cli_rnp_t
      &rnp)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<cli_rnp_t *>
      Src: /src/rnp/src/rnp/fficli.cpp:390,1
    - Dst: strcmp
      Src: /src/rnp/src/rnp/fficli.cpp:396,1
    - Dst: strcmp
      Src: /src/rnp/src/rnp/fficli.cpp:398,1
    - Dst: strcmp
      Src: /src/rnp/src/rnp/fficli.cpp:400,1
    - Dst: strcmp
      Src: /src/rnp/src/rnp/fficli.cpp:402,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/rnp/fficli.cpp:407,1
    - Dst: snprintf
      Src: /src/rnp/src/rnp/fficli.cpp:408,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:409,1
    - Dst: rnp_key_is_primary
      Src: /src/rnp/src/rnp/fficli.cpp:410,1
    - Dst: rnp_key_get_primary_fprint
      Src: /src/rnp/src/rnp/fficli.cpp:415,1
    - Dst: cli_rnp_t*::reuse_primary_fprint::empty
      Src: /src/rnp/src/rnp/fficli.cpp:416,1
    - Dst: strncpy
      Src: /src/rnp/src/rnp/fficli.cpp:418,1
    - Dst: rnp_buffer_clear
      Src: /src/rnp/src/rnp/fficli.cpp:424,1
    - Dst: strnlen
      Src: /src/rnp/src/rnp/fficli.cpp:424,1
    - Dst: free
      Src: /src/rnp/src/rnp/fficli.cpp:425,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:427,1
    - Dst: calloc
      Src: /src/rnp/src/rnp/fficli.cpp:433,1
    - Dst: snprintf
      Src: /src/rnp/src/rnp/fficli.cpp:439,1
    - Dst: snprintf
      Src: /src/rnp/src/rnp/fficli.cpp:441,1
    - Dst: snprintf
      Src: /src/rnp/src/rnp/fficli.cpp:443,1
    - Dst: stdin_getpass
      Src: /src/rnp/src/rnp/fficli.cpp:446,1
    - Dst: snprintf
      Src: /src/rnp/src/rnp/fficli.cpp:451,1
    - Dst: snprintf
      Src: /src/rnp/src/rnp/fficli.cpp:453,1
    - Dst: stdin_getpass
      Src: /src/rnp/src/rnp/fficli.cpp:456,1
    - Dst: strcmp
      Src: /src/rnp/src/rnp/fficli.cpp:459,1
    - Dst: fputs
      Src: /src/rnp/src/rnp/fficli.cpp:460,1
    - Dst: strnlen
      Src: /src/rnp/src/rnp/fficli.cpp:464,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:464,1
    - Dst: cli_rnp_get_confirmation
      Src: /src/rnp/src/rnp/fficli.cpp:465,1
    - Dst: cli_rnp_get_confirmation
      Src: /src/rnp/src/rnp/fficli.cpp:472,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/rnp/fficli.cpp:475,1
    - Dst: rnp_key_get_fprint
      Src: /src/rnp/src/rnp/fficli.cpp:476,1
    - Dst: strdup
      Src: /src/rnp/src/rnp/fficli.cpp:478,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:479,1
    - Dst: fputs
      Src: /src/rnp/src/rnp/fficli.cpp:484,1
    - Dst: rnp_buffer_clear
      Src: /src/rnp/src/rnp/fficli.cpp:485,1
    - Dst: free
      Src: /src/rnp/src/rnp/fficli.cpp:486,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 94
    argCount: 6
    argNames:
    - ffi
    - app_ctx
    - key
    - pgp_context
    - buf
    - buf_len
    argTypes:
    - rnp_ffi_t
    - void*
    - rnp_key_handle_t
    - char*
    - char[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 488
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 488
    functionName: ffi_pass_callback_stdin
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - fputs
    - rnp_key_get_fprint
    - free
    - strncpy
    - rnp_key_get_keyid
    - stdin_getpass
    - rnp_key_get_subkey_count
    - rnp_key_is_primary
    - strnlen
    - snprintf
    - rnp_key_get_primary_fprint
    - strdup
    - cli_rnp_t*::cfg
    - static_cast<cli_rnp_t *>
    - cli_rnp_t*::reuse_primary_fprint::empty
    - cli_rnp_get_confirmation
    - rnp_buffer_clear
    - rnp_buffer_destroy
    - strcmp
    - calloc
    linkageType: ''
    returnType: bool
    signature: "bool ffi_pass_callback_stdin(rnp_ffi_t        ffi,\n                        void
      *           app_ctx,\n                        rnp_key_handle_t key,\n                        const
      char *     pgp_context,\n                        char             buf[],\n                        size_t
      \          buf_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/rnp/src/rnp/fficli.cpp:503,1
    - Dst: rnp::strip_eol
      Src: /src/rnp/src/rnp/fficli.cpp:506,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 6
    argNames:
    - ffi
    - app_ctx
    - key
    - pgp_context
    - buf
    - buf_len
    argTypes:
    - rnp_ffi_t
    - void*
    - rnp_key_handle_t
    - char*
    - char[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 490
    functionDepth: 0
    functionLinenumber: 490
    functionLinenumberEnd: 508
    functionName: ffi_pass_callback_file
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - fgets
    - rnp::strip_eol
    linkageType: ''
    returnType: bool
    signature: "bool ffi_pass_callback_file(rnp_ffi_t        ffi,\n                       void
      *           app_ctx,\n                       rnp_key_handle_t key,\n                       const
      char *     pgp_context,\n                       char             buf[],\n                       size_t
      \          buf_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/rnp/src/rnp/fficli.cpp:523,1
    - Dst: strncpy
      Src: /src/rnp/src/rnp/fficli.cpp:527,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 6
    argNames:
    - ffi
    - app_ctx
    - key
    - pgp_context
    - buf
    - buf_len
    argTypes:
    - rnp_ffi_t
    - void*
    - rnp_key_handle_t
    - char*
    - char[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 529
      start: 510
    functionDepth: 0
    functionLinenumber: 510
    functionLinenumberEnd: 529
    functionName: ffi_pass_callback_string
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - strncpy
    - strlen
    linkageType: ''
    returnType: bool
    signature: "bool ffi_pass_callback_string(rnp_ffi_t        ffi,\n                         void
      *           app_ctx,\n                         rnp_key_handle_t key,\n                         const
      char *     pgp_context,\n                         char             buf[],\n
      \                        size_t           buf_len)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<cli_rnp_t *>
      Src: /src/rnp/src/rnp/fficli.cpp:538,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/rnp/fficli.cpp:540,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/rnp/fficli.cpp:541,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:545,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 5
    argNames:
    - ffi
    - app_ctx
    - identifier_type
    - identifier
    - secret
    argTypes:
    - rnp_ffi_t
    - void*
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 531
    functionDepth: 1
    functionLinenumber: 531
    functionLinenumberEnd: 549
    functionName: ffi_key_callback
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - static_cast<cli_rnp_t *>
    - rnp::str_case_eq
    - ERR_MSG
    linkageType: ''
    returnType: void
    signature: "void ffi_key_callback(rnp_ffi_t   ffi,\n                 void *      app_ctx,\n
      \                const char *identifier_type,\n                 const char *identifier,\n
      \                bool        secret)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 5
    argNames:
    - expression
    - function
    - file
    - line
    - pReserved
    argTypes:
    - wchar_t*
    - wchar_t*
    - wchar_t*
    - unsigned int
    - uintptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 552
    functionDepth: 0
    functionLinenumber: 552
    functionLinenumberEnd: 560
    functionName: rnpffiInvalidParameterHandler
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void rnpffiInvalidParameterHandler(const wchar_t *expression,\n                              const
      wchar_t *function,\n                              const wchar_t *file,\n                              unsigned
      int   line,\n                              uintptr_t      pReserved)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t::end
      Src: /src/rnp/src/rnp/fficli.cpp:565,1
    - Dst: rnp_win_clear_args
      Src: /src/rnp/src/rnp/fficli.cpp:568,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 571
      start: 563
    functionDepth: 1
    functionLinenumber: 563
    functionLinenumberEnd: 571
    functionName: cli_rnp_t::~cli_rnp_t()
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - rnp_win_clear_args
    - cli_rnp_t::end
    linkageType: ''
    returnType: void
    signature: void cli_rnp_t::~cli_rnp_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - success
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 577
      start: 573
    functionDepth: 0
    functionLinenumber: 573
    functionLinenumberEnd: 577
    functionName: cli_rnp_t::ret_code
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int cli_rnp_t::ret_code(bool success)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_win_substitute_cmdline_args
      Src: /src/rnp/src/rnp/fficli.cpp:583,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int*
    - char***
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 586
      start: 580
    functionDepth: 3
    functionLinenumber: 580
    functionLinenumberEnd: 586
    functionName: cli_rnp_t::substitute_args
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - rnp_win_substitute_cmdline_args
    linkageType: ''
    returnType: void
    signature: void cli_rnp_t::substitute_args(int *argc, char ***argv)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: copy
      Src: /src/rnp/src/rnp/fficli.cpp:592,1
    - Dst: get_bool
      Src: /src/rnp/src/rnp/fficli.cpp:595,1
    - Dst: isatty
      Src: /src/rnp/src/rnp/fficli.cpp:596,1
    - Dst: fileno
      Src: /src/rnp/src/rnp/fficli.cpp:596,1
    - Dst: fopen
      Src: /src/rnp/src/rnp/fficli.cpp:596,1
    - Dst: isatty
      Src: /src/rnp/src/rnp/fficli.cpp:598,1
    - Dst: fileno
      Src: /src/rnp/src/rnp/fficli.cpp:598,1
    - Dst: fopen
      Src: /src/rnp/src/rnp/fficli.cpp:598,1
    - Dst: get_bool
      Src: /src/rnp/src/rnp/fficli.cpp:610,1
    - Dst: disable_core_dumps
      Src: /src/rnp/src/rnp/fficli.cpp:612,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:617,1
    - Dst: _set_invalid_parameter_handler
      Src: /src/rnp/src/rnp/fficli.cpp:624,1
    - Dst: _CrtSetReportMode
      Src: /src/rnp/src/rnp/fficli.cpp:625,1
    - Dst: get_str
      Src: /src/rnp/src/rnp/fficli.cpp:630,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:631,1
    - Dst: rnp_fopen
      Src: /src/rnp/src/rnp/fficli.cpp:635,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:635,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:636,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:636,1
    - Dst: pubformat
      Src: /src/rnp/src/rnp/fficli.cpp:641,1
    - Dst: secformat
      Src: /src/rnp/src/rnp/fficli.cpp:642,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:643,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:643,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:644,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/rnp/fficli.cpp:647,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:647,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:647,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:648,1
    - Dst: has
      Src: /src/rnp/src/rnp/fficli.cpp:652,1
    - Dst: time
      Src: /src/rnp/src/rnp/fficli.cpp:653,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/rnp/fficli.cpp:656,1
    - Dst: rnp_add_security_rule
      Src: /src/rnp/src/rnp/fficli.cpp:657,1
    - Dst: has
      Src: /src/rnp/src/rnp/fficli.cpp:665,1
    - Dst: time
      Src: /src/rnp/src/rnp/fficli.cpp:666,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/rnp/fficli.cpp:669,1
    - Dst: rnp_add_security_rule
      Src: /src/rnp/src/rnp/fficli.cpp:670,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/rnp/fficli.cpp:676,1
    - Dst: rnp_add_security_rule
      Src: /src/rnp/src/rnp/fficli.cpp:678,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/rnp/fficli.cpp:684,1
    - Dst: rnp_add_security_rule
      Src: /src/rnp/src/rnp/fficli.cpp:685,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/rnp/fficli.cpp:691,1
    - Dst: rnp_add_security_rule
      Src: /src/rnp/src/rnp/fficli.cpp:692,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/rnp/fficli.cpp:701,1
    - Dst: rnp_ffi_set_key_provider
      Src: /src/rnp/src/rnp/fficli.cpp:706,1
    - Dst: get_int
      Src: /src/rnp/src/rnp/fficli.cpp:711,1
    - Dst: set_pass_fd
      Src: /src/rnp/src/rnp/fficli.cpp:712,1
    - Dst: get_int
      Src: /src/rnp/src/rnp/fficli.cpp:712,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/rnp/fficli.cpp:715,1
    - Dst: has
      Src: /src/rnp/src/rnp/fficli.cpp:720,1
    - Dst: rnp_set_timestamp
      Src: /src/rnp/src/rnp/fficli.cpp:721,1
    - Dst: time
      Src: /src/rnp/src/rnp/fficli.cpp:721,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:727,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 81
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - rnp_cfg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 731
      start: 589
    functionDepth: 2
    functionLinenumber: 589
    functionLinenumberEnd: 731
    functionName: cli_rnp_t::init
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 2
    functionsReached:
    - fileno
    - secformat
    - rnp_ffi_set_pass_provider
    - rnp_set_timestamp
    - rnp_fopen
    - rnp_add_security_rule
    - _CrtSetReportMode
    - ERR_MSG
    - isatty
    - fopen
    - pubformat
    - rnp_ffi_set_key_provider
    - set_pass_fd
    - rnp_ffi_destroy
    - std::string::c_str
    - has
    - get_str
    - time
    - rnp_ffi_create
    - std::string::empty
    - rnp_get_security_rule
    - copy
    - _set_invalid_parameter_handler
    - get_bool
    - get_int
    - disable_core_dumps
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_t::init(const rnp_cfg &cfg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: fclose
      Src: /src/rnp/src/rnp/fficli.cpp:737,1
    - Dst: fclose
      Src: /src/rnp/src/rnp/fficli.cpp:741,1
    - Dst: fclose
      Src: /src/rnp/src/rnp/fficli.cpp:745,1
    - Dst: fclose
      Src: /src/rnp/src/rnp/fficli.cpp:749,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:752,1
    - Dst: clear
      Src: /src/rnp/src/rnp/fficli.cpp:754,1
    - Dst: clear
      Src: /src/rnp/src/rnp/fficli.cpp:755,1
    - Dst: rnp_buffer_clear
      Src: /src/rnp/src/rnp/fficli.cpp:757,1
    - Dst: strlen
      Src: /src/rnp/src/rnp/fficli.cpp:757,1
    - Dst: free
      Src: /src/rnp/src/rnp/fficli.cpp:758,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 733
    functionDepth: 1
    functionLinenumber: 733
    functionLinenumberEnd: 762
    functionName: cli_rnp_t::end
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 20
    functionsReached:
    - rnp_buffer_clear
    - fclose
    - rnp_ffi_destroy
    - strlen
    - free
    - clear
    linkageType: ''
    returnType: void
    signature: void cli_rnp_t::end()
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: secpath
      Src: /src/rnp/src/rnp/fficli.cpp:767,1
    - Dst: pubpath
      Src: /src/rnp/src/rnp/fficli.cpp:767,1
    - Dst: secformat
      Src: /src/rnp/src/rnp/fficli.cpp:768,1
    - Dst: rnp::path::exists
      Src: /src/rnp/src/rnp/fficli.cpp:769,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/rnp/fficli.cpp:774,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:774,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:775,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:775,1
    - Dst: secformat
      Src: /src/rnp/src/rnp/fficli.cpp:779,1
    - Dst: pubformat
      Src: /src/rnp/src/rnp/fficli.cpp:779,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/rnp/fficli.cpp:781,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:783,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:783,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:785,1
    - Dst: rnp_get_secret_key_count
      Src: /src/rnp/src/rnp/fficli.cpp:793,1
    - Dst: rnp_get_public_key_count
      Src: /src/rnp/src/rnp/fficli.cpp:795,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:798,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:798,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 1
    argNames:
    - secret
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 801
      start: 764
    functionDepth: 1
    functionLinenumber: 764
    functionLinenumberEnd: 801
    functionName: cli_rnp_t::load_keyring
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - rnp::path::exists
    - rnp_input_from_path
    - rnp_input_destroy
    - pubformat
    - rnp_get_public_key_count
    - std::string::c_str
    - secformat
    - rnp_load_keys
    - rnp_get_secret_key_count
    - pubpath
    - secpath
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_t::load_keyring(bool secret)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/rnp/fficli.cpp:807,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:808,1
    - Dst: cli_rnp_t::load_keyring
      Src: /src/rnp/src/rnp/fficli.cpp:812,1
    - Dst: rnp_unload_keys
      Src: /src/rnp/src/rnp/fficli.cpp:818,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:819,1
    - Dst: cli_rnp_t::load_keyring
      Src: /src/rnp/src/rnp/fficli.cpp:823,1
    - Dst: defkey
      Src: /src/rnp/src/rnp/fficli.cpp:827,1
    - Dst: cli_rnp_t::set_defkey
      Src: /src/rnp/src/rnp/fficli.cpp:828,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - loadsecret
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 831
      start: 803
    functionDepth: 2
    functionLinenumber: 803
    functionLinenumberEnd: 831
    functionName: cli_rnp_t::load_keyrings
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 11
    functionsReached:
    - defkey
    - rnp_unload_keys
    - cli_rnp_t::load_keyring
    - cli_rnp_t::set_defkey
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_t::load_keyrings(bool loadsecret)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: unset
      Src: /src/rnp/src/rnp/fficli.cpp:836,1
    - Dst: rnpffi::FFI::iterator_create
      Src: /src/rnp/src/rnp/fficli.cpp:839,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:841,1
    - Dst: auto::next
      Src: /src/rnp/src/rnp/fficli.cpp:846,1
    - Dst: rnpffi::FFI::locate_key
      Src: /src/rnp/src/rnp/fficli.cpp:847,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:849,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:849,1
    - Dst: auto::is_primary
      Src: /src/rnp/src/rnp/fficli.cpp:852,1
    - Dst: auto::secret
      Src: /src/rnp/src/rnp/fficli.cpp:855,1
    - Dst: has
      Src: /src/rnp/src/rnp/fficli.cpp:856,1
    - Dst: set_str
      Src: /src/rnp/src/rnp/fficli.cpp:857,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 864
      start: 833
    functionDepth: 1
    functionLinenumber: 833
    functionLinenumberEnd: 864
    functionName: cli_rnp_t::set_defkey
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 1
    functionsReached:
    - std::string::c_str
    - has
    - rnpffi::FFI::iterator_create
    - auto::secret
    - auto::is_primary
    - unset
    - set_str
    - auto::next
    - rnpffi::FFI::locate_key
    - ERR_MSG
    linkageType: ''
    returnType: void
    signature: void cli_rnp_t::set_defkey()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnpffi::Key::is_primary
      Src: /src/rnp/src/rnp/fficli.cpp:870,1
    - Dst: strcmp
      Src: /src/rnp/src/rnp/fficli.cpp:873,1
    - Dst: rnpffi::Key::alg
      Src: /src/rnp/src/rnp/fficli.cpp:873,1
    - Dst: strcmp
      Src: /src/rnp/src/rnp/fficli.cpp:876,1
    - Dst: rnpffi::Key::curve
      Src: /src/rnp/src/rnp/fficli.cpp:876,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:878,1
    - Dst: func
      Src: /src/rnp/src/rnp/fficli.cpp:878,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - key
    argTypes:
    - rnpffi::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 881
      start: 866
    functionDepth: 1
    functionLinenumber: 866
    functionLinenumberEnd: 881
    functionName: cli_rnp_t::is_cv25519_subkey
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - rnpffi::Key::is_primary
    - func
    - rnpffi::Key::alg
    - strcmp
    - ERR_MSG
    - rnpffi::Key::curve
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_t::is_cv25519_subkey(rnpffi::Key &key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnpffi::Key::is_protected
      Src: /src/rnp/src/rnp/fficli.cpp:890,1
    - Dst: rnpffi::Key::protection_hash
      Src: /src/rnp/src/rnp/fficli.cpp:896,1
    - Dst: rnpffi::Key::protection_cipher
      Src: /src/rnp/src/rnp/fficli.cpp:897,1
    - Dst: rnpffi::Key::protection_iterations
      Src: /src/rnp/src/rnp/fficli.cpp:898,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:901,1
    - Dst: func
      Src: /src/rnp/src/rnp/fficli.cpp:901,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 4
    argNames:
    - key
    - hash
    - cipher
    - '     iterations'
    argTypes:
    - rnpffi::Key
    - std::string
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 883
    functionDepth: 1
    functionLinenumber: 883
    functionLinenumberEnd: 904
    functionName: cli_rnp_t::get_protection
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - func
    - rnpffi::Key::protection_hash
    - rnpffi::Key::is_protected
    - rnpffi::Key::protection_iterations
    - rnpffi::Key::protection_cipher
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: "bool cli_rnp_t::get_protection(rnpffi::Key &key,\n                          std::string
      &hash,\n                          std::string &cipher,\n                          size_t
      &     iterations)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnpffi::String::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:910,1
    - Dst: rnpffi::Key::unlock
      Src: /src/rnp/src/rnp/fficli.cpp:910,1
    - Dst: rnpffi::String::str
      Src: /src/rnp/src/rnp/fficli.cpp:910,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:911,1
    - Dst: rnpffi::Key::is_25519_bits_tweaked
      Src: /src/rnp/src/rnp/fficli.cpp:916,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:919,1
    - Dst: rnpffi::String::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:921,1
    - Dst: rnpffi::Key::lock
      Src: /src/rnp/src/rnp/fficli.cpp:922,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 3
    argNames:
    - key
    - prot_password
    - tweaked
    argTypes:
    - rnpffi::Key
    - rnpffi::String
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 906
    functionDepth: 1
    functionLinenumber: 906
    functionLinenumberEnd: 925
    functionName: cli_rnp_t::check_cv25519_bits
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - rnpffi::String::c_str
    - rnpffi::String::str
    - rnpffi::Key::is_25519_bits_tweaked
    - rnpffi::Key::unlock
    - rnpffi::Key::lock
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_t::check_cv25519_bits(rnpffi::Key &key, rnpffi::String
      &prot_password, bool &tweaked)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t::key_matching
      Src: /src/rnp/src/rnp/fficli.cpp:931,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:933,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:933,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:937,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:939,1
    - Dst: cli_rnp_print_key_info
      Src: /src/rnp/src/rnp/fficli.cpp:942,1
    - Dst: auto::handle
      Src: /src/rnp/src/rnp/fficli.cpp:942,1
    - Dst: cli_rnp_t::is_cv25519_subkey
      Src: /src/rnp/src/rnp/fficli.cpp:943,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:944,1
    - Dst: cli_rnp_t::get_protection
      Src: /src/rnp/src/rnp/fficli.cpp:951,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:957,1
    - Dst: rnpffi::FFI::request_password
      Src: /src/rnp/src/rnp/fficli.cpp:957,1
    - Dst: rnpffi::String::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:958,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:959,1
    - Dst: cli_rnp_t::check_cv25519_bits
      Src: /src/rnp/src/rnp/fficli.cpp:964,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:969,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:976,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:981,1
    - Dst: auto::unprotect
      Src: /src/rnp/src/rnp/fficli.cpp:982,1
    - Dst: rnpffi::String::str
      Src: /src/rnp/src/rnp/fficli.cpp:982,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:983,1
    - Dst: auto::unlock
      Src: /src/rnp/src/rnp/fficli.cpp:986,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:987,1
    - Dst: auto::do_25519_bits_tweak
      Src: /src/rnp/src/rnp/fficli.cpp:993,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:994,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:998,1
    - Dst: auto::protect
      Src: /src/rnp/src/rnp/fficli.cpp:999,1
    - Dst: rnpffi::String::str
      Src: /src/rnp/src/rnp/fficli.cpp:999,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1000,1
    - Dst: cli_rnp_save_keyrings
      Src: /src/rnp/src/rnp/fficli.cpp:1004,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 51
    argCount: 2
    argNames:
    - str
    - checkonly
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1005
      start: 927
    functionDepth: 2
    functionLinenumber: 927
    functionLinenumberEnd: 1005
    functionName: cli_rnp_t::fix_cv25519_subkey
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - auto::protect
    - cli_rnp_t::key_matching
    - auto::handle
    - rnpffi::String::c_str
    - cli_rnp_t::get_protection
    - auto::unprotect
    - rnpffi::String::str
    - auto::do_25519_bits_tweak
    - cli_rnp_save_keyrings
    - fprintf
    - std::string::c_str
    - cli_rnp_t::is_cv25519_subkey
    - rnpffi::FFI::request_password
    - cli_rnp_t::check_cv25519_bits
    - auto::unlock
    - std::string::empty
    - cli_rnp_print_key_info
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_t::fix_cv25519_subkey(const std::string &str, bool checkonly)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t::keys_matching
      Src: /src/rnp/src/rnp/fficli.cpp:1011,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1012,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1012,1
    - Dst: std::vector::size
      Src: /src/rnp/src/rnp/fficli.cpp:1017,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1018,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1018,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:1021,1
    - Dst: rnp_key_set_expiration
      Src: /src/rnp/src/rnp/fficli.cpp:1022,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1023,1
    - Dst: cli_rnp_save_keyrings
      Src: /src/rnp/src/rnp/fficli.cpp:1026,1
    - Dst: cli_rnp_print_key_info
      Src: /src/rnp/src/rnp/fficli.cpp:1029,1
    - Dst: clear_key_handles
      Src: /src/rnp/src/rnp/fficli.cpp:1031,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1007
    functionDepth: 1
    functionLinenumber: 1007
    functionLinenumberEnd: 1033
    functionName: cli_rnp_t::set_key_expire
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - cfg
    - cli_rnp_save_keyrings
    - clear_key_handles
    - rnp_key_set_expiration
    - std::string::c_str
    - cli_rnp_t::keys_matching
    - std::vector::size
    - cli_rnp_print_key_info
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_t::set_key_expire(const std::string &key)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:1038,1
    - Dst: cli_rnp_set_generate_params
      Src: /src/rnp/src/rnp/fficli.cpp:1039,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1040,1
    - Dst: cli_rnp_t::keys_matching
      Src: /src/rnp/src/rnp/fficli.cpp:1044,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1045,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1045,1
    - Dst: std::vector::size
      Src: /src/rnp/src/rnp/fficli.cpp:1053,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1054,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1054,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/rnp/fficli.cpp:1057,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:1058,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1059,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:1062,1
    - Dst: rnp_op_generate_set_bits
      Src: /src/rnp/src/rnp/fficli.cpp:1063,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:1063,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1064,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:1067,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/rnp/fficli.cpp:1068,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:1068,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1069,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:1072,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:1074,1
    - Dst: rnp_op_generate_set_expiration
      Src: /src/rnp/src/rnp/fficli.cpp:1075,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1076,1
    - Dst: rnp_op_generate_set_hash
      Src: /src/rnp/src/rnp/fficli.cpp:1081,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:1081,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1082,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/rnp/fficli.cpp:1085,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/rnp/fficli.cpp:1085,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1086,1
    - Dst: rnp_request_password
      Src: /src/rnp/src/rnp/fficli.cpp:1089,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1090,1
    - Dst: rnp_key_protect
      Src: /src/rnp/src/rnp/fficli.cpp:1094,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:1096,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:1098,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:1099,1
    - Dst: rnp_buffer_clear
      Src: /src/rnp/src/rnp/fficli.cpp:1100,1
    - Dst: strlen
      Src: /src/rnp/src/rnp/fficli.cpp:1100,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:1101,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1103,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:1107,1
    - Dst: cli_rnp_save_keyrings
      Src: /src/rnp/src/rnp/fficli.cpp:1109,1
    - Dst: cli_rnp_print_key_info
      Src: /src/rnp/src/rnp/fficli.cpp:1112,1
    - Dst: cli_rnp_print_key_info
      Src: /src/rnp/src/rnp/fficli.cpp:1114,1
    - Dst: clear_key_handles
      Src: /src/rnp/src/rnp/fficli.cpp:1117,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:1118,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:1119,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 75
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1121
    functionName: cli_rnp_t::add_new_subkey
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - rnp_op_generate_execute
    - clear_key_handles
    - cli_rnp_set_generate_params
    - strlen
    - rnp_request_password
    - rnp_key_protect
    - cfg
    - rnp_op_generate_set_bits
    - rnp_op_generate_get_key
    - rnp_key_handle_destroy
    - cli_rnp_t::keys_matching
    - rnp_op_generate_set_hash
    - ERR_MSG
    - std::string::c_str
    - rnp_op_generate_set_expiration
    - rnp_op_generate_subkey_create
    - std::vector::size
    - cli_rnp_save_keyrings
    - rnp_buffer_clear
    - rnp_buffer_destroy
    - rnp_op_generate_set_curve
    - rnp_op_generate_destroy
    - cli_rnp_print_key_info
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_t::add_new_subkey(const std::string &key)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:1128,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:1131,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:1134,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:1137,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1142,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1146,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:1150,1
    - Dst: cli_rnp_t::fix_cv25519_subkey
      Src: /src/rnp/src/rnp/fficli.cpp:1151,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:1153,1
    - Dst: cli_rnp_t::fix_cv25519_subkey
      Src: /src/rnp/src/rnp/fficli.cpp:1154,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:1157,1
    - Dst: cli_rnp_t::add_new_subkey
      Src: /src/rnp/src/rnp/fficli.cpp:1158,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:1161,1
    - Dst: cli_rnp_t::set_key_expire
      Src: /src/rnp/src/rnp/fficli.cpp:1162,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 34
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1166
      start: 1123
    functionDepth: 3
    functionLinenumber: 1123
    functionLinenumberEnd: 1166
    functionName: cli_rnp_t::edit_key
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - cfg
    - cli_rnp_t::fix_cv25519_subkey
    - cli_rnp_t::add_new_subkey
    - cli_rnp_t::set_key_expire
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_t::edit_key(const std::string &key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/rnp/fficli.cpp:1171,1
    - Dst: is_string
      Src: /src/rnp/src/rnp/fficli.cpp:1171,1
    - Dst: get_ptr
      Src: /src/rnp/src/rnp/fficli.cpp:1174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - obj
    - key
    argTypes:
    - nlohmann::ordered_json
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1175
      start: 1168
    functionDepth: 1
    functionLinenumber: 1168
    functionLinenumberEnd: 1175
    functionName: json_obj_get_str
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - nlohmann::ordered_json::contains
    - get_ptr
    - is_string
    linkageType: ''
    returnType: char
    signature: 'char *

      json_obj_get_str(const nlohmann::ordered_json &obj, const char *key)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/rnp/fficli.cpp:1183,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/rnp/fficli.cpp:1187,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/rnp/fficli.cpp:1191,1
    - Dst: rnp_key_allows_usage
      Src: /src/rnp/src/rnp/fficli.cpp:1195,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 18
    argCount: 2
    argNames:
    - key
    - buf
    argTypes:
    - rnp_key_handle_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1177
    functionDepth: 0
    functionLinenumber: 1177
    functionLinenumberEnd: 1200
    functionName: cli_key_usage_str
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - rnp_key_allows_usage
    linkageType: ''
    returnType: char
    signature: 'char *

      cli_key_usage_str(rnp_key_handle_t key, char *buf)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::length
      Src: /src/rnp/src/rnp/fficli.cpp:1215,1
    - Dst: std::string::erase
      Src: /src/rnp/src/rnp/fficli.cpp:1218,1
    - Dst: std::string::find_last_not_of
      Src: /src/rnp/src/rnp/fficli.cpp:1218,1
    - Dst: std::string::reserve
      Src: /src/rnp/src/rnp/fficli.cpp:1219,1
    - Dst: std::string::append
      Src: /src/rnp/src/rnp/fficli.cpp:1223,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/rnp/fficli.cpp:1225,1
    - Dst: std::string::length
      Src: /src/rnp/src/rnp/fficli.cpp:1229,1
    - Dst: std::string::append
      Src: /src/rnp/src/rnp/fficli.cpp:1230,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - src
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1233
      start: 1202
    functionDepth: 1
    functionLinenumber: 1202
    functionLinenumberEnd: 1233
    functionName: cli_rnp_escape_string
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - std::string::length
    - std::string::erase
    - std::string::find_last_not_of
    - std::string::append
    - std::string::reserve
    - std::string::push_back
    linkageType: ''
    returnType: std::string
    signature: std::string cli_rnp_escape_string(const std::string &src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/rnp/fficli.cpp:1247,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/rnp/fficli.cpp:1249,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - alg
    argTypes:
    - std::string
    assertStmts:
    - condition: ((count % 2) == 0)
      pos:
        line_end: 1246
        line_start: 1246
        source_file: /src/rnp/src/rnp/fficli.cpp
    constantsTouched: []
    func_position:
      end: 1254
      start: 1243
    functionDepth: 1
    functionLinenumber: 1243
    functionLinenumberEnd: 1254
    functionName: cli_rnp_alg_to_ffi
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - assert
    - rnp::str_case_eq
    linkageType: ''
    returnType: std::string
    signature: std::string cli_rnp_alg_to_ffi(const std::string &alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_alg_to_ffi
      Src: /src/rnp/src/rnp/fficli.cpp:1260,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/rnp/fficli.cpp:1261,1
    - Dst: auto::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1261,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1262,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1262,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/fficli.cpp:1265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cfg
    - hash
    argTypes:
    - rnp_cfg
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1256
    functionDepth: 2
    functionLinenumber: 1256
    functionLinenumberEnd: 1267
    functionName: cli_rnp_set_hash
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - auto::c_str
    - cli_rnp_alg_to_ffi
    - std::string::c_str
    - rnp_supports_feature
    - rnp_cfg::set_str
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_set_hash(rnp_cfg &cfg, const std::string &hash)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_alg_to_ffi
      Src: /src/rnp/src/rnp/fficli.cpp:1273,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/rnp/fficli.cpp:1274,1
    - Dst: auto::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1274,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1275,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1275,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/fficli.cpp:1278,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - cfg
    - cipher
    argTypes:
    - rnp_cfg
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1280
      start: 1269
    functionDepth: 2
    functionLinenumber: 1269
    functionLinenumberEnd: 1280
    functionName: cli_rnp_set_cipher
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - auto::c_str
    - cli_rnp_alg_to_ffi
    - std::string::c_str
    - rnp_supports_feature
    - rnp_cfg::set_str
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_set_cipher(rnp_cfg &cfg, const std::string &cipher)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::string::reserve
      Src: /src/rnp/src/rnp/fficli.cpp:1287,1
    - Dst: std::string::length
      Src: /src/rnp/src/rnp/fficli.cpp:1287,1
    - Dst: regcomp
      Src: /src/rnp/src/rnp/fficli.cpp:1290,1
    - Dst: regexec
      Src: /src/rnp/src/rnp/fficli.cpp:1294,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1294,1
    - Dst: std::string::append
      Src: /src/rnp/src/rnp/fficli.cpp:1295,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/rnp/fficli.cpp:1298,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/rnp/fficli.cpp:1300,1
    - Dst: stoi
      Src: /src/rnp/src/rnp/fficli.cpp:1302,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/rnp/fficli.cpp:1305,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/rnp/fficli.cpp:1306,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:1308,1
    - Dst: std::string::back
      Src: /src/rnp/src/rnp/fficli.cpp:1308,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/rnp/fficli.cpp:1309,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/rnp/fficli.cpp:1310,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/rnp/fficli.cpp:1311,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/rnp/fficli.cpp:1313,1
    - Dst: std::string::append
      Src: /src/rnp/src/rnp/fficli.cpp:1318,1
    - Dst: std::string::begin
      Src: /src/rnp/src/rnp/fficli.cpp:1318,1
    - Dst: std::string::end
      Src: /src/rnp/src/rnp/fficli.cpp:1318,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 1
    argNames:
    - src
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1283
    functionDepth: 1
    functionLinenumber: 1283
    functionLinenumberEnd: 1321
    functionName: cli_rnp_unescape_for_regcomp
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - std::string::length
    - std::string::back
    - stoi
    - std::string::c_str
    - std::string::end
    - regexec
    - regcomp
    - std::string::begin
    - std::string::append
    - std::string::empty
    - std::string::reserve
    - std::string::push_back
    linkageType: ''
    returnType: std::string
    signature: std::string cli_rnp_unescape_for_regcomp(const std::string &src)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/rnp/src/rnp/fficli.cpp:1328,1
    - Dst: strcmp
      Src: /src/rnp/src/rnp/fficli.cpp:1331,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - alg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1325
    functionDepth: 0
    functionLinenumber: 1325
    functionLinenumberEnd: 1335
    functionName: cli_rnp_normalize_key_alg
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: char
    signature: 'char *

      cli_rnp_normalize_key_alg(const char *alg)'
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rnp_signature_get_creation
      Src: /src/rnp/src/rnp/fficli.cpp:1341,1
    - Dst: rnp_signature_get_key_fprint
      Src: /src/rnp/src/rnp/fficli.cpp:1345,1
    - Dst: rnp_signature_get_keyid
      Src: /src/rnp/src/rnp/fficli.cpp:1346,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/rnp/fficli.cpp:1352,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/rnp/fficli.cpp:1354,1
    - Dst: rnp_key_get_primary_uid
      Src: /src/rnp/src/rnp/fficli.cpp:1358,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:1362,1
    - Dst: rnp::lowercase
      Src: /src/rnp/src/rnp/fficli.cpp:1362,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:1365,1
    - Dst: ptimestr
      Src: /src/rnp/src/rnp/fficli.cpp:1365,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:1367,1
    - Dst: rnp_signature_is_valid
      Src: /src/rnp/src/rnp/fficli.cpp:1370,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:1384,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:1386,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:1387,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:1388,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:1389,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 3
    argNames:
    - fp
    - ffi
    - sig
    argTypes:
    - FILE*
    - rnp_ffi_t
    - rnp_signature_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1337
    functionDepth: 2
    functionLinenumber: 1337
    functionLinenumberEnd: 1390
    functionName: cli_rnp_print_sig_info
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - rnp_locate_key
    - rnp_key_get_primary_uid
    - rnp_signature_get_key_fprint
    - rnp::lowercase
    - fprintf
    - rnp_buffer_destroy
    - rnp_signature_get_creation
    - rnp_signature_get_keyid
    - ptimestr
    - rnp_key_handle_destroy
    - rnp_signature_is_valid
    linkageType: ''
    returnType: void
    signature: void cli_rnp_print_sig_info(FILE *fp, rnp_ffi_t ffi, rnp_signature_handle_t
      sig)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/rnp/fficli.cpp:1401,1
    - Dst: rnp_key_is_primary
      Src: /src/rnp/src/rnp/fficli.cpp:1401,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:1402,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:1412,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:1414,1
    - Dst: rnp_key_get_bits
      Src: /src/rnp/src/rnp/fficli.cpp:1418,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:1419,1
    - Dst: rnp_key_get_alg
      Src: /src/rnp/src/rnp/fficli.cpp:1422,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:1423,1
    - Dst: cli_rnp_normalize_key_alg
      Src: /src/rnp/src/rnp/fficli.cpp:1423,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:1424,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/rnp/fficli.cpp:1427,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:1428,1
    - Dst: rnp::lowercase
      Src: /src/rnp/src/rnp/fficli.cpp:1428,1
    - Dst: rnp_key_get_creation
      Src: /src/rnp/src/rnp/fficli.cpp:1431,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:1432,1
    - Dst: ptimestr
      Src: /src/rnp/src/rnp/fficli.cpp:1432,1
    - Dst: rnp_key_is_valid
      Src: /src/rnp/src/rnp/fficli.cpp:1437,1
    - Dst: rnp_key_is_expired
      Src: /src/rnp/src/rnp/fficli.cpp:1438,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/rnp/fficli.cpp:1439,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:1441,1
    - Dst: cli_key_usage_str
      Src: /src/rnp/src/rnp/fficli.cpp:1441,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:1443,1
    - Dst: rnp_key_get_expiration
      Src: /src/rnp/src/rnp/fficli.cpp:1447,1
    - Dst: ptimestr
      Src: /src/rnp/src/rnp/fficli.cpp:1449,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:1450,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:1454,1
    - Dst: rnp_key_get_fprint
      Src: /src/rnp/src/rnp/fficli.cpp:1458,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:1459,1
    - Dst: rnp::lowercase
      Src: /src/rnp/src/rnp/fficli.cpp:1459,1
    - Dst: rnp_key_get_signature_count
      Src: /src/rnp/src/rnp/fficli.cpp:1463,1
    - Dst: rnp_key_get_signature_at
      Src: /src/rnp/src/rnp/fficli.cpp:1466,1
    - Dst: cli_rnp_print_sig_info
      Src: /src/rnp/src/rnp/fficli.cpp:1470,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:1471,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/rnp/fficli.cpp:1476,1
    - Dst: rnp_key_get_uid_handle_at
      Src: /src/rnp/src/rnp/fficli.cpp:1480,1
    - Dst: rnp_uid_is_revoked
      Src: /src/rnp/src/rnp/fficli.cpp:1486,1
    - Dst: rnp_uid_is_valid
      Src: /src/rnp/src/rnp/fficli.cpp:1487,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/rnp/fficli.cpp:1488,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:1491,1
    - Dst: cli_rnp_escape_string
      Src: /src/rnp/src/rnp/fficli.cpp:1491,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:1492,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:1493,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:1497,1
    - Dst: rnp_uid_get_signature_count
      Src: /src/rnp/src/rnp/fficli.cpp:1502,1
    - Dst: rnp_uid_get_signature_at
      Src: /src/rnp/src/rnp/fficli.cpp:1505,1
    - Dst: cli_rnp_print_sig_info
      Src: /src/rnp/src/rnp/fficli.cpp:1509,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:1510,1
    - Dst: rnp_uid_handle_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:1512,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:1515,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:1516,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:1517,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 81
    argCount: 5
    argNames:
    - fp
    - ffi
    - key
    - psecret
    - psigs
    argTypes:
    - FILE*
    - rnp_ffi_t
    - rnp_key_handle_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1518
      start: 1392
    functionDepth: 3
    functionLinenumber: 1392
    functionLinenumberEnd: 1518
    functionName: cli_rnp_print_key_info
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 3
    functionsReached:
    - rnp_key_get_uid_handle_at
    - rnp::lowercase
    - rnp_key_is_valid
    - rnp_key_get_fprint
    - rnp_key_get_keyid
    - rnp_key_get_bits
    - cli_rnp_print_sig_info
    - fprintf
    - rnp_key_get_expiration
    - rnp_key_get_creation
    - rnp_key_is_primary
    - rnp_uid_get_signature_at
    - rnp_key_is_revoked
    - rnp_key_get_alg
    - cli_rnp_escape_string
    - rnp_uid_handle_destroy
    - rnp_uid_is_valid
    - rnp_key_get_signature_count
    - rnp_key_get_signature_at
    - cli_key_usage_str
    - rnp_signature_handle_destroy
    - cli_rnp_normalize_key_alg
    - rnp_key_get_uid_count
    - rnp_key_have_secret
    - rnp_uid_is_revoked
    - rnp_buffer_destroy
    - rnp_key_get_uid_at
    - ptimestr
    - rnp_key_is_expired
    - rnp_uid_get_signature_count
    linkageType: ''
    returnType: void
    signature: void cli_rnp_print_key_info(FILE *fp, rnp_ffi_t ffi, rnp_key_handle_t
      key, bool psecret, bool psigs)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t*::pubpath
      Src: /src/rnp/src/rnp/fficli.cpp:1526,1
    - Dst: cli_rnp_t*::secpath
      Src: /src/rnp/src/rnp/fficli.cpp:1527,1
    - Dst: cli_rnp_t*::secformat
      Src: /src/rnp/src/rnp/fficli.cpp:1530,1
    - Dst: rnp_stat
      Src: /src/rnp/src/rnp/fficli.cpp:1532,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1532,1
    - Dst: S_ISDIR
      Src: /src/rnp/src/rnp/fficli.cpp:1533,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1534,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1534,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1539,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1539,1
    - Dst: strerror
      Src: /src/rnp/src/rnp/fficli.cpp:1539,1
    - Dst: RNP_MKDIR
      Src: /src/rnp/src/rnp/fficli.cpp:1542,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1542,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1543,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1543,1
    - Dst: strerror
      Src: /src/rnp/src/rnp/fficli.cpp:1543,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/rnp/fficli.cpp:1550,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1550,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/rnp/fficli.cpp:1552,1
    - Dst: cli_rnp_t*::pubformat
      Src: /src/rnp/src/rnp/fficli.cpp:1552,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:1553,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1556,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1556,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/rnp/fficli.cpp:1560,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1560,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/rnp/fficli.cpp:1562,1
    - Dst: cli_rnp_t*::secformat
      Src: /src/rnp/src/rnp/fficli.cpp:1562,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:1563,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1566,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1566,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 33
    argCount: 1
    argNames:
    - rnp
    argTypes:
    - cli_rnp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1570
      start: 1520
    functionDepth: 1
    functionLinenumber: 1520
    functionLinenumberEnd: 1570
    functionName: cli_rnp_save_keyrings
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 4
    functionsReached:
    - rnp_output_to_path
    - rnp_save_keys
    - RNP_MKDIR
    - std::string::c_str
    - cli_rnp_t*::secpath
    - S_ISDIR
    - strerror
    - cli_rnp_t*::pubformat
    - cli_rnp_t*::secformat
    - rnp_stat
    - cli_rnp_t*::pubpath
    - rnp_output_destroy
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_save_keyrings(cli_rnp_t *rnp)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:1779,1
    - Dst: rnp::is_hex
      Src: /src/rnp/src/rnp/fficli.cpp:1782,1
    - Dst: std::string::length
      Src: /src/rnp/src/rnp/fficli.cpp:1782,1
    - Dst: rnp::strip_hex
      Src: /src/rnp/src/rnp/fficli.cpp:1783,1
    - Dst: std::string::length
      Src: /src/rnp/src/rnp/fficli.cpp:1784,1
    - Dst: rnpffi::Key::keyid
      Src: /src/rnp/src/rnp/fficli.cpp:1788,1
    - Dst: auto::size
      Src: /src/rnp/src/rnp/fficli.cpp:1789,1
    - Dst: strncasecmp
      Src: /src/rnp/src/rnp/fficli.cpp:1792,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1792,1
    - Dst: auto::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1792,1
    - Dst: auto::size
      Src: /src/rnp/src/rnp/fficli.cpp:1792,1
    - Dst: rnpffi::Key::fprint
      Src: /src/rnp/src/rnp/fficli.cpp:1798,1
    - Dst: auto::size
      Src: /src/rnp/src/rnp/fficli.cpp:1799,1
    - Dst: strncasecmp
      Src: /src/rnp/src/rnp/fficli.cpp:1799,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1799,1
    - Dst: auto::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1799,1
    - Dst: rnpffi::Key::grip
      Src: /src/rnp/src/rnp/fficli.cpp:1804,1
    - Dst: auto::size
      Src: /src/rnp/src/rnp/fficli.cpp:1805,1
    - Dst: strncasecmp
      Src: /src/rnp/src/rnp/fficli.cpp:1806,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1806,1
    - Dst: auto::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1806,1
    - Dst: rnpffi::Key::is_sub
      Src: /src/rnp/src/rnp/fficli.cpp:1814,1
    - Dst: rnpffi::Key::uid_count
      Src: /src/rnp/src/rnp/fficli.cpp:1817,1
    - Dst: regcomp
      Src: /src/rnp/src/rnp/fficli.cpp:1825,1
    - Dst: cli_rnp_unescape_for_regcomp
      Src: /src/rnp/src/rnp/fficli.cpp:1825,1
    - Dst: std::regex::assign
      Src: /src/rnp/src/rnp/fficli.cpp:1832,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1834,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1834,1
    - Dst: what
      Src: /src/rnp/src/rnp/fficli.cpp:1834,1
    - Dst: rnpffi::Key::uid_at
      Src: /src/rnp/src/rnp/fficli.cpp:1841,1
    - Dst: regexec
      Src: /src/rnp/src/rnp/fficli.cpp:1843,1
    - Dst: auto::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1843,1
    - Dst: std::regex_search
      Src: /src/rnp/src/rnp/fficli.cpp:1848,1
    - Dst: regfree
      Src: /src/rnp/src/rnp/fficli.cpp:1855,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 49
    argCount: 2
    argNames:
    - key
    - str
    argTypes:
    - rnpffi::Key
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1858
      start: 1776
    functionDepth: 2
    functionLinenumber: 1776
    functionLinenumberEnd: 1858
    functionName: key_matches_string
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - std::string::length
    - std::regex_search
    - rnp::strip_hex
    - strncasecmp
    - auto::c_str
    - rnpffi::Key::uid_at
    - rnpffi::Key::uid_count
    - std::regex::assign
    - rnpffi::Key::keyid
    - rnpffi::Key::grip
    - ERR_MSG
    - cli_rnp_unescape_for_regcomp
    - std::string::c_str
    - rnpffi::Key::is_sub
    - regexec
    - std::string::empty
    - regfree
    - what
    - auto::size
    - rnp::is_hex
    - regcomp
    - rnpffi::Key::fprint
    linkageType: ''
    returnType: bool
    signature: bool key_matches_string(rnpffi::Key &key, const std::string &str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnpffi::Key::secret
      Src: /src/rnp/src/rnp/fficli.cpp:1864,1
    - Dst: rnpffi::Key::is_sub
      Src: /src/rnp/src/rnp/fficli.cpp:1868,1
    - Dst: rnpffi::Key::primary_grip
      Src: /src/rnp/src/rnp/fficli.cpp:1879,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 2
    argNames:
    - key
    - flags
    argTypes:
    - rnpffi::Key
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1880
      start: 1860
    functionDepth: 1
    functionLinenumber: 1860
    functionLinenumberEnd: 1880
    functionName: key_matches_flags
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - rnpffi::Key::primary_grip
    - rnpffi::Key::secret
    - rnpffi::Key::is_sub
    linkageType: ''
    returnType: bool
    signature: bool key_matches_flags(rnpffi::Key &key, int flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:1886,1
    - Dst: std::vector<rnp_key_handle_t>::clear
      Src: /src/rnp/src/rnp/fficli.cpp:1888,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - keys
    argTypes:
    - std::vector<rnp_key_handle_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1882
    functionDepth: 1
    functionLinenumber: 1882
    functionLinenumberEnd: 1889
    functionName: clear_key_handles
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 5
    functionsReached:
    - std::vector<rnp_key_handle_t>::clear
    - rnp_key_handle_destroy
    linkageType: ''
    returnType: void
    signature: void clear_key_handles(std::vector<rnp_key_handle_t> &keys)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_is_sub
      Src: /src/rnp/src/rnp/fficli.cpp:1899,1
    - Dst: std::vector<rnp_key_handle_t>::push_back
      Src: /src/rnp/src/rnp/fficli.cpp:1904,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1906,1
    - Dst: what
      Src: /src/rnp/src/rnp/fficli.cpp:1906,1
    - Dst: rnp_key_get_subkey_count
      Src: /src/rnp/src/rnp/fficli.cpp:1915,1
    - Dst: rnp_key_get_subkey_at
      Src: /src/rnp/src/rnp/fficli.cpp:1922,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/rnp/fficli.cpp:1925,1
    - Dst: std::move
      Src: /src/rnp/src/rnp/fficli.cpp:1927,1
    - Dst: std::vector::begin
      Src: /src/rnp/src/rnp/fficli.cpp:1927,1
    - Dst: std::vector::end
      Src: /src/rnp/src/rnp/fficli.cpp:1927,1
    - Dst: std::back_inserter
      Src: /src/rnp/src/rnp/fficli.cpp:1927,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1929,1
    - Dst: what
      Src: /src/rnp/src/rnp/fficli.cpp:1929,1
    - Dst: std::vector<rnp_key_handle_t>::pop_back
      Src: /src/rnp/src/rnp/fficli.cpp:1934,1
    - Dst: clear_key_handles
      Src: /src/rnp/src/rnp/fficli.cpp:1935,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 37
    argCount: 4
    argNames:
    - ffi
    - keys
    - key
    - flags
    argTypes:
    - rnp_ffi_t
    - std::vector<rnp_key_handle_t>
    - rnp_key_handle_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1937
      start: 1891
    functionDepth: 2
    functionLinenumber: 1891
    functionLinenumberEnd: 1937
    functionName: add_key_to_array
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 11
    functionsReached:
    - what
    - rnp_key_get_subkey_at
    - clear_key_handles
    - std::vector<rnp_key_handle_t>::push_back
    - std::vector::push_back
    - std::back_inserter
    - rnp_key_get_subkey_count
    - rnp_key_is_sub
    - std::vector::end
    - std::vector<rnp_key_handle_t>::pop_back
    - std::vector::begin
    - std::move
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: "bool add_key_to_array(rnp_ffi_t                      ffi,\n                 std::vector<rnp_key_handle_t>
      &keys,\n                 rnp_key_handle_t               key,\n                 int
      \                           flags)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnpffi::FFI::iterator_create
      Src: /src/rnp/src/rnp/fficli.cpp:1947,1
    - Dst: auto::next
      Src: /src/rnp/src/rnp/fficli.cpp:1953,1
    - Dst: rnpffi::FFI::locate_key
      Src: /src/rnp/src/rnp/fficli.cpp:1954,1
    - Dst: key_matches_flags
      Src: /src/rnp/src/rnp/fficli.cpp:1958,1
    - Dst: key_matches_string
      Src: /src/rnp/src/rnp/fficli.cpp:1958,1
    - Dst: add_key_to_array
      Src: /src/rnp/src/rnp/fficli.cpp:1961,1
    - Dst: auto::handle
      Src: /src/rnp/src/rnp/fficli.cpp:1961,1
    - Dst: auto::release
      Src: /src/rnp/src/rnp/fficli.cpp:1964,1
    - Dst: std::vector<rnp_key_handle_t>::empty
      Src: /src/rnp/src/rnp/fficli.cpp:1969,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - keys
    - '            str'
    - flags
    argTypes:
    - std::vector<rnp_key_handle_t>
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1970
      start: 1939
    functionDepth: 3
    functionLinenumber: 1939
    functionLinenumberEnd: 1970
    functionName: cli_rnp_t::keys_matching
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 5
    functionsReached:
    - add_key_to_array
    - auto::handle
    - std::vector<rnp_key_handle_t>::empty
    - key_matches_string
    - rnpffi::FFI::iterator_create
    - auto::release
    - key_matches_flags
    - auto::next
    - rnpffi::FFI::locate_key
    linkageType: ''
    returnType: bool
    signature: "bool cli_rnp_t::keys_matching(std::vector<rnp_key_handle_t> &keys,\n
      \                        const std::string &            str,\n                         int
      \                           flags)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: clear_key_handles
      Src: /src/rnp/src/rnp/fficli.cpp:1977,1
    - Dst: cli_rnp_t::keys_matching
      Src: /src/rnp/src/rnp/fficli.cpp:1980,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1981,1
    - Dst: c_str
      Src: /src/rnp/src/rnp/fficli.cpp:1981,1
    - Dst: clear_key_handles
      Src: /src/rnp/src/rnp/fficli.cpp:1982,1
    - Dst: empty
      Src: /src/rnp/src/rnp/fficli.cpp:1988,1
    - Dst: defkey
      Src: /src/rnp/src/rnp/fficli.cpp:1989,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1990,1
    - Dst: cli_rnp_t::keys_matching
      Src: /src/rnp/src/rnp/fficli.cpp:1993,1
    - Dst: defkey
      Src: /src/rnp/src/rnp/fficli.cpp:1993,1
    - Dst: empty
      Src: /src/rnp/src/rnp/fficli.cpp:1993,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:1994,1
    - Dst: empty
      Src: /src/rnp/src/rnp/fficli.cpp:1997,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - ' keys'
    - strs
    - flags
    argTypes:
    - std::vector<rnp_key_handle_t>
    - std::vector<std::string>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1998
      start: 1972
    functionDepth: 2
    functionLinenumber: 1972
    functionLinenumberEnd: 1998
    functionName: cli_rnp_t::keys_matching
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 6
    functionsReached:
    - clear_key_handles
    - defkey
    - c_str
    - cli_rnp_t::keys_matching
    - empty
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: "bool cli_rnp_t::keys_matching(std::vector<rnp_key_handle_t> & keys,\n
      \                        const std::vector<std::string> &strs,\n                         int
      \                            flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t::keys_matching
      Src: /src/rnp/src/rnp/fficli.cpp:2005,1
    - Dst: std::vector::size
      Src: /src/rnp/src/rnp/fficli.cpp:2007,1
    - Dst: std::vector::size
      Src: /src/rnp/src/rnp/fficli.cpp:2009,1
    - Dst: rnpffi::Key::Key
      Src: /src/rnp/src/rnp/fficli.cpp:2010,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2012,1
    - Dst: std::unique_ptr<rnpffi::Key>
      Src: /src/rnp/src/rnp/fficli.cpp:2014,1
    - Dst: clear_key_handles
      Src: /src/rnp/src/rnp/fficli.cpp:2016,1
    - Dst: std::unique_ptr<rnpffi::Key>
      Src: /src/rnp/src/rnp/fficli.cpp:2017,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - str
    - flags
    - count
    argTypes:
    - std::string
    - int
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 2000
    functionDepth: 4
    functionLinenumber: 2000
    functionLinenumberEnd: 2018
    functionName: cli_rnp_t::key_matching
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 1
    functionsReached:
    - clear_key_handles
    - std::unique_ptr<rnpffi::Key>
    - rnp_key_handle_destroy
    - cli_rnp_t::keys_matching
    - std::vector::size
    - rnpffi::Key::Key
    linkageType: ''
    returnType: std::unique_ptr<rnpffi::Key>
    signature: std::unique_ptr<rnpffi::Key> cli_rnp_t::key_matching(const std::string
      &str, int flags, size_t *count)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::get_bool
      Src: /src/rnp/src/rnp/fficli.cpp:2023,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/fficli.cpp:2024,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/fficli.cpp:2025,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/fficli.cpp:2026,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/fficli.cpp:2027,1
    - Dst: rnp_cfg::get_str
      Src: /src/rnp/src/rnp/fficli.cpp:2034,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:2035,1
    - Dst: rnp::path::HOME
      Src: /src/rnp/src/rnp/fficli.cpp:2036,1
    - Dst: rnp_stat
      Src: /src/rnp/src/rnp/fficli.cpp:2042,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2042,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2045,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2045,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2052,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2052,1
    - Dst: rnp_access
      Src: /src/rnp/src/rnp/fficli.cpp:2053,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2053,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2055,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2055,1
    - Dst: rnp_get_default_homedir
      Src: /src/rnp/src/rnp/fficli.cpp:2062,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2063,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2067,1
    - Dst: rnp::path::exists
      Src: /src/rnp/src/rnp/fficli.cpp:2068,1
    - Dst: RNP_MKDIR
      Src: /src/rnp/src/rnp/fficli.cpp:2068,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2068,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2070,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2070,1
    - Dst: rnp_cfg::get_str
      Src: /src/rnp/src/rnp/fficli.cpp:2079,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:2080,1
    - Dst: rnp_detect_homedir_info
      Src: /src/rnp/src/rnp/fficli.cpp:2085,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2085,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/fficli.cpp:2088,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/fficli.cpp:2089,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/fficli.cpp:2090,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/fficli.cpp:2091,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2096,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2097,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2098,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2099,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/rnp/fficli.cpp:2111,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/rnp/fficli.cpp:2112,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/rnp/fficli.cpp:2114,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/rnp/fficli.cpp:2115,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/rnp/fficli.cpp:2119,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/rnp/fficli.cpp:2120,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/rnp/fficli.cpp:2124,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/rnp/fficli.cpp:2125,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2129,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2129,1
    - Dst: rnp::path::empty
      Src: /src/rnp/src/rnp/fficli.cpp:2134,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2135,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2137,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/fficli.cpp:2140,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/fficli.cpp:2141,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/fficli.cpp:2142,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/fficli.cpp:2143,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 85
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - rnp_cfg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2020
    functionDepth: 1
    functionLinenumber: 2020
    functionLinenumberEnd: 2145
    functionName: rnp_cfg_set_ks_info
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - rnp::path::exists
    - rnp_detect_homedir_info
    - rnp_cfg::get_bool
    - rnp_cfg::get_str
    - rnp::path::append
    - rnp_access
    - rnp_buffer_destroy
    - std::string::c_str
    - rnp_get_default_homedir
    - RNP_MKDIR
    - rnp::path::empty
    - rnp_stat
    - std::string::empty
    - rnp::path::HOME
    - rnp_cfg::set_str
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool rnp_cfg_set_ks_info(rnp_cfg &cfg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::get_count
      Src: /src/rnp/src/rnp/fficli.cpp:2151,1
    - Dst: rnp_cfg::get_str
      Src: /src/rnp/src/rnp/fficli.cpp:2151,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:2152,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/fficli.cpp:2153,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - rnp_cfg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2155
      start: 2147
    functionDepth: 1
    functionLinenumber: 2147
    functionLinenumberEnd: 2155
    functionName: rnp_cfg_set_defkey
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - rnp_cfg::get_count
    - std::string::empty
    - rnp_cfg::get_str
    - rnp_cfg::set_str
    linkageType: ''
    returnType: void
    signature: void rnp_cfg_set_defkey(rnp_cfg &cfg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg_set_ks_info
      Src: /src/rnp/src/rnp/fficli.cpp:2161,1
    - Dst: rnp_cfg_set_defkey
      Src: /src/rnp/src/rnp/fficli.cpp:2166,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - cfg
    argTypes:
    - rnp_cfg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2168
      start: 2157
    functionDepth: 2
    functionLinenumber: 2157
    functionLinenumberEnd: 2168
    functionName: cli_cfg_set_keystore_info
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - rnp_cfg_set_ks_info
    - rnp_cfg_set_defkey
    linkageType: ''
    returnType: bool
    signature: bool cli_cfg_set_keystore_info(rnp_cfg &cfg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:2173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - spec
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2174
      start: 2170
    functionDepth: 1
    functionLinenumber: 2170
    functionLinenumberEnd: 2174
    functionName: is_stdinout_spec
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - std::string::empty
    linkageType: ''
    returnType: bool
    signature: bool is_stdinout_spec(const std::string &spec)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: is_stdinout_spec
      Src: /src/rnp/src/rnp/fficli.cpp:2182,1
    - Dst: rnp_input_from_stdin
      Src: /src/rnp/src/rnp/fficli.cpp:2184,1
    - Dst: std::string::size
      Src: /src/rnp/src/rnp/fficli.cpp:2185,1
    - Dst: std::string::compare
      Src: /src/rnp/src/rnp/fficli.cpp:2185,1
    - Dst: getenv
      Src: /src/rnp/src/rnp/fficli.cpp:2187,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2187,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2189,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2189,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/rnp/fficli.cpp:2192,1
    - Dst: strlen
      Src: /src/rnp/src/rnp/fficli.cpp:2192,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/rnp/fficli.cpp:2195,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2195,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 3
    argNames:
    - rnp
    - spec
    - is_path
    argTypes:
    - cli_rnp_t
    - std::string
    - bool*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2206
      start: 2176
    functionDepth: 2
    functionLinenumber: 2176
    functionLinenumberEnd: 2206
    functionName: cli_rnp_input_from_specifier
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - rnp_input_from_memory
    - rnp_input_from_path
    - is_stdinout_spec
    - getenv
    - std::string::c_str
    - std::string::size
    - std::string::compare
    - strlen
    - rnp_input_from_stdin
    - ERR_MSG
    linkageType: ''
    returnType: rnp_input_t
    signature: rnp_input_t cli_rnp_input_from_specifier(cli_rnp_t &rnp, const std::string
      &spec, bool *is_path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp_output_to_null
      Src: /src/rnp/src/rnp/fficli.cpp:2215,1
    - Dst: is_stdinout_spec
      Src: /src/rnp/src/rnp/fficli.cpp:2216,1
    - Dst: rnp_output_to_stdout
      Src: /src/rnp/src/rnp/fficli.cpp:2217,1
    - Dst: rnp_get_output_filename
      Src: /src/rnp/src/rnp/fficli.cpp:2218,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:2219,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2220,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2222,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2222,1
    - Dst: rnp_output_to_file
      Src: /src/rnp/src/rnp/fficli.cpp:2226,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2226,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - rnp
    - spec
    - discard
    argTypes:
    - cli_rnp_t
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2229
      start: 2208
    functionDepth: 3
    functionLinenumber: 2208
    functionLinenumberEnd: 2229
    functionName: cli_rnp_output_to_specifier
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_to_file
    - is_stdinout_spec
    - std::string::c_str
    - rnp_output_to_stdout
    - rnp_get_output_filename
    - std::string::empty
    - rnp_output_to_null
    - ERR_MSG
    linkageType: ''
    returnType: rnp_output_t
    signature: rnp_output_t cli_rnp_output_to_specifier(cli_rnp_t &rnp, const std::string
      &spec, bool discard)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2234,1
    - Dst: cli_rnp_t*::keys_matching
      Src: /src/rnp/src/rnp/fficli.cpp:2238,1
    - Dst: string
      Src: /src/rnp/src/rnp/fficli.cpp:2238,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2239,1
    - Dst: cli_rnp_output_to_specifier
      Src: /src/rnp/src/rnp/fficli.cpp:2248,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2248,1
    - Dst: rnp_output_to_armor
      Src: /src/rnp/src/rnp/fficli.cpp:2254,1
    - Dst: rnp_key_is_primary
      Src: /src/rnp/src/rnp/fficli.cpp:2262,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/rnp/fficli.cpp:2269,1
    - Dst: rnp_output_finish
      Src: /src/rnp/src/rnp/fficli.cpp:2273,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2275,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2276,1
    - Dst: clear_key_handles
      Src: /src/rnp/src/rnp/fficli.cpp:2277,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 33
    argCount: 2
    argNames:
    - rnp
    - filter
    argTypes:
    - cli_rnp_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2279
      start: 2231
    functionDepth: 4
    functionLinenumber: 2231
    functionLinenumberEnd: 2279
    functionName: cli_rnp_export_keys
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 1
    functionsReached:
    - rnp_output_finish
    - clear_key_handles
    - cli_rnp_t*::keys_matching
    - rnp_output_to_armor
    - string
    - rnp_key_export
    - cli_rnp_t*::cfg
    - rnp_key_is_primary
    - rnp_output_destroy
    - cli_rnp_output_to_specifier
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_export_keys(cli_rnp_t *rnp, const char *filter)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t*::keys_matching
      Src: /src/rnp/src/rnp/fficli.cpp:2285,1
    - Dst: string
      Src: /src/rnp/src/rnp/fficli.cpp:2285,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2286,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2292,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2293,1
    - Dst: cli_rnp_output_to_specifier
      Src: /src/rnp/src/rnp/fficli.cpp:2299,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2299,1
    - Dst: rnp_key_is_primary
      Src: /src/rnp/src/rnp/fficli.cpp:2306,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:2318,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2319,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/rnp/fficli.cpp:2322,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:2323,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/rnp/fficli.cpp:2325,1
    - Dst: strstr
      Src: /src/rnp/src/rnp/fficli.cpp:2328,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2331,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:2333,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/rnp/fficli.cpp:2335,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2337,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:2340,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2341,1
    - Dst: rnp_key_export_autocrypt
      Src: /src/rnp/src/rnp/fficli.cpp:2345,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2351,1
    - Dst: clear_key_handles
      Src: /src/rnp/src/rnp/fficli.cpp:2352,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 54
    argCount: 2
    argNames:
    - rnp
    - filter
    argTypes:
    - cli_rnp_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2354
      start: 2281
    functionDepth: 4
    functionLinenumber: 2281
    functionLinenumberEnd: 2354
    functionName: cli_rnp_export_autocrypt_key
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 1
    functionsReached:
    - rnp_key_get_uid_count
    - clear_key_handles
    - cli_rnp_t*::keys_matching
    - string
    - std::string::c_str
    - rnp_buffer_destroy
    - rnp_key_get_uid_at
    - cli_rnp_t*::cfg
    - rnp_key_is_primary
    - rnp_key_export_autocrypt
    - strstr
    - std::string::empty
    - rnp_output_destroy
    - cli_rnp_output_to_specifier
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_export_autocrypt_key(cli_rnp_t *rnp, const char *filter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t*::keys_matching
      Src: /src/rnp/src/rnp/fficli.cpp:2360,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2361,1
    - Dst: std::vector::size
      Src: /src/rnp/src/rnp/fficli.cpp:2364,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2365,1
    - Dst: clear_key_handles
      Src: /src/rnp/src/rnp/fficli.cpp:2366,1
    - Dst: cli_rnp_output_to_specifier
      Src: /src/rnp/src/rnp/fficli.cpp:2372,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2372,1
    - Dst: rnp_key_export_revocation
      Src: /src/rnp/src/rnp/fficli.cpp:2377,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2380,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2381,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2382,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2384,1
    - Dst: clear_key_handles
      Src: /src/rnp/src/rnp/fficli.cpp:2385,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 21
    argCount: 2
    argNames:
    - rnp
    - key
    argTypes:
    - cli_rnp_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2387
      start: 2356
    functionDepth: 4
    functionLinenumber: 2356
    functionLinenumberEnd: 2387
    functionName: cli_rnp_export_revocation
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - clear_key_handles
    - cli_rnp_t*::keys_matching
    - cli_rnp_t*::cfg
    - rnp_key_export_revocation
    - std::vector::size
    - rnp_output_destroy
    - cli_rnp_output_to_specifier
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_export_revocation(cli_rnp_t *rnp, const char *key)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t*::keys_matching
      Src: /src/rnp/src/rnp/fficli.cpp:2393,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2394,1
    - Dst: std::vector::size
      Src: /src/rnp/src/rnp/fficli.cpp:2401,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2402,1
    - Dst: rnp_key_is_revoked
      Src: /src/rnp/src/rnp/fficli.cpp:2405,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2406,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2409,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2410,1
    - Dst: rnp_key_revoke
      Src: /src/rnp/src/rnp/fficli.cpp:2416,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2418,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2419,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2420,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2422,1
    - Dst: cli_rnp_save_keyrings
      Src: /src/rnp/src/rnp/fficli.cpp:2425,1
    - Dst: rnp_key_is_sub
      Src: /src/rnp/src/rnp/fficli.cpp:2430,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2431,1
    - Dst: rnp_key_get_primary_grip
      Src: /src/rnp/src/rnp/fficli.cpp:2435,1
    - Dst: rnp_key_get_grip
      Src: /src/rnp/src/rnp/fficli.cpp:2435,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2437,1
    - Dst: clear_key_handles
      Src: /src/rnp/src/rnp/fficli.cpp:2440,1
    - Dst: cli_rnp_t*::keys_matching
      Src: /src/rnp/src/rnp/fficli.cpp:2441,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2442,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2443,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2446,1
    - Dst: cli_rnp_print_key_info
      Src: /src/rnp/src/rnp/fficli.cpp:2448,1
    - Dst: clear_key_handles
      Src: /src/rnp/src/rnp/fficli.cpp:2452,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 54
    argCount: 2
    argNames:
    - rnp
    - key
    argTypes:
    - cli_rnp_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2454
      start: 2389
    functionDepth: 4
    functionLinenumber: 2389
    functionLinenumberEnd: 2454
    functionName: cli_rnp_revoke_key
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - cli_rnp_save_keyrings
    - clear_key_handles
    - cli_rnp_t*::keys_matching
    - rnp_buffer_destroy
    - cli_rnp_t*::cfg
    - rnp_key_get_primary_grip
    - rnp_key_is_sub
    - rnp_key_is_revoked
    - std::vector::size
    - rnp_key_get_grip
    - cli_rnp_print_key_info
    - rnp_key_revoke
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_revoke_key(cli_rnp_t *rnp, const char *key)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t*::keys_matching
      Src: /src/rnp/src/rnp/fficli.cpp:2460,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2461,1
    - Dst: std::vector::size
      Src: /src/rnp/src/rnp/fficli.cpp:2470,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2471,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/rnp/fficli.cpp:2474,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2475,1
    - Dst: rnp_key_is_primary
      Src: /src/rnp/src/rnp/fficli.cpp:2478,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2479,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2490,1
    - Dst: cli_rnp_get_confirmation
      Src: /src/rnp/src/rnp/fficli.cpp:2491,1
    - Dst: rnp_key_remove
      Src: /src/rnp/src/rnp/fficli.cpp:2499,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2502,1
    - Dst: cli_rnp_save_keyrings
      Src: /src/rnp/src/rnp/fficli.cpp:2505,1
    - Dst: clear_key_handles
      Src: /src/rnp/src/rnp/fficli.cpp:2507,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 2
    argNames:
    - rnp
    - key
    argTypes:
    - cli_rnp_t*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2509
      start: 2456
    functionDepth: 2
    functionLinenumber: 2456
    functionLinenumberEnd: 2509
    functionName: cli_rnp_remove_key
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - cli_rnp_get_confirmation
    - rnp_key_remove
    - cli_rnp_save_keyrings
    - cli_rnp_t*::keys_matching
    - rnp_key_have_secret
    - clear_key_handles
    - rnp_key_is_primary
    - cli_rnp_t*::cfg
    - std::vector::size
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_remove_key(cli_rnp_t *rnp, const char *key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2514,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:2515,1
    - Dst: cli_rnp_input_from_specifier
      Src: /src/rnp/src/rnp/fficli.cpp:2519,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2521,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2521,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/rnp/fficli.cpp:2525,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2527,1
    - Dst: cli_rnp_t*::defkey
      Src: /src/rnp/src/rnp/fficli.cpp:2530,1
    - Dst: cli_rnp_t*::set_defkey
      Src: /src/rnp/src/rnp/fficli.cpp:2531,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - rnp
    argTypes:
    - cli_rnp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2534
      start: 2511
    functionDepth: 3
    functionLinenumber: 2511
    functionLinenumberEnd: 2534
    functionName: cli_rnp_add_key
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 1
    functionsReached:
    - rnp_input_destroy
    - std::string::c_str
    - rnp_import_keys
    - cli_rnp_t*::defkey
    - cli_rnp_t*::cfg
    - cli_rnp_t*::set_defkey
    - cli_rnp_input_from_specifier
    - std::string::empty
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_add_key(cli_rnp_t *rnp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find_last_of
      Src: /src/rnp/src/rnp/fficli.cpp:2539,1
    - Dst: std::string::resize
      Src: /src/rnp/src/rnp/fficli.cpp:2543,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - src
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2545
      start: 2536
    functionDepth: 0
    functionLinenumber: 2536
    functionLinenumberEnd: 2545
    functionName: strip_extension
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - std::string::resize
    - std::string::find_last_of
    linkageType: ''
    returnType: bool
    signature: bool strip_extension(std::string &src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::length
      Src: /src/rnp/src/rnp/fficli.cpp:2550,1
    - Dst: std::string::length
      Src: /src/rnp/src/rnp/fficli.cpp:2550,1
    - Dst: std::string::compare
      Src: /src/rnp/src/rnp/fficli.cpp:2553,1
    - Dst: std::string::length
      Src: /src/rnp/src/rnp/fficli.cpp:2553,1
    - Dst: std::string::length
      Src: /src/rnp/src/rnp/fficli.cpp:2553,1
    - Dst: std::string::length
      Src: /src/rnp/src/rnp/fficli.cpp:2553,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - path
    - ext
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2554
      start: 2547
    functionDepth: 0
    functionLinenumber: 2547
    functionLinenumberEnd: 2554
    functionName: has_extension
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - std::string::length
    - std::string::compare
    linkageType: ''
    returnType: bool
    signature: bool has_extension(const std::string &path, const std::string &ext)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::get_bool
      Src: /src/rnp/src/rnp/fficli.cpp:2561,1
    - Dst: rnp_cfg::get_bool
      Src: /src/rnp/src/rnp/fficli.cpp:2562,1
    - Dst: rnp_cfg::get_bool
      Src: /src/rnp/src/rnp/fficli.cpp:2565,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 2
    argNames:
    - cfg
    - op
    argTypes:
    - rnp_cfg
    - Operation
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2575
      start: 2556
    functionDepth: 1
    functionLinenumber: 2556
    functionLinenumberEnd: 2575
    functionName: output_extension
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - rnp_cfg::get_bool
    linkageType: ''
    returnType: std::string
    signature: std::string output_extension(const rnp_cfg &cfg, Operation op)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: has_extension
      Src: /src/rnp/src/rnp/fficli.cpp:2580,1
    - Dst: has_extension
      Src: /src/rnp/src/rnp/fficli.cpp:2580,1
    - Dst: has_extension
      Src: /src/rnp/src/rnp/fficli.cpp:2581,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2582
      start: 2577
    functionDepth: 1
    functionLinenumber: 2577
    functionLinenumberEnd: 2582
    functionName: has_pgp_extension
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - has_extension
    linkageType: ''
    returnType: bool
    signature: bool has_pgp_extension(const std::string &path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: has_pgp_extension
      Src: /src/rnp/src/rnp/fficli.cpp:2588,1
    - Dst: strip_extension
      Src: /src/rnp/src/rnp/fficli.cpp:2589,1
    - Dst: has_extension
      Src: /src/rnp/src/rnp/fficli.cpp:2592,1
    - Dst: strip_extension
      Src: /src/rnp/src/rnp/fficli.cpp:2593,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - op
    - in
    argTypes:
    - Operation
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2597
      start: 2584
    functionDepth: 2
    functionLinenumber: 2584
    functionLinenumberEnd: 2597
    functionName: output_strip_extension
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - has_pgp_extension
    - has_extension
    - strip_extension
    linkageType: ''
    returnType: std::string
    signature: std::string output_strip_extension(Operation op, const std::string
      &in)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::find_last_of
      Src: /src/rnp/src/rnp/fficli.cpp:2602,1
    - Dst: std::string::substr
      Src: /src/rnp/src/rnp/fficli.cpp:2606,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2607
      start: 2599
    functionDepth: 0
    functionLinenumber: 2599
    functionLinenumberEnd: 2607
    functionName: extract_filename
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - std::string::substr
    - std::string::find_last_of
    linkageType: ''
    returnType: std::string
    signature: std::string extract_filename(const std::string &path)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2612,1
    - Dst: cli_rnp_input_from_specifier
      Src: /src/rnp/src/rnp/fficli.cpp:2615,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2621,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2622,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2628,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:2629,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2629,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:2631,1
    - Dst: output_extension
      Src: /src/rnp/src/rnp/fficli.cpp:2633,1
    - Dst: cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2633,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:2634,1
    - Dst: output_strip_extension
      Src: /src/rnp/src/rnp/fficli.cpp:2637,1
    - Dst: cli_rnp_output_to_specifier
      Src: /src/rnp/src/rnp/fficli.cpp:2641,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2643,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 26
    argCount: 3
    argNames:
    - op
    - input
    - output
    argTypes:
    - Operation
    - rnp_input_t*
    - rnp_output_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2647
      start: 2609
    functionDepth: 4
    functionLinenumber: 2609
    functionLinenumberEnd: 2647
    functionName: cli_rnp_t::init_io
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - output_strip_extension
    - cfg
    - output_extension
    - rnp_input_destroy
    - std::string::empty
    - cli_rnp_output_to_specifier
    - cli_rnp_input_from_specifier
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_t::init_io(Operation op, rnp_input_t *input, rnp_output_t
      *output)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2657,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2661,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2665,1
    - Dst: cli_rnp_t*::init_io
      Src: /src/rnp/src/rnp/fficli.cpp:2671,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2672,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2677,1
    - Dst: rnp_dump_packets_to_json
      Src: /src/rnp/src/rnp/fficli.cpp:2679,1
    - Dst: strlen
      Src: /src/rnp/src/rnp/fficli.cpp:2681,1
    - Dst: rnp_output_write
      Src: /src/rnp/src/rnp/fficli.cpp:2683,1
    - Dst: rnp_output_write
      Src: /src/rnp/src/rnp/fficli.cpp:2689,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2694,1
    - Dst: rnp_dump_packets_to_output
      Src: /src/rnp/src/rnp/fficli.cpp:2697,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2699,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2700,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 1
    argNames:
    - rnp
    argTypes:
    - cli_rnp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2703
      start: 2649
    functionDepth: 1
    functionLinenumber: 2649
    functionLinenumberEnd: 2703
    functionName: cli_rnp_dump_file
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_destroy
    - cli_rnp_t*::init_io
    - rnp_input_destroy
    - rnp_buffer_destroy
    - cli_rnp_t*::cfg
    - strlen
    - rnp_dump_packets_to_output
    - rnp_dump_packets_to_json
    - rnp_output_write
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_dump_file(cli_rnp_t *rnp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t*::init_io
      Src: /src/rnp/src/rnp/fficli.cpp:2711,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2712,1
    - Dst: rnp_enarmor
      Src: /src/rnp/src/rnp/fficli.cpp:2715,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2715,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2716,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - rnp
    argTypes:
    - cli_rnp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2719
      start: 2705
    functionDepth: 1
    functionLinenumber: 2705
    functionLinenumberEnd: 2719
    functionName: cli_rnp_armor_file
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - cli_rnp_t*::init_io
    - cli_rnp_t*::cfg
    - rnp_enarmor
    - ERR_MSG
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_armor_file(cli_rnp_t *rnp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t*::init_io
      Src: /src/rnp/src/rnp/fficli.cpp:2727,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2728,1
    - Dst: rnp_dearmor
      Src: /src/rnp/src/rnp/fficli.cpp:2732,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2733,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2734,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - rnp
    argTypes:
    - cli_rnp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2736
      start: 2721
    functionDepth: 1
    functionLinenumber: 2721
    functionLinenumberEnd: 2736
    functionName: cli_rnp_dearmor_file
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - cli_rnp_t*::init_io
    - rnp_dearmor
    - ERR_MSG
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_dearmor_file(cli_rnp_t *rnp)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::get_bool
      Src: /src/rnp/src/rnp/fficli.cpp:2743,1
    - Dst: rnp_cfg::get_bool
      Src: /src/rnp/src/rnp/fficli.cpp:2744,1
    - Dst: rnp_op_sign_cleartext_create
      Src: /src/rnp/src/rnp/fficli.cpp:2747,1
    - Dst: rnp_op_sign_detached_create
      Src: /src/rnp/src/rnp/fficli.cpp:2749,1
    - Dst: rnp_op_sign_create
      Src: /src/rnp/src/rnp/fficli.cpp:2751,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2755,1
    - Dst: rnp_op_sign_set_armor
      Src: /src/rnp/src/rnp/fficli.cpp:2765,1
    - Dst: rnp_cfg::get_bool
      Src: /src/rnp/src/rnp/fficli.cpp:2765,1
    - Dst: rnp_cfg::has
      Src: /src/rnp/src/rnp/fficli.cpp:2769,1
    - Dst: rnp_op_sign_set_file_name
      Src: /src/rnp/src/rnp/fficli.cpp:2770,1
    - Dst: rnp_cfg::get_str
      Src: /src/rnp/src/rnp/fficli.cpp:2770,1
    - Dst: rnp_cfg::has
      Src: /src/rnp/src/rnp/fficli.cpp:2773,1
    - Dst: rnp_cfg::get_str
      Src: /src/rnp/src/rnp/fficli.cpp:2774,1
    - Dst: rnp_op_sign_set_file_name
      Src: /src/rnp/src/rnp/fficli.cpp:2775,1
    - Dst: extract_filename
      Src: /src/rnp/src/rnp/fficli.cpp:2775,1
    - Dst: rnp_op_sign_set_file_mtime
      Src: /src/rnp/src/rnp/fficli.cpp:2778,1
    - Dst: rnp_filemtime
      Src: /src/rnp/src/rnp/fficli.cpp:2778,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2778,1
    - Dst: rnp_op_sign_set_compression
      Src: /src/rnp/src/rnp/fficli.cpp:2780,1
    - Dst: rnp_cfg::get_cstr
      Src: /src/rnp/src/rnp/fficli.cpp:2780,1
    - Dst: rnp_cfg::get_int
      Src: /src/rnp/src/rnp/fficli.cpp:2780,1
    - Dst: rnp_op_sign_set_hash
      Src: /src/rnp/src/rnp/fficli.cpp:2785,1
    - Dst: rnp_cfg::get_hashalg
      Src: /src/rnp/src/rnp/fficli.cpp:2785,1
    - Dst: rnp_op_sign_set_creation_time
      Src: /src/rnp/src/rnp/fficli.cpp:2788,1
    - Dst: rnp_cfg::get_sig_creation
      Src: /src/rnp/src/rnp/fficli.cpp:2788,1
    - Dst: rnp_cfg::get_expiration
      Src: /src/rnp/src/rnp/fficli.cpp:2791,1
    - Dst: rnp_op_sign_set_expiration_time
      Src: /src/rnp/src/rnp/fficli.cpp:2792,1
    - Dst: rnp_cfg::get_list
      Src: /src/rnp/src/rnp/fficli.cpp:2797,1
    - Dst: cli_rnp_t*::keys_matching
      Src: /src/rnp/src/rnp/fficli.cpp:2798,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2802,1
    - Dst: rnp_op_sign_add_signature
      Src: /src/rnp/src/rnp/fficli.cpp:2806,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2807,1
    - Dst: rnp_op_sign_execute
      Src: /src/rnp/src/rnp/fficli.cpp:2813,1
    - Dst: clear_key_handles
      Src: /src/rnp/src/rnp/fficli.cpp:2815,1
    - Dst: rnp_op_sign_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2816,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 62
    argCount: 4
    argNames:
    - cfg
    - rnp
    - input
    - output
    argTypes:
    - rnp_cfg
    - cli_rnp_t*
    - rnp_input_t
    - rnp_output_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2818
      start: 2738
    functionDepth: 2
    functionLinenumber: 2738
    functionLinenumberEnd: 2818
    functionName: cli_rnp_sign
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - rnp_op_sign_destroy
    - clear_key_handles
    - rnp_op_sign_set_compression
    - rnp_cfg::get_str
    - rnp_cfg::get_expiration
    - rnp_cfg::get_hashalg
    - rnp_cfg::get_list
    - cli_rnp_t*::keys_matching
    - extract_filename
    - rnp_op_sign_cleartext_create
    - rnp_op_sign_set_armor
    - rnp_cfg::get_int
    - rnp_op_sign_create
    - rnp_op_sign_add_signature
    - ERR_MSG
    - rnp_op_sign_set_creation_time
    - rnp_filemtime
    - rnp_cfg::get_sig_creation
    - std::string::c_str
    - rnp_op_sign_set_expiration_time
    - rnp_cfg::get_cstr
    - rnp_op_sign_set_hash
    - rnp_op_sign_set_file_mtime
    - rnp_op_sign_detached_create
    - rnp_cfg::get_bool
    - rnp_cfg::has
    - rnp_op_sign_execute
    - rnp_op_sign_set_file_name
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_sign(const rnp_cfg &cfg, cli_rnp_t *rnp, rnp_input_t input,
      rnp_output_t output)
  - BBCount: 26
    BranchProfiles: []
    Callsites:
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/rnp/fficli.cpp:2828,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2829,1
    - Dst: rnp_op_encrypt_set_armor
      Src: /src/rnp/src/rnp/fficli.cpp:2840,1
    - Dst: rnp_cfg::get_bool
      Src: /src/rnp/src/rnp/fficli.cpp:2840,1
    - Dst: rnp_cfg::has
      Src: /src/rnp/src/rnp/fficli.cpp:2842,1
    - Dst: rnp_op_encrypt_set_file_name
      Src: /src/rnp/src/rnp/fficli.cpp:2843,1
    - Dst: rnp_cfg::get_str
      Src: /src/rnp/src/rnp/fficli.cpp:2843,1
    - Dst: rnp_cfg::has
      Src: /src/rnp/src/rnp/fficli.cpp:2846,1
    - Dst: rnp_cfg::get_str
      Src: /src/rnp/src/rnp/fficli.cpp:2847,1
    - Dst: rnp_op_encrypt_set_file_name
      Src: /src/rnp/src/rnp/fficli.cpp:2848,1
    - Dst: extract_filename
      Src: /src/rnp/src/rnp/fficli.cpp:2848,1
    - Dst: rnp_op_encrypt_set_file_mtime
      Src: /src/rnp/src/rnp/fficli.cpp:2851,1
    - Dst: rnp_filemtime
      Src: /src/rnp/src/rnp/fficli.cpp:2851,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2851,1
    - Dst: rnp_op_encrypt_set_compression
      Src: /src/rnp/src/rnp/fficli.cpp:2854,1
    - Dst: rnp_cfg::get_cstr
      Src: /src/rnp/src/rnp/fficli.cpp:2854,1
    - Dst: rnp_cfg::get_int
      Src: /src/rnp/src/rnp/fficli.cpp:2854,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/rnp/fficli.cpp:2857,1
    - Dst: rnp_cfg::get_cstr
      Src: /src/rnp/src/rnp/fficli.cpp:2857,1
    - Dst: rnp_op_encrypt_set_hash
      Src: /src/rnp/src/rnp/fficli.cpp:2860,1
    - Dst: rnp_cfg::get_hashalg
      Src: /src/rnp/src/rnp/fficli.cpp:2860,1
    - Dst: rnp_cfg::has
      Src: /src/rnp/src/rnp/fficli.cpp:2863,1
    - Dst: rnp_cfg::get_str
      Src: /src/rnp/src/rnp/fficli.cpp:2863,1
    - Dst: rnp_op_encrypt_set_aead
      Src: /src/rnp/src/rnp/fficli.cpp:2864,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2864,1
    - Dst: rnp_cfg::has
      Src: /src/rnp/src/rnp/fficli.cpp:2867,1
    - Dst: rnp_op_encrypt_set_aead_bits
      Src: /src/rnp/src/rnp/fficli.cpp:2868,1
    - Dst: rnp_cfg::get_int
      Src: /src/rnp/src/rnp/fficli.cpp:2868,1
    - Dst: rnp_cfg::has
      Src: /src/rnp/src/rnp/fficli.cpp:2871,1
    - Dst: rnp_op_encrypt_set_flags
      Src: /src/rnp/src/rnp/fficli.cpp:2871,1
    - Dst: rnp_cfg::get_bool
      Src: /src/rnp/src/rnp/fficli.cpp:2876,1
    - Dst: rnp_cfg::get_hashalg
      Src: /src/rnp/src/rnp/fficli.cpp:2877,1
    - Dst: rnp_cfg::get_str
      Src: /src/rnp/src/rnp/fficli.cpp:2878,1
    - Dst: rnp_cfg::get_int
      Src: /src/rnp/src/rnp/fficli.cpp:2879,1
    - Dst: rnp_cfg::get_int
      Src: /src/rnp/src/rnp/fficli.cpp:2880,1
    - Dst: rnp_calculate_iterations
      Src: /src/rnp/src/rnp/fficli.cpp:2883,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2883,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2884,1
    - Dst: rnp_cfg::get_int
      Src: /src/rnp/src/rnp/fficli.cpp:2889,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/rnp/fficli.cpp:2890,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2891,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2891,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2892,1
    - Dst: rnp_cfg::get_bool
      Src: /src/rnp/src/rnp/fficli.cpp:2899,1
    - Dst: rnp_cfg::get_list
      Src: /src/rnp/src/rnp/fficli.cpp:2900,1
    - Dst: cli_rnp_t*::keys_matching
      Src: /src/rnp/src/rnp/fficli.cpp:2901,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2905,1
    - Dst: rnp_op_encrypt_add_recipient
      Src: /src/rnp/src/rnp/fficli.cpp:2909,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2910,1
    - Dst: rnp_cfg::get_bool
      Src: /src/rnp/src/rnp/fficli.cpp:2918,1
    - Dst: rnp_op_encrypt_enable_pkesk_v6
      Src: /src/rnp/src/rnp/fficli.cpp:2919,1
    - Dst: rnp_cfg::get_bool
      Src: /src/rnp/src/rnp/fficli.cpp:2922,1
    - Dst: rnp_op_encrypt_enable_skesk_v6
      Src: /src/rnp/src/rnp/fficli.cpp:2923,1
    - Dst: rnp_cfg::get_bool
      Src: /src/rnp/src/rnp/fficli.cpp:2928,1
    - Dst: rnp_op_encrypt_set_creation_time
      Src: /src/rnp/src/rnp/fficli.cpp:2929,1
    - Dst: rnp_cfg::get_sig_creation
      Src: /src/rnp/src/rnp/fficli.cpp:2929,1
    - Dst: rnp_cfg::get_expiration
      Src: /src/rnp/src/rnp/fficli.cpp:2931,1
    - Dst: rnp_op_encrypt_set_expiration_time
      Src: /src/rnp/src/rnp/fficli.cpp:2932,1
    - Dst: rnp_cfg::get_list
      Src: /src/rnp/src/rnp/fficli.cpp:2936,1
    - Dst: cli_rnp_t*::keys_matching
      Src: /src/rnp/src/rnp/fficli.cpp:2937,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2941,1
    - Dst: rnp_op_encrypt_add_signature
      Src: /src/rnp/src/rnp/fficli.cpp:2945,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2946,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/rnp/fficli.cpp:2953,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2956,1
    - Dst: rnp_result_to_string
      Src: /src/rnp/src/rnp/fficli.cpp:2956,1
    - Dst: clear_key_handles
      Src: /src/rnp/src/rnp/fficli.cpp:2959,1
    - Dst: clear_key_handles
      Src: /src/rnp/src/rnp/fficli.cpp:2960,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:2961,1
    CyclomaticComplexity: 44
    EdgeCount: 44
    ICount: 107
    argCount: 4
    argNames:
    - cfg
    - rnp
    - input
    - output
    argTypes:
    - rnp_cfg
    - cli_rnp_t*
    - rnp_input_t
    - rnp_output_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2963
      start: 2820
    functionDepth: 2
    functionLinenumber: 2820
    functionLinenumberEnd: 2963
    functionName: cli_rnp_encrypt_and_sign
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - rnp_calculate_iterations
    - rnp_op_encrypt_enable_skesk_v6
    - clear_key_handles
    - rnp_cfg::get_expiration
    - rnp_cfg::get_str
    - rnp_op_encrypt_set_aead
    - rnp_cfg::get_hashalg
    - rnp_op_encrypt_add_password
    - rnp_op_encrypt_set_creation_time
    - rnp_op_encrypt_set_hash
    - rnp_op_encrypt_set_flags
    - rnp_cfg::get_list
    - cli_rnp_t*::keys_matching
    - rnp_op_encrypt_add_recipient
    - extract_filename
    - rnp_op_encrypt_create
    - rnp_op_encrypt_set_file_mtime
    - rnp_op_encrypt_set_cipher
    - rnp_cfg::get_int
    - rnp_op_encrypt_set_compression
    - rnp_op_encrypt_add_signature
    - ERR_MSG
    - rnp_op_encrypt_enable_pkesk_v6
    - rnp_filemtime
    - rnp_cfg::get_sig_creation
    - rnp_op_encrypt_set_file_name
    - std::string::c_str
    - rnp_op_encrypt_execute
    - rnp_op_encrypt_set_armor
    - rnp_cfg::get_cstr
    - rnp_op_encrypt_set_aead_bits
    - rnp_result_to_string
    - rnp_cfg::get_bool
    - rnp_op_encrypt_set_expiration_time
    - rnp_cfg::has
    - rnp_op_encrypt_destroy
    linkageType: ''
    returnType: bool
    signature: "bool cli_rnp_encrypt_and_sign(const rnp_cfg &cfg,\n                         cli_rnp_t
      *    rnp,\n                         rnp_input_t    input,\n                         rnp_output_t
      \  output)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2969,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2970,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/rnp/fficli.cpp:2971,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:2972,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2976,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - rnp
    argTypes:
    - cli_rnp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2978
      start: 2965
    functionDepth: 0
    functionLinenumber: 2965
    functionLinenumberEnd: 2978
    functionName: cli_rnp_setup
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - cli_rnp_t*::cfg
    - rnp_ffi_set_pass_provider
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_setup(cli_rnp_t *rnp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2983,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/rnp/fficli.cpp:2989,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2991,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2992,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:2996,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:2997,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3002,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:3003,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - rnp
    argTypes:
    - cli_rnp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3008
      start: 2980
    functionDepth: 1
    functionLinenumber: 2980
    functionLinenumberEnd: 3008
    functionName: cli_rnp_check_weak_hash
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - cli_rnp_t*::cfg
    - rnp_get_security_rule
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_check_weak_hash(cli_rnp_t *rnp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:3013,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/rnp/fficli.cpp:3019,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:3021,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:3022,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3026,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:3027,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3032,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:3033,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 1
    argNames:
    - rnp
    argTypes:
    - cli_rnp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3038
      start: 3010
    functionDepth: 1
    functionLinenumber: 3010
    functionLinenumberEnd: 3038
    functionName: cli_rnp_check_old_ciphers
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - cli_rnp_t*::cfg
    - rnp_get_security_rule
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_check_old_ciphers(cli_rnp_t *rnp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t*::init_io
      Src: /src/rnp/src/rnp/fficli.cpp:3046,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3047,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:3052,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:3053,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:3053,1
    - Dst: cli_rnp_sign
      Src: /src/rnp/src/rnp/fficli.cpp:3055,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:3055,1
    - Dst: cli_rnp_encrypt_and_sign
      Src: /src/rnp/src/rnp/fficli.cpp:3057,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:3057,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3059,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:3062,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:3063,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - rnp
    argTypes:
    - cli_rnp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3065
      start: 3040
    functionDepth: 3
    functionLinenumber: 3040
    functionLinenumberEnd: 3065
    functionName: cli_rnp_protect_file
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 3
    functionsReached:
    - cli_rnp_sign
    - cli_rnp_t*::init_io
    - rnp_input_destroy
    - cli_rnp_encrypt_and_sign
    - cli_rnp_t*::cfg
    - rnp_output_destroy
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_protect_file(cli_rnp_t *rnp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_signature_get_keyid
      Src: /src/rnp/src/rnp/fficli.cpp:3074,1
    - Dst: rnp::lowercase
      Src: /src/rnp/src/rnp/fficli.cpp:3075,1
    - Dst: rnp_signature_get_alg
      Src: /src/rnp/src/rnp/fficli.cpp:3076,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:3078,1
    - Dst: cli_rnp_normalize_key_alg
      Src: /src/rnp/src/rnp/fficli.cpp:3080,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:3082,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:3083,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 2
    argNames:
    - resfp
    - sig
    argTypes:
    - FILE*
    - rnp_signature_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3084
      start: 3068
    functionDepth: 1
    functionLinenumber: 3068
    functionLinenumberEnd: 3084
    functionName: cli_rnp_print_sig_key_info
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - rnp::lowercase
    - fprintf
    - rnp_buffer_destroy
    - rnp_signature_get_alg
    - rnp_signature_get_keyid
    - cli_rnp_normalize_key_alg
    linkageType: ''
    returnType: void
    signature: void cli_rnp_print_sig_key_info(FILE *resfp, rnp_signature_handle_t
      sig)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/rnp/fficli.cpp:3095,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:3122,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:3122,1
    - Dst: rnp_op_verify_signature_get_times
      Src: /src/rnp/src/rnp/fficli.cpp:3128,1
    - Dst: rnp_ctime
      Src: /src/rnp/src/rnp/fficli.cpp:3131,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:3132,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:3134,1
    - Dst: rnp_y2k38_warning
      Src: /src/rnp/src/rnp/fficli.cpp:3135,1
    - Dst: auto::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:3136,1
    - Dst: rnp_timeadd
      Src: /src/rnp/src/rnp/fficli.cpp:3138,1
    - Dst: rnp_ctime
      Src: /src/rnp/src/rnp/fficli.cpp:3139,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:3140,1
    - Dst: rnp_y2k38_warning
      Src: /src/rnp/src/rnp/fficli.cpp:3141,1
    - Dst: auto::c_str
      Src: /src/rnp/src/rnp/fficli.cpp:3141,1
    - Dst: rnp_op_verify_signature_get_handle
      Src: /src/rnp/src/rnp/fficli.cpp:3145,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3146,1
    - Dst: cli_rnp_print_sig_key_info
      Src: /src/rnp/src/rnp/fficli.cpp:3150,1
    - Dst: rnp_signature_get_signer
      Src: /src/rnp/src/rnp/fficli.cpp:3153,1
    - Dst: cli_rnp_print_key_info
      Src: /src/rnp/src/rnp/fficli.cpp:3154,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:3155,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:3157,1
    - Dst: std::vector<rnp_op_verify_signature_t>::size
      Src: /src/rnp/src/rnp/fficli.cpp:3160,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3161,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3165,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3173,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3175,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3177,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 63
    argCount: 2
    argNames:
    - rnp
    - sigs
    argTypes:
    - cli_rnp_t*
    - std::vector<rnp_op_verify_signature_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3184
      start: 3086
    functionDepth: 4
    functionLinenumber: 3086
    functionLinenumberEnd: 3184
    functionName: cli_rnp_print_signatures
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - auto::c_str
    - rnp_timeadd
    - cli_rnp_print_sig_key_info
    - rnp_op_verify_signature_get_handle
    - rnp_signature_get_signer
    - fprintf
    - std::vector<rnp_op_verify_signature_t>::size
    - std::string::c_str
    - rnp_op_verify_signature_get_times
    - rnp_ctime
    - rnp_y2k38_warning
    - rnp_key_handle_destroy
    - ERR_MSG
    - rnp_signature_handle_destroy
    - cli_rnp_print_key_info
    - rnp_op_verify_signature_get_status
    linkageType: ''
    returnType: void
    signature: void cli_rnp_print_signatures(cli_rnp_t *rnp, const std::vector<rnp_op_verify_signature_t>
      &sigs)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp_op_verify_get_recipient_count
      Src: /src/rnp/src/rnp/fficli.cpp:3190,1
    - Dst: rnp_op_verify_get_recipient_at
      Src: /src/rnp/src/rnp/fficli.cpp:3196,1
    - Dst: rnp_recipient_get_keyid
      Src: /src/rnp/src/rnp/fficli.cpp:3198,1
    - Dst: strcmp
      Src: /src/rnp/src/rnp/fficli.cpp:3199,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:3200,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3202,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 1
    argNames:
    - op
    argTypes:
    - rnp_op_verify_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3207
      start: 3186
    functionDepth: 1
    functionLinenumber: 3186
    functionLinenumberEnd: 3207
    functionName: cli_rnp_inform_of_hidden_recipient
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - rnp_buffer_destroy
    - strcmp
    - rnp_op_verify_get_recipient_at
    - rnp_recipient_get_keyid
    - rnp_op_verify_get_recipient_count
    - ERR_MSG
    linkageType: ''
    returnType: void
    signature: void cli_rnp_inform_of_hidden_recipient(rnp_op_verify_t op)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t*::init_io
      Src: /src/rnp/src/rnp/fficli.cpp:3213,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3214,1
    - Dst: rnp_guess_contents
      Src: /src/rnp/src/rnp/fficli.cpp:3219,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3220,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:3221,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/rnp/fficli.cpp:3234,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:3236,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:3237,1
    - Dst: is_stdinout_spec
      Src: /src/rnp/src/rnp/fficli.cpp:3238,1
    - Dst: is_stdinout_spec
      Src: /src/rnp/src/rnp/fficli.cpp:3238,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3239,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:3242,1
    - Dst: has_extension
      Src: /src/rnp/src/rnp/fficli.cpp:3242,1
    - Dst: has_extension
      Src: /src/rnp/src/rnp/fficli.cpp:3242,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3243,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/fficli.cpp:3246,1
    - Dst: std::move
      Src: /src/rnp/src/rnp/fficli.cpp:3247,1
    - Dst: strip_extension
      Src: /src/rnp/src/rnp/fficli.cpp:3249,1
    - Dst: cli_rnp_input_from_specifier
      Src: /src/rnp/src/rnp/fficli.cpp:3251,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3253,1
    - Dst: rnp_op_verify_detached_create
      Src: /src/rnp/src/rnp/fficli.cpp:3257,1
    - Dst: rnp_op_verify_set_flags
      Src: /src/rnp/src/rnp/fficli.cpp:3260,1
    - Dst: cli_rnp_t*::init_io
      Src: /src/rnp/src/rnp/fficli.cpp:3263,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3264,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/rnp/fficli.cpp:3267,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:3270,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:3277,1
    - Dst: rnp_op_verify_set_flags
      Src: /src/rnp/src/rnp/fficli.cpp:3281,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3285,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/rnp/fficli.cpp:3289,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/fficli.cpp:3292,1
    - Dst: cli_rnp_inform_of_hidden_recipient
      Src: /src/rnp/src/rnp/fficli.cpp:3293,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/rnp/fficli.cpp:3296,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/rnp/fficli.cpp:3303,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3304,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/rnp/fficli.cpp:3309,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3311,1
    - Dst: what
      Src: /src/rnp/src/rnp/fficli.cpp:3311,1
    - Dst: cli_rnp_print_signatures
      Src: /src/rnp/src/rnp/fficli.cpp:3316,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:3318,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:3319,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:3320,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:3321,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:3322,1
    CyclomaticComplexity: 30
    EdgeCount: 30
    ICount: 93
    argCount: 1
    argNames:
    - rnp
    argTypes:
    - cli_rnp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3324
      start: 3209
    functionDepth: 5
    functionLinenumber: 3209
    functionLinenumberEnd: 3324
    functionName: cli_rnp_process_file
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 5
    functionsReached:
    - cli_rnp_t*::init_io
    - rnp_op_verify_get_signature_at
    - strip_extension
    - rnp_op_verify_execute
    - std::move
    - rnp::str_case_eq
    - rnp_op_verify_set_flags
    - has_extension
    - rnp_op_verify_detached_create
    - rnp_op_verify_destroy
    - ERR_MSG
    - is_stdinout_spec
    - rnp_op_verify_create
    - cli_rnp_inform_of_hidden_recipient
    - cli_rnp_t*::cfg
    - std::string::empty
    - rnp_op_verify_get_signature_count
    - rnp_input_destroy
    - std::vector::push_back
    - what
    - cli_rnp_print_signatures
    - rnp_buffer_destroy
    - rnp_guess_contents
    - rnp_output_destroy
    - cli_rnp_input_from_specifier
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_process_file(cli_rnp_t *rnp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/rnp/src/rnp/fficli.cpp:3329,1
    - Dst: printf
      Src: /src/rnp/src/rnp/fficli.cpp:3330,1
    - Dst: rnp_backend_string
      Src: /src/rnp/src/rnp/fficli.cpp:3330,1
    - Dst: printf
      Src: /src/rnp/src/rnp/fficli.cpp:3331,1
    - Dst: rnp_backend_version
      Src: /src/rnp/src/rnp/fficli.cpp:3331,1
    - Dst: printf
      Src: /src/rnp/src/rnp/fficli.cpp:3332,1
    - Dst: cli_rnp_print_feature
      Src: /src/rnp/src/rnp/fficli.cpp:3333,1
    - Dst: cli_rnp_print_feature
      Src: /src/rnp/src/rnp/fficli.cpp:3334,1
    - Dst: cli_rnp_print_feature
      Src: /src/rnp/src/rnp/fficli.cpp:3335,1
    - Dst: cli_rnp_print_feature
      Src: /src/rnp/src/rnp/fficli.cpp:3336,1
    - Dst: cli_rnp_print_feature
      Src: /src/rnp/src/rnp/fficli.cpp:3337,1
    - Dst: cli_rnp_print_feature
      Src: /src/rnp/src/rnp/fficli.cpp:3338,1
    - Dst: cli_rnp_print_feature
      Src: /src/rnp/src/rnp/fficli.cpp:3339,1
    - Dst: printf
      Src: /src/rnp/src/rnp/fficli.cpp:3340,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3342
      start: 3326
    functionDepth: 1
    functionLinenumber: 3326
    functionLinenumberEnd: 3342
    functionName: cli_rnp_print_praise
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 0
    functionsReached:
    - rnp_backend_version
    - cli_rnp_print_feature
    - rnp_backend_string
    - printf
    linkageType: ''
    returnType: void
    signature: void cli_rnp_print_praise(void)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp_supported_features
      Src: /src/rnp/src/rnp/fficli.cpp:3348,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3349,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:3350,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/rnp/fficli.cpp:3354,1
    - Dst: nlohmann::ordered_json::is_array
      Src: /src/rnp/src/rnp/fficli.cpp:3355,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3356,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:3357,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:3360,1
    - Dst: nlohmann::ordered_json::size
      Src: /src/rnp/src/rnp/fficli.cpp:3361,1
    - Dst: fprintf
      Src: /src/rnp/src/rnp/fficli.cpp:3363,1
    - Dst: get_ref
      Src: /src/rnp/src/rnp/fficli.cpp:3365,1
    - Dst: fputs
      Src: /src/rnp/src/rnp/fficli.cpp:3368,1
    - Dst: fflush
      Src: /src/rnp/src/rnp/fficli.cpp:3369,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/fficli.cpp:3371,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/fficli.cpp:3373,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 3
    argNames:
    - fp
    - type
    - printed_type
    argTypes:
    - FILE*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3374
      start: 3344
    functionDepth: 1
    functionLinenumber: 3344
    functionLinenumberEnd: 3374
    functionName: cli_rnp_print_feature
    functionSourceFile: /src/rnp/src/rnp/fficli.cpp
    functionUses: 1
    functionsReached:
    - nlohmann::ordered_json::is_array
    - fprintf
    - rnp_buffer_destroy
    - fputs
    - nlohmann::ordered_json::size
    - fflush
    - pgp::pkt::Signature::parse
    - rnp_supported_features
    - get_ref
    - ERR_MSG
    linkageType: ''
    returnType: void
    signature: void cli_rnp_print_feature(FILE *fp, const char *type, const char *printed_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_str
      Src: /src/rnp/src/rnp/fficli.h:85,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: "&\n    defkey()"
    functionSourceFile: /src/rnp/src/rnp/fficli.h
    functionUses: 0
    functionsReached:
    - get_str
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    defkey()"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_str
      Src: /src/rnp/src/rnp/fficli.h:93,1
    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: "&\n    pubpath()"
    functionSourceFile: /src/rnp/src/rnp/fficli.h
    functionUses: 0
    functionsReached:
    - get_str
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    pubpath()"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_str
      Src: /src/rnp/src/rnp/fficli.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: "&\n    secpath()"
    functionSourceFile: /src/rnp/src/rnp/fficli.h
    functionUses: 0
    functionsReached:
    - get_str
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    secpath()"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_str
      Src: /src/rnp/src/rnp/fficli.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: "&\n    pubformat()"
    functionSourceFile: /src/rnp/src/rnp/fficli.h
    functionUses: 0
    functionsReached:
    - get_str
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    pubformat()"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_str
      Src: /src/rnp/src/rnp/fficli.h:111,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: "&\n    secformat()"
    functionSourceFile: /src/rnp/src/rnp/fficli.h
    functionUses: 0
    functionsReached:
    - get_str
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    secformat()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 118
    functionName: "&\n    cfg()"
    functionSourceFile: /src/rnp/src/rnp/fficli.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_cfg
    signature: "rnp_cfg &\n    cfg()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 295
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 295
    functionName: ERR_MSG
    functionSourceFile: /src/rnp/src/rnp/fficli.h
    functionUses: 41
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ERR_MSG(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - src
    argTypes:
    - rnp_cfg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 231
    functionName: '&operator=(const rnp_cfg &src)'
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_cfg
    signature: rnp_cfg &operator=(const rnp_cfg &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - src
    argTypes:
    - rnp_cfg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 232
    functionName: '&operator=(const rnp_cfg &&src)'
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_cfg
    signature: rnp_cfg &operator=(const rnp_cfg &&src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - t
    argTypes:
    - rnp_cfg_val_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 69
    functionName: rnp_cfg_val::rnp_cfg_val
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_cfg_val(rnp_cfg_val_type_t t)
  - 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: rnp_cfg_val::type
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_cfg_val_type_t
    signature: rnp_cfg_val_type_t type() const
  - 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: ~rnp_cfg_val()
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~rnp_cfg_val()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: rnp_cfg_int_val::rnp_cfg_int_val
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_cfg_int_val(int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: rnp_cfg_int_val::val
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int val() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: rnp_cfg_bool_val::rnp_cfg_bool_val
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_cfg_bool_val(bool val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: rnp_cfg_bool_val::val
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool val() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 107
    functionName: rnp_cfg_str_val::rnp_cfg_str_val
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_cfg_str_val(const std::string &val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 112
    functionName: "&\n    val() const"
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    val() const"
  - 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: rnp_cfg_list_val::rnp_cfg_list_val
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_cfg_list_val()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 120
    functionDepth: 0
    functionLinenumber: 120
    functionLinenumberEnd: 124
    functionName: "&\n    val()"
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> &\n    val()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: "&\n    val() const"
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<std::string>
    signature: "std::vector<std::string> &\n    val() const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnpcfg.cpp:135,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:136,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:137,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnp/rnpcfg.cpp:138,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:139,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnp/rnpcfg.cpp:140,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnp/rnpcfg.cpp:141,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 142
    functionName: rnp_cfg::load_defaults
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 3
    functionsReached:
    - rnp_cfg::set_bool
    - rnp_cfg::set_int
    - rnp_cfg::set_str
    linkageType: ''
    returnType: void
    signature: void rnp_cfg::load_defaults()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::unset
      Src: /src/rnp/src/rnp/rnpcfg.cpp:147,1
    - Dst: rnp_cfg_str_val::rnp_cfg_str_val
      Src: /src/rnp/src/rnp/rnpcfg.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: rnp_cfg::set_str
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 18
    functionsReached:
    - rnp_cfg_str_val::rnp_cfg_str_val
    - rnp_cfg::unset
    linkageType: ''
    returnType: void
    signature: void rnp_cfg::set_str(const std::string &key, const std::string &val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::unset
      Src: /src/rnp/src/rnp/rnpcfg.cpp:154,1
    - Dst: rnp_cfg_str_val::rnp_cfg_str_val
      Src: /src/rnp/src/rnp/rnpcfg.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - std::string
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 1
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: rnp_cfg::set_str
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 18
    functionsReached:
    - rnp_cfg_str_val::rnp_cfg_str_val
    - rnp_cfg::unset
    linkageType: ''
    returnType: void
    signature: void rnp_cfg::set_str(const std::string &key, const char *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::unset
      Src: /src/rnp/src/rnp/rnpcfg.cpp:161,1
    - Dst: rnp_cfg_int_val::rnp_cfg_int_val
      Src: /src/rnp/src/rnp/rnpcfg.cpp:162,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 163
    functionName: rnp_cfg::set_int
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 13
    functionsReached:
    - rnp_cfg_int_val::rnp_cfg_int_val
    - rnp_cfg::unset
    linkageType: ''
    returnType: void
    signature: void rnp_cfg::set_int(const std::string &key, int val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::unset
      Src: /src/rnp/src/rnp/rnpcfg.cpp:168,1
    - Dst: rnp_cfg_bool_val::rnp_cfg_bool_val
      Src: /src/rnp/src/rnp/rnpcfg.cpp:169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 170
    functionName: rnp_cfg::set_bool
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 12
    functionsReached:
    - rnp_cfg_bool_val::rnp_cfg_bool_val
    - rnp_cfg::unset
    linkageType: ''
    returnType: void
    signature: void rnp_cfg::set_bool(const std::string &key, bool val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/rnp/src/rnp/rnpcfg.cpp:175,1
    - Dst: erase
      Src: /src/rnp/src/rnp/rnpcfg.cpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 180
    functionName: rnp_cfg::unset
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 6
    functionsReached:
    - count
    - erase
    linkageType: ''
    returnType: void
    signature: void rnp_cfg::unset(const std::string &key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/rnp/src/rnp/rnpcfg.cpp:185,1
    - Dst: rnp_cfg_list_val::rnp_cfg_list_val
      Src: /src/rnp/src/rnp/rnpcfg.cpp:186,1
    - Dst: type
      Src: /src/rnp/src/rnp/rnpcfg.cpp:188,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/rnp/rnpcfg.cpp:189,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:189,1
    - Dst: std::invalid_argument
      Src: /src/rnp/src/rnp/rnpcfg.cpp:190,1
    - Dst: dynamic_cast<rnp_cfg_list_val &>
      Src: /src/rnp/src/rnp/rnpcfg.cpp:192,1
    - Dst: val
      Src: /src/rnp/src/rnp/rnpcfg.cpp:192,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - key
    - val
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 193
    functionName: rnp_cfg::add_str
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 8
    functionsReached:
    - RNP_LOG
    - val
    - std::string::c_str
    - rnp_cfg_list_val::rnp_cfg_list_val
    - dynamic_cast<rnp_cfg_list_val &>
    - std::invalid_argument
    - count
    - type
    linkageType: ''
    returnType: void
    signature: void rnp_cfg::add_str(const std::string &key, const std::string &val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/rnp/src/rnp/rnpcfg.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: rnp_cfg::has
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 2
    functionsReached:
    - count
    linkageType: ''
    returnType: bool
    signature: bool rnp_cfg::has(const std::string &key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has
      Src: /src/rnp/src/rnp/rnpcfg.cpp:204,1
    - Dst: at
      Src: /src/rnp/src/rnp/rnpcfg.cpp:204,1
    - Dst: dynamic_cast<const rnp_cfg_str_val &>
      Src: /src/rnp/src/rnp/rnpcfg.cpp:207,1
    - Dst: at
      Src: /src/rnp/src/rnp/rnpcfg.cpp:207,1
    - Dst: val
      Src: /src/rnp/src/rnp/rnpcfg.cpp:207,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 201
    functionDepth: 1
    functionLinenumber: 201
    functionLinenumberEnd: 208
    functionName: '&

      rnp_cfg::get_str(const std::string &key) const'
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 0
    functionsReached:
    - at
    - dynamic_cast<const rnp_cfg_str_val &>
    - has
    - val
    linkageType: ''
    returnType: std::string
    signature: 'std::string &

      rnp_cfg::get_str(const std::string &key) const'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::has
      Src: /src/rnp/src/rnp/rnpcfg.cpp:213,1
    - Dst: at
      Src: /src/rnp/src/rnp/rnpcfg.cpp:213,1
    - Dst: dynamic_cast<const rnp_cfg_str_val &>
      Src: /src/rnp/src/rnp/rnpcfg.cpp:216,1
    - Dst: at
      Src: /src/rnp/src/rnp/rnpcfg.cpp:216,1
    - Dst: val
      Src: /src/rnp/src/rnp/rnpcfg.cpp:216,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 217
    functionName: rnp_cfg::get_cstr
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 3
    functionsReached:
    - rnp_cfg::has
    - at
    - val
    - dynamic_cast<const rnp_cfg_str_val &>
    linkageType: ''
    returnType: char
    signature: 'char *

      rnp_cfg::get_cstr(const std::string &key) const'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::has
      Src: /src/rnp/src/rnp/rnpcfg.cpp:222,1
    - Dst: at
      Src: /src/rnp/src/rnp/rnpcfg.cpp:225,1
    - Dst: rnp_cfg_val*::type
      Src: /src/rnp/src/rnp/rnpcfg.cpp:226,1
    - Dst: dynamic_cast<const rnp_cfg_int_val &>
      Src: /src/rnp/src/rnp/rnpcfg.cpp:228,1
    - Dst: val
      Src: /src/rnp/src/rnp/rnpcfg.cpp:228,1
    - Dst: dynamic_cast<const rnp_cfg_bool_val &>
      Src: /src/rnp/src/rnp/rnpcfg.cpp:230,1
    - Dst: val
      Src: /src/rnp/src/rnp/rnpcfg.cpp:230,1
    - Dst: atoi
      Src: /src/rnp/src/rnp/rnpcfg.cpp:232,1
    - Dst: dynamic_cast<const rnp_cfg_str_val &>
      Src: /src/rnp/src/rnp/rnpcfg.cpp:232,1
    - Dst: val
      Src: /src/rnp/src/rnp/rnpcfg.cpp:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 2
    argNames:
    - key
    - def
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 219
    functionDepth: 2
    functionLinenumber: 219
    functionLinenumberEnd: 236
    functionName: rnp_cfg::get_int
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 4
    functionsReached:
    - val
    - dynamic_cast<const rnp_cfg_bool_val &>
    - at
    - atoi
    - dynamic_cast<const rnp_cfg_str_val &>
    - rnp_cfg::has
    - rnp_cfg_val*::type
    - dynamic_cast<const rnp_cfg_int_val &>
    linkageType: ''
    returnType: int
    signature: int rnp_cfg::get_int(const std::string &key, int def) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::has
      Src: /src/rnp/src/rnp/rnpcfg.cpp:241,1
    - Dst: at
      Src: /src/rnp/src/rnp/rnpcfg.cpp:244,1
    - Dst: rnp_cfg_val*::type
      Src: /src/rnp/src/rnp/rnpcfg.cpp:245,1
    - Dst: dynamic_cast<const rnp_cfg_int_val &>
      Src: /src/rnp/src/rnp/rnpcfg.cpp:247,1
    - Dst: val
      Src: /src/rnp/src/rnp/rnpcfg.cpp:247,1
    - Dst: dynamic_cast<const rnp_cfg_bool_val &>
      Src: /src/rnp/src/rnp/rnpcfg.cpp:249,1
    - Dst: val
      Src: /src/rnp/src/rnp/rnpcfg.cpp:249,1
    - Dst: dynamic_cast<const rnp_cfg_str_val &>
      Src: /src/rnp/src/rnp/rnpcfg.cpp:251,1
    - Dst: val
      Src: /src/rnp/src/rnp/rnpcfg.cpp:251,1
    - Dst: strcasecmp
      Src: /src/rnp/src/rnp/rnpcfg.cpp:252,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:252,1
    - Dst: atoi
      Src: /src/rnp/src/rnp/rnpcfg.cpp:252,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 238
    functionDepth: 2
    functionLinenumber: 238
    functionLinenumberEnd: 257
    functionName: rnp_cfg::get_bool
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 4
    functionsReached:
    - val
    - dynamic_cast<const rnp_cfg_bool_val &>
    - at
    - atoi
    - dynamic_cast<const rnp_cfg_str_val &>
    - strcasecmp
    - std::string::c_str
    - rnp_cfg::has
    - rnp_cfg_val*::type
    - dynamic_cast<const rnp_cfg_int_val &>
    linkageType: ''
    returnType: bool
    signature: bool rnp_cfg::get_bool(const std::string &key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::has
      Src: /src/rnp/src/rnp/rnpcfg.cpp:262,1
    - Dst: at
      Src: /src/rnp/src/rnp/rnpcfg.cpp:262,1
    - Dst: dynamic_cast<const rnp_cfg_list_val &>
      Src: /src/rnp/src/rnp/rnpcfg.cpp:265,1
    - Dst: at
      Src: /src/rnp/src/rnp/rnpcfg.cpp:265,1
    - Dst: val
      Src: /src/rnp/src/rnp/rnpcfg.cpp:265,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 259
    functionDepth: 2
    functionLinenumber: 259
    functionLinenumberEnd: 266
    functionName: rnp_cfg::get_count
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 1
    functionsReached:
    - rnp_cfg::has
    - at
    - val
    - dynamic_cast<const rnp_cfg_list_val &>
    linkageType: ''
    returnType: size_t
    signature: size_t rnp_cfg::get_count(const std::string &key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_count
      Src: /src/rnp/src/rnp/rnpcfg.cpp:271,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/rnp/rnpcfg.cpp:272,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:272,1
    - Dst: std::invalid_argument
      Src: /src/rnp/src/rnp/rnpcfg.cpp:273,1
    - Dst: dynamic_cast<const rnp_cfg_list_val &>
      Src: /src/rnp/src/rnp/rnpcfg.cpp:275,1
    - Dst: at
      Src: /src/rnp/src/rnp/rnpcfg.cpp:275,1
    - Dst: val
      Src: /src/rnp/src/rnp/rnpcfg.cpp:275,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - key
    - idx
    argTypes:
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 276
    functionName: '&

      rnp_cfg::get_str(const std::string &key, size_t idx) const'
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - val
    - at
    - std::string::c_str
    - std::invalid_argument
    - get_count
    - dynamic_cast<const rnp_cfg_list_val &>
    linkageType: ''
    returnType: std::string
    signature: 'std::string &

      rnp_cfg::get_str(const std::string &key, size_t idx) const'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::has
      Src: /src/rnp/src/rnp/rnpcfg.cpp:281,1
    - Dst: std::vector<std::string>
      Src: /src/rnp/src/rnp/rnpcfg.cpp:283,1
    - Dst: at
      Src: /src/rnp/src/rnp/rnpcfg.cpp:285,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/rnp/rnpcfg.cpp:286,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:286,1
    - Dst: std::invalid_argument
      Src: /src/rnp/src/rnp/rnpcfg.cpp:287,1
    - Dst: dynamic_cast<const rnp_cfg_list_val &>
      Src: /src/rnp/src/rnp/rnpcfg.cpp:289,1
    - Dst: at
      Src: /src/rnp/src/rnp/rnpcfg.cpp:289,1
    - Dst: val
      Src: /src/rnp/src/rnp/rnpcfg.cpp:289,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 290
    functionName: rnp_cfg::get_list
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - val
    - at
    - std::vector<std::string>
    - std::string::c_str
    - rnp_cfg::has
    - std::invalid_argument
    - dynamic_cast<const rnp_cfg_list_val &>
    linkageType: ''
    returnType: std::vector<std::string>
    signature: std::vector<std::string> rnp_cfg::get_list(const std::string &key)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:295,1
    - Dst: atoi
      Src: /src/rnp/src/rnp/rnpcfg.cpp:296,1
    - Dst: auto::c_str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:296,1
    - Dst: auto::empty
      Src: /src/rnp/src/rnp/rnpcfg.cpp:297,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 303
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 303
    functionName: rnp_cfg::get_pswdtries
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 0
    functionsReached:
    - atoi
    - auto::c_str
    - get_str
    - auto::empty
    linkageType: ''
    returnType: int
    signature: int rnp_cfg::get_pswdtries() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:308,1
    - Dst: auto::empty
      Src: /src/rnp/src/rnp/rnpcfg.cpp:309,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 305
    functionDepth: 1
    functionLinenumber: 305
    functionLinenumberEnd: 313
    functionName: rnp_cfg::get_hashalg
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 2
    functionsReached:
    - get_str
    - auto::empty
    linkageType: ''
    returnType: std::string
    signature: std::string rnp_cfg::get_hashalg() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get_str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:318,1
    - Dst: auto::empty
      Src: /src/rnp/src/rnp/rnpcfg.cpp:319,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 323
    functionName: rnp_cfg::get_cipher
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 0
    functionsReached:
    - get_str
    - auto::empty
    linkageType: ''
    returnType: std::string
    signature: std::string rnp_cfg::get_cipher() const
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::has
      Src: /src/rnp/src/rnp/rnpcfg.cpp:328,1
    - Dst: get_str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:331,1
    - Dst: rnp_cfg::parse_date
      Src: /src/rnp/src/rnp/rnpcfg.cpp:334,1
    - Dst: rnp_cfg::time
      Src: /src/rnp/src/rnp/rnpcfg.cpp:335,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/rnp/rnpcfg.cpp:339,1
    - Dst: regcomp
      Src: /src/rnp/src/rnp/rnpcfg.cpp:355,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/rnp/rnpcfg.cpp:356,1
    - Dst: regexec
      Src: /src/rnp/src/rnp/rnpcfg.cpp:360,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:360,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/rnp/rnpcfg.cpp:360,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:363,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:364,1
    - Dst: std::regex_search
      Src: /src/rnp/src/rnp/rnpcfg.cpp:369,1
    - Dst: str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:372,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:373,1
    - Dst: str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:374,1
    - Dst: strtoul
      Src: /src/rnp/src/rnp/rnpcfg.cpp:377,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/rnp/rnpcfg.cpp:379,1
    - Dst: std::tolower
      Src: /src/rnp/src/rnp/rnpcfg.cpp:382,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/rnp/rnpcfg.cpp:400,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 58
    argCount: 2
    argNames:
    - key
    - seconds
    argTypes:
    - std::string
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 405
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 405
    functionName: rnp_cfg::get_expiration
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - std::tolower
    - std::regex_search
    - rnp_cfg::parse_date
    - std::string::c_str
    - str
    - rnp_cfg::has
    - get_str
    - rnp_cfg::time
    - regcomp
    - regexec
    - ARRAY_SIZE
    - strtoul
    linkageType: ''
    returnType: bool
    signature: bool rnp_cfg::get_expiration(const std::string &key, uint32_t &seconds)
      const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/rnpcfg.cpp:410,1
    - Dst: rnp_cfg::parse_date
      Src: /src/rnp/src/rnp/rnpcfg.cpp:413,1
    - Dst: isdigit
      Src: /src/rnp/src/rnp/rnpcfg.cpp:418,1
    - Dst: std::stoll
      Src: /src/rnp/src/rnp/rnpcfg.cpp:422,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 2
    argNames:
    - st
    - t
    argTypes:
    - std::string
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 407
    functionDepth: 1
    functionLinenumber: 407
    functionLinenumberEnd: 424
    functionName: rnp_cfg::extract_timestamp
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 0
    functionsReached:
    - rnp_cfg::parse_date
    - std::string::empty
    - std::stoll
    - isdigit
    linkageType: ''
    returnType: bool
    signature: bool rnp_cfg::extract_timestamp(const std::string &st, uint64_t &t)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::extract_timestamp
      Src: /src/rnp/src/rnp/rnpcfg.cpp:430,1
    - Dst: get_str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:430,1
    - Dst: rnp_cfg::time
      Src: /src/rnp/src/rnp/rnpcfg.cpp:433,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 434
      start: 426
    functionDepth: 2
    functionLinenumber: 426
    functionLinenumberEnd: 434
    functionName: rnp_cfg::get_sig_creation
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 2
    functionsReached:
    - get_str
    - rnp_cfg::time
    - rnp_cfg::extract_timestamp
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t rnp_cfg::get_sig_creation() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::extract_timestamp
      Src: /src/rnp/src/rnp/rnpcfg.cpp:440,1
    - Dst: get_str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:440,1
    - Dst: rnp_cfg::time
      Src: /src/rnp/src/rnp/rnpcfg.cpp:443,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 444
      start: 436
    functionDepth: 2
    functionLinenumber: 436
    functionLinenumberEnd: 444
    functionName: rnp_cfg::time
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 4
    functionsReached:
    - get_str
    - rnp_cfg::time
    - rnp_cfg::extract_timestamp
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t rnp_cfg::time() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::has
      Src: /src/rnp/src/rnp/rnpcfg.cpp:450,1
    - Dst: rnp_cfg::unset
      Src: /src/rnp/src/rnp/rnpcfg.cpp:451,1
    - Dst: second::type
      Src: /src/rnp/src/rnp/rnpcfg.cpp:454,1
    - Dst: dynamic_cast<const rnp_cfg_int_val &>
      Src: /src/rnp/src/rnp/rnpcfg.cpp:456,1
    - Dst: rnp_cfg_int_val::rnp_cfg_int_val
      Src: /src/rnp/src/rnp/rnpcfg.cpp:456,1
    - Dst: dynamic_cast<const rnp_cfg_bool_val &>
      Src: /src/rnp/src/rnp/rnpcfg.cpp:459,1
    - Dst: rnp_cfg_bool_val::rnp_cfg_bool_val
      Src: /src/rnp/src/rnp/rnpcfg.cpp:459,1
    - Dst: dynamic_cast<const rnp_cfg_str_val &>
      Src: /src/rnp/src/rnp/rnpcfg.cpp:462,1
    - Dst: rnp_cfg_str_val::rnp_cfg_str_val
      Src: /src/rnp/src/rnp/rnpcfg.cpp:462,1
    - Dst: dynamic_cast<const rnp_cfg_list_val &>
      Src: /src/rnp/src/rnp/rnpcfg.cpp:465,1
    - Dst: rnp_cfg_list_val::rnp_cfg_list_val
      Src: /src/rnp/src/rnp/rnpcfg.cpp:465,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - src
    argTypes:
    - rnp_cfg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 446
    functionDepth: 2
    functionLinenumber: 446
    functionLinenumberEnd: 472
    functionName: rnp_cfg::copy
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 2
    functionsReached:
    - dynamic_cast<const rnp_cfg_bool_val &>
    - dynamic_cast<const rnp_cfg_str_val &>
    - rnp_cfg_str_val::rnp_cfg_str_val
    - second::type
    - rnp_cfg::unset
    - rnp_cfg_list_val::rnp_cfg_list_val
    - rnp_cfg::has
    - rnp_cfg_int_val::rnp_cfg_int_val
    - rnp_cfg_bool_val::rnp_cfg_bool_val
    - dynamic_cast<const rnp_cfg_list_val &>
    - dynamic_cast<const rnp_cfg_int_val &>
    linkageType: ''
    returnType: void
    signature: void rnp_cfg::copy(const rnp_cfg &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::clear
      Src: /src/rnp/src/rnp/rnpcfg.cpp:480,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 481
    functionName: rnp_cfg::clear
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 4
    functionsReached:
    - rnp_cfg::clear
    linkageType: ''
    returnType: void
    signature: void rnp_cfg::clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::clear
      Src: /src/rnp/src/rnp/rnpcfg.cpp:485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 486
    functionName: rnp_cfg::~rnp_cfg()
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 0
    functionsReached:
    - rnp_cfg::clear
    linkageType: ''
    returnType: void
    signature: void rnp_cfg::~rnp_cfg()
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 21
    argCount: 2
    argNames:
    - year
    - month
    argTypes:
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 519
    functionName: days_in_month
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int days_in_month(int year, int month)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rnp_localtime
      Src: /src/rnp/src/rnp/rnpcfg.cpp:526,1
    - Dst: rnp_cfg::time
      Src: /src/rnp/src/rnp/rnpcfg.cpp:526,1
    - Dst: regcomp
      Src: /src/rnp/src/rnp/rnpcfg.cpp:538,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/rnp/rnpcfg.cpp:540,1
    - Dst: regexec
      Src: /src/rnp/src/rnp/rnpcfg.cpp:546,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:546,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/rnp/rnpcfg.cpp:546,1
    - Dst: strtol
      Src: /src/rnp/src/rnp/rnpcfg.cpp:549,1
    - Dst: strtol
      Src: /src/rnp/src/rnp/rnpcfg.cpp:550,1
    - Dst: strtol
      Src: /src/rnp/src/rnp/rnpcfg.cpp:551,1
    - Dst: std::regex_search
      Src: /src/rnp/src/rnp/rnpcfg.cpp:557,1
    - Dst: std::stoi
      Src: /src/rnp/src/rnp/rnpcfg.cpp:560,1
    - Dst: str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:560,1
    - Dst: std::stoi
      Src: /src/rnp/src/rnp/rnpcfg.cpp:561,1
    - Dst: str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:561,1
    - Dst: std::stoi
      Src: /src/rnp/src/rnp/rnpcfg.cpp:562,1
    - Dst: str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:562,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/rnp/rnpcfg.cpp:565,1
    - Dst: what
      Src: /src/rnp/src/rnp/rnpcfg.cpp:565,1
    - Dst: days_in_month
      Src: /src/rnp/src/rnp/rnpcfg.cpp:570,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/rnp/rnpcfg.cpp:571,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:571,1
    - Dst: rnp_mktime
      Src: /src/rnp/src/rnp/rnpcfg.cpp:581,1
    - Dst: mktime
      Src: /src/rnp/src/rnp/rnpcfg.cpp:582,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/rnp/rnpcfg.cpp:586,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcfg.cpp:588,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 42
    argCount: 2
    argNames:
    - s
    - t
    argTypes:
    - std::string
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 521
    functionDepth: 3
    functionLinenumber: 521
    functionLinenumberEnd: 592
    functionName: rnp_cfg::parse_date
    functionSourceFile: /src/rnp/src/rnp/rnpcfg.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - what
    - rnp_localtime
    - std::regex_search
    - std::stoi
    - days_in_month
    - std::string::c_str
    - str
    - rnp_mktime
    - rnp_cfg::time
    - regexec
    - regcomp
    - ARRAY_SIZE
    - strtol
    - mktime
    linkageType: ''
    returnType: bool
    signature: bool rnp_cfg::parse_date(const std::string &s, uint64_t &t) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_print_praise
      Src: /src/rnp/src/rnp/rnp.cpp:261,1
    - Dst: puts
      Src: /src/rnp/src/rnp/rnp.cpp:262,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - usagemsg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 258
    functionDepth: 2
    functionLinenumber: 258
    functionLinenumberEnd: 263
    functionName: print_usage
    functionSourceFile: /src/rnp/src/rnp/rnp.cpp
    functionUses: 0
    functionsReached:
    - cli_rnp_print_praise
    - puts
    linkageType: ''
    returnType: void
    signature: void print_usage(const char *usagemsg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnp/rnp.cpp:271,1
    - Dst: cli_rnp_protect_file
      Src: /src/rnp/src/rnp/rnp.cpp:273,1
    - Dst: cli_rnp_process_file
      Src: /src/rnp/src/rnp/rnp.cpp:276,1
    - Dst: cli_rnp_dump_file
      Src: /src/rnp/src/rnp/rnp.cpp:279,1
    - Dst: cli_rnp_dearmor_file
      Src: /src/rnp/src/rnp/rnp.cpp:282,1
    - Dst: cli_rnp_armor_file
      Src: /src/rnp/src/rnp/rnp.cpp:285,1
    - Dst: cli_rnp_print_praise
      Src: /src/rnp/src/rnp/rnp.cpp:288,1
    - Dst: print_usage
      Src: /src/rnp/src/rnp/rnp.cpp:292,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 26
    argCount: 1
    argNames:
    - rnp
    argTypes:
    - cli_rnp_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 297
      start: 266
    functionDepth: 6
    functionLinenumber: 266
    functionLinenumberEnd: 297
    functionName: rnp_cmd
    functionSourceFile: /src/rnp/src/rnp/rnp.cpp
    functionUses: 1
    functionsReached:
    - cli_rnp_dump_file
    - cli_rnp_protect_file
    - cli_rnp_armor_file
    - cli_rnp_process_file
    - cli_rnp_t*::cfg
    - print_usage
    - cli_rnp_print_praise
    - cli_rnp_dearmor_file
    linkageType: ''
    returnType: bool
    signature: bool rnp_cmd(cli_rnp_t *rnp)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:307,1
    - Dst: rnp_cfg::get_bool
      Src: /src/rnp/src/rnp/rnp.cpp:308,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:309,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:314,1
    - Dst: rnp_cfg::get_bool
      Src: /src/rnp/src/rnp/rnp.cpp:315,1
    - Dst: rnp_cfg::get_bool
      Src: /src/rnp/src/rnp/rnp.cpp:315,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:316,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:321,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:324,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:325,1
    - Dst: rnp_cfg::get_bool
      Src: /src/rnp/src/rnp/rnp.cpp:326,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:327,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:333,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:338,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:344,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:347,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/rnp.cpp:351,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/rnp.cpp:360,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/rnp.cpp:364,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/rnp.cpp:365,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:367,1
    - Dst: rnp_cfg::has
      Src: /src/rnp/src/rnp/rnp.cpp:378,1
    - Dst: rnp_cfg::get_int
      Src: /src/rnp/src/rnp/rnp.cpp:378,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/rnp.cpp:379,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnp/rnp.cpp:383,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 78
    argCount: 3
    argNames:
    - cfg
    - cmd
    - arg
    argTypes:
    - rnp_cfg
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 299
    functionDepth: 3
    functionLinenumber: 299
    functionLinenumberEnd: 385
    functionName: setcmd
    functionSourceFile: /src/rnp/src/rnp/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp_cfg::get_bool
    - rnp_cfg::has
    - rnp_cfg::get_int
    - rnp_cfg::set_bool
    - std::string::empty
    - rnp_cfg::set_int
    - rnp_cfg::set_str
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool setcmd(rnp_cfg &cfg, int cmd, const char *arg)
  - BBCount: 62
    BranchProfiles: []
    Callsites:
    - Dst: setcmd
      Src: /src/rnp/src/rnp/rnp.cpp:405,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/rnp.cpp:409,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:411,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/rnp.cpp:414,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/rnp/rnp.cpp:417,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/rnp/rnp.cpp:420,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:424,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:427,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:431,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:434,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/rnp.cpp:437,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/rnp.cpp:440,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:441,1
    - Dst: cli_rnp_set_hash
      Src: /src/rnp/src/rnp/rnp.cpp:444,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:446,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:449,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/rnp.cpp:452,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/rnp.cpp:455,1
    - Dst: rnp::str_to_int
      Src: /src/rnp/src/rnp/rnp.cpp:459,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/rnp.cpp:460,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnp/rnp.cpp:464,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:465,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/rnp.cpp:469,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/rnp.cpp:472,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/rnp.cpp:475,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/rnp.cpp:478,1
    - Dst: cli_rnp_set_cipher
      Src: /src/rnp/src/rnp/rnp.cpp:481,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/rnp.cpp:483,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/rnp.cpp:486,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/rnp.cpp:489,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/rnp.cpp:492,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/rnp/rnp.cpp:496,1
    - Dst: std::string::empty
      Src: /src/rnp/src/rnp/rnp.cpp:498,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/rnp/rnp.cpp:498,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/rnp.cpp:501,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnp.cpp:501,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/rnp.cpp:504,1
    - Dst: rnp::str_to_int
      Src: /src/rnp/src/rnp/rnp.cpp:509,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/rnp.cpp:510,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnp/rnp.cpp:513,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:517,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:520,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:523,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:526,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:529,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:532,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/rnp.cpp:535,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:538,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnp/rnp.cpp:539,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/rnp.cpp:542,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:545,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/rnp.cpp:548,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:551,1
    - Dst: rnp::str_to_int
      Src: /src/rnp/src/rnp/rnp.cpp:555,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/rnp.cpp:556,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnp/rnp.cpp:559,1
    - Dst: rnp::str_to_int
      Src: /src/rnp/src/rnp/rnp.cpp:564,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/rnp.cpp:565,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnp/rnp.cpp:568,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/rnp.cpp:572,1
    - Dst: setcmd
      Src: /src/rnp/src/rnp/rnp.cpp:575,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 177
    argCount: 3
    argNames:
    - cfg
    - val
    - arg
    argTypes:
    - rnp_cfg
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 579
      start: 388
    functionDepth: 4
    functionLinenumber: 388
    functionLinenumberEnd: 579
    functionName: setoption
    functionSourceFile: /src/rnp/src/rnp/rnp.cpp
    functionUses: 0
    functionsReached:
    - setcmd
    - rnp_cfg::add_str
    - cli_rnp_set_cipher
    - cli_rnp_set_hash
    - rnp::str_case_eq
    - std::string::c_str
    - rnp::str_to_int
    - rnp_cfg::set_bool
    - std::string::empty
    - rnp_cfg::set_int
    - rnp_cfg::set_str
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool setoption(rnp_cfg &cfg, int val, const char *arg)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: setcmd
      Src: /src/rnp/src/rnp/rnp.cpp:586,1
    - Dst: setcmd
      Src: /src/rnp/src/rnp/rnp.cpp:588,1
    - Dst: setcmd
      Src: /src/rnp/src/rnp/rnp.cpp:590,1
    - Dst: setcmd
      Src: /src/rnp/src/rnp/rnp.cpp:592,1
    - Dst: setcmd
      Src: /src/rnp/src/rnp/rnp.cpp:594,1
    - Dst: setcmd
      Src: /src/rnp/src/rnp/rnp.cpp:596,1
    - Dst: strlen
      Src: /src/rnp/src/rnp/rnp.cpp:598,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/rnp.cpp:599,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/rnp/rnp.cpp:601,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/rnp.cpp:606,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/rnp/rnp.cpp:609,1
    - Dst: strlen
      Src: /src/rnp/src/rnp/rnp.cpp:612,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/rnp.cpp:613,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnp/rnp.cpp:615,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/rnp.cpp:620,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnp/rnp.cpp:623,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnp/rnp.cpp:624,1
    - Dst: setcmd
      Src: /src/rnp/src/rnp/rnp.cpp:629,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 49
    argCount: 3
    argNames:
    - cfg
    - ch
    - arg
    argTypes:
    - rnp_cfg
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 633
      start: 581
    functionDepth: 4
    functionLinenumber: 581
    functionLinenumberEnd: 633
    functionName: set_short_option
    functionSourceFile: /src/rnp/src/rnp/rnp.cpp
    functionUses: 0
    functionsReached:
    - setcmd
    - rnp_cfg::add_str
    - rnp_cfg::set_bool
    - strlen
    - rnp_cfg::set_int
    - rnp_cfg::set_str
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool set_short_option(rnp_cfg &cfg, int ch, const char *arg)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: print_usage
      Src: /src/rnp/src/rnp/rnp.cpp:645,1
    - Dst: cli_rnp_t::substitute_args
      Src: /src/rnp/src/rnp/rnp.cpp:652,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/rnp/rnp.cpp:654,1
    - Dst: what
      Src: /src/rnp/src/rnp/rnp.cpp:654,1
    - Dst: rnp_cfg::load_defaults
      Src: /src/rnp/src/rnp/rnp.cpp:660,1
    - Dst: getopt_long
      Src: /src/rnp/src/rnp/rnp.cpp:665,1
    - Dst: print_usage
      Src: /src/rnp/src/rnp/rnp.cpp:668,1
    - Dst: setoption
      Src: /src/rnp/src/rnp/rnp.cpp:672,1
    - Dst: set_short_option
      Src: /src/rnp/src/rnp/rnp.cpp:673,1
    - Dst: rnp_cfg::get_int
      Src: /src/rnp/src/rnp/rnp.cpp:679,1
    - Dst: print_usage
      Src: /src/rnp/src/rnp/rnp.cpp:681,1
    - Dst: cli_rnp_print_praise
      Src: /src/rnp/src/rnp/rnp.cpp:684,1
    - Dst: cli_cfg_set_keystore_info
      Src: /src/rnp/src/rnp/rnp.cpp:689,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/rnp.cpp:690,1
    - Dst: cli_rnp_t::init
      Src: /src/rnp/src/rnp/rnp.cpp:694,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/rnp.cpp:695,1
    - Dst: cli_rnp_check_weak_hash
      Src: /src/rnp/src/rnp/rnp.cpp:699,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/rnp.cpp:700,1
    - Dst: cli_rnp_check_old_ciphers
      Src: /src/rnp/src/rnp/rnp.cpp:705,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/rnp.cpp:706,1
    - Dst: cli_rnp_t::cfg
      Src: /src/rnp/src/rnp/rnp.cpp:711,1
    - Dst: cli_rnp_t::load_keyrings
      Src: /src/rnp/src/rnp/rnp.cpp:712,1
    - Dst: cli_rnp_t::cfg
      Src: /src/rnp/src/rnp/rnp.cpp:712,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/rnp.cpp:713,1
    - Dst: cli_rnp_t::cfg
      Src: /src/rnp/src/rnp/rnp.cpp:718,1
    - Dst: cli_rnp_add_key
      Src: /src/rnp/src/rnp/rnp.cpp:718,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnp/rnp.cpp:719,1
    - Dst: cli_rnp_setup
      Src: /src/rnp/src/rnp/rnp.cpp:723,1
    - Dst: cli_rnp_t::ret_code
      Src: /src/rnp/src/rnp/rnp.cpp:729,1
    - Dst: rnp_cmd
      Src: /src/rnp/src/rnp/rnp.cpp:729,1
    - Dst: cli_rnp_t::cfg
      Src: /src/rnp/src/rnp/rnp.cpp:733,1
    - Dst: rnp_cmd
      Src: /src/rnp/src/rnp/rnp.cpp:734,1
    - Dst: cli_rnp_t::ret_code
      Src: /src/rnp/src/rnp/rnp.cpp:736,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 66
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 737
      start: 640
    functionDepth: 5
    functionLinenumber: 640
    functionLinenumberEnd: 737
    functionName: rnp_main
    functionSourceFile: /src/rnp/src/rnp/rnp.cpp
    functionUses: 1
    functionsReached:
    - set_short_option
    - cli_rnp_add_key
    - cli_rnp_print_praise
    - setoption
    - cli_rnp_t::init
    - cli_rnp_setup
    - rnp_cfg::get_int
    - print_usage
    - ERR_MSG
    - RNP_LOG
    - cli_rnp_t::ret_code
    - cli_rnp_t::cfg
    - cli_rnp_t::load_keyrings
    - cli_rnp_t::substitute_args
    - what
    - rnp_cfg::load_defaults
    - rnp_cmd
    - getopt_long
    - cli_cfg_set_keystore_info
    - cli_rnp_check_weak_hash
    - cli_rnp_check_old_ciphers
    linkageType: ''
    returnType: int
    signature: int rnp_main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: rnpffi::ffi_exception::ffi_exception
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ffi_exception(rnp_result_t code = RNP_ERROR_GENERIC, const char
      *func = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: rnpffi::ffi_exception::what
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *\n    what() const throw()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: rnpffi::ffi_exception::code
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: rnpffi::ffi_exception::func
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *\n    func() const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func_call
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: CALL_FFI
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_FFI(func_call)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: rnpffi::String::String
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String(bool secure = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: rnpffi::String::String
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String(const String &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: rnpffi::String::String
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String(String &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: '&operator=(const String &)'
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: String
    signature: String &operator=(const String &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: '&operator=(String &&)'
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: String
    signature: String &operator=(String &&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_buffer_clear
      Src: /src/rnp/src/rnp/rnpcpp.hpp:91,1
    - Dst: strlen
      Src: /src/rnp/src/rnp/rnpcpp.hpp:91,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/rnpcpp.hpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: ~String()
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - rnp_buffer_clear
    - rnp_buffer_destroy
    - strlen
    linkageType: ''
    returnType: void
    signature: void ~String()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp_buffer_clear
      Src: /src/rnp/src/rnp/rnpcpp.hpp:103,1
    - Dst: strlen
      Src: /src/rnp/src/rnp/rnpcpp.hpp:103,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/rnpcpp.hpp:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 108
    functionName: rnpffi::String::set
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - rnp_buffer_clear
    - rnp_buffer_destroy
    - strlen
    linkageType: ''
    returnType: char
    signature: "char **\n    set()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: rnpffi::String::c_str
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *\n    c_str() const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: rnpffi::String::c_str
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *\n    c_str()"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string
      Src: /src/rnp/src/rnp/rnpcpp.hpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: rnpffi::String::str
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 2
    functionsReached:
    - string
    linkageType: ''
    returnType: std::string
    signature: std::string str() const
  - 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: rnpffi::Key::Key
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: rnpffi::Key::Key
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key(const Key &)
  - 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: rnpffi::Key::Key
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key(Key &&)
  - 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: '&operator=(const Key &)'
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key
    signature: Key &operator=(const Key &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: '&operator=(Key &&)'
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key
    signature: Key &operator=(Key &&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::invalid_argument
      Src: /src/rnp/src/rnp/rnpcpp.hpp:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - handle
    argTypes:
    - rnp_key_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 147
    functionName: rnpffi::Key::Key
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 2
    functionsReached:
    - std::invalid_argument
    linkageType: ''
    returnType: void
    signature: void Key(rnp_key_handle_t handle, bool own = true)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/rnp/rnpcpp.hpp:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: ~Key()
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - rnp_key_handle_destroy
    linkageType: ''
    returnType: void
    signature: void ~Key()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: rnpffi::Key::handle
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_key_handle_t
    signature: rnp_key_handle_t handle()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::invalid_argument
      Src: /src/rnp/src/rnp/rnpcpp.hpp:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: rnpffi::Key::release
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - std::invalid_argument
    linkageType: ''
    returnType: rnp_key_handle_t
    signature: rnp_key_handle_t release()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:176,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/rnp/rnpcpp.hpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 178
    functionName: rnpffi::Key::secret
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - CALL_FFI
    - rnp_key_have_secret
    linkageType: ''
    returnType: bool
    signature: bool secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:184,1
    - Dst: rnp_key_is_sub
      Src: /src/rnp/src/rnp/rnpcpp.hpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 186
    functionName: rnpffi::Key::is_sub
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 2
    functionsReached:
    - CALL_FFI
    - rnp_key_is_sub
    linkageType: ''
    returnType: bool
    signature: bool is_sub()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:192,1
    - Dst: rnp_key_is_primary
      Src: /src/rnp/src/rnp/rnpcpp.hpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 194
    functionName: rnpffi::Key::is_primary
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - CALL_FFI
    - rnp_key_is_primary
    linkageType: ''
    returnType: bool
    signature: bool is_primary()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:200,1
    - Dst: rnp_key_get_alg
      Src: /src/rnp/src/rnp/rnpcpp.hpp:200,1
    - Dst: String::set
      Src: /src/rnp/src/rnp/rnpcpp.hpp:200,1
    - Dst: String::str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: rnpffi::Key::alg
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - rnp_key_get_alg
    - String::str
    - CALL_FFI
    - String::set
    linkageType: ''
    returnType: std::string
    signature: std::string alg()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:208,1
    - Dst: rnp_key_get_curve
      Src: /src/rnp/src/rnp/rnpcpp.hpp:208,1
    - Dst: String::set
      Src: /src/rnp/src/rnp/rnpcpp.hpp:208,1
    - Dst: String::str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 210
    functionName: rnpffi::Key::curve
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - String::str
    - CALL_FFI
    - rnp_key_get_curve
    - String::set
    linkageType: ''
    returnType: std::string
    signature: std::string curve()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:216,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/rnp/rnpcpp.hpp:216,1
    - Dst: String::set
      Src: /src/rnp/src/rnp/rnpcpp.hpp:216,1
    - Dst: String::str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 218
    functionName: rnpffi::Key::keyid
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - String::str
    - CALL_FFI
    - rnp_key_get_keyid
    - String::set
    linkageType: ''
    returnType: std::string
    signature: std::string keyid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:224,1
    - Dst: rnp_key_get_fprint
      Src: /src/rnp/src/rnp/rnpcpp.hpp:224,1
    - Dst: String::set
      Src: /src/rnp/src/rnp/rnpcpp.hpp:224,1
    - Dst: String::str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: rnpffi::Key::fprint
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - String::str
    - CALL_FFI
    - rnp_key_get_fprint
    - String::set
    linkageType: ''
    returnType: std::string
    signature: std::string fprint()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:232,1
    - Dst: rnp_key_get_grip
      Src: /src/rnp/src/rnp/rnpcpp.hpp:232,1
    - Dst: String::set
      Src: /src/rnp/src/rnp/rnpcpp.hpp:232,1
    - Dst: String::str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 234
    functionName: rnpffi::Key::grip
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - String::str
    - CALL_FFI
    - rnp_key_get_grip
    - String::set
    linkageType: ''
    returnType: std::string
    signature: std::string grip()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:240,1
    - Dst: rnp_key_get_primary_grip
      Src: /src/rnp/src/rnp/rnpcpp.hpp:240,1
    - Dst: String::set
      Src: /src/rnp/src/rnp/rnpcpp.hpp:240,1
    - Dst: String::str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 242
    functionName: rnpffi::Key::primary_grip
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - String::str
    - CALL_FFI
    - rnp_key_get_primary_grip
    - String::set
    linkageType: ''
    returnType: std::string
    signature: std::string primary_grip()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:248,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/rnp/rnpcpp.hpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: rnpffi::Key::uid_count
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - rnp_key_get_uid_count
    - CALL_FFI
    linkageType: ''
    returnType: size_t
    signature: size_t uid_count()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:256,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/rnp/rnpcpp.hpp:256,1
    - Dst: String::set
      Src: /src/rnp/src/rnp/rnpcpp.hpp:256,1
    - Dst: String::str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: rnpffi::Key::uid_at
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - rnp_key_get_uid_at
    - CALL_FFI
    - String::str
    - String::set
    linkageType: ''
    returnType: std::string
    signature: std::string uid_at(size_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:264,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/rnp/rnpcpp.hpp:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 266
    functionName: rnpffi::Key::is_protected
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - CALL_FFI
    - rnp_key_is_protected
    linkageType: ''
    returnType: bool
    signature: bool is_protected()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:272,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/rnp/rnpcpp.hpp:272,1
    - Dst: String::set
      Src: /src/rnp/src/rnp/rnpcpp.hpp:272,1
    - Dst: String::str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: rnpffi::Key::protection_hash
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - String::str
    - CALL_FFI
    - rnp_key_get_protection_hash
    - String::set
    linkageType: ''
    returnType: std::string
    signature: std::string protection_hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:280,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/rnp/rnpcpp.hpp:280,1
    - Dst: String::set
      Src: /src/rnp/src/rnp/rnpcpp.hpp:280,1
    - Dst: String::str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: rnpffi::Key::protection_cipher
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - String::str
    - CALL_FFI
    - String::set
    - rnp_key_get_protection_cipher
    linkageType: ''
    returnType: std::string
    signature: std::string protection_cipher()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:288,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/rnp/rnpcpp.hpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 290
    functionName: rnpffi::Key::protection_iterations
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - CALL_FFI
    - rnp_key_get_protection_iterations
    linkageType: ''
    returnType: size_t
    signature: size_t protection_iterations()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:296,1
    - Dst: rnp_key_25519_bits_tweaked
      Src: /src/rnp/src/rnp/rnpcpp.hpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 298
    functionName: rnpffi::Key::is_25519_bits_tweaked
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - CALL_FFI
    - rnp_key_25519_bits_tweaked
    linkageType: ''
    returnType: bool
    signature: bool is_25519_bits_tweaked()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_25519_bits_tweak
      Src: /src/rnp/src/rnp/rnpcpp.hpp:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 304
    functionName: rnpffi::Key::do_25519_bits_tweak
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - rnp_key_25519_bits_tweak
    linkageType: ''
    returnType: bool
    signature: bool do_25519_bits_tweak()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/rnp/rnpcpp.hpp:309,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - password
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 310
    functionName: rnpffi::Key::unlock
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - std::string::c_str
    - rnp_key_unlock
    linkageType: ''
    returnType: bool
    signature: bool unlock(const std::string &password)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/rnp/rnpcpp.hpp:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 316
    functionName: rnpffi::Key::unlock
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - rnp_key_unlock
    linkageType: ''
    returnType: bool
    signature: bool unlock()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_lock
      Src: /src/rnp/src/rnp/rnpcpp.hpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: rnpffi::Key::lock
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - rnp_key_lock
    linkageType: ''
    returnType: void
    signature: void lock()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_unprotect
      Src: /src/rnp/src/rnp/rnpcpp.hpp:327,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - password
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 328
    functionName: rnpffi::Key::unprotect
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - rnp_key_unprotect
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: bool unprotect(const std::string &password)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_protect
      Src: /src/rnp/src/rnp/rnpcpp.hpp:336,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:337,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:337,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - password
    - cipher
    - hash
    - iterations
    argTypes:
    - std::string
    - std::string
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 338
    functionName: rnpffi::Key::protect
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - rnp_key_protect
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: "bool protect(const std::string &password,\n            const std::string
      &cipher,\n            const std::string &hash,\n            size_t             iterations)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 345
    functionName: rnpffi::IdentifierIterator::IdentifierIterator
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IdentifierIterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 346
    functionName: rnpffi::IdentifierIterator::IdentifierIterator
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IdentifierIterator(const IdentifierIterator &)
  - 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: rnpffi::IdentifierIterator::IdentifierIterator
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IdentifierIterator(IdentifierIterator &&)
  - 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: '&operator=(const IdentifierIterator &)'
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IdentifierIterator
    signature: IdentifierIterator &operator=(const IdentifierIterator &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 349
    functionName: '&operator=(IdentifierIterator &&)'
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IdentifierIterator
    signature: IdentifierIterator &operator=(IdentifierIterator &&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::invalid_argument
      Src: /src/rnp/src/rnp/rnpcpp.hpp:354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - handle
    argTypes:
    - rnp_identifier_iterator_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 357
    functionName: rnpffi::IdentifierIterator::IdentifierIterator
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - std::invalid_argument
    linkageType: ''
    returnType: void
    signature: void IdentifierIterator(rnp_identifier_iterator_t handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_identifier_iterator_destroy
      Src: /src/rnp/src/rnp/rnpcpp.hpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: ~IdentifierIterator()
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - rnp_identifier_iterator_destroy
    linkageType: ''
    returnType: void
    signature: void ~IdentifierIterator()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_identifier_iterator_next
      Src: /src/rnp/src/rnp/rnpcpp.hpp:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - val
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 374
    functionName: rnpffi::IdentifierIterator::next
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - rnp_identifier_iterator_next
    linkageType: ''
    returnType: bool
    signature: bool next(std::string &val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 382
    functionName: rnpffi::FFI::FFI
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FFI()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 383
    functionName: rnpffi::FFI::FFI
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FFI(const FFI &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 384
    functionName: rnpffi::FFI::FFI
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FFI(FFI &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 385
    functionName: '&operator=(const FFI &)'
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FFI
    signature: FFI &operator=(const FFI &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 386
    functionName: '&operator=(FFI &&)'
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FFI
    signature: FFI &operator=(FFI &&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::invalid_argument
      Src: /src/rnp/src/rnp/rnpcpp.hpp:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - handle
    argTypes:
    - rnp_ffi_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 395
    functionName: rnpffi::FFI::FFI
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - std::invalid_argument
    linkageType: ''
    returnType: void
    signature: void FFI(rnp_ffi_t handle, bool own = true)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/rnp/rnpcpp.hpp:400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 402
    functionName: ~FFI()
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - rnp_ffi_destroy
    linkageType: ''
    returnType: void
    signature: void ~FFI()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp_locate_key
      Src: /src/rnp/src/rnp/rnpcpp.hpp:408,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:408,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:408,1
    - Dst: Key::Key
      Src: /src/rnp/src/rnp/rnpcpp.hpp:411,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/rnp/rnpcpp.hpp:413,1
    - Dst: std::unique_ptr<Key>
      Src: /src/rnp/src/rnp/rnpcpp.hpp:415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - id_type
    - id
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 416
    functionName: rnpffi::FFI::locate_key
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 2
    functionsReached:
    - rnp_locate_key
    - std::unique_ptr<Key>
    - Key::Key
    - std::string::c_str
    - rnp_key_handle_destroy
    linkageType: ''
    returnType: std::unique_ptr<Key>
    signature: std::unique_ptr<Key> locate_key(const std::string &id_type, const std::string
      &id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp_identifier_iterator_create
      Src: /src/rnp/src/rnp/rnpcpp.hpp:422,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:422,1
    - Dst: IdentifierIterator::IdentifierIterator
      Src: /src/rnp/src/rnp/rnpcpp.hpp:425,1
    - Dst: rnp_identifier_iterator_destroy
      Src: /src/rnp/src/rnp/rnpcpp.hpp:427,1
    - Dst: std::unique_ptr<IdentifierIterator>
      Src: /src/rnp/src/rnp/rnpcpp.hpp:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - it_type
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 430
    functionName: rnpffi::FFI::iterator_create
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 2
    functionsReached:
    - rnp_identifier_iterator_create
    - IdentifierIterator::IdentifierIterator
    - std::string::c_str
    - std::unique_ptr<IdentifierIterator>
    - rnp_identifier_iterator_destroy
    linkageType: ''
    returnType: std::unique_ptr<IdentifierIterator>
    signature: std::unique_ptr<IdentifierIterator> iterator_create(const std::string
      &it_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_request_password
      Src: /src/rnp/src/rnp/rnpcpp.hpp:435,1
    - Dst: Key::handle
      Src: /src/rnp/src/rnp/rnpcpp.hpp:435,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:435,1
    - Dst: String::set
      Src: /src/rnp/src/rnp/rnpcpp.hpp:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - ctx
    - password
    argTypes:
    - Key
    - std::string
    - String
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 436
    functionName: rnpffi::FFI::request_password
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - Key::handle
    - std::string::c_str
    - rnp_request_password
    - String::set
    linkageType: ''
    returnType: bool
    signature: bool request_password(Key &key, const std::string &ctx, String &password)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 44
    functionName: rnpffi::ffi_exception::ffi_exception
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ffi_exception(rnp_result_t code = RNP_ERROR_GENERIC, const char
      *func = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: rnpffi::ffi_exception::what
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *\n    what() const throw()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: rnpffi::ffi_exception::code
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 61
    functionName: rnpffi::ffi_exception::func
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *\n    func() const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - func_call
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 71
    functionName: CALL_FFI
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CALL_FFI(func_call)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: rnpffi::String::String
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String(bool secure = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: rnpffi::String::String
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String(const String &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: rnpffi::String::String
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String(String &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: '&operator=(const String &)'
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: String
    signature: String &operator=(const String &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: '&operator=(String &&)'
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: String
    signature: String &operator=(String &&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_buffer_clear
      Src: /src/rnp/src/rnp/rnpcpp.hpp:91,1
    - Dst: strlen
      Src: /src/rnp/src/rnp/rnpcpp.hpp:91,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/rnpcpp.hpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 1
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: ~String()
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - rnp_buffer_clear
    - rnp_buffer_destroy
    - strlen
    linkageType: ''
    returnType: void
    signature: void ~String()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp_buffer_clear
      Src: /src/rnp/src/rnp/rnpcpp.hpp:103,1
    - Dst: strlen
      Src: /src/rnp/src/rnp/rnpcpp.hpp:103,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnp/rnpcpp.hpp:105,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 108
    functionName: rnpffi::String::set
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - rnp_buffer_clear
    - rnp_buffer_destroy
    - strlen
    linkageType: ''
    returnType: char
    signature: "char **\n    set()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: rnpffi::String::c_str
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *\n    c_str() const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: rnpffi::String::c_str
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *\n    c_str()"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string
      Src: /src/rnp/src/rnp/rnpcpp.hpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 126
    functionName: rnpffi::String::str
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 2
    functionsReached:
    - string
    linkageType: ''
    returnType: std::string
    signature: std::string str() const
  - 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: rnpffi::Key::Key
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 135
    functionName: rnpffi::Key::Key
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key(const Key &)
  - 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: rnpffi::Key::Key
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key(Key &&)
  - 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: '&operator=(const Key &)'
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key
    signature: Key &operator=(const Key &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 138
    functionDepth: 0
    functionLinenumber: 138
    functionLinenumberEnd: 138
    functionName: '&operator=(Key &&)'
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key
    signature: Key &operator=(Key &&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::invalid_argument
      Src: /src/rnp/src/rnp/rnpcpp.hpp:143,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - handle
    argTypes:
    - rnp_key_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 147
    functionName: rnpffi::Key::Key
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 2
    functionsReached:
    - std::invalid_argument
    linkageType: ''
    returnType: void
    signature: void Key(rnp_key_handle_t handle, bool own = true)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/rnp/rnpcpp.hpp:152,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 149
    functionDepth: 0
    functionLinenumber: 149
    functionLinenumberEnd: 154
    functionName: ~Key()
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - rnp_key_handle_destroy
    linkageType: ''
    returnType: void
    signature: void ~Key()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: rnpffi::Key::handle
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_key_handle_t
    signature: rnp_key_handle_t handle()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::invalid_argument
      Src: /src/rnp/src/rnp/rnpcpp.hpp:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 170
    functionName: rnpffi::Key::release
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - std::invalid_argument
    linkageType: ''
    returnType: rnp_key_handle_t
    signature: rnp_key_handle_t release()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:176,1
    - Dst: rnp_key_have_secret
      Src: /src/rnp/src/rnp/rnpcpp.hpp:176,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 178
    functionName: rnpffi::Key::secret
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - CALL_FFI
    - rnp_key_have_secret
    linkageType: ''
    returnType: bool
    signature: bool secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:184,1
    - Dst: rnp_key_is_sub
      Src: /src/rnp/src/rnp/rnpcpp.hpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 180
    functionDepth: 1
    functionLinenumber: 180
    functionLinenumberEnd: 186
    functionName: rnpffi::Key::is_sub
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 2
    functionsReached:
    - CALL_FFI
    - rnp_key_is_sub
    linkageType: ''
    returnType: bool
    signature: bool is_sub()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:192,1
    - Dst: rnp_key_is_primary
      Src: /src/rnp/src/rnp/rnpcpp.hpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 194
    functionName: rnpffi::Key::is_primary
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - CALL_FFI
    - rnp_key_is_primary
    linkageType: ''
    returnType: bool
    signature: bool is_primary()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:200,1
    - Dst: rnp_key_get_alg
      Src: /src/rnp/src/rnp/rnpcpp.hpp:200,1
    - Dst: String::set
      Src: /src/rnp/src/rnp/rnpcpp.hpp:200,1
    - Dst: String::str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 196
    functionDepth: 1
    functionLinenumber: 196
    functionLinenumberEnd: 202
    functionName: rnpffi::Key::alg
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - rnp_key_get_alg
    - String::str
    - CALL_FFI
    - String::set
    linkageType: ''
    returnType: std::string
    signature: std::string alg()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:208,1
    - Dst: rnp_key_get_curve
      Src: /src/rnp/src/rnp/rnpcpp.hpp:208,1
    - Dst: String::set
      Src: /src/rnp/src/rnp/rnpcpp.hpp:208,1
    - Dst: String::str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 210
    functionName: rnpffi::Key::curve
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - String::str
    - CALL_FFI
    - rnp_key_get_curve
    - String::set
    linkageType: ''
    returnType: std::string
    signature: std::string curve()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:216,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/rnp/rnpcpp.hpp:216,1
    - Dst: String::set
      Src: /src/rnp/src/rnp/rnpcpp.hpp:216,1
    - Dst: String::str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 218
    functionName: rnpffi::Key::keyid
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - String::str
    - CALL_FFI
    - rnp_key_get_keyid
    - String::set
    linkageType: ''
    returnType: std::string
    signature: std::string keyid()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:224,1
    - Dst: rnp_key_get_fprint
      Src: /src/rnp/src/rnp/rnpcpp.hpp:224,1
    - Dst: String::set
      Src: /src/rnp/src/rnp/rnpcpp.hpp:224,1
    - Dst: String::str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 226
    functionName: rnpffi::Key::fprint
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - String::str
    - CALL_FFI
    - rnp_key_get_fprint
    - String::set
    linkageType: ''
    returnType: std::string
    signature: std::string fprint()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:232,1
    - Dst: rnp_key_get_grip
      Src: /src/rnp/src/rnp/rnpcpp.hpp:232,1
    - Dst: String::set
      Src: /src/rnp/src/rnp/rnpcpp.hpp:232,1
    - Dst: String::str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 234
    functionName: rnpffi::Key::grip
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - String::str
    - CALL_FFI
    - rnp_key_get_grip
    - String::set
    linkageType: ''
    returnType: std::string
    signature: std::string grip()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:240,1
    - Dst: rnp_key_get_primary_grip
      Src: /src/rnp/src/rnp/rnpcpp.hpp:240,1
    - Dst: String::set
      Src: /src/rnp/src/rnp/rnpcpp.hpp:240,1
    - Dst: String::str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 236
    functionDepth: 1
    functionLinenumber: 236
    functionLinenumberEnd: 242
    functionName: rnpffi::Key::primary_grip
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - String::str
    - CALL_FFI
    - rnp_key_get_primary_grip
    - String::set
    linkageType: ''
    returnType: std::string
    signature: std::string primary_grip()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:248,1
    - Dst: rnp_key_get_uid_count
      Src: /src/rnp/src/rnp/rnpcpp.hpp:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 244
    functionDepth: 1
    functionLinenumber: 244
    functionLinenumberEnd: 250
    functionName: rnpffi::Key::uid_count
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - rnp_key_get_uid_count
    - CALL_FFI
    linkageType: ''
    returnType: size_t
    signature: size_t uid_count()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:256,1
    - Dst: rnp_key_get_uid_at
      Src: /src/rnp/src/rnp/rnpcpp.hpp:256,1
    - Dst: String::set
      Src: /src/rnp/src/rnp/rnpcpp.hpp:256,1
    - Dst: String::str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 258
    functionName: rnpffi::Key::uid_at
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - rnp_key_get_uid_at
    - CALL_FFI
    - String::str
    - String::set
    linkageType: ''
    returnType: std::string
    signature: std::string uid_at(size_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:264,1
    - Dst: rnp_key_is_protected
      Src: /src/rnp/src/rnp/rnpcpp.hpp:264,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 260
    functionDepth: 1
    functionLinenumber: 260
    functionLinenumberEnd: 266
    functionName: rnpffi::Key::is_protected
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - CALL_FFI
    - rnp_key_is_protected
    linkageType: ''
    returnType: bool
    signature: bool is_protected()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:272,1
    - Dst: rnp_key_get_protection_hash
      Src: /src/rnp/src/rnp/rnpcpp.hpp:272,1
    - Dst: String::set
      Src: /src/rnp/src/rnp/rnpcpp.hpp:272,1
    - Dst: String::str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:273,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 274
    functionName: rnpffi::Key::protection_hash
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - String::str
    - CALL_FFI
    - rnp_key_get_protection_hash
    - String::set
    linkageType: ''
    returnType: std::string
    signature: std::string protection_hash()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:280,1
    - Dst: rnp_key_get_protection_cipher
      Src: /src/rnp/src/rnp/rnpcpp.hpp:280,1
    - Dst: String::set
      Src: /src/rnp/src/rnp/rnpcpp.hpp:280,1
    - Dst: String::str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 276
    functionDepth: 1
    functionLinenumber: 276
    functionLinenumberEnd: 282
    functionName: rnpffi::Key::protection_cipher
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - String::str
    - CALL_FFI
    - String::set
    - rnp_key_get_protection_cipher
    linkageType: ''
    returnType: std::string
    signature: std::string protection_cipher()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:288,1
    - Dst: rnp_key_get_protection_iterations
      Src: /src/rnp/src/rnp/rnpcpp.hpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 284
    functionDepth: 1
    functionLinenumber: 284
    functionLinenumberEnd: 290
    functionName: rnpffi::Key::protection_iterations
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - CALL_FFI
    - rnp_key_get_protection_iterations
    linkageType: ''
    returnType: size_t
    signature: size_t protection_iterations()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: CALL_FFI
      Src: /src/rnp/src/rnp/rnpcpp.hpp:296,1
    - Dst: rnp_key_25519_bits_tweaked
      Src: /src/rnp/src/rnp/rnpcpp.hpp:296,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 292
    functionDepth: 1
    functionLinenumber: 292
    functionLinenumberEnd: 298
    functionName: rnpffi::Key::is_25519_bits_tweaked
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - CALL_FFI
    - rnp_key_25519_bits_tweaked
    linkageType: ''
    returnType: bool
    signature: bool is_25519_bits_tweaked()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_25519_bits_tweak
      Src: /src/rnp/src/rnp/rnpcpp.hpp:303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 304
      start: 300
    functionDepth: 0
    functionLinenumber: 300
    functionLinenumberEnd: 304
    functionName: rnpffi::Key::do_25519_bits_tweak
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - rnp_key_25519_bits_tweak
    linkageType: ''
    returnType: bool
    signature: bool do_25519_bits_tweak()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/rnp/rnpcpp.hpp:309,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - password
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 306
    functionDepth: 0
    functionLinenumber: 306
    functionLinenumberEnd: 310
    functionName: rnpffi::Key::unlock
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - std::string::c_str
    - rnp_key_unlock
    linkageType: ''
    returnType: bool
    signature: bool unlock(const std::string &password)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_unlock
      Src: /src/rnp/src/rnp/rnpcpp.hpp:315,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 316
    functionName: rnpffi::Key::unlock
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - rnp_key_unlock
    linkageType: ''
    returnType: bool
    signature: bool unlock()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_lock
      Src: /src/rnp/src/rnp/rnpcpp.hpp:321,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 318
    functionDepth: 0
    functionLinenumber: 318
    functionLinenumberEnd: 322
    functionName: rnpffi::Key::lock
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - rnp_key_lock
    linkageType: ''
    returnType: void
    signature: void lock()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_unprotect
      Src: /src/rnp/src/rnp/rnpcpp.hpp:327,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:327,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - password
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 324
    functionDepth: 0
    functionLinenumber: 324
    functionLinenumberEnd: 328
    functionName: rnpffi::Key::unprotect
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - rnp_key_unprotect
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: bool unprotect(const std::string &password)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_protect
      Src: /src/rnp/src/rnp/rnpcpp.hpp:336,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:337,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:337,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - password
    - cipher
    - hash
    - iterations
    argTypes:
    - std::string
    - std::string
    - std::string
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 330
    functionDepth: 0
    functionLinenumber: 330
    functionLinenumberEnd: 338
    functionName: rnpffi::Key::protect
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - rnp_key_protect
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: "bool protect(const std::string &password,\n            const std::string
      &cipher,\n            const std::string &hash,\n            size_t             iterations)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 345
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 345
    functionName: rnpffi::IdentifierIterator::IdentifierIterator
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IdentifierIterator()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 346
    functionDepth: 0
    functionLinenumber: 346
    functionLinenumberEnd: 346
    functionName: rnpffi::IdentifierIterator::IdentifierIterator
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IdentifierIterator(const IdentifierIterator &)
  - 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: rnpffi::IdentifierIterator::IdentifierIterator
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IdentifierIterator(IdentifierIterator &&)
  - 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: '&operator=(const IdentifierIterator &)'
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IdentifierIterator
    signature: IdentifierIterator &operator=(const IdentifierIterator &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 349
    functionDepth: 0
    functionLinenumber: 349
    functionLinenumberEnd: 349
    functionName: '&operator=(IdentifierIterator &&)'
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: IdentifierIterator
    signature: IdentifierIterator &operator=(IdentifierIterator &&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::invalid_argument
      Src: /src/rnp/src/rnp/rnpcpp.hpp:354,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - handle
    argTypes:
    - rnp_identifier_iterator_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 357
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 357
    functionName: rnpffi::IdentifierIterator::IdentifierIterator
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - std::invalid_argument
    linkageType: ''
    returnType: void
    signature: void IdentifierIterator(rnp_identifier_iterator_t handle)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_identifier_iterator_destroy
      Src: /src/rnp/src/rnp/rnpcpp.hpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 362
      start: 359
    functionDepth: 0
    functionLinenumber: 359
    functionLinenumberEnd: 362
    functionName: ~IdentifierIterator()
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - rnp_identifier_iterator_destroy
    linkageType: ''
    returnType: void
    signature: void ~IdentifierIterator()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_identifier_iterator_next
      Src: /src/rnp/src/rnp/rnpcpp.hpp:369,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - val
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 374
    functionName: rnpffi::IdentifierIterator::next
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - rnp_identifier_iterator_next
    linkageType: ''
    returnType: bool
    signature: bool next(std::string &val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 382
      start: 382
    functionDepth: 0
    functionLinenumber: 382
    functionLinenumberEnd: 382
    functionName: rnpffi::FFI::FFI
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FFI()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 383
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 383
    functionName: rnpffi::FFI::FFI
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FFI(const FFI &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 384
    functionDepth: 0
    functionLinenumber: 384
    functionLinenumberEnd: 384
    functionName: rnpffi::FFI::FFI
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void FFI(FFI &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 385
    functionDepth: 0
    functionLinenumber: 385
    functionLinenumberEnd: 385
    functionName: '&operator=(const FFI &)'
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FFI
    signature: FFI &operator=(const FFI &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 386
    functionDepth: 0
    functionLinenumber: 386
    functionLinenumberEnd: 386
    functionName: '&operator=(FFI &&)'
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: FFI
    signature: FFI &operator=(FFI &&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::invalid_argument
      Src: /src/rnp/src/rnp/rnpcpp.hpp:391,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - handle
    argTypes:
    - rnp_ffi_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 395
    functionName: rnpffi::FFI::FFI
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - std::invalid_argument
    linkageType: ''
    returnType: void
    signature: void FFI(rnp_ffi_t handle, bool own = true)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/rnp/rnpcpp.hpp:400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 402
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 402
    functionName: ~FFI()
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 0
    functionsReached:
    - rnp_ffi_destroy
    linkageType: ''
    returnType: void
    signature: void ~FFI()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp_locate_key
      Src: /src/rnp/src/rnp/rnpcpp.hpp:408,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:408,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:408,1
    - Dst: Key::Key
      Src: /src/rnp/src/rnp/rnpcpp.hpp:411,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/rnp/rnpcpp.hpp:413,1
    - Dst: std::unique_ptr<Key>
      Src: /src/rnp/src/rnp/rnpcpp.hpp:415,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - id_type
    - id
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 416
      start: 404
    functionDepth: 0
    functionLinenumber: 404
    functionLinenumberEnd: 416
    functionName: rnpffi::FFI::locate_key
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 2
    functionsReached:
    - rnp_locate_key
    - std::unique_ptr<Key>
    - Key::Key
    - std::string::c_str
    - rnp_key_handle_destroy
    linkageType: ''
    returnType: std::unique_ptr<Key>
    signature: std::unique_ptr<Key> locate_key(const std::string &id_type, const std::string
      &id)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp_identifier_iterator_create
      Src: /src/rnp/src/rnp/rnpcpp.hpp:422,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:422,1
    - Dst: IdentifierIterator::IdentifierIterator
      Src: /src/rnp/src/rnp/rnpcpp.hpp:425,1
    - Dst: rnp_identifier_iterator_destroy
      Src: /src/rnp/src/rnp/rnpcpp.hpp:427,1
    - Dst: std::unique_ptr<IdentifierIterator>
      Src: /src/rnp/src/rnp/rnpcpp.hpp:429,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - it_type
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 430
    functionName: rnpffi::FFI::iterator_create
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 2
    functionsReached:
    - rnp_identifier_iterator_create
    - IdentifierIterator::IdentifierIterator
    - std::string::c_str
    - std::unique_ptr<IdentifierIterator>
    - rnp_identifier_iterator_destroy
    linkageType: ''
    returnType: std::unique_ptr<IdentifierIterator>
    signature: std::unique_ptr<IdentifierIterator> iterator_create(const std::string
      &it_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_request_password
      Src: /src/rnp/src/rnp/rnpcpp.hpp:435,1
    - Dst: Key::handle
      Src: /src/rnp/src/rnp/rnpcpp.hpp:435,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnp/rnpcpp.hpp:435,1
    - Dst: String::set
      Src: /src/rnp/src/rnp/rnpcpp.hpp:435,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key
    - ctx
    - password
    argTypes:
    - Key
    - std::string
    - String
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 436
    functionName: rnpffi::FFI::request_password
    functionSourceFile: /src/rnp/src/rnp/rnpcpp.hpp
    functionUses: 1
    functionsReached:
    - Key::handle
    - std::string::c_str
    - rnp_request_password
    - String::set
    linkageType: ''
    returnType: bool
    signature: bool request_password(Key &key, const std::string &ctx, String &password)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 54
    functionName: CATCH_AND_RETURN
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CATCH_AND_RETURN(v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _wunlink
      Src: /src/rnp/src/common/file-utils.cpp:68,1
    - Dst: wstr_from_utf8
      Src: /src/rnp/src/common/file-utils.cpp:68,1
    - Dst: CATCH_AND_RETURN
      Src: /src/rnp/src/common/file-utils.cpp:70,1
    - Dst: unlink
      Src: /src/rnp/src/common/file-utils.cpp:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - filename
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 63
    functionDepth: 1
    functionLinenumber: 63
    functionLinenumberEnd: 74
    functionName: rnp_unlink
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 17
    functionsReached:
    - _wunlink
    - unlink
    - wstr_from_utf8
    - CATCH_AND_RETURN
    linkageType: ''
    returnType: int
    signature: int rnp_unlink(const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_stat
      Src: /src/rnp/src/common/file-utils.cpp:80,1
    - Dst: S_ISREG
      Src: /src/rnp/src/common/file-utils.cpp:80,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 81
    functionName: rnp_file_exists
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 20
    functionsReached:
    - rnp_stat
    - S_ISREG
    linkageType: ''
    returnType: bool
    signature: bool rnp_file_exists(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_stat
      Src: /src/rnp/src/common/file-utils.cpp:87,1
    - Dst: S_ISDIR
      Src: /src/rnp/src/common/file-utils.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 88
    functionName: rnp_dir_exists
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 1
    functionsReached:
    - rnp_stat
    - S_ISDIR
    linkageType: ''
    returnType: bool
    signature: bool rnp_dir_exists(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _wopen
      Src: /src/rnp/src/common/file-utils.cpp:95,1
    - Dst: wstr_from_utf8
      Src: /src/rnp/src/common/file-utils.cpp:95,1
    - Dst: CATCH_AND_RETURN
      Src: /src/rnp/src/common/file-utils.cpp:97,1
    - Dst: open
      Src: /src/rnp/src/common/file-utils.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - filename
    - oflag
    - pmode
    argTypes:
    - char*
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 101
    functionName: rnp_open
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 3
    functionsReached:
    - _wopen
    - open
    - wstr_from_utf8
    - CATCH_AND_RETURN
    linkageType: ''
    returnType: int
    signature: int rnp_open(const char *filename, int oflag, int pmode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _wfopen
      Src: /src/rnp/src/common/file-utils.cpp:108,1
    - Dst: wstr_from_utf8
      Src: /src/rnp/src/common/file-utils.cpp:108,1
    - Dst: wstr_from_utf8
      Src: /src/rnp/src/common/file-utils.cpp:108,1
    - Dst: CATCH_AND_RETURN
      Src: /src/rnp/src/common/file-utils.cpp:110,1
    - Dst: fopen
      Src: /src/rnp/src/common/file-utils.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - filename
    - mode
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 114
    functionName: rnp_fopen
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 1
    functionsReached:
    - CATCH_AND_RETURN
    - fopen
    - wstr_from_utf8
    - _wfopen
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      rnp_fopen(const char *filename, const char *mode)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: _fdopen
      Src: /src/rnp/src/common/file-utils.cpp:120,1
    - Dst: fcntl
      Src: /src/rnp/src/common/file-utils.cpp:126,1
    - Dst: fdopen
      Src: /src/rnp/src/common/file-utils.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - fildes
    - mode
    argTypes:
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 116
    functionDepth: 0
    functionLinenumber: 116
    functionLinenumberEnd: 131
    functionName: rnp_fdopen
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 1
    functionsReached:
    - fcntl
    - _fdopen
    - fdopen
    linkageType: ''
    returnType: FILE
    signature: 'FILE *

      rnp_fdopen(int fildes, const char *mode)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _waccess
      Src: /src/rnp/src/common/file-utils.cpp:138,1
    - Dst: wstr_from_utf8
      Src: /src/rnp/src/common/file-utils.cpp:138,1
    - Dst: CATCH_AND_RETURN
      Src: /src/rnp/src/common/file-utils.cpp:140,1
    - Dst: access
      Src: /src/rnp/src/common/file-utils.cpp:142,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - path
    - mode
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 133
    functionDepth: 1
    functionLinenumber: 133
    functionLinenumberEnd: 144
    functionName: rnp_access
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 2
    functionsReached:
    - _waccess
    - access
    - wstr_from_utf8
    - CATCH_AND_RETURN
    linkageType: ''
    returnType: int
    signature: int rnp_access(const char *path, int mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _wstat64
      Src: /src/rnp/src/common/file-utils.cpp:151,1
    - Dst: wstr_from_utf8
      Src: /src/rnp/src/common/file-utils.cpp:151,1
    - Dst: CATCH_AND_RETURN
      Src: /src/rnp/src/common/file-utils.cpp:153,1
    - Dst: stat
      Src: /src/rnp/src/common/file-utils.cpp:155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - filename
    - statbuf
    argTypes:
    - char*
    - struct stat*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 157
    functionName: rnp_stat
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 10
    functionsReached:
    - stat
    - _wstat64
    - wstr_from_utf8
    - CATCH_AND_RETURN
    linkageType: ''
    returnType: int
    signature: int rnp_stat(const char *filename, struct stat *statbuf)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _wrename
      Src: /src/rnp/src/common/file-utils.cpp:175,1
    - Dst: wstr_from_utf8
      Src: /src/rnp/src/common/file-utils.cpp:175,1
    - Dst: wstr_from_utf8
      Src: /src/rnp/src/common/file-utils.cpp:175,1
    - Dst: CATCH_AND_RETURN
      Src: /src/rnp/src/common/file-utils.cpp:177,1
    - Dst: rename
      Src: /src/rnp/src/common/file-utils.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - oldpath
    - newpath
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 181
    functionName: rnp_rename
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 1
    functionsReached:
    - rename
    - _wrename
    - wstr_from_utf8
    - CATCH_AND_RETURN
    linkageType: ''
    returnType: int
    signature: int rnp_rename(const char *oldpath, const char *newpath)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _wopendir
      Src: /src/rnp/src/common/file-utils.cpp:192,1
    - Dst: wstr_from_utf8
      Src: /src/rnp/src/common/file-utils.cpp:192,1
    - Dst: CATCH_AND_RETURN
      Src: /src/rnp/src/common/file-utils.cpp:194,1
    - Dst: opendir
      Src: /src/rnp/src/common/file-utils.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 198
    functionName: rnp_opendir
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 2
    functionsReached:
    - opendir
    - _wopendir
    - wstr_from_utf8
    - CATCH_AND_RETURN
    linkageType: ''
    returnType: void
    signature: void rnp_opendir(const char *path)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: readdir
      Src: /src/rnp/src/common/file-utils.cpp:222,1
    - Dst: string
      Src: /src/rnp/src/common/file-utils.cpp:223,1
    - Dst: strcmp
      Src: /src/rnp/src/common/file-utils.cpp:225,1
    - Dst: strcmp
      Src: /src/rnp/src/common/file-utils.cpp:225,1
    - Dst: string
      Src: /src/rnp/src/common/file-utils.cpp:229,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 1
    argNames:
    - dir
    argTypes:
    - DIR*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 216
    functionDepth: 1
    functionLinenumber: 216
    functionLinenumberEnd: 231
    functionName: rnp_readdir_name
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 2
    functionsReached:
    - strcmp
    - readdir
    - string
    linkageType: ''
    returnType: CATCH_AND_RETURN
    signature: CATCH_AND_RETURN rnp_readdir_name(DIR *dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_stat
      Src: /src/rnp/src/common/file-utils.cpp:239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 234
    functionDepth: 2
    functionLinenumber: 234
    functionLinenumberEnd: 244
    functionName: rnp_filemtime
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 2
    functionsReached:
    - rnp_stat
    linkageType: ''
    returnType: int64_t
    signature: int64_t rnp_filemtime(const char *path)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 317
    functionName: rnp::path::separator
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char separator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_dir_exists
      Src: /src/rnp/src/common/file-utils.cpp:322,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/common/file-utils.cpp:322,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/common/file-utils.cpp:322,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/common/file-utils.cpp:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - is_dir
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 323
    functionName: rnp::path::exists
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 4
    functionsReached:
    - rnp_file_exists
    - std::string::c_str
    - rnp_dir_exists
    linkageType: ''
    returnType: bool
    signature: bool exists(const std::string &path, bool is_dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_opendir
      Src: /src/rnp/src/common/file-utils.cpp:328,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/common/file-utils.cpp:328,1
    - Dst: rnp_readdir_name
      Src: /src/rnp/src/common/file-utils.cpp:332,1
    - Dst: rnp_closedir
      Src: /src/rnp/src/common/file-utils.cpp:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 335
    functionName: rnp::path::empty
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 1
    functionsReached:
    - rnp_readdir_name
    - rnp_opendir
    - rnp_closedir
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: bool empty(const std::string &path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _wgetenv
      Src: /src/rnp/src/common/file-utils.cpp:346,1
    - Dst: wstr_to_utf8
      Src: /src/rnp/src/common/file-utils.cpp:348,1
    - Dst: _wgetenv
      Src: /src/rnp/src/common/file-utils.cpp:350,1
    - Dst: wstr_to_utf8
      Src: /src/rnp/src/common/file-utils.cpp:352,1
    - Dst: SHGetFolderPathW
      Src: /src/rnp/src/common/file-utils.cpp:353,1
    - Dst: wstr_to_utf8
      Src: /src/rnp/src/common/file-utils.cpp:355,1
    - Dst: getenv
      Src: /src/rnp/src/common/file-utils.cpp:359,1
    - Dst: getpwuid
      Src: /src/rnp/src/common/file-utils.cpp:361,1
    - Dst: getuid
      Src: /src/rnp/src/common/file-utils.cpp:361,1
    - Dst: std::string::empty
      Src: /src/rnp/src/common/file-utils.cpp:365,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/common/file-utils.cpp:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - sdir
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 337
    functionDepth: 1
    functionLinenumber: 337
    functionLinenumberEnd: 366
    functionName: rnp::path::HOME
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 1
    functionsReached:
    - SHGetFolderPathW
    - rnp::path::append
    - getenv
    - getpwuid
    - wstr_to_utf8
    - getuid
    - std::string::empty
    - _wgetenv
    linkageType: ''
    returnType: std::string
    signature: std::string HOME(const std::string &sdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/rnp/src/common/file-utils.cpp:371,1
    - Dst: std::string::begin
      Src: /src/rnp/src/common/file-utils.cpp:371,1
    - Dst: std::string::end
      Src: /src/rnp/src/common/file-utils.cpp:371,1
    - Dst: std::string::end
      Src: /src/rnp/src/common/file-utils.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 372
    functionName: rnp::path::has_forward_slash
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 0
    functionsReached:
    - std::find
    - std::string::begin
    - std::string::end
    linkageType: ''
    returnType: bool
    signature: bool has_forward_slash(const std::string &path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/rnp/src/common/file-utils.cpp:377,1
    - Dst: std::string::empty
      Src: /src/rnp/src/common/file-utils.cpp:377,1
    - Dst: rnp::is_slash
      Src: /src/rnp/src/common/file-utils.cpp:377,1
    - Dst: std::string::back
      Src: /src/rnp/src/common/file-utils.cpp:377,1
    - Dst: rnp::is_slash
      Src: /src/rnp/src/common/file-utils.cpp:378,1
    - Dst: std::string::front
      Src: /src/rnp/src/common/file-utils.cpp:378,1
    - Dst: rnp::path::has_forward_slash
      Src: /src/rnp/src/common/file-utils.cpp:383,1
    - Dst: rnp::path::has_forward_slash
      Src: /src/rnp/src/common/file-utils.cpp:383,1
    - Dst: rnp::path::separator
      Src: /src/rnp/src/common/file-utils.cpp:383,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - path
    - name
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 385
    functionName: rnp::path::append
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 10
    functionsReached:
    - std::string::back
    - rnp::path::separator
    - std::string::front
    - rnp::path::has_forward_slash
    - std::string::empty
    - rnp::is_slash
    linkageType: ''
    returnType: std::string
    signature: std::string append(const std::string &path, const std::string &name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 317
    functionName: rnp::path::separator
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char separator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_dir_exists
      Src: /src/rnp/src/common/file-utils.cpp:322,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/common/file-utils.cpp:322,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/common/file-utils.cpp:322,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/common/file-utils.cpp:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - is_dir
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 323
    functionName: rnp::path::exists
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 4
    functionsReached:
    - rnp_file_exists
    - std::string::c_str
    - rnp_dir_exists
    linkageType: ''
    returnType: bool
    signature: bool exists(const std::string &path, bool is_dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_opendir
      Src: /src/rnp/src/common/file-utils.cpp:328,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/common/file-utils.cpp:328,1
    - Dst: rnp_readdir_name
      Src: /src/rnp/src/common/file-utils.cpp:332,1
    - Dst: rnp_closedir
      Src: /src/rnp/src/common/file-utils.cpp:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 335
    functionName: rnp::path::empty
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 1
    functionsReached:
    - rnp_readdir_name
    - rnp_opendir
    - rnp_closedir
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: bool empty(const std::string &path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _wgetenv
      Src: /src/rnp/src/common/file-utils.cpp:346,1
    - Dst: wstr_to_utf8
      Src: /src/rnp/src/common/file-utils.cpp:348,1
    - Dst: _wgetenv
      Src: /src/rnp/src/common/file-utils.cpp:350,1
    - Dst: wstr_to_utf8
      Src: /src/rnp/src/common/file-utils.cpp:352,1
    - Dst: SHGetFolderPathW
      Src: /src/rnp/src/common/file-utils.cpp:353,1
    - Dst: wstr_to_utf8
      Src: /src/rnp/src/common/file-utils.cpp:355,1
    - Dst: getenv
      Src: /src/rnp/src/common/file-utils.cpp:359,1
    - Dst: getpwuid
      Src: /src/rnp/src/common/file-utils.cpp:361,1
    - Dst: getuid
      Src: /src/rnp/src/common/file-utils.cpp:361,1
    - Dst: std::string::empty
      Src: /src/rnp/src/common/file-utils.cpp:365,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/common/file-utils.cpp:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - sdir
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 366
    functionName: rnp::path::HOME
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 1
    functionsReached:
    - SHGetFolderPathW
    - rnp::path::append
    - getenv
    - getpwuid
    - wstr_to_utf8
    - getuid
    - std::string::empty
    - _wgetenv
    linkageType: ''
    returnType: std::string
    signature: std::string HOME(const std::string &sdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/rnp/src/common/file-utils.cpp:371,1
    - Dst: std::string::begin
      Src: /src/rnp/src/common/file-utils.cpp:371,1
    - Dst: std::string::end
      Src: /src/rnp/src/common/file-utils.cpp:371,1
    - Dst: std::string::end
      Src: /src/rnp/src/common/file-utils.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 372
    functionName: rnp::path::has_forward_slash
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 1
    functionsReached:
    - std::find
    - std::string::begin
    - std::string::end
    linkageType: ''
    returnType: bool
    signature: bool has_forward_slash(const std::string &path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/rnp/src/common/file-utils.cpp:377,1
    - Dst: std::string::empty
      Src: /src/rnp/src/common/file-utils.cpp:377,1
    - Dst: rnp::is_slash
      Src: /src/rnp/src/common/file-utils.cpp:377,1
    - Dst: std::string::back
      Src: /src/rnp/src/common/file-utils.cpp:377,1
    - Dst: rnp::is_slash
      Src: /src/rnp/src/common/file-utils.cpp:378,1
    - Dst: std::string::front
      Src: /src/rnp/src/common/file-utils.cpp:378,1
    - Dst: rnp::path::has_forward_slash
      Src: /src/rnp/src/common/file-utils.cpp:383,1
    - Dst: rnp::path::has_forward_slash
      Src: /src/rnp/src/common/file-utils.cpp:383,1
    - Dst: rnp::path::separator
      Src: /src/rnp/src/common/file-utils.cpp:383,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - path
    - name
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 385
    functionName: rnp::path::append
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 11
    functionsReached:
    - std::string::back
    - rnp::path::separator
    - std::string::front
    - rnp::path::has_forward_slash
    - std::string::empty
    - rnp::is_slash
    linkageType: ''
    returnType: std::string
    signature: std::string append(const std::string &path, const std::string &name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 317
    functionName: rnp::path::separator
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char separator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_dir_exists
      Src: /src/rnp/src/common/file-utils.cpp:322,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/common/file-utils.cpp:322,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/common/file-utils.cpp:322,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/common/file-utils.cpp:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - is_dir
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 323
    functionName: rnp::path::exists
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 4
    functionsReached:
    - rnp_file_exists
    - std::string::c_str
    - rnp_dir_exists
    linkageType: ''
    returnType: bool
    signature: bool exists(const std::string &path, bool is_dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_opendir
      Src: /src/rnp/src/common/file-utils.cpp:328,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/common/file-utils.cpp:328,1
    - Dst: rnp_readdir_name
      Src: /src/rnp/src/common/file-utils.cpp:332,1
    - Dst: rnp_closedir
      Src: /src/rnp/src/common/file-utils.cpp:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 335
    functionName: rnp::path::empty
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 1
    functionsReached:
    - rnp_readdir_name
    - rnp_opendir
    - rnp_closedir
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: bool empty(const std::string &path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _wgetenv
      Src: /src/rnp/src/common/file-utils.cpp:346,1
    - Dst: wstr_to_utf8
      Src: /src/rnp/src/common/file-utils.cpp:348,1
    - Dst: _wgetenv
      Src: /src/rnp/src/common/file-utils.cpp:350,1
    - Dst: wstr_to_utf8
      Src: /src/rnp/src/common/file-utils.cpp:352,1
    - Dst: SHGetFolderPathW
      Src: /src/rnp/src/common/file-utils.cpp:353,1
    - Dst: wstr_to_utf8
      Src: /src/rnp/src/common/file-utils.cpp:355,1
    - Dst: getenv
      Src: /src/rnp/src/common/file-utils.cpp:359,1
    - Dst: getpwuid
      Src: /src/rnp/src/common/file-utils.cpp:361,1
    - Dst: getuid
      Src: /src/rnp/src/common/file-utils.cpp:361,1
    - Dst: std::string::empty
      Src: /src/rnp/src/common/file-utils.cpp:365,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/common/file-utils.cpp:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - sdir
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 366
    functionName: rnp::path::HOME
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 1
    functionsReached:
    - SHGetFolderPathW
    - rnp::path::append
    - getenv
    - getpwuid
    - wstr_to_utf8
    - getuid
    - std::string::empty
    - _wgetenv
    linkageType: ''
    returnType: std::string
    signature: std::string HOME(const std::string &sdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/rnp/src/common/file-utils.cpp:371,1
    - Dst: std::string::begin
      Src: /src/rnp/src/common/file-utils.cpp:371,1
    - Dst: std::string::end
      Src: /src/rnp/src/common/file-utils.cpp:371,1
    - Dst: std::string::end
      Src: /src/rnp/src/common/file-utils.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 372
    functionName: rnp::path::has_forward_slash
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 2
    functionsReached:
    - std::find
    - std::string::begin
    - std::string::end
    linkageType: ''
    returnType: bool
    signature: bool has_forward_slash(const std::string &path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/rnp/src/common/file-utils.cpp:377,1
    - Dst: std::string::empty
      Src: /src/rnp/src/common/file-utils.cpp:377,1
    - Dst: rnp::is_slash
      Src: /src/rnp/src/common/file-utils.cpp:377,1
    - Dst: std::string::back
      Src: /src/rnp/src/common/file-utils.cpp:377,1
    - Dst: rnp::is_slash
      Src: /src/rnp/src/common/file-utils.cpp:378,1
    - Dst: std::string::front
      Src: /src/rnp/src/common/file-utils.cpp:378,1
    - Dst: rnp::path::has_forward_slash
      Src: /src/rnp/src/common/file-utils.cpp:383,1
    - Dst: rnp::path::has_forward_slash
      Src: /src/rnp/src/common/file-utils.cpp:383,1
    - Dst: rnp::path::separator
      Src: /src/rnp/src/common/file-utils.cpp:383,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - path
    - name
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 385
    functionName: rnp::path::append
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 12
    functionsReached:
    - std::string::back
    - rnp::path::separator
    - std::string::front
    - rnp::path::has_forward_slash
    - std::string::empty
    - rnp::is_slash
    linkageType: ''
    returnType: std::string
    signature: std::string append(const std::string &path, const std::string &name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 309
    functionDepth: 0
    functionLinenumber: 309
    functionLinenumberEnd: 317
    functionName: rnp::path::separator
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char separator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_dir_exists
      Src: /src/rnp/src/common/file-utils.cpp:322,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/common/file-utils.cpp:322,1
    - Dst: rnp_file_exists
      Src: /src/rnp/src/common/file-utils.cpp:322,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/common/file-utils.cpp:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - path
    - is_dir
    argTypes:
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 323
      start: 319
    functionDepth: 2
    functionLinenumber: 319
    functionLinenumberEnd: 323
    functionName: rnp::path::exists
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 4
    functionsReached:
    - rnp_file_exists
    - std::string::c_str
    - rnp_dir_exists
    linkageType: ''
    returnType: bool
    signature: bool exists(const std::string &path, bool is_dir)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_opendir
      Src: /src/rnp/src/common/file-utils.cpp:328,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/common/file-utils.cpp:328,1
    - Dst: rnp_readdir_name
      Src: /src/rnp/src/common/file-utils.cpp:332,1
    - Dst: rnp_closedir
      Src: /src/rnp/src/common/file-utils.cpp:333,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 325
    functionDepth: 2
    functionLinenumber: 325
    functionLinenumberEnd: 335
    functionName: rnp::path::empty
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 1
    functionsReached:
    - rnp_readdir_name
    - rnp_opendir
    - rnp_closedir
    - std::string::c_str
    linkageType: ''
    returnType: bool
    signature: bool empty(const std::string &path)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: _wgetenv
      Src: /src/rnp/src/common/file-utils.cpp:346,1
    - Dst: wstr_to_utf8
      Src: /src/rnp/src/common/file-utils.cpp:348,1
    - Dst: _wgetenv
      Src: /src/rnp/src/common/file-utils.cpp:350,1
    - Dst: wstr_to_utf8
      Src: /src/rnp/src/common/file-utils.cpp:352,1
    - Dst: SHGetFolderPathW
      Src: /src/rnp/src/common/file-utils.cpp:353,1
    - Dst: wstr_to_utf8
      Src: /src/rnp/src/common/file-utils.cpp:355,1
    - Dst: getenv
      Src: /src/rnp/src/common/file-utils.cpp:359,1
    - Dst: getpwuid
      Src: /src/rnp/src/common/file-utils.cpp:361,1
    - Dst: getuid
      Src: /src/rnp/src/common/file-utils.cpp:361,1
    - Dst: std::string::empty
      Src: /src/rnp/src/common/file-utils.cpp:365,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/common/file-utils.cpp:365,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - sdir
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 366
      start: 337
    functionDepth: 3
    functionLinenumber: 337
    functionLinenumberEnd: 366
    functionName: rnp::path::HOME
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 1
    functionsReached:
    - SHGetFolderPathW
    - rnp::path::append
    - getenv
    - getpwuid
    - wstr_to_utf8
    - getuid
    - std::string::empty
    - _wgetenv
    linkageType: ''
    returnType: std::string
    signature: std::string HOME(const std::string &sdir)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/rnp/src/common/file-utils.cpp:371,1
    - Dst: std::string::begin
      Src: /src/rnp/src/common/file-utils.cpp:371,1
    - Dst: std::string::end
      Src: /src/rnp/src/common/file-utils.cpp:371,1
    - Dst: std::string::end
      Src: /src/rnp/src/common/file-utils.cpp:371,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - path
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 372
      start: 368
    functionDepth: 1
    functionLinenumber: 368
    functionLinenumberEnd: 372
    functionName: rnp::path::has_forward_slash
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 3
    functionsReached:
    - std::find
    - std::string::begin
    - std::string::end
    linkageType: ''
    returnType: bool
    signature: bool has_forward_slash(const std::string &path)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/rnp/src/common/file-utils.cpp:377,1
    - Dst: std::string::empty
      Src: /src/rnp/src/common/file-utils.cpp:377,1
    - Dst: rnp::is_slash
      Src: /src/rnp/src/common/file-utils.cpp:377,1
    - Dst: std::string::back
      Src: /src/rnp/src/common/file-utils.cpp:377,1
    - Dst: rnp::is_slash
      Src: /src/rnp/src/common/file-utils.cpp:378,1
    - Dst: std::string::front
      Src: /src/rnp/src/common/file-utils.cpp:378,1
    - Dst: rnp::path::has_forward_slash
      Src: /src/rnp/src/common/file-utils.cpp:383,1
    - Dst: rnp::path::has_forward_slash
      Src: /src/rnp/src/common/file-utils.cpp:383,1
    - Dst: rnp::path::separator
      Src: /src/rnp/src/common/file-utils.cpp:383,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 2
    argNames:
    - path
    - name
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 374
    functionDepth: 2
    functionLinenumber: 374
    functionLinenumberEnd: 385
    functionName: rnp::path::append
    functionSourceFile: /src/rnp/src/common/file-utils.cpp
    functionUses: 13
    functionsReached:
    - std::string::back
    - rnp::path::separator
    - std::string::front
    - rnp::path::has_forward_slash
    - std::string::empty
    - rnp::is_slash
    linkageType: ''
    returnType: std::string
    signature: std::string append(const std::string &path, const std::string &name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/rnp/src/common/str-utils.cpp:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: rnp::strip_eol
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 4
    functionsReached:
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      strip_eol(char *s)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/rnp/src/common/str-utils.cpp:59,1
    - Dst: std::string::size
      Src: /src/rnp/src/common/str-utils.cpp:63,1
    - Dst: std::string::resize
      Src: /src/rnp/src/common/str-utils.cpp:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: rnp::strip_eol
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 4
    functionsReached:
    - std::string::resize
    - std::string::size
    linkageType: ''
    returnType: bool
    signature: bool strip_eol(std::string &s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - line
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: rnp::is_blank_line
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_blank_line(const char *line, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::tolower
      Src: /src/rnp/src/common/str-utils.cpp:85,1
    - Dst: std::tolower
      Src: /src/rnp/src/common/str-utils.cpp:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 92
    functionName: rnp::str_case_eq
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 6
    functionsReached:
    - std::tolower
    linkageType: ''
    returnType: bool
    signature: bool str_case_eq(const char *s1, const char *s2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/rnp/src/common/str-utils.cpp:97,1
    - Dst: std::string::size
      Src: /src/rnp/src/common/str-utils.cpp:97,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/common/str-utils.cpp:100,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/common/str-utils.cpp:100,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/common/str-utils.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: rnp::str_case_eq
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 7
    functionsReached:
    - std::string::c_str
    - rnp::str_case_eq
    - std::string::size
    linkageType: ''
    returnType: bool
    signature: bool str_case_eq(const std::string &s1, const std::string &s2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::length
      Src: /src/rnp/src/common/str-utils.cpp:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: rnp::hex_prefix_len
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 0
    functionsReached:
    - std::string::length
    linkageType: ''
    returnType: size_t
    signature: size_t hex_prefix_len(const std::string &str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp::hex_prefix_len
      Src: /src/rnp/src/common/str-utils.cpp:115,1
    - Dst: std::string::length
      Src: /src/rnp/src/common/str-utils.cpp:115,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 132
    functionName: rnp::is_hex
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 4
    functionsReached:
    - rnp::hex_prefix_len
    - std::string::length
    linkageType: ''
    returnType: bool
    signature: bool is_hex(const std::string &s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::hex_prefix_len
      Src: /src/rnp/src/common/str-utils.cpp:138,1
    - Dst: std::string::length
      Src: /src/rnp/src/common/str-utils.cpp:138,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/common/str-utils.cpp:143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 146
    functionName: rnp::strip_hex
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 1
    functionsReached:
    - rnp::hex_prefix_len
    - std::string::length
    - std::string::push_back
    linkageType: ''
    returnType: std::string
    signature: std::string strip_hex(const std::string &s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/rnp/src/common/str-utils.cpp:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 158
    functionName: rnp::lowercase
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 3
    functionsReached:
    - tolower
    linkageType: ''
    returnType: char
    signature: 'char *

      lowercase(char *s)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stoi
      Src: /src/rnp/src/common/str-utils.cpp:169,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - s
    - val
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 174
    functionName: rnp::str_to_int
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 1
    functionsReached:
    - std::stoi
    linkageType: ''
    returnType: bool
    signature: bool str_to_int(const std::string &s, int &val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: rnp::is_slash
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_slash(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/rnp/src/common/str-utils.cpp:47,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 54
    functionName: rnp::strip_eol
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 4
    functionsReached:
    - strlen
    linkageType: ''
    returnType: char
    signature: 'char *

      strip_eol(char *s)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/rnp/src/common/str-utils.cpp:59,1
    - Dst: std::string::size
      Src: /src/rnp/src/common/str-utils.cpp:63,1
    - Dst: std::string::resize
      Src: /src/rnp/src/common/str-utils.cpp:66,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 68
    functionName: rnp::strip_eol
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 4
    functionsReached:
    - std::string::resize
    - std::string::size
    linkageType: ''
    returnType: bool
    signature: bool strip_eol(std::string &s)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 7
    argCount: 2
    argNames:
    - line
    - len
    argTypes:
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 79
    functionName: rnp::is_blank_line
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_blank_line(const char *line, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::tolower
      Src: /src/rnp/src/common/str-utils.cpp:85,1
    - Dst: std::tolower
      Src: /src/rnp/src/common/str-utils.cpp:85,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 92
    functionName: rnp::str_case_eq
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 7
    functionsReached:
    - std::tolower
    linkageType: ''
    returnType: bool
    signature: bool str_case_eq(const char *s1, const char *s2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/rnp/src/common/str-utils.cpp:97,1
    - Dst: std::string::size
      Src: /src/rnp/src/common/str-utils.cpp:97,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/common/str-utils.cpp:100,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/common/str-utils.cpp:100,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/common/str-utils.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - s1
    - s2
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 101
    functionName: rnp::str_case_eq
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 8
    functionsReached:
    - std::string::c_str
    - rnp::str_case_eq
    - std::string::size
    linkageType: ''
    returnType: bool
    signature: bool str_case_eq(const std::string &s1, const std::string &s2)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::length
      Src: /src/rnp/src/common/str-utils.cpp:106,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 110
    functionName: rnp::hex_prefix_len
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 2
    functionsReached:
    - std::string::length
    linkageType: ''
    returnType: size_t
    signature: size_t hex_prefix_len(const std::string &str)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp::hex_prefix_len
      Src: /src/rnp/src/common/str-utils.cpp:115,1
    - Dst: std::string::length
      Src: /src/rnp/src/common/str-utils.cpp:115,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 17
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 132
    functionName: rnp::is_hex
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 4
    functionsReached:
    - rnp::hex_prefix_len
    - std::string::length
    linkageType: ''
    returnType: bool
    signature: bool is_hex(const std::string &s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::hex_prefix_len
      Src: /src/rnp/src/common/str-utils.cpp:138,1
    - Dst: std::string::length
      Src: /src/rnp/src/common/str-utils.cpp:138,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/common/str-utils.cpp:143,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 146
    functionName: rnp::strip_hex
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 1
    functionsReached:
    - rnp::hex_prefix_len
    - std::string::length
    - std::string::push_back
    linkageType: ''
    returnType: std::string
    signature: std::string strip_hex(const std::string &s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: tolower
      Src: /src/rnp/src/common/str-utils.cpp:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 158
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 158
    functionName: rnp::lowercase
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 3
    functionsReached:
    - tolower
    linkageType: ''
    returnType: char
    signature: 'char *

      lowercase(char *s)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::stoi
      Src: /src/rnp/src/common/str-utils.cpp:169,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - s
    - val
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 174
    functionName: rnp::str_to_int
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 1
    functionsReached:
    - std::stoi
    linkageType: ''
    returnType: bool
    signature: bool str_to_int(const std::string &s, int &val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 180
    functionName: rnp::is_slash
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_slash(char c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::wstring_convert::from_bytes
      Src: /src/rnp/src/common/str-utils.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 185
    functionDepth: 0
    functionLinenumber: 185
    functionLinenumberEnd: 190
    functionName: wstr_from_utf8
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 8
    functionsReached:
    - std::wstring_convert::from_bytes
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring wstr_from_utf8(const char *s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::wstring_convert::from_bytes
      Src: /src/rnp/src/common/str-utils.cpp:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 197
    functionName: wstr_from_utf8
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 8
    functionsReached:
    - std::wstring_convert::from_bytes
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring wstr_from_utf8(const char *first, const char *last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wstr_from_utf8
      Src: /src/rnp/src/common/str-utils.cpp:202,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/common/str-utils.cpp:202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - s
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 203
    functionName: wstr_from_utf8
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 9
    functionsReached:
    - std::string::c_str
    - wstr_from_utf8
    linkageType: ''
    returnType: std::wstring
    signature: std::wstring wstr_from_utf8(const std::string &s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::wstring_convert::to_bytes
      Src: /src/rnp/src/common/str-utils.cpp:209,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ws
    argTypes:
    - wchar_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 205
    functionDepth: 0
    functionLinenumber: 205
    functionLinenumberEnd: 210
    functionName: wstr_to_utf8
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 6
    functionsReached:
    - std::wstring_convert::to_bytes
    linkageType: ''
    returnType: std::string
    signature: std::string wstr_to_utf8(const wchar_t *ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wstr_to_utf8
      Src: /src/rnp/src/common/str-utils.cpp:215,1
    - Dst: std::wstring::c_str
      Src: /src/rnp/src/common/str-utils.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ws
    argTypes:
    - std::wstring
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 212
    functionDepth: 1
    functionLinenumber: 212
    functionLinenumberEnd: 216
    functionName: wstr_to_utf8
    functionSourceFile: /src/rnp/src/common/str-utils.cpp
    functionUses: 7
    functionsReached:
    - wstr_to_utf8
    - std::wstring::c_str
    linkageType: ''
    returnType: std::string
    signature: std::string wstr_to_utf8(const std::wstring &ws)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pathname
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 63
    functionName: RNP_MKDIR
    functionSourceFile: /src/rnp/src/common/file-utils.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RNP_MKDIR(pathname, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - pathname
    - ','
    - mode
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 65
    functionName: RNP_MKDIR
    functionSourceFile: /src/rnp/src/common/file-utils.h
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RNP_MKDIR(pathname, mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: adjust_time32
    functionSourceFile: /src/rnp/src/common/time-utils.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: time_t
    signature: time_t adjust_time32(time_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - t
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 39
    functionDepth: 0
    functionLinenumber: 39
    functionLinenumberEnd: 43
    functionName: rnp_y2k38_warning
    functionSourceFile: /src/rnp/src/common/time-utils.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool rnp_y2k38_warning(time_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: adjust_time32
      Src: /src/rnp/src/common/time-utils.cpp:48,1
    - Dst: mktime
      Src: /src/rnp/src/common/time-utils.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - tm
    argTypes:
    - struct tm*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 1
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: rnp_mktime
    functionSourceFile: /src/rnp/src/common/time-utils.cpp
    functionUses: 1
    functionsReached:
    - mktime
    - adjust_time32
    linkageType: ''
    returnType: time_t
    signature: time_t rnp_mktime(struct tm *tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: adjust_time32
      Src: /src/rnp/src/common/time-utils.cpp:54,1
    - Dst: gmtime_r
      Src: /src/rnp/src/common/time-utils.cpp:56,1
    - Dst: gmtime_s
      Src: /src/rnp/src/common/time-utils.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - t
    - tm
    argTypes:
    - time_t
    - struct tm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 51
    functionDepth: 1
    functionLinenumber: 51
    functionLinenumberEnd: 60
    functionName: rnp_gmtime
    functionSourceFile: /src/rnp/src/common/time-utils.cpp
    functionUses: 2
    functionsReached:
    - gmtime_r
    - adjust_time32
    - gmtime_s
    linkageType: ''
    returnType: void
    signature: void rnp_gmtime(time_t t, struct tm &tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: adjust_time32
      Src: /src/rnp/src/common/time-utils.cpp:65,1
    - Dst: localtime_r
      Src: /src/rnp/src/common/time-utils.cpp:67,1
    - Dst: localtime_s
      Src: /src/rnp/src/common/time-utils.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - t
    - tm
    argTypes:
    - time_t
    - struct tm
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 71
    functionName: rnp_localtime
    functionSourceFile: /src/rnp/src/common/time-utils.cpp
    functionUses: 3
    functionsReached:
    - localtime_r
    - localtime_s
    - adjust_time32
    linkageType: ''
    returnType: void
    signature: void rnp_localtime(time_t t, struct tm &tm)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: adjust_time32
      Src: /src/rnp/src/common/time-utils.cpp:77,1
    - Dst: ctime_r
      Src: /src/rnp/src/common/time-utils.cpp:79,1
    - Dst: ctime_s
      Src: /src/rnp/src/common/time-utils.cpp:81,1
    - Dst: string
      Src: /src/rnp/src/common/time-utils.cpp:83,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - t
    argTypes:
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 84
    functionName: rnp_ctime
    functionSourceFile: /src/rnp/src/common/time-utils.cpp
    functionUses: 4
    functionsReached:
    - string
    - adjust_time32
    - ctime_r
    - ctime_s
    linkageType: ''
    returnType: std::string
    signature: std::string rnp_ctime(time_t t)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: adjust_time32
      Src: /src/rnp/src/common/time-utils.cpp:93,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - t1
    - t2
    argTypes:
    - time_t
    - time_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 96
    functionName: rnp_timeadd
    functionSourceFile: /src/rnp/src/common/time-utils.cpp
    functionUses: 2
    functionsReached:
    - adjust_time32
    linkageType: ''
    returnType: time_t
    signature: time_t rnp_timeadd(time_t t1, time_t t2)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: fgets
      Src: /src/rnp/src/rnpkeys/tui.cpp:59,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/rnpkeys/tui.cpp:60,1
    - Dst: strtol
      Src: /src/rnp/src/rnpkeys/tui.cpp:66,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/rnpkeys/tui.cpp:68,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/rnpkeys/tui.cpp:75,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 2
    argNames:
    - fp
    - result
    argTypes:
    - FILE*
    - long
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 81
    functionName: rnp_secure_get_long_from_fd
    functionSourceFile: /src/rnp/src/rnpkeys/tui.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - fgets
    - strtol
    linkageType: ''
    returnType: bool
    signature: bool rnp_secure_get_long_from_fd(FILE *fp, long &result, bool allow_empty
      = true)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: printf
      Src: /src/rnp/src/rnpkeys/tui.cpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - attempts
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: check_attempts
    functionSourceFile: /src/rnp/src/rnpkeys/tui.cpp
    functionUses: 0
    functionsReached:
    - printf
    linkageType: ''
    returnType: bool
    signature: bool check_attempts(int &attempts)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - keysize
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: is_rsa_keysize_supported
    functionSourceFile: /src/rnp/src/rnpkeys/tui.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_rsa_keysize_supported(uint32_t keysize)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::copy_if
      Src: /src/rnp/src/rnpkeys/tui.cpp:116,1
    - Dst: std::back_inserter
      Src: /src/rnp/src/rnpkeys/tui.cpp:118,1
    - Dst: rnp_supports_feature
      Src: /src/rnp/src/rnpkeys/tui.cpp:121,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/rnpkeys/tui.cpp:125,1
    - Dst: what
      Src: /src/rnp/src/rnpkeys/tui.cpp:125,1
    - Dst: std::vector::size
      Src: /src/rnp/src/rnpkeys/tui.cpp:128,1
    - Dst: check_attempts
      Src: /src/rnp/src/rnpkeys/tui.cpp:136,1
    - Dst: printf
      Src: /src/rnp/src/rnpkeys/tui.cpp:139,1
    - Dst: printf
      Src: /src/rnp/src/rnpkeys/tui.cpp:141,1
    - Dst: printf
      Src: /src/rnp/src/rnpkeys/tui.cpp:143,1
    - Dst: rnp_secure_get_long_from_fd
      Src: /src/rnp/src/rnpkeys/tui.cpp:145,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 27
    argCount: 1
    argNames:
    - input_fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 152
    functionName: ask_curve_name
    functionSourceFile: /src/rnp/src/rnpkeys/tui.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - std::vector::size
    - rnp_supports_feature
    - std::back_inserter
    - printf
    - std::copy_if
    - rnp_secure_get_long_from_fd
    - check_attempts
    linkageType: ''
    returnType: char
    signature: 'char *

      ask_curve_name(FILE *input_fp)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: check_attempts
      Src: /src/rnp/src/rnpkeys/tui.cpp:161,1
    - Dst: printf
      Src: /src/rnp/src/rnpkeys/tui.cpp:164,1
    - Dst: rnp_secure_get_long_from_fd
      Src: /src/rnp/src/rnpkeys/tui.cpp:166,1
    - Dst: is_rsa_keysize_supported
      Src: /src/rnp/src/rnpkeys/tui.cpp:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - input_fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 154
    functionDepth: 2
    functionLinenumber: 154
    functionLinenumberEnd: 169
    functionName: ask_rsa_bitlen
    functionSourceFile: /src/rnp/src/rnpkeys/tui.cpp
    functionUses: 0
    functionsReached:
    - is_rsa_keysize_supported
    - rnp_secure_get_long_from_fd
    - printf
    - check_attempts
    linkageType: ''
    returnType: long
    signature: long ask_rsa_bitlen(FILE *input_fp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_attempts
      Src: /src/rnp/src/rnpkeys/tui.cpp:177,1
    - Dst: printf
      Src: /src/rnp/src/rnpkeys/tui.cpp:180,1
    - Dst: rnp_secure_get_long_from_fd
      Src: /src/rnp/src/rnpkeys/tui.cpp:185,1
    - Dst: printf
      Src: /src/rnp/src/rnpkeys/tui.cpp:191,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - input_fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 171
    functionDepth: 2
    functionLinenumber: 171
    functionLinenumberEnd: 196
    functionName: ask_elgamal_bitlen
    functionSourceFile: /src/rnp/src/rnpkeys/tui.cpp
    functionUses: 0
    functionsReached:
    - rnp_secure_get_long_from_fd
    - printf
    - check_attempts
    linkageType: ''
    returnType: long
    signature: long ask_elgamal_bitlen(FILE *input_fp)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: check_attempts
      Src: /src/rnp/src/rnpkeys/tui.cpp:203,1
    - Dst: printf
      Src: /src/rnp/src/rnpkeys/tui.cpp:206,1
    - Dst: rnp_secure_get_long_from_fd
      Src: /src/rnp/src/rnpkeys/tui.cpp:212,1
    - Dst: printf
      Src: /src/rnp/src/rnpkeys/tui.cpp:218,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - input_fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 198
    functionDepth: 2
    functionLinenumber: 198
    functionLinenumberEnd: 224
    functionName: ask_dsa_bitlen
    functionSourceFile: /src/rnp/src/rnpkeys/tui.cpp
    functionUses: 0
    functionsReached:
    - rnp_secure_get_long_from_fd
    - printf
    - check_attempts
    linkageType: ''
    returnType: long
    signature: long ask_dsa_bitlen(FILE *input_fp)
  - BBCount: 28
    BranchProfiles: []
    Callsites:
    - Dst: check_attempts
      Src: /src/rnp/src/rnpkeys/tui.cpp:232,1
    - Dst: printf
      Src: /src/rnp/src/rnpkeys/tui.cpp:235,1
    - Dst: rnp_secure_get_long_from_fd
      Src: /src/rnp/src/rnpkeys/tui.cpp:267,1
    - Dst: ask_rsa_bitlen
      Src: /src/rnp/src/rnpkeys/tui.cpp:273,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:277,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:278,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnpkeys/tui.cpp:279,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnpkeys/tui.cpp:280,1
    - Dst: ask_dsa_bitlen
      Src: /src/rnp/src/rnpkeys/tui.cpp:284,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:288,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:289,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnpkeys/tui.cpp:290,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnpkeys/tui.cpp:291,1
    - Dst: ask_dsa_bitlen
      Src: /src/rnp/src/rnpkeys/tui.cpp:295,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:299,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:300,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnpkeys/tui.cpp:301,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnpkeys/tui.cpp:302,1
    - Dst: ask_curve_name
      Src: /src/rnp/src/rnpkeys/tui.cpp:306,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:310,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:311,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:312,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:313,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:318,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:323,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:324,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:325,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:330,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:331,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:332,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:338,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:339,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:340,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:341,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:344,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:345,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:346,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:347,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:350,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:351,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:352,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:353,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:356,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:357,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:358,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:359,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:362,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:363,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:364,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:365,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:368,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:369,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:370,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:371,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:374,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:375,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:376,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:377,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:380,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:381,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:382,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:383,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:387,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:388,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:389,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:390,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:394,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:395,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:396,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:397,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:403,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:404,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:405,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:406,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:411,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:412,1
    - Dst: rnp_cfg::has
      Src: /src/rnp/src/rnpkeys/tui.cpp:413,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:414,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 154
    argCount: 2
    argNames:
    - cfg
    - input_fp
    argTypes:
    - rnp_cfg
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 425
      start: 226
    functionDepth: 3
    functionLinenumber: 226
    functionLinenumberEnd: 425
    functionName: rnpkeys_ask_generate_params
    functionSourceFile: /src/rnp/src/rnpkeys/tui.cpp
    functionUses: 0
    functionsReached:
    - check_attempts
    - ask_curve_name
    - ask_rsa_bitlen
    - rnp_cfg::has
    - printf
    - ask_dsa_bitlen
    - rnp_secure_get_long_from_fd
    - rnp_cfg::set_int
    - rnp_cfg::set_str
    linkageType: ''
    returnType: bool
    signature: bool rnpkeys_ask_generate_params(rnp_cfg &cfg, FILE *input_fp)
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: check_attempts
      Src: /src/rnp/src/rnpkeys/tui.cpp:433,1
    - Dst: printf
      Src: /src/rnp/src/rnpkeys/tui.cpp:436,1
    - Dst: rnp_secure_get_long_from_fd
      Src: /src/rnp/src/rnpkeys/tui.cpp:455,1
    - Dst: ask_rsa_bitlen
      Src: /src/rnp/src/rnpkeys/tui.cpp:461,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:465,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnpkeys/tui.cpp:466,1
    - Dst: ask_elgamal_bitlen
      Src: /src/rnp/src/rnpkeys/tui.cpp:470,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:474,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnpkeys/tui.cpp:475,1
    - Dst: ask_dsa_bitlen
      Src: /src/rnp/src/rnpkeys/tui.cpp:479,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:483,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnpkeys/tui.cpp:484,1
    - Dst: ask_curve_name
      Src: /src/rnp/src/rnpkeys/tui.cpp:488,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:492,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:493,1
    - Dst: ask_curve_name
      Src: /src/rnp/src/rnpkeys/tui.cpp:497,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:501,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:502,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:506,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:511,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:516,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:519,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:522,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:525,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:528,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:532,1
    - Dst: rnp_cfg::has
      Src: /src/rnp/src/rnpkeys/tui.cpp:533,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:534,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 88
    argCount: 2
    argNames:
    - cfg
    - input_fp
    argTypes:
    - rnp_cfg
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 427
    functionDepth: 3
    functionLinenumber: 427
    functionLinenumberEnd: 545
    functionName: rnpkeys_ask_generate_params_subkey
    functionSourceFile: /src/rnp/src/rnpkeys/tui.cpp
    functionUses: 0
    functionsReached:
    - check_attempts
    - ask_elgamal_bitlen
    - ask_curve_name
    - ask_rsa_bitlen
    - rnp_cfg::has
    - printf
    - ask_dsa_bitlen
    - rnp_secure_get_long_from_fd
    - rnp_cfg::set_int
    - rnp_cfg::set_str
    linkageType: ''
    returnType: bool
    signature: bool rnpkeys_ask_generate_params_subkey(rnp_cfg &cfg, FILE *input_fp)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::has
      Src: /src/rnp/src/rnpkeys/tui.cpp:552,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:553,1
    - Dst: rnp_cfg::get_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:553,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:554,1
    - Dst: rnp_cfg::get_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:554,1
    - Dst: rnp_cfg::get_bool
      Src: /src/rnp/src/rnpkeys/tui.cpp:558,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:559,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnpkeys/tui.cpp:560,1
    - Dst: rnp_cfg::get_int
      Src: /src/rnp/src/rnpkeys/tui.cpp:560,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:561,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnpkeys/tui.cpp:562,1
    - Dst: rnp_cfg::get_int
      Src: /src/rnp/src/rnpkeys/tui.cpp:562,1
    - Dst: rnpkeys_ask_generate_params_subkey
      Src: /src/rnp/src/rnpkeys/tui.cpp:566,1
    - Dst: rnpkeys_ask_generate_params
      Src: /src/rnp/src/rnpkeys/tui.cpp:568,1
    - Dst: fclose
      Src: /src/rnp/src/rnpkeys/tui.cpp:571,1
    - Dst: rnp_cfg::has
      Src: /src/rnp/src/rnpkeys/tui.cpp:579,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:580,1
    - Dst: rnp_cfg::has
      Src: /src/rnp/src/rnpkeys/tui.cpp:582,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:583,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:587,1
    - Dst: rnp_cfg::has
      Src: /src/rnp/src/rnpkeys/tui.cpp:588,1
    - Dst: rnp_cfg::get_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:588,1
    - Dst: rnp_cfg::get_int
      Src: /src/rnp/src/rnpkeys/tui.cpp:590,1
    - Dst: rnp_calculate_iterations
      Src: /src/rnp/src/rnpkeys/tui.cpp:592,1
    - Dst: rnp_cfg::get_str
      Src: /src/rnp/src/rnpkeys/tui.cpp:592,1
    - Dst: rnp_cfg::get_int
      Src: /src/rnp/src/rnpkeys/tui.cpp:593,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnpkeys/tui.cpp:596,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 35
    argCount: 2
    argNames:
    - cfg
    - subkey
    argTypes:
    - rnp_cfg
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 598
      start: 547
    functionDepth: 4
    functionLinenumber: 547
    functionLinenumberEnd: 598
    functionName: cli_rnp_set_generate_params
    functionSourceFile: /src/rnp/src/rnpkeys/tui.cpp
    functionUses: 2
    functionsReached:
    - rnp_calculate_iterations
    - rnp_cfg::get_bool
    - rnp_cfg::get_str
    - rnpkeys_ask_generate_params
    - fclose
    - rnp_cfg::has
    - rnp_cfg::get_int
    - rnpkeys_ask_generate_params_subkey
    - rnp_cfg::set_int
    - rnp_cfg::set_str
    linkageType: ''
    returnType: bool
    signature: bool cli_rnp_set_generate_params(rnp_cfg &cfg, bool subkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:160,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:161,1
    - Dst: cli_rnp_t*::keys_matching
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:165,1
    - Dst: fprintf
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:166,1
    - Dst: fprintf
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:169,1
    - Dst: std::vector::size
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:169,1
    - Dst: std::vector::size
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:169,1
    - Dst: cli_rnp_print_key_info
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:171,1
    - Dst: fprintf
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:174,1
    - Dst: clear_key_handles
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - rnp
    - fp
    - filter
    argTypes:
    - cli_rnp_t*
    - FILE*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 178
      start: 157
    functionDepth: 4
    functionLinenumber: 157
    functionLinenumberEnd: 178
    functionName: print_keys_info
    functionSourceFile: /src/rnp/src/rnpkeys/rnpkeys.cpp
    functionUses: 0
    functionsReached:
    - clear_key_handles
    - cli_rnp_t*::keys_matching
    - fprintf
    - cli_rnp_t*::cfg
    - std::vector::size
    - cli_rnp_print_key_info
    linkageType: ''
    returnType: bool
    signature: bool print_keys_info(cli_rnp_t *rnp, FILE *fp, const char *filter)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:194,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:202,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:209,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:214,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:214,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:221,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:223,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:224,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:227,1
    - Dst: nlohmann::ordered_json::is_object
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:228,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:228,1
    - Dst: is_array
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:228,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:229,1
    - Dst: size
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:232,1
    - Dst: value
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:235,1
    - Dst: value
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:236,1
    - Dst: contains
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:238,1
    - Dst: is_string
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:238,1
    - Dst: get_ptr
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:239,1
    - Dst: std::set::insert
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:243,1
    - Dst: std::set::insert
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:247,1
    - Dst: std::set::insert
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:251,1
    - Dst: std::set::count
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:255,1
    - Dst: std::set::count
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:255,1
    - Dst: std::set::count
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:256,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:261,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:262,1
    - Dst: cli_rnp_print_key_info
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:265,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:266,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:271,1
    - Dst: std::set::size
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:275,1
    - Dst: std::set::size
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:276,1
    - Dst: std::set::size
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:277,1
    - Dst: cli_rnp_t*::defkey
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:282,1
    - Dst: cli_rnp_t*::set_defkey
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:283,1
    - Dst: cli_rnp_save_keyrings
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:287,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:288,1
    CyclomaticComplexity: 33
    EdgeCount: 33
    ICount: 67
    argCount: 3
    argNames:
    - rnp
    - input
    - inname
    argTypes:
    - cli_rnp_t*
    - rnp_input_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 180
    functionDepth: 4
    functionLinenumber: 180
    functionLinenumberEnd: 292
    functionName: import_keys
    functionSourceFile: /src/rnp/src/rnpkeys/rnpkeys.cpp
    functionUses: 29
    functionsReached:
    - get_ptr
    - std::set::count
    - is_array
    - nlohmann::ordered_json::is_object
    - contains
    - is_string
    - cli_rnp_t*::set_defkey
    - size
    - pgp::pkt::Signature::parse
    - std::set::size
    - rnp_key_handle_destroy
    - ERR_MSG
    - rnp_locate_key
    - value
    - std::string::c_str
    - rnp_import_keys
    - cli_rnp_t*::cfg
    - nlohmann::ordered_json::contains
    - cli_rnp_save_keyrings
    - rnp_buffer_destroy
    - cli_rnp_t*::defkey
    - std::set::insert
    - cli_rnp_print_key_info
    linkageType: ''
    returnType: bool
    signature: bool import_keys(cli_rnp_t *rnp, rnp_input_t input, const std::string
      &inname)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp_import_signatures
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:305,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:306,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:306,1
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:311,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:313,1
    - Dst: nlohmann::ordered_json::is_object
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:316,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:316,1
    - Dst: is_array
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:316,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:317,1
    - Dst: value
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:323,1
    - Dst: value
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:324,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:336,1
    - Dst: cli_rnp_save_keyrings
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:343,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:344,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:349,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 3
    argNames:
    - rnp
    - input
    - inname
    argTypes:
    - cli_rnp_t*
    - rnp_input_t
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 351
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 351
    functionName: import_sigs
    functionSourceFile: /src/rnp/src/rnpkeys/rnpkeys.cpp
    functionUses: 2
    functionsReached:
    - cli_rnp_save_keyrings
    - value
    - rnp_buffer_destroy
    - std::string::c_str
    - nlohmann::ordered_json::is_object
    - is_array
    - pgp::pkt::Signature::parse
    - nlohmann::ordered_json::contains
    - rnp_import_signatures
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool import_sigs(cli_rnp_t *rnp, rnp_input_t input, const std::string
      &inname)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:356,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:357,1
    - Dst: cli_rnp_input_from_specifier
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:360,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:362,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:362,1
    - Dst: rnp_guess_contents
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:367,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:368,1
    - Dst: strcmp
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:370,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:371,1
    - Dst: import_keys
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:377,1
    - Dst: import_sigs
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:380,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:383,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:385,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - rnp
    - spec
    - cmd
    argTypes:
    - cli_rnp_t*
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 353
    functionDepth: 3
    functionLinenumber: 353
    functionLinenumberEnd: 387
    functionName: import
    functionSourceFile: /src/rnp/src/rnpkeys/rnpkeys.cpp
    functionUses: 0
    functionsReached:
    - rnp_input_destroy
    - rnp_buffer_destroy
    - std::string::c_str
    - rnp_guess_contents
    - strcmp
    - import_sigs
    - ERR_MSG
    - import_keys
    - std::string::empty
    - cli_rnp_input_from_specifier
    linkageType: ''
    returnType: bool
    signature: bool import(cli_rnp_t *rnp, const std::string &spec, int cmd)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_print_praise
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:393,1
    - Dst: puts
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - usagemsg
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 390
    functionDepth: 2
    functionLinenumber: 390
    functionLinenumberEnd: 395
    functionName: print_usage
    functionSourceFile: /src/rnp/src/rnpkeys/rnpkeys.cpp
    functionUses: 2
    functionsReached:
    - cli_rnp_print_praise
    - puts
    linkageType: ''
    returnType: void
    signature: void print_usage(const char *usagemsg)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:405,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:406,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:407,1
    - Dst: print_keys_info
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:409,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:411,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:412,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:413,1
    - Dst: cli_rnp_export_keys
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:415,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:418,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:419,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:420,1
    - Dst: cli_rnp_export_autocrypt_key
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:422,1
    - Dst: import
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:427,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:430,1
    - Dst: cli_rnp_t*::cfg
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:432,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:433,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:435,1
    - Dst: cli_rnp_generate_key
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:439,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:443,1
    - Dst: cli_rnp_export_revocation
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:446,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:450,1
    - Dst: cli_rnp_revoke_key
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:453,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:457,1
    - Dst: cli_rnp_remove_key
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:460,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:464,1
    - Dst: cli_rnp_t*::edit_key
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:467,1
    - Dst: cli_rnp_print_praise
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:470,1
    - Dst: print_usage
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:474,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 75
    argCount: 3
    argNames:
    - rnp
    - cmd
    - f
    argTypes:
    - cli_rnp_t*
    - optdefs_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 477
      start: 398
    functionDepth: 5
    functionLinenumber: 398
    functionLinenumberEnd: 477
    functionName: rnp_cmd
    functionSourceFile: /src/rnp/src/rnpkeys/rnpkeys.cpp
    functionUses: 2
    functionsReached:
    - cli_rnp_t*::edit_key
    - std::string::c_str
    - cli_rnp_generate_key
    - cli_rnp_export_revocation
    - cli_rnp_t*::cfg
    - cli_rnp_remove_key
    - cli_rnp_revoke_key
    - ERR_MSG
    - import
    - print_keys_info
    - cli_rnp_export_keys
    - cli_rnp_print_praise
    - print_usage
    - cli_rnp_export_autocrypt_key
    linkageType: ''
    returnType: bool
    signature: bool rnp_cmd(cli_rnp_t *rnp, optdefs_t cmd, const char *f)
  - BBCount: 56
    BranchProfiles: []
    Callsites:
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:486,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:488,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:491,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:495,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:513,1
    - Dst: rnp_cfg::add_str
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:516,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:519,1
    - Dst: rnp::str_to_int
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:523,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:524,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:527,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:531,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:534,1
    - Dst: cli_rnp_set_hash
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:537,1
    - Dst: atoi
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:539,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:541,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:544,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:548,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:549,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:551,1
    - Dst: rnp::str_to_int
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:556,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:557,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:560,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:564,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:567,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:570,1
    - Dst: cli_rnp_set_cipher
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:573,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:575,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:579,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:582,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:585,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:588,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:591,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:594,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:607,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:611,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:614,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:617,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:620,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:623,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:626,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:629,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:632,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:635,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:638,1
    - Dst: rnp_cfg::set_bool
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:639,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 157
    argCount: 4
    argNames:
    - cfg
    - cmd
    - val
    - arg
    argTypes:
    - rnp_cfg
    - optdefs_t*
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 645
      start: 480
    functionDepth: 3
    functionLinenumber: 480
    functionLinenumberEnd: 645
    functionName: setoption
    functionSourceFile: /src/rnp/src/rnpkeys/rnpkeys.cpp
    functionUses: 1
    functionsReached:
    - cli_rnp_set_cipher
    - rnp_cfg::add_str
    - cli_rnp_set_hash
    - atoi
    - rnp::str_to_int
    - rnp_cfg::set_bool
    - rnp_cfg::set_int
    - rnp_cfg::set_str
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool setoption(rnp_cfg &cfg, optdefs_t *cmd, int val, const char *arg)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::load_defaults
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:651,1
    - Dst: rnp_cfg::set_int
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:652,1
    - Dst: rnp_cfg::set_str
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:653,1
    - Dst: rnp_cfg::copy
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:654,1
    - Dst: cli_cfg_set_keystore_info
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:656,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:657,1
    - Dst: cli_rnp_t::init
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:660,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:661,1
    - Dst: cli_rnp_check_weak_hash
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:664,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:665,1
    - Dst: cli_rnp_check_old_ciphers
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:670,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:671,1
    - Dst: cli_rnp_t::cfg
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:676,1
    - Dst: cli_rnp_t::load_keyrings
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:677,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:678,1
    - Dst: cli_rnp_t::cfg
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:683,1
    - Dst: cli_rnp_add_key
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:683,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/rnpkeys.cpp:684,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 30
    argCount: 2
    argNames:
    - rnp
    - cfg
    argTypes:
    - cli_rnp_t
    - rnp_cfg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 689
      start: 647
    functionDepth: 4
    functionLinenumber: 647
    functionLinenumberEnd: 689
    functionName: rnpkeys_init
    functionSourceFile: /src/rnp/src/rnpkeys/rnpkeys.cpp
    functionUses: 1
    functionsReached:
    - cli_rnp_t::init
    - rnp_cfg::copy
    - rnp_cfg::load_defaults
    - cli_rnp_t::cfg
    - cli_rnp_add_key
    - cli_rnp_t::load_keyrings
    - cli_cfg_set_keystore_info
    - cli_rnp_check_weak_hash
    - rnp_cfg::set_int
    - cli_rnp_check_old_ciphers
    - rnp_cfg::set_str
    - ERR_MSG
    linkageType: ''
    returnType: bool
    signature: bool rnpkeys_init(cli_rnp_t &rnp, const rnp_cfg &cfg)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 1
    argNames:
    - ch
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 59
    functionName: get_short_cmd
    functionSourceFile: /src/rnp/src/rnpkeys/main.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: optdefs_t
    signature: optdefs_t get_short_cmd(int ch)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: print_usage
      Src: /src/rnp/src/rnpkeys/main.cpp:71,1
    - Dst: cli_rnp_t::substitute_args
      Src: /src/rnp/src/rnpkeys/main.cpp:78,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/rnpkeys/main.cpp:80,1
    - Dst: what
      Src: /src/rnp/src/rnpkeys/main.cpp:80,1
    - Dst: getopt_long
      Src: /src/rnp/src/rnpkeys/main.cpp:90,1
    - Dst: print_usage
      Src: /src/rnp/src/rnpkeys/main.cpp:93,1
    - Dst: setoption
      Src: /src/rnp/src/rnpkeys/main.cpp:99,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/main.cpp:100,1
    - Dst: get_short_cmd
      Src: /src/rnp/src/rnpkeys/main.cpp:104,1
    - Dst: ERR_MSG
      Src: /src/rnp/src/rnpkeys/main.cpp:108,1
    - Dst: cli_rnp_t::ret_code
      Src: /src/rnp/src/rnpkeys/main.cpp:116,1
    - Dst: rnp_cmd
      Src: /src/rnp/src/rnpkeys/main.cpp:116,1
    - Dst: rnpkeys_init
      Src: /src/rnp/src/rnpkeys/main.cpp:119,1
    - Dst: cli_rnp_setup
      Src: /src/rnp/src/rnpkeys/main.cpp:123,1
    - Dst: cli_rnp_t::ret_code
      Src: /src/rnp/src/rnpkeys/main.cpp:129,1
    - Dst: rnp_cmd
      Src: /src/rnp/src/rnpkeys/main.cpp:129,1
    - Dst: rnp_cmd
      Src: /src/rnp/src/rnpkeys/main.cpp:133,1
    - Dst: cli_rnp_t::ret_code
      Src: /src/rnp/src/rnpkeys/main.cpp:135,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 66
    functionDepth: 5
    functionLinenumber: 66
    functionLinenumberEnd: 136
    functionName: rnpkeys_main
    functionSourceFile: /src/rnp/src/rnpkeys/main.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - cli_rnp_t::ret_code
    - what
    - rnpkeys_init
    - cli_rnp_setup
    - rnp_cmd
    - print_usage
    - getopt_long
    - ERR_MSG
    - get_short_cmd
    - setoption
    - cli_rnp_t::substitute_args
    linkageType: ''
    returnType: int
    signature: int rnpkeys_main(int argc, char **argv)
  - 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: rnp::UserID::UserID
    functionSourceFile: /src/rnp/src/lib/userid.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UserID()
  - 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: rnp::UserID::UserID
    functionSourceFile: /src/rnp/src/lib/userid.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UserID()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::map::find
      Src: /src/rnp/src/lib/key-provider.cpp:48,1
    - Dst: std::map::end
      Src: /src/rnp/src/lib/key-provider.cpp:48,1
    - Dst: std::map::at
      Src: /src/rnp/src/lib/key-provider.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: rnp::KeySearch::find_type
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached:
    - std::map::find
    - std::map::at
    - std::map::end
    linkageType: ''
    returnType: KeySearch::Type
    signature: KeySearch::Type KeySearch::find_type(const std::string &name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeySearch>
      Src: /src/rnp/src/lib/key-provider.cpp:57,1
    - Dst: KeyIDSearch::KeyIDSearch
      Src: /src/rnp/src/lib/key-provider.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyid
    argTypes:
    - pgp::KeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: rnp::KeySearch::create
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 6
    functionsReached:
    - std::unique_ptr<KeySearch>
    - KeyIDSearch::KeyIDSearch
    linkageType: ''
    returnType: std::unique_ptr<KeySearch>
    signature: std::unique_ptr<KeySearch> KeySearch::create(const pgp::KeyID &keyid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeySearch>
      Src: /src/rnp/src/lib/key-provider.cpp:63,1
    - Dst: KeyFingerprintSearch::KeyFingerprintSearch
      Src: /src/rnp/src/lib/key-provider.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: rnp::KeySearch::create
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 6
    functionsReached:
    - KeyFingerprintSearch::KeyFingerprintSearch
    - std::unique_ptr<KeySearch>
    linkageType: ''
    returnType: std::unique_ptr<KeySearch>
    signature: std::unique_ptr<KeySearch> KeySearch::create(const pgp::Fingerprint
      &fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeySearch>
      Src: /src/rnp/src/lib/key-provider.cpp:69,1
    - Dst: KeyGripSearch::KeyGripSearch
      Src: /src/rnp/src/lib/key-provider.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - grip
    argTypes:
    - pgp::KeyGrip
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: rnp::KeySearch::create
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 6
    functionsReached:
    - KeyGripSearch::KeyGripSearch
    - std::unique_ptr<KeySearch>
    linkageType: ''
    returnType: std::unique_ptr<KeySearch>
    signature: std::unique_ptr<KeySearch> KeySearch::create(const pgp::KeyGrip &grip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeySearch>
      Src: /src/rnp/src/lib/key-provider.cpp:75,1
    - Dst: KeyUIDSearch::KeyUIDSearch
      Src: /src/rnp/src/lib/key-provider.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uid
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: rnp::KeySearch::create
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 6
    functionsReached:
    - std::unique_ptr<KeySearch>
    - KeyUIDSearch::KeyUIDSearch
    linkageType: ''
    returnType: std::unique_ptr<KeySearch>
    signature: std::unique_ptr<KeySearch> KeySearch::create(const std::string &uid)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeySearch::find_type
      Src: /src/rnp/src/lib/key-provider.cpp:81,1
    - Dst: rnp::KeySearch::create
      Src: /src/rnp/src/lib/key-provider.cpp:86,1
    - Dst: hex_to_bin
      Src: /src/rnp/src/lib/key-provider.cpp:89,1
    - Dst: auto::empty
      Src: /src/rnp/src/lib/key-provider.cpp:90,1
    - Dst: pgp::Fingerprint::size_valid
      Src: /src/rnp/src/lib/key-provider.cpp:95,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/key-provider.cpp:95,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key-provider.cpp:96,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/key-provider.cpp:96,1
    - Dst: rnp::KeySearch::create
      Src: /src/rnp/src/lib/key-provider.cpp:99,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/lib/key-provider.cpp:99,1
    - Dst: auto::data
      Src: /src/rnp/src/lib/key-provider.cpp:99,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/key-provider.cpp:99,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/key-provider.cpp:101,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key-provider.cpp:102,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/key-provider.cpp:102,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/key-provider.cpp:106,1
    - Dst: pgp::KeyID::data
      Src: /src/rnp/src/lib/key-provider.cpp:106,1
    - Dst: auto::data
      Src: /src/rnp/src/lib/key-provider.cpp:106,1
    - Dst: pgp::KeyID::size
      Src: /src/rnp/src/lib/key-provider.cpp:106,1
    - Dst: rnp::KeySearch::create
      Src: /src/rnp/src/lib/key-provider.cpp:107,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/key-provider.cpp:110,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key-provider.cpp:111,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/key-provider.cpp:111,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/key-provider.cpp:115,1
    - Dst: pgp::KeyGrip::data
      Src: /src/rnp/src/lib/key-provider.cpp:115,1
    - Dst: auto::data
      Src: /src/rnp/src/lib/key-provider.cpp:115,1
    - Dst: pgp::KeyGrip::size
      Src: /src/rnp/src/lib/key-provider.cpp:115,1
    - Dst: rnp::KeySearch::create
      Src: /src/rnp/src/lib/key-provider.cpp:116,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 121
    functionName: rnp::KeySearch::create
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 7
    functionsReached:
    - RNP_LOG
    - memcpy
    - pgp::KeyID::size
    - rnp::KeySearch::find_type
    - auto::size
    - auto::data
    - std::string::c_str
    - hex_to_bin
    - pgp::Fingerprint::Fingerprint
    - pgp::KeyGrip::size
    - pgp::Fingerprint::size_valid
    - pgp::KeyGrip::data
    - rnp::KeySearch::create
    - pgp::KeyID::data
    - auto::empty
    linkageType: ''
    returnType: std::unique_ptr<KeySearch>
    signature: std::unique_ptr<KeySearch> KeySearch::create(const std::string &name,
      const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key::keyid
      Src: /src/rnp/src/lib/key-provider.cpp:126,1
    - Dst: pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/lib/key-provider.cpp:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: rnp::KeyIDSearch::matches
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached:
    - Key::keyid
    - pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
    linkageType: ''
    returnType: bool
    signature: bool KeyIDSearch::matches(const Key &key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: rnp::KeyIDSearch::name
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string KeyIDSearch::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bin_to_hex
      Src: /src/rnp/src/lib/key-provider.cpp:138,1
    - Dst: data
      Src: /src/rnp/src/lib/key-provider.cpp:138,1
    - Dst: size
      Src: /src/rnp/src/lib/key-provider.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: rnp::KeyIDSearch::value
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached:
    - bin_to_hex
    - data
    - size
    linkageType: ''
    returnType: std::string
    signature: std::string KeyIDSearch::value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/lib/key-provider.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: rnp::KeyIDSearch::hidden
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
    linkageType: ''
    returnType: bool
    signature: bool KeyIDSearch::hidden() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - keyid
    argTypes:
    - pgp::KeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: rnp::KeyIDSearch::KeyIDSearch
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyIDSearch::KeyIDSearch(const pgp::KeyID &keyid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key::fp
      Src: /src/rnp/src/lib/key-provider.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: rnp::KeyFingerprintSearch::matches
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached:
    - Key::fp
    linkageType: ''
    returnType: bool
    signature: bool KeyFingerprintSearch::matches(const Key &key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: rnp::KeyFingerprintSearch::name
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string KeyFingerprintSearch::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bin_to_hex
      Src: /src/rnp/src/lib/key-provider.cpp:168,1
    - Dst: data
      Src: /src/rnp/src/lib/key-provider.cpp:168,1
    - Dst: size
      Src: /src/rnp/src/lib/key-provider.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: rnp::KeyFingerprintSearch::value
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached:
    - bin_to_hex
    - data
    - size
    linkageType: ''
    returnType: std::string
    signature: std::string KeyFingerprintSearch::value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fp
    argTypes:
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: rnp::KeyFingerprintSearch::KeyFingerprintSearch
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyFingerprintSearch::KeyFingerprintSearch(const pgp::Fingerprint
      &fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: '&

      KeyFingerprintSearch::get_fp() const'
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp::Fingerprint
    signature: 'pgp::Fingerprint &

      KeyFingerprintSearch::get_fp() const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key::grip
      Src: /src/rnp/src/lib/key-provider.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: rnp::KeyGripSearch::matches
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached:
    - Key::grip
    linkageType: ''
    returnType: bool
    signature: bool KeyGripSearch::matches(const Key &key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 193
    functionName: rnp::KeyGripSearch::name
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string KeyGripSearch::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bin_to_hex
      Src: /src/rnp/src/lib/key-provider.cpp:198,1
    - Dst: data
      Src: /src/rnp/src/lib/key-provider.cpp:198,1
    - Dst: size
      Src: /src/rnp/src/lib/key-provider.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: rnp::KeyGripSearch::value
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached:
    - bin_to_hex
    - data
    - size
    linkageType: ''
    returnType: std::string
    signature: std::string KeyGripSearch::value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - grip
    argTypes:
    - pgp::KeyGrip
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: rnp::KeyGripSearch::KeyGripSearch
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyGripSearch::KeyGripSearch(const pgp::KeyGrip &grip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key::has_uid
      Src: /src/rnp/src/lib/key-provider.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: rnp::KeyUIDSearch::matches
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached:
    - Key::has_uid
    linkageType: ''
    returnType: bool
    signature: bool KeyUIDSearch::matches(const Key &key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: rnp::KeyUIDSearch::name
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string KeyUIDSearch::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: rnp::KeyUIDSearch::value
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string KeyUIDSearch::value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uid
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: rnp::KeyUIDSearch::KeyUIDSearch
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyUIDSearch::KeyUIDSearch(const std::string &uid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: callback
      Src: /src/rnp/src/lib/key-provider.cpp:239,1
    - Dst: KeySearch::matches
      Src: /src/rnp/src/lib/key-provider.cpp:243,1
    - Dst: Key*::is_secret
      Src: /src/rnp/src/lib/key-provider.cpp:243,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - search
    - op
    - secret
    argTypes:
    - KeySearch
    - pgp_op_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 247
    functionName: rnp::KeyProvider::request_key
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached:
    - KeySearch::matches
    - Key*::is_secret
    - callback
    linkageType: ''
    returnType: Key
    signature: 'Key *

      KeyProvider::request_key(const KeySearch &search, pgp_op_t op, bool secret)
      const'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::map::find
      Src: /src/rnp/src/lib/key-provider.cpp:48,1
    - Dst: std::map::end
      Src: /src/rnp/src/lib/key-provider.cpp:48,1
    - Dst: std::map::at
      Src: /src/rnp/src/lib/key-provider.cpp:51,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 52
    functionName: rnp::KeySearch::find_type
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 1
    functionsReached:
    - std::map::find
    - std::map::at
    - std::map::end
    linkageType: ''
    returnType: KeySearch::Type
    signature: KeySearch::Type KeySearch::find_type(const std::string &name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeySearch>
      Src: /src/rnp/src/lib/key-provider.cpp:57,1
    - Dst: KeyIDSearch::KeyIDSearch
      Src: /src/rnp/src/lib/key-provider.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - keyid
    argTypes:
    - pgp::KeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: rnp::KeySearch::create
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 7
    functionsReached:
    - std::unique_ptr<KeySearch>
    - KeyIDSearch::KeyIDSearch
    linkageType: ''
    returnType: std::unique_ptr<KeySearch>
    signature: std::unique_ptr<KeySearch> KeySearch::create(const pgp::KeyID &keyid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeySearch>
      Src: /src/rnp/src/lib/key-provider.cpp:63,1
    - Dst: KeyFingerprintSearch::KeyFingerprintSearch
      Src: /src/rnp/src/lib/key-provider.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: rnp::KeySearch::create
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 7
    functionsReached:
    - KeyFingerprintSearch::KeyFingerprintSearch
    - std::unique_ptr<KeySearch>
    linkageType: ''
    returnType: std::unique_ptr<KeySearch>
    signature: std::unique_ptr<KeySearch> KeySearch::create(const pgp::Fingerprint
      &fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeySearch>
      Src: /src/rnp/src/lib/key-provider.cpp:69,1
    - Dst: KeyGripSearch::KeyGripSearch
      Src: /src/rnp/src/lib/key-provider.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - grip
    argTypes:
    - pgp::KeyGrip
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: rnp::KeySearch::create
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 7
    functionsReached:
    - KeyGripSearch::KeyGripSearch
    - std::unique_ptr<KeySearch>
    linkageType: ''
    returnType: std::unique_ptr<KeySearch>
    signature: std::unique_ptr<KeySearch> KeySearch::create(const pgp::KeyGrip &grip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeySearch>
      Src: /src/rnp/src/lib/key-provider.cpp:75,1
    - Dst: KeyUIDSearch::KeyUIDSearch
      Src: /src/rnp/src/lib/key-provider.cpp:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - uid
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: rnp::KeySearch::create
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 7
    functionsReached:
    - std::unique_ptr<KeySearch>
    - KeyUIDSearch::KeyUIDSearch
    linkageType: ''
    returnType: std::unique_ptr<KeySearch>
    signature: std::unique_ptr<KeySearch> KeySearch::create(const std::string &uid)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeySearch::find_type
      Src: /src/rnp/src/lib/key-provider.cpp:81,1
    - Dst: rnp::KeySearch::create
      Src: /src/rnp/src/lib/key-provider.cpp:86,1
    - Dst: hex_to_bin
      Src: /src/rnp/src/lib/key-provider.cpp:89,1
    - Dst: auto::empty
      Src: /src/rnp/src/lib/key-provider.cpp:90,1
    - Dst: pgp::Fingerprint::size_valid
      Src: /src/rnp/src/lib/key-provider.cpp:95,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/key-provider.cpp:95,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key-provider.cpp:96,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/key-provider.cpp:96,1
    - Dst: rnp::KeySearch::create
      Src: /src/rnp/src/lib/key-provider.cpp:99,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/lib/key-provider.cpp:99,1
    - Dst: auto::data
      Src: /src/rnp/src/lib/key-provider.cpp:99,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/key-provider.cpp:99,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/key-provider.cpp:101,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key-provider.cpp:102,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/key-provider.cpp:102,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/key-provider.cpp:106,1
    - Dst: pgp::KeyID::data
      Src: /src/rnp/src/lib/key-provider.cpp:106,1
    - Dst: auto::data
      Src: /src/rnp/src/lib/key-provider.cpp:106,1
    - Dst: pgp::KeyID::size
      Src: /src/rnp/src/lib/key-provider.cpp:106,1
    - Dst: rnp::KeySearch::create
      Src: /src/rnp/src/lib/key-provider.cpp:107,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/key-provider.cpp:110,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key-provider.cpp:111,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/key-provider.cpp:111,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/key-provider.cpp:115,1
    - Dst: pgp::KeyGrip::data
      Src: /src/rnp/src/lib/key-provider.cpp:115,1
    - Dst: auto::data
      Src: /src/rnp/src/lib/key-provider.cpp:115,1
    - Dst: pgp::KeyGrip::size
      Src: /src/rnp/src/lib/key-provider.cpp:115,1
    - Dst: rnp::KeySearch::create
      Src: /src/rnp/src/lib/key-provider.cpp:116,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 36
    argCount: 2
    argNames:
    - name
    - value
    argTypes:
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 78
    functionDepth: 2
    functionLinenumber: 78
    functionLinenumberEnd: 121
    functionName: rnp::KeySearch::create
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 8
    functionsReached:
    - RNP_LOG
    - memcpy
    - pgp::KeyID::size
    - rnp::KeySearch::find_type
    - auto::size
    - auto::data
    - std::string::c_str
    - hex_to_bin
    - pgp::Fingerprint::Fingerprint
    - pgp::KeyGrip::size
    - pgp::Fingerprint::size_valid
    - pgp::KeyGrip::data
    - rnp::KeySearch::create
    - pgp::KeyID::data
    - auto::empty
    linkageType: ''
    returnType: std::unique_ptr<KeySearch>
    signature: std::unique_ptr<KeySearch> KeySearch::create(const std::string &name,
      const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key::keyid
      Src: /src/rnp/src/lib/key-provider.cpp:126,1
    - Dst: pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/lib/key-provider.cpp:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: rnp::KeyIDSearch::matches
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached:
    - Key::keyid
    - pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
    linkageType: ''
    returnType: bool
    signature: bool KeyIDSearch::matches(const Key &key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: rnp::KeyIDSearch::name
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string KeyIDSearch::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bin_to_hex
      Src: /src/rnp/src/lib/key-provider.cpp:138,1
    - Dst: data
      Src: /src/rnp/src/lib/key-provider.cpp:138,1
    - Dst: size
      Src: /src/rnp/src/lib/key-provider.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 1
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: rnp::KeyIDSearch::value
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached:
    - bin_to_hex
    - data
    - size
    linkageType: ''
    returnType: std::string
    signature: std::string KeyIDSearch::value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/lib/key-provider.cpp:144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: rnp::KeyIDSearch::hidden
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
    linkageType: ''
    returnType: bool
    signature: bool KeyIDSearch::hidden() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - keyid
    argTypes:
    - pgp::KeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: rnp::KeyIDSearch::KeyIDSearch
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyIDSearch::KeyIDSearch(const pgp::KeyID &keyid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key::fp
      Src: /src/rnp/src/lib/key-provider.cpp:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: rnp::KeyFingerprintSearch::matches
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached:
    - Key::fp
    linkageType: ''
    returnType: bool
    signature: bool KeyFingerprintSearch::matches(const Key &key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: rnp::KeyFingerprintSearch::name
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string KeyFingerprintSearch::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bin_to_hex
      Src: /src/rnp/src/lib/key-provider.cpp:168,1
    - Dst: data
      Src: /src/rnp/src/lib/key-provider.cpp:168,1
    - Dst: size
      Src: /src/rnp/src/lib/key-provider.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 1
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: rnp::KeyFingerprintSearch::value
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached:
    - bin_to_hex
    - data
    - size
    linkageType: ''
    returnType: std::string
    signature: std::string KeyFingerprintSearch::value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fp
    argTypes:
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: rnp::KeyFingerprintSearch::KeyFingerprintSearch
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyFingerprintSearch::KeyFingerprintSearch(const pgp::Fingerprint
      &fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: '&

      KeyFingerprintSearch::get_fp() const'
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp::Fingerprint
    signature: 'pgp::Fingerprint &

      KeyFingerprintSearch::get_fp() const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key::grip
      Src: /src/rnp/src/lib/key-provider.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: rnp::KeyGripSearch::matches
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached:
    - Key::grip
    linkageType: ''
    returnType: bool
    signature: bool KeyGripSearch::matches(const Key &key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 189
    functionDepth: 0
    functionLinenumber: 189
    functionLinenumberEnd: 193
    functionName: rnp::KeyGripSearch::name
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string KeyGripSearch::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: bin_to_hex
      Src: /src/rnp/src/lib/key-provider.cpp:198,1
    - Dst: data
      Src: /src/rnp/src/lib/key-provider.cpp:198,1
    - Dst: size
      Src: /src/rnp/src/lib/key-provider.cpp:198,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 199
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 199
    functionName: rnp::KeyGripSearch::value
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached:
    - bin_to_hex
    - data
    - size
    linkageType: ''
    returnType: std::string
    signature: std::string KeyGripSearch::value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - grip
    argTypes:
    - pgp::KeyGrip
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: rnp::KeyGripSearch::KeyGripSearch
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyGripSearch::KeyGripSearch(const pgp::KeyGrip &grip)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key::has_uid
      Src: /src/rnp/src/lib/key-provider.cpp:210,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 211
    functionName: rnp::KeyUIDSearch::matches
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached:
    - Key::has_uid
    linkageType: ''
    returnType: bool
    signature: bool KeyUIDSearch::matches(const Key &key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: rnp::KeyUIDSearch::name
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string KeyUIDSearch::name() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 223
    functionName: rnp::KeyUIDSearch::value
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string KeyUIDSearch::value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uid
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: rnp::KeyUIDSearch::KeyUIDSearch
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyUIDSearch::KeyUIDSearch(const std::string &uid)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: callback
      Src: /src/rnp/src/lib/key-provider.cpp:239,1
    - Dst: KeySearch::matches
      Src: /src/rnp/src/lib/key-provider.cpp:243,1
    - Dst: Key*::is_secret
      Src: /src/rnp/src/lib/key-provider.cpp:243,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 3
    argNames:
    - search
    - op
    - secret
    argTypes:
    - KeySearch
    - pgp_op_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 247
    functionName: rnp::KeyProvider::request_key
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached:
    - KeySearch::matches
    - Key*::is_secret
    - callback
    linkageType: ''
    returnType: Key
    signature: 'Key *

      KeyProvider::request_key(const KeySearch &search, pgp_op_t op, bool secret)
      const'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_request_ctx_t*::search::matches
      Src: /src/rnp/src/lib/key-provider.cpp:255,1
    - Dst: is_secret
      Src: /src/rnp/src/lib/key-provider.cpp:255,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - userdata
    argTypes:
    - pgp_key_request_ctx_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 260
    functionName: rnp_key_provider_key_ptr_list
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached:
    - is_secret
    - pgp_key_request_ctx_t*::search::matches
    linkageType: ''
    returnType: rnp::Key
    signature: 'rnp::Key *

      rnp_key_provider_key_ptr_list(const pgp_key_request_ctx_t *ctx, void *userdata)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: auto::callback
      Src: /src/rnp/src/lib/key-provider.cpp:270,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - userdata
    argTypes:
    - pgp_key_request_ctx_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 275
    functionName: rnp_key_provider_chained
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached:
    - auto::callback
    linkageType: ''
    returnType: rnp::Key
    signature: 'rnp::Key *

      rnp_key_provider_chained(const pgp_key_request_ctx_t *ctx, void *userdata)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: auto::search
      Src: /src/rnp/src/lib/key-provider.cpp:282,1
    - Dst: auto::search
      Src: /src/rnp/src/lib/key-provider.cpp:282,1
    - Dst: rnp::Key*::is_secret
      Src: /src/rnp/src/lib/key-provider.cpp:283,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 2
    argNames:
    - ctx
    - userdata
    argTypes:
    - pgp_key_request_ctx_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 288
    functionName: rnp_key_provider_store
    functionSourceFile: /src/rnp/src/lib/key-provider.cpp
    functionUses: 0
    functionsReached:
    - auto::search
    - rnp::Key*::is_secret
    linkageType: ''
    returnType: rnp::Key
    signature: 'rnp::Key *

      rnp_key_provider_store(const pgp_key_request_ctx_t *ctx, void *userdata)'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - pair
    - id
    - notfound
    argTypes:
    - id_str_pair[]
    - int
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 40
    functionName: id_str_pair::lookup
    functionSourceFile: /src/rnp/src/lib/utils.cpp
    functionUses: 18
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      id_str_pair::lookup(const id_str_pair pair[], int id, const char *notfound)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/lib/utils.cpp:46,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - pair
    - str
    - notfound
    argTypes:
    - id_str_pair[]
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: id_str_pair::lookup
    functionSourceFile: /src/rnp/src/lib/utils.cpp
    functionUses: 18
    functionsReached:
    - rnp::str_case_eq
    linkageType: ''
    returnType: int
    signature: int id_str_pair::lookup(const id_str_pair pair[], const char *str,
      int notfound)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/rnp/src/lib/utils.cpp:58,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/utils.cpp:58,1
    - Dst: memcmp
      Src: /src/rnp/src/lib/utils.cpp:59,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/utils.cpp:59,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/utils.cpp:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - pair
    - bytes
    - notfound
    argTypes:
    - id_str_pair[]
    - std::vector<uint8_t>
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 65
    functionName: id_str_pair::lookup
    functionSourceFile: /src/rnp/src/lib/utils.cpp
    functionUses: 18
    functionsReached:
    - std::vector<uint8_t>::size
    - std::vector<uint8_t>::data
    - memcmp
    - strlen
    linkageType: ''
    returnType: int
    signature: int id_str_pair::lookup(const id_str_pair pair[], const std::vector<uint8_t>
      &bytes, int notfound)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/generate-key.cpp:55,1
    - Dst: pgp_key_t*::type
      Src: /src/rnp/src/lib/generate-key.cpp:55,1
    - Dst: assert
      Src: /src/rnp/src/lib/generate-key.cpp:57,1
    - Dst: pgp_key_t*::is_primary
      Src: /src/rnp/src/lib/generate-key.cpp:57,1
    - Dst: assert
      Src: /src/rnp/src/lib/generate-key.cpp:59,1
    - Dst: pgp_key_t*::is_public
      Src: /src/rnp/src/lib/generate-key.cpp:59,1
    - Dst: assert
      Src: /src/rnp/src/lib/generate-key.cpp:61,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/lib/generate-key.cpp:64,1
    - Dst: g10_write_seckey
      Src: /src/rnp/src/lib/generate-key.cpp:70,1
    - Dst: rnp::MemoryDest::dst
      Src: /src/rnp/src/lib/generate-key.cpp:70,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/generate-key.cpp:71,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/generate-key.cpp:78,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/generate-key.cpp:81,1
    - Dst: rnp::MemoryDest::memory
      Src: /src/rnp/src/lib/generate-key.cpp:83,1
    - Dst: rnp::MemoryDest::writeb
      Src: /src/rnp/src/lib/generate-key.cpp:83,1
    - Dst: std::unique_ptr::get
      Src: /src/rnp/src/lib/generate-key.cpp:85,1
    - Dst: rnp::MemorySource::src
      Src: /src/rnp/src/lib/generate-key.cpp:85,1
    - Dst: std::unique_ptr::get
      Src: /src/rnp/src/lib/generate-key.cpp:88,1
    - Dst: assert
      Src: /src/rnp/src/lib/generate-key.cpp:92,1
    - Dst: pgp_key_t*::is_secret
      Src: /src/rnp/src/lib/generate-key.cpp:92,1
    - Dst: std::unique_ptr::keys::front
      Src: /src/rnp/src/lib/generate-key.cpp:92,1
    - Dst: pgp_key_t
      Src: /src/rnp/src/lib/generate-key.cpp:93,1
    - Dst: std::unique_ptr::keys::front
      Src: /src/rnp/src/lib/generate-key.cpp:93,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - dst
    - newkey
    - primary_key
    - pubkey
    - ctx
    argTypes:
    - pgp_key_t*
    - pgp_key_pkt_t*
    - pgp_key_t*
    - pgp_key_t*
    - rnp::SecurityContext
    assertStmts:
    - condition: (!pubkey || pubkey->is_public())
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/rnp/src/lib/generate-key.cpp
    - condition: (pubkey)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/rnp/src/lib/generate-key.cpp
    - condition: (!primary_key || (primary_key->is_secret() == key_store->keys.front().is_secret()))
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/rnp/src/lib/generate-key.cpp
    - condition: (dst->type() == 0)
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/rnp/src/lib/generate-key.cpp
    - condition: (!primary_key || primary_key->is_primary())
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/rnp/src/lib/generate-key.cpp
    constantsTouched: []
    func_position:
      end: 95
      start: 47
    functionDepth: 4
    functionLinenumber: 47
    functionLinenumberEnd: 95
    functionName: load_generated_g10_key
    functionSourceFile: /src/rnp/src/lib/generate-key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - std::unique_ptr::keys::front
    - pgp_key_t*::type
    - pgp_key_t*::is_primary
    - pgp_key_t*::is_secret
    - rnp::MemoryDest::memory
    - pgp_key_t
    - assert
    - pgp_key_t*::is_public
    - rnp::MemoryDest::writeb
    - rnp::MemorySource::src
    - rnp::KeyStore::KeyStore
    - rnp::MemoryDest::dst
    - std::unique_ptr::get
    - g10_write_seckey
    - std::vector::push_back
    linkageType: ''
    returnType: bool
    signature: "bool load_generated_g10_key(pgp_key_t *           dst,\n                       pgp_key_pkt_t
      *       newkey,\n                       pgp_key_t *           primary_key,\n
      \                      pgp_key_t *           pubkey,\n                       rnp::SecurityContext
      &ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/lib/generate-key.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 97
    functionDepth: 1
    functionLinenumber: 97
    functionLinenumberEnd: 102
    functionName: pk_alg_default_flags
    functionSourceFile: /src/rnp/src/lib/generate-key.cpp
    functionUses: 0
    functionsReached:
    - pgp_pk_alg_capabilities
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t pk_alg_default_flags(pgp_pubkey_alg_t alg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ecdsa_get_min_hash
      Src: /src/rnp/src/lib/generate-key.cpp:116,1
    - Dst: dsa_get_min_hash
      Src: /src/rnp/src/lib/generate-key.cpp:117,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/generate-key.cpp:119,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/generate-key.cpp:119,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - crypto
    argTypes:
    - rnp_keygen_crypto_params_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: adjust_hash_alg
    functionSourceFile: /src/rnp/src/lib/generate-key.cpp
    functionUses: 0
    functionsReached:
    - dsa_get_min_hash
    - rnp::Hash::size
    - ecdsa_get_min_hash
    linkageType: ''
    returnType: void
    signature: void adjust_hash_alg(rnp_keygen_crypto_params_t &crypto)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: dsa_choose_qsize_by_psize
      Src: /src/rnp/src/lib/generate-key.cpp:167,1
    - Dst: adjust_hash_alg
      Src: /src/rnp/src/lib/generate-key.cpp:175,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 43
    argCount: 1
    argNames:
    - crypto
    argTypes:
    - rnp_keygen_crypto_params_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 176
    functionName: keygen_merge_crypto_defaults
    functionSourceFile: /src/rnp/src/lib/generate-key.cpp
    functionUses: 0
    functionsReached:
    - adjust_hash_alg
    - dsa_choose_qsize_by_psize
    linkageType: ''
    returnType: void
    signature: void keygen_merge_crypto_defaults(rnp_keygen_crypto_params_t &crypto)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/lib/generate-key.cpp:185,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/generate-key.cpp:186,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/generate-key.cpp:193,1
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/lib/generate-key.cpp:195,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/generate-key.cpp:197,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/generate-key.cpp:202,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - desc
    argTypes:
    - rnp_keygen_primary_desc_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 206
    functionName: validate_keygen_primary
    functionSourceFile: /src/rnp/src/lib/generate-key.cpp
    functionUses: 0
    functionsReached:
    - pgp_pk_alg_capabilities
    - RNP_LOG
    linkageType: ''
    returnType: bool
    signature: bool validate_keygen_primary(const rnp_keygen_primary_desc_t &desc)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/generate-key.cpp:220,1
    - Dst: pgp_kyber_ecdh_composite_public_key_t::encoded_size
      Src: /src/rnp/src/lib/generate-key.cpp:255,1
    - Dst: pgp_dilithium_exdsa_composite_public_key_t::encoded_size
      Src: /src/rnp/src/lib/generate-key.cpp:269,1
    - Dst: sphincsplus_pubkey_size
      Src: /src/rnp/src/lib/generate-key.cpp:275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 62
    argCount: 1
    argNames:
    - crypto
    argTypes:
    - rnp_keygen_crypto_params_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 208
    functionDepth: 1
    functionLinenumber: 208
    functionLinenumberEnd: 280
    functionName: get_numbits
    functionSourceFile: /src/rnp/src/lib/generate-key.cpp
    functionUses: 0
    functionsReached:
    - sphincsplus_pubkey_size
    - pgp_dilithium_exdsa_composite_public_key_t::encoded_size
    - pgp_kyber_ecdh_composite_public_key_t::encoded_size
    - pgp::ec::Curve::get
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t get_numbits(const rnp_keygen_crypto_params_t *crypto)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp_user_prefs_t::symm_algs::empty
      Src: /src/rnp/src/lib/generate-key.cpp:285,1
    - Dst: pgp_user_prefs_t::set_symm_algs
      Src: /src/rnp/src/lib/generate-key.cpp:286,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/generate-key.cpp:287,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/lib/generate-key.cpp:288,1
    - Dst: pgp_user_prefs_t::hash_algs::empty
      Src: /src/rnp/src/lib/generate-key.cpp:290,1
    - Dst: pgp_user_prefs_t::set_hash_algs
      Src: /src/rnp/src/lib/generate-key.cpp:291,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/generate-key.cpp:291,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/lib/generate-key.cpp:292,1
    - Dst: pgp_user_prefs_t::z_algs::empty
      Src: /src/rnp/src/lib/generate-key.cpp:294,1
    - Dst: pgp_user_prefs_t::set_z_algs
      Src: /src/rnp/src/lib/generate-key.cpp:295,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/generate-key.cpp:295,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/lib/generate-key.cpp:296,1
    - Dst: pgp_user_prefs_t::aead_prefs::empty
      Src: /src/rnp/src/lib/generate-key.cpp:299,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/generate-key.cpp:303,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/generate-key.cpp:304,1
    - Dst: pgp_user_prefs_t::set_aead_prefs
      Src: /src/rnp/src/lib/generate-key.cpp:307,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - prefs
    argTypes:
    - pgp_user_prefs_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 282
    functionDepth: 1
    functionLinenumber: 282
    functionLinenumberEnd: 310
    functionName: set_default_user_prefs
    functionSourceFile: /src/rnp/src/lib/generate-key.cpp
    functionUses: 0
    functionsReached:
    - pgp_user_prefs_t::set_z_algs
    - std::vector<uint8_t>
    - pgp_user_prefs_t::hash_algs::empty
    - pgp_user_prefs_t::set_symm_algs
    - std::vector::push_back
    - pgp_user_prefs_t::set_aead_prefs
    - ARRAY_SIZE
    - pgp_user_prefs_t::aead_prefs::empty
    - pgp_user_prefs_t::set_hash_algs
    - pgp_user_prefs_t::symm_algs::empty
    - pgp_user_prefs_t::z_algs::empty
    linkageType: ''
    returnType: void
    signature: void set_default_user_prefs(pgp_user_prefs_t &prefs)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: keygen_merge_crypto_defaults
      Src: /src/rnp/src/lib/generate-key.cpp:315,1
    - Dst: set_default_user_prefs
      Src: /src/rnp/src/lib/generate-key.cpp:316,1
    - Dst: pk_alg_default_flags
      Src: /src/rnp/src/lib/generate-key.cpp:320,1
    - Dst: rnp_keygen_primary_desc_t::cert::userid::empty
      Src: /src/rnp/src/lib/generate-key.cpp:322,1
    - Dst: snprintf
      Src: /src/rnp/src/lib/generate-key.cpp:324,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/generate-key.cpp:327,1
    - Dst: get_numbits
      Src: /src/rnp/src/lib/generate-key.cpp:328,1
    - Dst: getenv_logname
      Src: /src/rnp/src/lib/generate-key.cpp:329,1
    - Dst: rnp_keygen_primary_desc_t::cert::prefs::add_hash_alg
      Src: /src/rnp/src/lib/generate-key.cpp:355,1
    - Dst: rnp_keygen_primary_desc_t::cert::prefs::add_hash_alg
      Src: /src/rnp/src/lib/generate-key.cpp:356,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 34
    argCount: 1
    argNames:
    - desc
    argTypes:
    - rnp_keygen_primary_desc_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 312
    functionDepth: 2
    functionLinenumber: 312
    functionLinenumberEnd: 361
    functionName: keygen_primary_merge_defaults
    functionSourceFile: /src/rnp/src/lib/generate-key.cpp
    functionUses: 0
    functionsReached:
    - pk_alg_default_flags
    - rnp_keygen_primary_desc_t::cert::userid::empty
    - get_numbits
    - id_str_pair::lookup
    - set_default_user_prefs
    - getenv_logname
    - keygen_merge_crypto_defaults
    - rnp_keygen_primary_desc_t::cert::prefs::add_hash_alg
    - snprintf
    linkageType: ''
    returnType: void
    signature: void keygen_primary_merge_defaults(rnp_keygen_primary_desc_t &desc)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/rnp/src/lib/generate-key.cpp:371,1
    - Dst: type
      Src: /src/rnp/src/lib/generate-key.cpp:371,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/generate-key.cpp:372,1
    - Dst: keygen_primary_merge_defaults
      Src: /src/rnp/src/lib/generate-key.cpp:379,1
    - Dst: validate_keygen_primary
      Src: /src/rnp/src/lib/generate-key.cpp:382,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/lib/generate-key.cpp:387,1
    - Dst: pgp_generate_seckey
      Src: /src/rnp/src/lib/generate-key.cpp:388,1
    - Dst: pgp_key_t::version
      Src: /src/rnp/src/lib/generate-key.cpp:396,1
    - Dst: pgp_key_t::add_direct_sig
      Src: /src/rnp/src/lib/generate-key.cpp:397,1
    - Dst: pgp_key_t::add_uid_cert
      Src: /src/rnp/src/lib/generate-key.cpp:400,1
    - Dst: std::move
      Src: /src/rnp/src/lib/generate-key.cpp:405,1
    - Dst: std::move
      Src: /src/rnp/src/lib/generate-key.cpp:406,1
    - Dst: std::move
      Src: /src/rnp/src/lib/generate-key.cpp:409,1
    - Dst: load_generated_g10_key
      Src: /src/rnp/src/lib/generate-key.cpp:410,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/generate-key.cpp:412,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/generate-key.cpp:417,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/generate-key.cpp:421,1
    - Dst: what
      Src: /src/rnp/src/lib/generate-key.cpp:421,1
    - Dst: mark_valid
      Src: /src/rnp/src/lib/generate-key.cpp:426,1
    - Dst: mark_valid
      Src: /src/rnp/src/lib/generate-key.cpp:427,1
    - Dst: refresh_data
      Src: /src/rnp/src/lib/generate-key.cpp:429,1
    - Dst: refresh_data
      Src: /src/rnp/src/lib/generate-key.cpp:430,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 5
    argNames:
    - desc
    - merge_defaults
    - '                primary_sec'
    - '                primary_pub'
    - secformat
    argTypes:
    - rnp_keygen_primary_desc_t
    - bool
    - pgp_key_t
    - pgp_key_t
    - pgp_key_store_format_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 363
    functionDepth: 5
    functionLinenumber: 363
    functionLinenumberEnd: 431
    functionName: pgp_generate_primary_key
    functionSourceFile: /src/rnp/src/lib/generate-key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - refresh_data
    - mark_valid
    - what
    - pgp_key_t::add_direct_sig
    - pgp_key_t::add_uid_cert
    - load_generated_g10_key
    - pgp_key_t::version
    - pgp_key_pkt_t::pgp_key_pkt_t
    - validate_keygen_primary
    - pgp_generate_seckey
    - keygen_primary_merge_defaults
    - std::move
    - type
    linkageType: ''
    returnType: bool
    signature: "bool pgp_generate_primary_key(rnp_keygen_primary_desc_t &desc,\n                         bool
      \                      merge_defaults,\n                         pgp_key_t &
      \               primary_sec,\n                         pgp_key_t &                primary_pub,\n
      \                        pgp_key_store_format_t     secformat)"
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/generate-key.cpp:437,1
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/lib/generate-key.cpp:439,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/generate-key.cpp:441,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/generate-key.cpp:478,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 47
    argCount: 1
    argNames:
    - desc
    argTypes:
    - rnp_keygen_subkey_desc_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 433
    functionDepth: 1
    functionLinenumber: 433
    functionLinenumberEnd: 486
    functionName: validate_keygen_subkey
    functionSourceFile: /src/rnp/src/lib/generate-key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_pk_alg_capabilities
    linkageType: ''
    returnType: bool
    signature: bool validate_keygen_subkey(rnp_keygen_subkey_desc_t &desc)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: keygen_merge_crypto_defaults
      Src: /src/rnp/src/lib/generate-key.cpp:491,1
    - Dst: pk_alg_default_flags
      Src: /src/rnp/src/lib/generate-key.cpp:494,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - desc
    argTypes:
    - rnp_keygen_subkey_desc_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 496
      start: 488
    functionDepth: 2
    functionLinenumber: 488
    functionLinenumberEnd: 496
    functionName: keygen_subkey_merge_defaults
    functionSourceFile: /src/rnp/src/lib/generate-key.cpp
    functionUses: 0
    functionsReached:
    - pk_alg_default_flags
    - keygen_merge_crypto_defaults
    linkageType: ''
    returnType: void
    signature: void keygen_subkey_merge_defaults(rnp_keygen_subkey_desc_t &desc)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: is_primary
      Src: /src/rnp/src/lib/generate-key.cpp:509,1
    - Dst: is_primary
      Src: /src/rnp/src/lib/generate-key.cpp:509,1
    - Dst: is_secret
      Src: /src/rnp/src/lib/generate-key.cpp:509,1
    - Dst: is_public
      Src: /src/rnp/src/lib/generate-key.cpp:510,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/generate-key.cpp:511,1
    - Dst: type
      Src: /src/rnp/src/lib/generate-key.cpp:514,1
    - Dst: type
      Src: /src/rnp/src/lib/generate-key.cpp:514,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/generate-key.cpp:515,1
    - Dst: keygen_subkey_merge_defaults
      Src: /src/rnp/src/lib/generate-key.cpp:521,1
    - Dst: version
      Src: /src/rnp/src/lib/generate-key.cpp:524,1
    - Dst: validate_keygen_subkey
      Src: /src/rnp/src/lib/generate-key.cpp:529,1
    - Dst: version
      Src: /src/rnp/src/lib/generate-key.cpp:535,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/generate-key.cpp:536,1
    - Dst: encrypted
      Src: /src/rnp/src/lib/generate-key.cpp:544,1
    - Dst: unlock
      Src: /src/rnp/src/lib/generate-key.cpp:545,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/generate-key.cpp:546,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/lib/generate-key.cpp:550,1
    - Dst: pgp_generate_seckey
      Src: /src/rnp/src/lib/generate-key.cpp:551,1
    - Dst: pgp_key_pkt_t
      Src: /src/rnp/src/lib/generate-key.cpp:554,1
    - Dst: add_sub_binding
      Src: /src/rnp/src/lib/generate-key.cpp:558,1
    - Dst: std::move
      Src: /src/rnp/src/lib/generate-key.cpp:561,1
    - Dst: std::move
      Src: /src/rnp/src/lib/generate-key.cpp:565,1
    - Dst: load_generated_g10_key
      Src: /src/rnp/src/lib/generate-key.cpp:568,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/generate-key.cpp:570,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/generate-key.cpp:575,1
    - Dst: mark_valid
      Src: /src/rnp/src/lib/generate-key.cpp:579,1
    - Dst: mark_valid
      Src: /src/rnp/src/lib/generate-key.cpp:580,1
    - Dst: refresh_data
      Src: /src/rnp/src/lib/generate-key.cpp:581,1
    - Dst: refresh_data
      Src: /src/rnp/src/lib/generate-key.cpp:582,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/generate-key.cpp:584,1
    - Dst: what
      Src: /src/rnp/src/lib/generate-key.cpp:584,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 52
    argCount: 8
    argNames:
    - '     desc'
    - merge_defaults
    - '                    primary_sec'
    - '                    primary_pub'
    - '                    subkey_sec'
    - '                    subkey_pub'
    - password_provider
    - secformat
    argTypes:
    - rnp_keygen_subkey_desc_t
    - bool
    - pgp_key_t
    - pgp_key_t
    - pgp_key_t
    - pgp_key_t
    - pgp_password_provider_t
    - pgp_key_store_format_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 587
      start: 498
    functionDepth: 5
    functionLinenumber: 498
    functionLinenumberEnd: 587
    functionName: pgp_generate_subkey
    functionSourceFile: /src/rnp/src/lib/generate-key.cpp
    functionUses: 0
    functionsReached:
    - refresh_data
    - mark_valid
    - keygen_subkey_merge_defaults
    - version
    - pgp_generate_seckey
    - std::move
    - encrypted
    - load_generated_g10_key
    - is_public
    - add_sub_binding
    - pgp_key_pkt_t
    - unlock
    - type
    - RNP_LOG
    - pgp_key_pkt_t::pgp_key_pkt_t
    - is_secret
    - validate_keygen_subkey
    - what
    - is_primary
    linkageType: ''
    returnType: bool
    signature: "bool pgp_generate_subkey(rnp_keygen_subkey_desc_t &     desc,\n                    bool
      \                          merge_defaults,\n                    pgp_key_t &
      \                   primary_sec,\n                    pgp_key_t &                    primary_pub,\n
      \                   pgp_key_t &                    subkey_sec,\n                    pgp_key_t
      &                    subkey_pub,\n                    const pgp_password_provider_t
      &password_provider,\n                    pgp_key_store_format_t         secformat)"
  - 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: pgp::Fingerprint::Fingerprint
    functionSourceFile: /src/rnp/src/lib/fingerprint.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Fingerprint::Fingerprint()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/fingerprint.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: pgp::Fingerprint::Fingerprint
    functionSourceFile: /src/rnp/src/lib/fingerprint.cpp
    functionUses: 7
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void Fingerprint::Fingerprint(const uint8_t *data, size_t size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: is_rsa_key_alg
      Src: /src/rnp/src/lib/fingerprint.cpp:53,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/fingerprint.cpp:54,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/fingerprint.cpp:55,1
    - Dst: dynamic_cast<const pgp::RSAKeyMaterial &>
      Src: /src/rnp/src/lib/fingerprint.cpp:57,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/lib/fingerprint.cpp:58,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/fingerprint.cpp:59,1
    - Dst: auto::n
      Src: /src/rnp/src/lib/fingerprint.cpp:59,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/fingerprint.cpp:60,1
    - Dst: auto::e
      Src: /src/rnp/src/lib/fingerprint.cpp:60,1
    - Dst: auto::finish
      Src: /src/rnp/src/lib/fingerprint.cpp:61,1
    - Dst: auto::n
      Src: /src/rnp/src/lib/fingerprint.cpp:63,1
    - Dst: std::min
      Src: /src/rnp/src/lib/fingerprint.cpp:64,1
    - Dst: auto::n
      Src: /src/rnp/src/lib/fingerprint.cpp:64,1
    - Dst: pgp::Fingerprint::size
      Src: /src/rnp/src/lib/fingerprint.cpp:64,1
    - Dst: std::memcpy
      Src: /src/rnp/src/lib/fingerprint.cpp:65,1
    - Dst: pgp::Fingerprint::data
      Src: /src/rnp/src/lib/fingerprint.cpp:65,1
    - Dst: auto::n
      Src: /src/rnp/src/lib/fingerprint.cpp:65,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/lib/fingerprint.cpp:75,1
    - Dst: signature_hash_key
      Src: /src/rnp/src/lib/fingerprint.cpp:76,1
    - Dst: auto::finish
      Src: /src/rnp/src/lib/fingerprint.cpp:77,1
    - Dst: assert
      Src: /src/rnp/src/lib/fingerprint.cpp:80,1
    - Dst: pgp::Fingerprint::size
      Src: /src/rnp/src/lib/fingerprint.cpp:80,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/fingerprint.cpp:82,1
    - Dst: pgp::Fingerprint::data
      Src: /src/rnp/src/lib/fingerprint.cpp:82,1
    - Dst: pgp::Fingerprint::data
      Src: /src/rnp/src/lib/fingerprint.cpp:82,1
    - Dst: pgp::Fingerprint::size
      Src: /src/rnp/src/lib/fingerprint.cpp:82,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/fingerprint.cpp:84,1
    - Dst: pgp::Fingerprint::data
      Src: /src/rnp/src/lib/fingerprint.cpp:84,1
    - Dst: pgp::Fingerprint::data
      Src: /src/rnp/src/lib/fingerprint.cpp:84,1
    - Dst: pgp::Fingerprint::size
      Src: /src/rnp/src/lib/fingerprint.cpp:84,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/fingerprint.cpp:89,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/fingerprint.cpp:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - key
    argTypes:
    - pgp_key_pkt_t
    assertStmts:
    - condition: (fp_.size() == PGP_FINGERPRINT_V4_SIZE)
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/rnp/src/lib/fingerprint.cpp
    constantsTouched: []
    func_position:
      end: 92
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 92
    functionName: pgp::Fingerprint::Fingerprint
    functionSourceFile: /src/rnp/src/lib/fingerprint.cpp
    functionUses: 7
    functionsReached:
    - RNP_LOG
    - pgp::Fingerprint::size
    - memcpy
    - dynamic_cast<const pgp::RSAKeyMaterial &>
    - signature_hash_key
    - auto::e
    - is_rsa_key_alg
    - auto::n
    - std::memcpy
    - std::min
    - assert
    - pgp::Fingerprint::data
    - rnp::rnp_exception::rnp_exception
    - rnp::Hash::create
    - auto::add
    - auto::finish
    linkageType: ''
    returnType: void
    signature: void Fingerprint::Fingerprint(const pgp_key_pkt_t &key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: Fingerprint::operator==(const Fingerprint &src) const
    functionSourceFile: /src/rnp/src/lib/fingerprint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Fingerprint::operator==(const Fingerprint &src) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: Fingerprint::operator!=(const Fingerprint &src) const
    functionSourceFile: /src/rnp/src/lib/fingerprint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Fingerprint::operator!=(const Fingerprint &src) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 115
    functionName: pgp::Fingerprint::size_valid
    functionSourceFile: /src/rnp/src/lib/fingerprint.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Fingerprint::size_valid(size_t size) noexcept
  - 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: '&

      Fingerprint::keyid() const noexcept'
    functionSourceFile: /src/rnp/src/lib/fingerprint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeyID
    signature: 'KeyID &

      Fingerprint::keyid() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: '&

      Fingerprint::vec() const noexcept'
    functionSourceFile: /src/rnp/src/lib/fingerprint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      Fingerprint::vec() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::Fingerprint::data
      Src: /src/rnp/src/lib/fingerprint.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: pgp::Fingerprint::data
    functionSourceFile: /src/rnp/src/lib/fingerprint.cpp
    functionUses: 5
    functionsReached:
    - pgp::Fingerprint::data
    linkageType: ''
    returnType: uint8_t
    signature: 'uint8_t *

      Fingerprint::data() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::Fingerprint::size
      Src: /src/rnp/src/lib/fingerprint.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: pgp::Fingerprint::size
    functionSourceFile: /src/rnp/src/lib/fingerprint.cpp
    functionUses: 5
    functionsReached:
    - pgp::Fingerprint::size
    linkageType: ''
    returnType: size_t
    signature: size_t Fingerprint::size() const noexcept
  - 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: pgp::Fingerprint::Fingerprint
    functionSourceFile: /src/rnp/src/lib/fingerprint.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Fingerprint::Fingerprint()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/fingerprint.cpp:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: pgp::Fingerprint::Fingerprint
    functionSourceFile: /src/rnp/src/lib/fingerprint.cpp
    functionUses: 7
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void Fingerprint::Fingerprint(const uint8_t *data, size_t size)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: is_rsa_key_alg
      Src: /src/rnp/src/lib/fingerprint.cpp:53,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/fingerprint.cpp:54,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/fingerprint.cpp:55,1
    - Dst: dynamic_cast<const pgp::RSAKeyMaterial &>
      Src: /src/rnp/src/lib/fingerprint.cpp:57,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/lib/fingerprint.cpp:58,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/fingerprint.cpp:59,1
    - Dst: auto::n
      Src: /src/rnp/src/lib/fingerprint.cpp:59,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/fingerprint.cpp:60,1
    - Dst: auto::e
      Src: /src/rnp/src/lib/fingerprint.cpp:60,1
    - Dst: auto::finish
      Src: /src/rnp/src/lib/fingerprint.cpp:61,1
    - Dst: auto::n
      Src: /src/rnp/src/lib/fingerprint.cpp:63,1
    - Dst: std::min
      Src: /src/rnp/src/lib/fingerprint.cpp:64,1
    - Dst: auto::n
      Src: /src/rnp/src/lib/fingerprint.cpp:64,1
    - Dst: pgp::Fingerprint::size
      Src: /src/rnp/src/lib/fingerprint.cpp:64,1
    - Dst: std::memcpy
      Src: /src/rnp/src/lib/fingerprint.cpp:65,1
    - Dst: pgp::Fingerprint::data
      Src: /src/rnp/src/lib/fingerprint.cpp:65,1
    - Dst: auto::n
      Src: /src/rnp/src/lib/fingerprint.cpp:65,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/lib/fingerprint.cpp:75,1
    - Dst: signature_hash_key
      Src: /src/rnp/src/lib/fingerprint.cpp:76,1
    - Dst: auto::finish
      Src: /src/rnp/src/lib/fingerprint.cpp:77,1
    - Dst: assert
      Src: /src/rnp/src/lib/fingerprint.cpp:80,1
    - Dst: pgp::Fingerprint::size
      Src: /src/rnp/src/lib/fingerprint.cpp:80,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/fingerprint.cpp:82,1
    - Dst: pgp::Fingerprint::data
      Src: /src/rnp/src/lib/fingerprint.cpp:82,1
    - Dst: pgp::Fingerprint::data
      Src: /src/rnp/src/lib/fingerprint.cpp:82,1
    - Dst: pgp::Fingerprint::size
      Src: /src/rnp/src/lib/fingerprint.cpp:82,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/fingerprint.cpp:84,1
    - Dst: pgp::Fingerprint::data
      Src: /src/rnp/src/lib/fingerprint.cpp:84,1
    - Dst: pgp::Fingerprint::data
      Src: /src/rnp/src/lib/fingerprint.cpp:84,1
    - Dst: pgp::Fingerprint::size
      Src: /src/rnp/src/lib/fingerprint.cpp:84,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/fingerprint.cpp:89,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/fingerprint.cpp:90,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 31
    argCount: 1
    argNames:
    - key
    argTypes:
    - pgp_key_pkt_t
    assertStmts:
    - condition: (fp_.size() == PGP_FINGERPRINT_V4_SIZE)
      pos:
        line_end: 79
        line_start: 79
        source_file: /src/rnp/src/lib/fingerprint.cpp
    constantsTouched: []
    func_position:
      end: 92
      start: 47
    functionDepth: 2
    functionLinenumber: 47
    functionLinenumberEnd: 92
    functionName: pgp::Fingerprint::Fingerprint
    functionSourceFile: /src/rnp/src/lib/fingerprint.cpp
    functionUses: 7
    functionsReached:
    - RNP_LOG
    - pgp::Fingerprint::size
    - memcpy
    - dynamic_cast<const pgp::RSAKeyMaterial &>
    - signature_hash_key
    - auto::e
    - is_rsa_key_alg
    - auto::n
    - std::memcpy
    - std::min
    - assert
    - pgp::Fingerprint::data
    - rnp::rnp_exception::rnp_exception
    - rnp::Hash::create
    - auto::add
    - auto::finish
    linkageType: ''
    returnType: void
    signature: void Fingerprint::Fingerprint(const pgp_key_pkt_t &key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 98
    functionName: Fingerprint::operator==(const Fingerprint &src) const
    functionSourceFile: /src/rnp/src/lib/fingerprint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Fingerprint::operator==(const Fingerprint &src) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: Fingerprint::operator!=(const Fingerprint &src) const
    functionSourceFile: /src/rnp/src/lib/fingerprint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Fingerprint::operator!=(const Fingerprint &src) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 115
    functionName: pgp::Fingerprint::size_valid
    functionSourceFile: /src/rnp/src/lib/fingerprint.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Fingerprint::size_valid(size_t size) noexcept
  - 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: '&

      Fingerprint::keyid() const noexcept'
    functionSourceFile: /src/rnp/src/lib/fingerprint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeyID
    signature: 'KeyID &

      Fingerprint::keyid() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: '&

      Fingerprint::vec() const noexcept'
    functionSourceFile: /src/rnp/src/lib/fingerprint.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      Fingerprint::vec() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::Fingerprint::data
      Src: /src/rnp/src/lib/fingerprint.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: pgp::Fingerprint::data
    functionSourceFile: /src/rnp/src/lib/fingerprint.cpp
    functionUses: 7
    functionsReached:
    - pgp::Fingerprint::data
    linkageType: ''
    returnType: uint8_t
    signature: 'uint8_t *

      Fingerprint::data() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::Fingerprint::size
      Src: /src/rnp/src/lib/fingerprint.cpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: pgp::Fingerprint::size
    functionSourceFile: /src/rnp/src/lib/fingerprint.cpp
    functionUses: 7
    functionsReached:
    - pgp::Fingerprint::size
    linkageType: ''
    returnType: size_t
    signature: size_t Fingerprint::size() const noexcept
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<EncMaterial>
      Src: /src/rnp/src/lib/enc_material.cpp:39,1
    - Dst: RSAEncMaterial::RSAEncMaterial
      Src: /src/rnp/src/lib/enc_material.cpp:39,1
    - Dst: std::unique_ptr<EncMaterial>
      Src: /src/rnp/src/lib/enc_material.cpp:42,1
    - Dst: EGEncMaterial::EGEncMaterial
      Src: /src/rnp/src/lib/enc_material.cpp:42,1
    - Dst: std::unique_ptr<EncMaterial>
      Src: /src/rnp/src/lib/enc_material.cpp:44,1
    - Dst: SM2EncMaterial::SM2EncMaterial
      Src: /src/rnp/src/lib/enc_material.cpp:44,1
    - Dst: std::unique_ptr<EncMaterial>
      Src: /src/rnp/src/lib/enc_material.cpp:46,1
    - Dst: ECDHEncMaterial::ECDHEncMaterial
      Src: /src/rnp/src/lib/enc_material.cpp:46,1
    - Dst: std::unique_ptr<EncMaterial>
      Src: /src/rnp/src/lib/enc_material.cpp:49,1
    - Dst: X25519EncMaterial::X25519EncMaterial
      Src: /src/rnp/src/lib/enc_material.cpp:49,1
    - Dst: std::unique_ptr<EncMaterial>
      Src: /src/rnp/src/lib/enc_material.cpp:65,1
    - Dst: MlkemEcdhEncMaterial::MlkemEcdhEncMaterial
      Src: /src/rnp/src/lib/enc_material.cpp:65,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 71
    functionName: pgp::EncMaterial::create
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - MlkemEcdhEncMaterial::MlkemEcdhEncMaterial
    - X25519EncMaterial::X25519EncMaterial
    - ECDHEncMaterial::ECDHEncMaterial
    - RSAEncMaterial::RSAEncMaterial
    - SM2EncMaterial::SM2EncMaterial
    - EGEncMaterial::EGEncMaterial
    - std::unique_ptr<EncMaterial>
    linkageType: ''
    returnType: std::unique_ptr<EncMaterial>
    signature: std::unique_ptr<EncMaterial> EncMaterial::create(pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: pgp::RSAEncMaterial::parse
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool RSAEncMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: pgp::RSAEncMaterial::write
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void RSAEncMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:88,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: pgp::EGEncMaterial::parse
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool EGEncMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:94,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: pgp::EGEncMaterial::write
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void EGEncMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: pgp::SM2EncMaterial::parse
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool SM2EncMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: pgp::SM2EncMaterial::write
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void SM2EncMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:115,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:115,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:120,1
    - Dst: m::resize
      Src: /src/rnp/src/lib/enc_material.cpp:123,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:124,1
    - Dst: m::data
      Src: /src/rnp/src/lib/enc_material.cpp:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 128
    functionName: pgp::ECDHEncMaterial::parse
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    - m::resize
    - m::data
    linkageType: ''
    returnType: bool
    signature: bool ECDHEncMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:133,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/lib/enc_material.cpp:134,1
    - Dst: m::size
      Src: /src/rnp/src/lib/enc_material.cpp:134,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: pgp::ECDHEncMaterial::write
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    - pgp_packet_body_t::add_byte
    - m::size
    linkageType: ''
    returnType: void
    signature: void ECDHEncMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: eph_key::resize
      Src: /src/rnp/src/lib/enc_material.cpp:142,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:143,1
    - Dst: eph_key::data
      Src: /src/rnp/src/lib/enc_material.cpp:143,1
    - Dst: eph_key::size
      Src: /src/rnp/src/lib/enc_material.cpp:143,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:144,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:148,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:149,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:155,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:156,1
    - Dst: enc_sess_key::resize
      Src: /src/rnp/src/lib/enc_material.cpp:162,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:163,1
    - Dst: enc_sess_key::data
      Src: /src/rnp/src/lib/enc_material.cpp:163,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 168
    functionName: pgp::X25519EncMaterial::parse
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - eph_key::data
    - enc_sess_key::resize
    - eph_key::resize
    - eph_key::size
    - pgp_packet_body_t::get
    - enc_sess_key::data
    linkageType: ''
    returnType: bool
    signature: bool X25519EncMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:174,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/lib/enc_material.cpp:175,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/enc_material.cpp:175,1
    - Dst: enc_sess_key::size
      Src: /src/rnp/src/lib/enc_material.cpp:175,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/lib/enc_material.cpp:177,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 180
    functionName: pgp::X25519EncMaterial::write
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    - pgp_packet_body_t::add_byte
    - enc_sess_key::size
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void X25519EncMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/enc_material.cpp:185,1
    - Dst: eph_key::resize
      Src: /src/rnp/src/lib/enc_material.cpp:186,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/enc_material.cpp:186,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:187,1
    - Dst: eph_key::data
      Src: /src/rnp/src/lib/enc_material.cpp:187,1
    - Dst: eph_key::size
      Src: /src/rnp/src/lib/enc_material.cpp:187,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:188,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:192,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:193,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:199,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:200,1
    - Dst: enc_sess_key::resize
      Src: /src/rnp/src/lib/enc_material.cpp:206,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:207,1
    - Dst: enc_sess_key::data
      Src: /src/rnp/src/lib/enc_material.cpp:207,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 212
    functionName: pgp::X448EncMaterial::parse
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - eph_key::data
    - enc_sess_key::resize
    - BITS_TO_BYTES
    - eph_key::resize
    - pgp::ec::Curve::get
    - eph_key::size
    - pgp_packet_body_t::get
    - enc_sess_key::data
    linkageType: ''
    returnType: bool
    signature: bool X448EncMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:218,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/lib/enc_material.cpp:219,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/enc_material.cpp:219,1
    - Dst: enc_sess_key::size
      Src: /src/rnp/src/lib/enc_material.cpp:219,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/lib/enc_material.cpp:221,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 224
    functionName: pgp::X448EncMaterial::write
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    - pgp_packet_body_t::add_byte
    - enc_sess_key::size
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void X448EncMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: kyber_ciphertext_size
      Src: /src/rnp/src/lib/enc_material.cpp:234,1
    - Dst: pgp_kyber_ecdh_composite_key_t::pk_alg_to_kyber_id
      Src: /src/rnp/src/lib/enc_material.cpp:234,1
    - Dst: pgp_kyber_ecdh_composite_key_t::ecdh_curve_ephemeral_size
      Src: /src/rnp/src/lib/enc_material.cpp:235,1
    - Dst: pgp_kyber_ecdh_composite_key_t::pk_alg_to_curve_id
      Src: /src/rnp/src/lib/enc_material.cpp:236,1
    - Dst: composite_ciphertext::resize
      Src: /src/rnp/src/lib/enc_material.cpp:237,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:239,1
    - Dst: composite_ciphertext::data
      Src: /src/rnp/src/lib/enc_material.cpp:239,1
    - Dst: composite_ciphertext::size
      Src: /src/rnp/src/lib/enc_material.cpp:239,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:240,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:244,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:245,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:251,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:252,1
    - Dst: wrapped_sesskey::resize
      Src: /src/rnp/src/lib/enc_material.cpp:258,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:259,1
    - Dst: wrapped_sesskey::data
      Src: /src/rnp/src/lib/enc_material.cpp:259,1
    - Dst: wrapped_sesskey::size
      Src: /src/rnp/src/lib/enc_material.cpp:259,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:260,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 264
    functionName: pgp::MlkemEcdhEncMaterial::parse
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - composite_ciphertext::size
    - wrapped_sesskey::size
    - pgp_kyber_ecdh_composite_key_t::pk_alg_to_curve_id
    - wrapped_sesskey::data
    - pgp_kyber_ecdh_composite_key_t::pk_alg_to_kyber_id
    - composite_ciphertext::resize
    - pgp_kyber_ecdh_composite_key_t::ecdh_curve_ephemeral_size
    - composite_ciphertext::data
    - pgp_packet_body_t::get
    - kyber_ciphertext_size
    - wrapped_sesskey::resize
    linkageType: ''
    returnType: bool
    signature: bool MlkemEcdhEncMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:269,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/lib/enc_material.cpp:271,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/enc_material.cpp:271,1
    - Dst: wrapped_sesskey::size
      Src: /src/rnp/src/lib/enc_material.cpp:271,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/lib/enc_material.cpp:273,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 276
    functionName: pgp::MlkemEcdhEncMaterial::write
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    - pgp_packet_body_t::add_byte
    - wrapped_sesskey::size
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void MlkemEcdhEncMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<EncMaterial>
      Src: /src/rnp/src/lib/enc_material.cpp:39,1
    - Dst: RSAEncMaterial::RSAEncMaterial
      Src: /src/rnp/src/lib/enc_material.cpp:39,1
    - Dst: std::unique_ptr<EncMaterial>
      Src: /src/rnp/src/lib/enc_material.cpp:42,1
    - Dst: EGEncMaterial::EGEncMaterial
      Src: /src/rnp/src/lib/enc_material.cpp:42,1
    - Dst: std::unique_ptr<EncMaterial>
      Src: /src/rnp/src/lib/enc_material.cpp:44,1
    - Dst: SM2EncMaterial::SM2EncMaterial
      Src: /src/rnp/src/lib/enc_material.cpp:44,1
    - Dst: std::unique_ptr<EncMaterial>
      Src: /src/rnp/src/lib/enc_material.cpp:46,1
    - Dst: ECDHEncMaterial::ECDHEncMaterial
      Src: /src/rnp/src/lib/enc_material.cpp:46,1
    - Dst: std::unique_ptr<EncMaterial>
      Src: /src/rnp/src/lib/enc_material.cpp:49,1
    - Dst: X25519EncMaterial::X25519EncMaterial
      Src: /src/rnp/src/lib/enc_material.cpp:49,1
    - Dst: std::unique_ptr<EncMaterial>
      Src: /src/rnp/src/lib/enc_material.cpp:65,1
    - Dst: MlkemEcdhEncMaterial::MlkemEcdhEncMaterial
      Src: /src/rnp/src/lib/enc_material.cpp:65,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:68,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 71
    functionName: pgp::EncMaterial::create
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - MlkemEcdhEncMaterial::MlkemEcdhEncMaterial
    - X25519EncMaterial::X25519EncMaterial
    - ECDHEncMaterial::ECDHEncMaterial
    - RSAEncMaterial::RSAEncMaterial
    - SM2EncMaterial::SM2EncMaterial
    - EGEncMaterial::EGEncMaterial
    - std::unique_ptr<EncMaterial>
    linkageType: ''
    returnType: std::unique_ptr<EncMaterial>
    signature: std::unique_ptr<EncMaterial> EncMaterial::create(pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 77
    functionName: pgp::RSAEncMaterial::parse
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool RSAEncMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 83
    functionName: pgp::RSAEncMaterial::write
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void RSAEncMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:88,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: pgp::EGEncMaterial::parse
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool EGEncMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:94,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 96
    functionName: pgp::EGEncMaterial::write
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void EGEncMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 102
    functionName: pgp::SM2EncMaterial::parse
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool SM2EncMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: pgp::SM2EncMaterial::write
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void SM2EncMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:115,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:115,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:120,1
    - Dst: m::resize
      Src: /src/rnp/src/lib/enc_material.cpp:123,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:124,1
    - Dst: m::data
      Src: /src/rnp/src/lib/enc_material.cpp:124,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 110
    functionDepth: 1
    functionLinenumber: 110
    functionLinenumberEnd: 128
    functionName: pgp::ECDHEncMaterial::parse
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    - m::resize
    - m::data
    linkageType: ''
    returnType: bool
    signature: bool ECDHEncMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:133,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/lib/enc_material.cpp:134,1
    - Dst: m::size
      Src: /src/rnp/src/lib/enc_material.cpp:134,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 130
    functionDepth: 2
    functionLinenumber: 130
    functionLinenumberEnd: 136
    functionName: pgp::ECDHEncMaterial::write
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    - pgp_packet_body_t::add_byte
    - m::size
    linkageType: ''
    returnType: void
    signature: void ECDHEncMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: eph_key::resize
      Src: /src/rnp/src/lib/enc_material.cpp:142,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:143,1
    - Dst: eph_key::data
      Src: /src/rnp/src/lib/enc_material.cpp:143,1
    - Dst: eph_key::size
      Src: /src/rnp/src/lib/enc_material.cpp:143,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:144,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:148,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:149,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:155,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:156,1
    - Dst: enc_sess_key::resize
      Src: /src/rnp/src/lib/enc_material.cpp:162,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:163,1
    - Dst: enc_sess_key::data
      Src: /src/rnp/src/lib/enc_material.cpp:163,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:164,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 168
    functionName: pgp::X25519EncMaterial::parse
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - eph_key::data
    - enc_sess_key::resize
    - eph_key::resize
    - eph_key::size
    - pgp_packet_body_t::get
    - enc_sess_key::data
    linkageType: ''
    returnType: bool
    signature: bool X25519EncMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:174,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/lib/enc_material.cpp:175,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/enc_material.cpp:175,1
    - Dst: enc_sess_key::size
      Src: /src/rnp/src/lib/enc_material.cpp:175,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/lib/enc_material.cpp:177,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 180
    functionName: pgp::X25519EncMaterial::write
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    - pgp_packet_body_t::add_byte
    - enc_sess_key::size
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void X25519EncMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/enc_material.cpp:185,1
    - Dst: eph_key::resize
      Src: /src/rnp/src/lib/enc_material.cpp:186,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/enc_material.cpp:186,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:187,1
    - Dst: eph_key::data
      Src: /src/rnp/src/lib/enc_material.cpp:187,1
    - Dst: eph_key::size
      Src: /src/rnp/src/lib/enc_material.cpp:187,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:188,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:192,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:193,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:199,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:200,1
    - Dst: enc_sess_key::resize
      Src: /src/rnp/src/lib/enc_material.cpp:206,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:207,1
    - Dst: enc_sess_key::data
      Src: /src/rnp/src/lib/enc_material.cpp:207,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:208,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 182
    functionDepth: 1
    functionLinenumber: 182
    functionLinenumberEnd: 212
    functionName: pgp::X448EncMaterial::parse
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - eph_key::data
    - enc_sess_key::resize
    - BITS_TO_BYTES
    - eph_key::resize
    - pgp::ec::Curve::get
    - eph_key::size
    - pgp_packet_body_t::get
    - enc_sess_key::data
    linkageType: ''
    returnType: bool
    signature: bool X448EncMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:218,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/lib/enc_material.cpp:219,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/enc_material.cpp:219,1
    - Dst: enc_sess_key::size
      Src: /src/rnp/src/lib/enc_material.cpp:219,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/lib/enc_material.cpp:221,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 214
    functionDepth: 2
    functionLinenumber: 214
    functionLinenumberEnd: 224
    functionName: pgp::X448EncMaterial::write
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    - pgp_packet_body_t::add_byte
    - enc_sess_key::size
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void X448EncMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: kyber_ciphertext_size
      Src: /src/rnp/src/lib/enc_material.cpp:234,1
    - Dst: pgp_kyber_ecdh_composite_key_t::pk_alg_to_kyber_id
      Src: /src/rnp/src/lib/enc_material.cpp:234,1
    - Dst: pgp_kyber_ecdh_composite_key_t::ecdh_curve_ephemeral_size
      Src: /src/rnp/src/lib/enc_material.cpp:235,1
    - Dst: pgp_kyber_ecdh_composite_key_t::pk_alg_to_curve_id
      Src: /src/rnp/src/lib/enc_material.cpp:236,1
    - Dst: composite_ciphertext::resize
      Src: /src/rnp/src/lib/enc_material.cpp:237,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:239,1
    - Dst: composite_ciphertext::data
      Src: /src/rnp/src/lib/enc_material.cpp:239,1
    - Dst: composite_ciphertext::size
      Src: /src/rnp/src/lib/enc_material.cpp:239,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:240,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:244,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:245,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:251,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:252,1
    - Dst: wrapped_sesskey::resize
      Src: /src/rnp/src/lib/enc_material.cpp:258,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/enc_material.cpp:259,1
    - Dst: wrapped_sesskey::data
      Src: /src/rnp/src/lib/enc_material.cpp:259,1
    - Dst: wrapped_sesskey::size
      Src: /src/rnp/src/lib/enc_material.cpp:259,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/enc_material.cpp:260,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 264
      start: 229
    functionDepth: 1
    functionLinenumber: 229
    functionLinenumberEnd: 264
    functionName: pgp::MlkemEcdhEncMaterial::parse
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - composite_ciphertext::size
    - wrapped_sesskey::size
    - pgp_kyber_ecdh_composite_key_t::pk_alg_to_curve_id
    - wrapped_sesskey::data
    - pgp_kyber_ecdh_composite_key_t::pk_alg_to_kyber_id
    - composite_ciphertext::resize
    - pgp_kyber_ecdh_composite_key_t::ecdh_curve_ephemeral_size
    - composite_ciphertext::data
    - pgp_packet_body_t::get
    - kyber_ciphertext_size
    - wrapped_sesskey::resize
    linkageType: ''
    returnType: bool
    signature: bool MlkemEcdhEncMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:269,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/lib/enc_material.cpp:271,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/enc_material.cpp:271,1
    - Dst: wrapped_sesskey::size
      Src: /src/rnp/src/lib/enc_material.cpp:271,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/lib/enc_material.cpp:273,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/enc_material.cpp:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 266
    functionDepth: 2
    functionLinenumber: 266
    functionLinenumberEnd: 276
    functionName: pgp::MlkemEcdhEncMaterial::write
    functionSourceFile: /src/rnp/src/lib/enc_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    - pgp_packet_body_t::add_byte
    - wrapped_sesskey::size
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void MlkemEcdhEncMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::ordered_json::is_object
      Src: /src/rnp/src/lib/json-utils.cpp:41,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/lib/json-utils.cpp:41,1
    - Dst: pred
      Src: /src/rnp/src/lib/json-utils.cpp:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - nlohmann::ordered_json
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: rnp::json::get_field
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - nlohmann::ordered_json::contains
    - pred
    - nlohmann::ordered_json::is_object
    linkageType: ''
    returnType: nlohmann::ordered_json
    signature: "nlohmann::ordered_json *\nget_field(nlohmann::ordered_json &obj,\n
      \         const char *            name,\n          bool (*pred)(const nlohmann::ordered_json
      &))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - nlohmann::ordered_json
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, const char
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string
      Src: /src/rnp/src/lib/json-utils.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - obj
    - name
    - value
    - len
    argTypes:
    - nlohmann::ordered_json
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached:
    - string
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, const char
      *value, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - nlohmann::ordered_json
    - char*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, const std::string
      &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - nlohmann::ordered_json
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - nlohmann::ordered_json
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - nlohmann::ordered_json
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, uint64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/json-utils.cpp:97,1
    - Dst: bin_to_hex
      Src: /src/rnp/src/lib/json-utils.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - obj
    - name
    - val
    - val_len
    argTypes:
    - nlohmann::ordered_json
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 102
    functionName: rnp::json::add_hex
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 24
    functionsReached:
    - RNP_LOG
    - bin_to_hex
    linkageType: ''
    returnType: bool
    signature: bool add_hex(nlohmann::ordered_json &obj, const char *name, const uint8_t
      *val, size_t val_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/lib/json-utils.cpp:107,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/json-utils.cpp:107,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/json-utils.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - name
    - vec
    argTypes:
    - nlohmann::ordered_json
    - char*
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: rnp::json::add_hex
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 25
    functionsReached:
    - std::vector<uint8_t>::size
    - rnp::json::add_hex
    - std::vector<uint8_t>::data
    linkageType: ''
    returnType: bool
    signature: bool add_hex(nlohmann::ordered_json &obj, const char *name, const std::vector<uint8_t>
      &vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/lib/json-utils.cpp:113,1
    - Dst: pgp::KeyID::data
      Src: /src/rnp/src/lib/json-utils.cpp:113,1
    - Dst: pgp::KeyID::size
      Src: /src/rnp/src/lib/json-utils.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - name
    - keyid
    argTypes:
    - nlohmann::ordered_json
    - char*
    - pgp::KeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached:
    - rnp::json::add_hex
    - pgp::KeyID::data
    - pgp::KeyID::size
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, const pgp::KeyID
      &keyid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/lib/json-utils.cpp:119,1
    - Dst: pgp::Fingerprint::data
      Src: /src/rnp/src/lib/json-utils.cpp:119,1
    - Dst: pgp::Fingerprint::size
      Src: /src/rnp/src/lib/json-utils.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - name
    - fp
    argTypes:
    - nlohmann::ordered_json
    - char*
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached:
    - rnp::json::add_hex
    - pgp::Fingerprint::size
    - pgp::Fingerprint::data
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, const pgp::Fingerprint
      &fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::ordered_json::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - arr
    - val
    argTypes:
    - nlohmann::ordered_json
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: rnp::json::array_add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 4
    functionsReached:
    - nlohmann::ordered_json::push_back
    linkageType: ''
    returnType: bool
    signature: bool array_add(nlohmann::ordered_json &arr, const char *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::ordered_json::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:132,1
    - Dst: std::move
      Src: /src/rnp/src/lib/json-utils.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - arr
    - val
    argTypes:
    - nlohmann::ordered_json
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: rnp::json::array_add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 4
    functionsReached:
    - nlohmann::ordered_json::push_back
    - std::move
    linkageType: ''
    returnType: bool
    signature: bool array_add(nlohmann::ordered_json &arr, nlohmann::ordered_json
      val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_field
      Src: /src/rnp/src/lib/json-utils.cpp:140,1
    - Dst: is_string
      Src: /src/rnp/src/lib/json-utils.cpp:140,1
    - Dst: auto*::get_ref
      Src: /src/rnp/src/lib/json-utils.cpp:144,1
    - Dst: nlohmann::ordered_json::erase
      Src: /src/rnp/src/lib/json-utils.cpp:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - obj
    - name
    - out
    - del
    argTypes:
    - nlohmann::ordered_json
    - char*
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 149
    functionName: rnp::json::get_str
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - rnp::json::get_field
    - auto*::get_ref
    - nlohmann::ordered_json::erase
    - is_string
    linkageType: ''
    returnType: bool
    signature: bool get_str(nlohmann::ordered_json &obj, const char *name, std::string
      &out, bool del)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_field
      Src: /src/rnp/src/lib/json-utils.cpp:154,1
    - Dst: is_number_integer
      Src: /src/rnp/src/lib/json-utils.cpp:155,1
    - Dst: auto*::get
      Src: /src/rnp/src/lib/json-utils.cpp:159,1
    - Dst: nlohmann::ordered_json::erase
      Src: /src/rnp/src/lib/json-utils.cpp:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - obj
    - name
    - out
    - del
    argTypes:
    - nlohmann::ordered_json
    - char*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 164
    functionName: rnp::json::get_int
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - auto*::get
    - rnp::json::get_field
    - is_number_integer
    - nlohmann::ordered_json::erase
    linkageType: ''
    returnType: bool
    signature: bool get_int(nlohmann::ordered_json &obj, const char *name, int &out,
      bool del)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_field
      Src: /src/rnp/src/lib/json-utils.cpp:170,1
    - Dst: is_number
      Src: /src/rnp/src/lib/json-utils.cpp:170,1
    - Dst: auto*::get
      Src: /src/rnp/src/lib/json-utils.cpp:174,1
    - Dst: nlohmann::ordered_json::erase
      Src: /src/rnp/src/lib/json-utils.cpp:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - obj
    - name
    - out
    - del
    argTypes:
    - nlohmann::ordered_json
    - char*
    - uint64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 179
    functionName: rnp::json::get_uint64
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - auto*::get
    - rnp::json::get_field
    - is_number
    - nlohmann::ordered_json::erase
    linkageType: ''
    returnType: bool
    signature: bool get_uint64(nlohmann::ordered_json &obj, const char *name, uint64_t
      &out, bool del)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_field
      Src: /src/rnp/src/lib/json-utils.cpp:188,1
    - Dst: is_array
      Src: /src/rnp/src/lib/json-utils.cpp:188,1
    - Dst: std::vector<std::string>::clear
      Src: /src/rnp/src/lib/json-utils.cpp:192,1
    - Dst: is_string
      Src: /src/rnp/src/lib/json-utils.cpp:194,1
    - Dst: std::vector<std::string>::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:197,1
    - Dst: get_ref
      Src: /src/rnp/src/lib/json-utils.cpp:197,1
    - Dst: erase
      Src: /src/rnp/src/lib/json-utils.cpp:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - '  obj'
    - name
    - out
    - del
    argTypes:
    - nlohmann::ordered_json
    - char*
    - std::vector<std::string>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 203
    functionName: rnp::json::get_str_arr
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - std::vector<std::string>::clear
    - is_array
    - std::vector<std::string>::push_back
    - erase
    - is_string
    - get_ref
    - rnp::json::get_field
    linkageType: ''
    returnType: bool
    signature: "bool get_str_arr(nlohmann::ordered_json &  obj,\n            const
      char *              name,\n            std::vector<std::string> &out,\n            bool
      \                     del)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_field
      Src: /src/rnp/src/lib/json-utils.cpp:208,1
    - Dst: is_object
      Src: /src/rnp/src/lib/json-utils.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - nlohmann::ordered_json
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: rnp::json::get_obj
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - rnp::json::get_field
    - is_object
    linkageType: ''
    returnType: nlohmann::ordered_json
    signature: 'nlohmann::ordered_json *

      get_obj(nlohmann::ordered_json &obj, const char *name)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::ordered_json::dump
      Src: /src/rnp/src/lib/json-utils.cpp:219,1
    - Dst: std::string::reserve
      Src: /src/rnp/src/lib/json-utils.cpp:221,1
    - Dst: std::string::size
      Src: /src/rnp/src/lib/json-utils.cpp:221,1
    - Dst: std::string::size
      Src: /src/rnp/src/lib/json-utils.cpp:225,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:228,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:236,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:243,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:249,1
    - Dst: std::string::size
      Src: /src/rnp/src/lib/json-utils.cpp:254,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:255,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:259,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 1
    argNames:
    - jso
    argTypes:
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 263
    functionName: rnp::json::dump_pretty
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - nlohmann::ordered_json::dump
    - std::string::reserve
    - std::string::push_back
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string dump_pretty(const nlohmann::ordered_json &jso)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::ordered_json::is_object
      Src: /src/rnp/src/lib/json-utils.cpp:41,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/lib/json-utils.cpp:41,1
    - Dst: pred
      Src: /src/rnp/src/lib/json-utils.cpp:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - nlohmann::ordered_json
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: rnp::json::get_field
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 5
    functionsReached:
    - nlohmann::ordered_json::contains
    - pred
    - nlohmann::ordered_json::is_object
    linkageType: ''
    returnType: nlohmann::ordered_json
    signature: "nlohmann::ordered_json *\nget_field(nlohmann::ordered_json &obj,\n
      \         const char *            name,\n          bool (*pred)(const nlohmann::ordered_json
      &))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - nlohmann::ordered_json
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, const char
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string
      Src: /src/rnp/src/lib/json-utils.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - obj
    - name
    - value
    - len
    argTypes:
    - nlohmann::ordered_json
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached:
    - string
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, const char
      *value, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - nlohmann::ordered_json
    - char*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, const std::string
      &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - nlohmann::ordered_json
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - nlohmann::ordered_json
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - nlohmann::ordered_json
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, uint64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/json-utils.cpp:97,1
    - Dst: bin_to_hex
      Src: /src/rnp/src/lib/json-utils.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - obj
    - name
    - val
    - val_len
    argTypes:
    - nlohmann::ordered_json
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 102
    functionName: rnp::json::add_hex
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 27
    functionsReached:
    - RNP_LOG
    - bin_to_hex
    linkageType: ''
    returnType: bool
    signature: bool add_hex(nlohmann::ordered_json &obj, const char *name, const uint8_t
      *val, size_t val_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/lib/json-utils.cpp:107,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/json-utils.cpp:107,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/json-utils.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - name
    - vec
    argTypes:
    - nlohmann::ordered_json
    - char*
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: rnp::json::add_hex
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 28
    functionsReached:
    - std::vector<uint8_t>::size
    - rnp::json::add_hex
    - std::vector<uint8_t>::data
    linkageType: ''
    returnType: bool
    signature: bool add_hex(nlohmann::ordered_json &obj, const char *name, const std::vector<uint8_t>
      &vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/lib/json-utils.cpp:113,1
    - Dst: pgp::KeyID::data
      Src: /src/rnp/src/lib/json-utils.cpp:113,1
    - Dst: pgp::KeyID::size
      Src: /src/rnp/src/lib/json-utils.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - name
    - keyid
    argTypes:
    - nlohmann::ordered_json
    - char*
    - pgp::KeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached:
    - rnp::json::add_hex
    - pgp::KeyID::data
    - pgp::KeyID::size
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, const pgp::KeyID
      &keyid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/lib/json-utils.cpp:119,1
    - Dst: pgp::Fingerprint::data
      Src: /src/rnp/src/lib/json-utils.cpp:119,1
    - Dst: pgp::Fingerprint::size
      Src: /src/rnp/src/lib/json-utils.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - name
    - fp
    argTypes:
    - nlohmann::ordered_json
    - char*
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached:
    - rnp::json::add_hex
    - pgp::Fingerprint::size
    - pgp::Fingerprint::data
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, const pgp::Fingerprint
      &fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::ordered_json::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - arr
    - val
    argTypes:
    - nlohmann::ordered_json
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: rnp::json::array_add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 4
    functionsReached:
    - nlohmann::ordered_json::push_back
    linkageType: ''
    returnType: bool
    signature: bool array_add(nlohmann::ordered_json &arr, const char *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::ordered_json::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:132,1
    - Dst: std::move
      Src: /src/rnp/src/lib/json-utils.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - arr
    - val
    argTypes:
    - nlohmann::ordered_json
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: rnp::json::array_add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 4
    functionsReached:
    - nlohmann::ordered_json::push_back
    - std::move
    linkageType: ''
    returnType: bool
    signature: bool array_add(nlohmann::ordered_json &arr, nlohmann::ordered_json
      val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_field
      Src: /src/rnp/src/lib/json-utils.cpp:140,1
    - Dst: is_string
      Src: /src/rnp/src/lib/json-utils.cpp:140,1
    - Dst: auto*::get_ref
      Src: /src/rnp/src/lib/json-utils.cpp:144,1
    - Dst: nlohmann::ordered_json::erase
      Src: /src/rnp/src/lib/json-utils.cpp:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - obj
    - name
    - out
    - del
    argTypes:
    - nlohmann::ordered_json
    - char*
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 149
    functionName: rnp::json::get_str
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - rnp::json::get_field
    - auto*::get_ref
    - nlohmann::ordered_json::erase
    - is_string
    linkageType: ''
    returnType: bool
    signature: bool get_str(nlohmann::ordered_json &obj, const char *name, std::string
      &out, bool del)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_field
      Src: /src/rnp/src/lib/json-utils.cpp:154,1
    - Dst: is_number_integer
      Src: /src/rnp/src/lib/json-utils.cpp:155,1
    - Dst: auto*::get
      Src: /src/rnp/src/lib/json-utils.cpp:159,1
    - Dst: nlohmann::ordered_json::erase
      Src: /src/rnp/src/lib/json-utils.cpp:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - obj
    - name
    - out
    - del
    argTypes:
    - nlohmann::ordered_json
    - char*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 164
    functionName: rnp::json::get_int
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - auto*::get
    - rnp::json::get_field
    - is_number_integer
    - nlohmann::ordered_json::erase
    linkageType: ''
    returnType: bool
    signature: bool get_int(nlohmann::ordered_json &obj, const char *name, int &out,
      bool del)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_field
      Src: /src/rnp/src/lib/json-utils.cpp:170,1
    - Dst: is_number
      Src: /src/rnp/src/lib/json-utils.cpp:170,1
    - Dst: auto*::get
      Src: /src/rnp/src/lib/json-utils.cpp:174,1
    - Dst: nlohmann::ordered_json::erase
      Src: /src/rnp/src/lib/json-utils.cpp:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - obj
    - name
    - out
    - del
    argTypes:
    - nlohmann::ordered_json
    - char*
    - uint64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 179
    functionName: rnp::json::get_uint64
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - auto*::get
    - rnp::json::get_field
    - is_number
    - nlohmann::ordered_json::erase
    linkageType: ''
    returnType: bool
    signature: bool get_uint64(nlohmann::ordered_json &obj, const char *name, uint64_t
      &out, bool del)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_field
      Src: /src/rnp/src/lib/json-utils.cpp:188,1
    - Dst: is_array
      Src: /src/rnp/src/lib/json-utils.cpp:188,1
    - Dst: std::vector<std::string>::clear
      Src: /src/rnp/src/lib/json-utils.cpp:192,1
    - Dst: is_string
      Src: /src/rnp/src/lib/json-utils.cpp:194,1
    - Dst: std::vector<std::string>::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:197,1
    - Dst: get_ref
      Src: /src/rnp/src/lib/json-utils.cpp:197,1
    - Dst: erase
      Src: /src/rnp/src/lib/json-utils.cpp:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - '  obj'
    - name
    - out
    - del
    argTypes:
    - nlohmann::ordered_json
    - char*
    - std::vector<std::string>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 203
    functionName: rnp::json::get_str_arr
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - std::vector<std::string>::clear
    - is_array
    - std::vector<std::string>::push_back
    - erase
    - is_string
    - get_ref
    - rnp::json::get_field
    linkageType: ''
    returnType: bool
    signature: "bool get_str_arr(nlohmann::ordered_json &  obj,\n            const
      char *              name,\n            std::vector<std::string> &out,\n            bool
      \                     del)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_field
      Src: /src/rnp/src/lib/json-utils.cpp:208,1
    - Dst: is_object
      Src: /src/rnp/src/lib/json-utils.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - nlohmann::ordered_json
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: rnp::json::get_obj
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - rnp::json::get_field
    - is_object
    linkageType: ''
    returnType: nlohmann::ordered_json
    signature: 'nlohmann::ordered_json *

      get_obj(nlohmann::ordered_json &obj, const char *name)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::ordered_json::dump
      Src: /src/rnp/src/lib/json-utils.cpp:219,1
    - Dst: std::string::reserve
      Src: /src/rnp/src/lib/json-utils.cpp:221,1
    - Dst: std::string::size
      Src: /src/rnp/src/lib/json-utils.cpp:221,1
    - Dst: std::string::size
      Src: /src/rnp/src/lib/json-utils.cpp:225,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:228,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:236,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:243,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:249,1
    - Dst: std::string::size
      Src: /src/rnp/src/lib/json-utils.cpp:254,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:255,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:259,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 1
    argNames:
    - jso
    argTypes:
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 263
    functionName: rnp::json::dump_pretty
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - nlohmann::ordered_json::dump
    - std::string::reserve
    - std::string::push_back
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string dump_pretty(const nlohmann::ordered_json &jso)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::ordered_json::is_object
      Src: /src/rnp/src/lib/json-utils.cpp:41,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/lib/json-utils.cpp:41,1
    - Dst: pred
      Src: /src/rnp/src/lib/json-utils.cpp:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - nlohmann::ordered_json
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: rnp::json::get_field
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 10
    functionsReached:
    - nlohmann::ordered_json::contains
    - pred
    - nlohmann::ordered_json::is_object
    linkageType: ''
    returnType: nlohmann::ordered_json
    signature: "nlohmann::ordered_json *\nget_field(nlohmann::ordered_json &obj,\n
      \         const char *            name,\n          bool (*pred)(const nlohmann::ordered_json
      &))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - nlohmann::ordered_json
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, const char
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string
      Src: /src/rnp/src/lib/json-utils.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - obj
    - name
    - value
    - len
    argTypes:
    - nlohmann::ordered_json
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached:
    - string
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, const char
      *value, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - nlohmann::ordered_json
    - char*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, const std::string
      &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - nlohmann::ordered_json
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - nlohmann::ordered_json
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - nlohmann::ordered_json
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, uint64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/json-utils.cpp:97,1
    - Dst: bin_to_hex
      Src: /src/rnp/src/lib/json-utils.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - obj
    - name
    - val
    - val_len
    argTypes:
    - nlohmann::ordered_json
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 102
    functionName: rnp::json::add_hex
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 30
    functionsReached:
    - RNP_LOG
    - bin_to_hex
    linkageType: ''
    returnType: bool
    signature: bool add_hex(nlohmann::ordered_json &obj, const char *name, const uint8_t
      *val, size_t val_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/lib/json-utils.cpp:107,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/json-utils.cpp:107,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/json-utils.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - name
    - vec
    argTypes:
    - nlohmann::ordered_json
    - char*
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: rnp::json::add_hex
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 31
    functionsReached:
    - std::vector<uint8_t>::size
    - rnp::json::add_hex
    - std::vector<uint8_t>::data
    linkageType: ''
    returnType: bool
    signature: bool add_hex(nlohmann::ordered_json &obj, const char *name, const std::vector<uint8_t>
      &vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/lib/json-utils.cpp:113,1
    - Dst: pgp::KeyID::data
      Src: /src/rnp/src/lib/json-utils.cpp:113,1
    - Dst: pgp::KeyID::size
      Src: /src/rnp/src/lib/json-utils.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - name
    - keyid
    argTypes:
    - nlohmann::ordered_json
    - char*
    - pgp::KeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached:
    - rnp::json::add_hex
    - pgp::KeyID::data
    - pgp::KeyID::size
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, const pgp::KeyID
      &keyid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/lib/json-utils.cpp:119,1
    - Dst: pgp::Fingerprint::data
      Src: /src/rnp/src/lib/json-utils.cpp:119,1
    - Dst: pgp::Fingerprint::size
      Src: /src/rnp/src/lib/json-utils.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - name
    - fp
    argTypes:
    - nlohmann::ordered_json
    - char*
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached:
    - rnp::json::add_hex
    - pgp::Fingerprint::size
    - pgp::Fingerprint::data
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, const pgp::Fingerprint
      &fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::ordered_json::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - arr
    - val
    argTypes:
    - nlohmann::ordered_json
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: rnp::json::array_add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 4
    functionsReached:
    - nlohmann::ordered_json::push_back
    linkageType: ''
    returnType: bool
    signature: bool array_add(nlohmann::ordered_json &arr, const char *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::ordered_json::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:132,1
    - Dst: std::move
      Src: /src/rnp/src/lib/json-utils.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - arr
    - val
    argTypes:
    - nlohmann::ordered_json
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: rnp::json::array_add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 4
    functionsReached:
    - nlohmann::ordered_json::push_back
    - std::move
    linkageType: ''
    returnType: bool
    signature: bool array_add(nlohmann::ordered_json &arr, nlohmann::ordered_json
      val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_field
      Src: /src/rnp/src/lib/json-utils.cpp:140,1
    - Dst: is_string
      Src: /src/rnp/src/lib/json-utils.cpp:140,1
    - Dst: auto*::get_ref
      Src: /src/rnp/src/lib/json-utils.cpp:144,1
    - Dst: nlohmann::ordered_json::erase
      Src: /src/rnp/src/lib/json-utils.cpp:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - obj
    - name
    - out
    - del
    argTypes:
    - nlohmann::ordered_json
    - char*
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 149
    functionName: rnp::json::get_str
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - rnp::json::get_field
    - auto*::get_ref
    - nlohmann::ordered_json::erase
    - is_string
    linkageType: ''
    returnType: bool
    signature: bool get_str(nlohmann::ordered_json &obj, const char *name, std::string
      &out, bool del)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_field
      Src: /src/rnp/src/lib/json-utils.cpp:154,1
    - Dst: is_number_integer
      Src: /src/rnp/src/lib/json-utils.cpp:155,1
    - Dst: auto*::get
      Src: /src/rnp/src/lib/json-utils.cpp:159,1
    - Dst: nlohmann::ordered_json::erase
      Src: /src/rnp/src/lib/json-utils.cpp:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - obj
    - name
    - out
    - del
    argTypes:
    - nlohmann::ordered_json
    - char*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 164
    functionName: rnp::json::get_int
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - auto*::get
    - rnp::json::get_field
    - is_number_integer
    - nlohmann::ordered_json::erase
    linkageType: ''
    returnType: bool
    signature: bool get_int(nlohmann::ordered_json &obj, const char *name, int &out,
      bool del)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_field
      Src: /src/rnp/src/lib/json-utils.cpp:170,1
    - Dst: is_number
      Src: /src/rnp/src/lib/json-utils.cpp:170,1
    - Dst: auto*::get
      Src: /src/rnp/src/lib/json-utils.cpp:174,1
    - Dst: nlohmann::ordered_json::erase
      Src: /src/rnp/src/lib/json-utils.cpp:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - obj
    - name
    - out
    - del
    argTypes:
    - nlohmann::ordered_json
    - char*
    - uint64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 179
    functionName: rnp::json::get_uint64
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - auto*::get
    - rnp::json::get_field
    - is_number
    - nlohmann::ordered_json::erase
    linkageType: ''
    returnType: bool
    signature: bool get_uint64(nlohmann::ordered_json &obj, const char *name, uint64_t
      &out, bool del)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_field
      Src: /src/rnp/src/lib/json-utils.cpp:188,1
    - Dst: is_array
      Src: /src/rnp/src/lib/json-utils.cpp:188,1
    - Dst: std::vector<std::string>::clear
      Src: /src/rnp/src/lib/json-utils.cpp:192,1
    - Dst: is_string
      Src: /src/rnp/src/lib/json-utils.cpp:194,1
    - Dst: std::vector<std::string>::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:197,1
    - Dst: get_ref
      Src: /src/rnp/src/lib/json-utils.cpp:197,1
    - Dst: erase
      Src: /src/rnp/src/lib/json-utils.cpp:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - '  obj'
    - name
    - out
    - del
    argTypes:
    - nlohmann::ordered_json
    - char*
    - std::vector<std::string>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 203
    functionName: rnp::json::get_str_arr
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - std::vector<std::string>::clear
    - is_array
    - std::vector<std::string>::push_back
    - erase
    - is_string
    - get_ref
    - rnp::json::get_field
    linkageType: ''
    returnType: bool
    signature: "bool get_str_arr(nlohmann::ordered_json &  obj,\n            const
      char *              name,\n            std::vector<std::string> &out,\n            bool
      \                     del)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_field
      Src: /src/rnp/src/lib/json-utils.cpp:208,1
    - Dst: is_object
      Src: /src/rnp/src/lib/json-utils.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - nlohmann::ordered_json
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: rnp::json::get_obj
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - rnp::json::get_field
    - is_object
    linkageType: ''
    returnType: nlohmann::ordered_json
    signature: 'nlohmann::ordered_json *

      get_obj(nlohmann::ordered_json &obj, const char *name)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::ordered_json::dump
      Src: /src/rnp/src/lib/json-utils.cpp:219,1
    - Dst: std::string::reserve
      Src: /src/rnp/src/lib/json-utils.cpp:221,1
    - Dst: std::string::size
      Src: /src/rnp/src/lib/json-utils.cpp:221,1
    - Dst: std::string::size
      Src: /src/rnp/src/lib/json-utils.cpp:225,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:228,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:236,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:243,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:249,1
    - Dst: std::string::size
      Src: /src/rnp/src/lib/json-utils.cpp:254,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:255,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:259,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 1
    argNames:
    - jso
    argTypes:
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 263
    functionName: rnp::json::dump_pretty
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - nlohmann::ordered_json::dump
    - std::string::reserve
    - std::string::push_back
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string dump_pretty(const nlohmann::ordered_json &jso)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::ordered_json::is_object
      Src: /src/rnp/src/lib/json-utils.cpp:41,1
    - Dst: nlohmann::ordered_json::contains
      Src: /src/rnp/src/lib/json-utils.cpp:41,1
    - Dst: pred
      Src: /src/rnp/src/lib/json-utils.cpp:45,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - nlohmann::ordered_json
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: rnp::json::get_field
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 15
    functionsReached:
    - nlohmann::ordered_json::contains
    - pred
    - nlohmann::ordered_json::is_object
    linkageType: ''
    returnType: nlohmann::ordered_json
    signature: "nlohmann::ordered_json *\nget_field(nlohmann::ordered_json &obj,\n
      \         const char *            name,\n          bool (*pred)(const nlohmann::ordered_json
      &))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - nlohmann::ordered_json
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 56
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, const char
      *value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string
      Src: /src/rnp/src/lib/json-utils.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - obj
    - name
    - value
    - len
    argTypes:
    - nlohmann::ordered_json
    - char*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 63
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached:
    - string
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, const char
      *value, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - nlohmann::ordered_json
    - char*
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 70
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, const std::string
      &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - nlohmann::ordered_json
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, bool value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - nlohmann::ordered_json
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, int value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - obj
    - name
    - value
    argTypes:
    - nlohmann::ordered_json
    - char*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, uint64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/json-utils.cpp:97,1
    - Dst: bin_to_hex
      Src: /src/rnp/src/lib/json-utils.cpp:100,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 4
    argNames:
    - obj
    - name
    - val
    - val_len
    argTypes:
    - nlohmann::ordered_json
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 102
    functionName: rnp::json::add_hex
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 33
    functionsReached:
    - RNP_LOG
    - bin_to_hex
    linkageType: ''
    returnType: bool
    signature: bool add_hex(nlohmann::ordered_json &obj, const char *name, const uint8_t
      *val, size_t val_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/lib/json-utils.cpp:107,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/json-utils.cpp:107,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/json-utils.cpp:107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - name
    - vec
    argTypes:
    - nlohmann::ordered_json
    - char*
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: rnp::json::add_hex
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 34
    functionsReached:
    - std::vector<uint8_t>::size
    - rnp::json::add_hex
    - std::vector<uint8_t>::data
    linkageType: ''
    returnType: bool
    signature: bool add_hex(nlohmann::ordered_json &obj, const char *name, const std::vector<uint8_t>
      &vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/lib/json-utils.cpp:113,1
    - Dst: pgp::KeyID::data
      Src: /src/rnp/src/lib/json-utils.cpp:113,1
    - Dst: pgp::KeyID::size
      Src: /src/rnp/src/lib/json-utils.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - name
    - keyid
    argTypes:
    - nlohmann::ordered_json
    - char*
    - pgp::KeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 2
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached:
    - rnp::json::add_hex
    - pgp::KeyID::data
    - pgp::KeyID::size
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, const pgp::KeyID
      &keyid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/lib/json-utils.cpp:119,1
    - Dst: pgp::Fingerprint::data
      Src: /src/rnp/src/lib/json-utils.cpp:119,1
    - Dst: pgp::Fingerprint::size
      Src: /src/rnp/src/lib/json-utils.cpp:119,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - obj
    - name
    - fp
    argTypes:
    - nlohmann::ordered_json
    - char*
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 120
    functionName: rnp::json::add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 32
    functionsReached:
    - rnp::json::add_hex
    - pgp::Fingerprint::size
    - pgp::Fingerprint::data
    linkageType: ''
    returnType: bool
    signature: bool add(nlohmann::ordered_json &obj, const char *name, const pgp::Fingerprint
      &fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::ordered_json::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:125,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - arr
    - val
    argTypes:
    - nlohmann::ordered_json
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 122
    functionDepth: 1
    functionLinenumber: 122
    functionLinenumberEnd: 127
    functionName: rnp::json::array_add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 4
    functionsReached:
    - nlohmann::ordered_json::push_back
    linkageType: ''
    returnType: bool
    signature: bool array_add(nlohmann::ordered_json &arr, const char *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::ordered_json::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:132,1
    - Dst: std::move
      Src: /src/rnp/src/lib/json-utils.cpp:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - arr
    - val
    argTypes:
    - nlohmann::ordered_json
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: rnp::json::array_add
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 4
    functionsReached:
    - nlohmann::ordered_json::push_back
    - std::move
    linkageType: ''
    returnType: bool
    signature: bool array_add(nlohmann::ordered_json &arr, nlohmann::ordered_json
      val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_field
      Src: /src/rnp/src/lib/json-utils.cpp:140,1
    - Dst: is_string
      Src: /src/rnp/src/lib/json-utils.cpp:140,1
    - Dst: auto*::get_ref
      Src: /src/rnp/src/lib/json-utils.cpp:144,1
    - Dst: nlohmann::ordered_json::erase
      Src: /src/rnp/src/lib/json-utils.cpp:146,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - obj
    - name
    - out
    - del
    argTypes:
    - nlohmann::ordered_json
    - char*
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 136
    functionDepth: 2
    functionLinenumber: 136
    functionLinenumberEnd: 149
    functionName: rnp::json::get_str
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - rnp::json::get_field
    - auto*::get_ref
    - nlohmann::ordered_json::erase
    - is_string
    linkageType: ''
    returnType: bool
    signature: bool get_str(nlohmann::ordered_json &obj, const char *name, std::string
      &out, bool del)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_field
      Src: /src/rnp/src/lib/json-utils.cpp:154,1
    - Dst: is_number_integer
      Src: /src/rnp/src/lib/json-utils.cpp:155,1
    - Dst: auto*::get
      Src: /src/rnp/src/lib/json-utils.cpp:159,1
    - Dst: nlohmann::ordered_json::erase
      Src: /src/rnp/src/lib/json-utils.cpp:161,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - obj
    - name
    - out
    - del
    argTypes:
    - nlohmann::ordered_json
    - char*
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 164
    functionName: rnp::json::get_int
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - auto*::get
    - rnp::json::get_field
    - is_number_integer
    - nlohmann::ordered_json::erase
    linkageType: ''
    returnType: bool
    signature: bool get_int(nlohmann::ordered_json &obj, const char *name, int &out,
      bool del)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_field
      Src: /src/rnp/src/lib/json-utils.cpp:170,1
    - Dst: is_number
      Src: /src/rnp/src/lib/json-utils.cpp:170,1
    - Dst: auto*::get
      Src: /src/rnp/src/lib/json-utils.cpp:174,1
    - Dst: nlohmann::ordered_json::erase
      Src: /src/rnp/src/lib/json-utils.cpp:176,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - obj
    - name
    - out
    - del
    argTypes:
    - nlohmann::ordered_json
    - char*
    - uint64_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 166
    functionDepth: 2
    functionLinenumber: 166
    functionLinenumberEnd: 179
    functionName: rnp::json::get_uint64
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - auto*::get
    - rnp::json::get_field
    - is_number
    - nlohmann::ordered_json::erase
    linkageType: ''
    returnType: bool
    signature: bool get_uint64(nlohmann::ordered_json &obj, const char *name, uint64_t
      &out, bool del)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_field
      Src: /src/rnp/src/lib/json-utils.cpp:188,1
    - Dst: is_array
      Src: /src/rnp/src/lib/json-utils.cpp:188,1
    - Dst: std::vector<std::string>::clear
      Src: /src/rnp/src/lib/json-utils.cpp:192,1
    - Dst: is_string
      Src: /src/rnp/src/lib/json-utils.cpp:194,1
    - Dst: std::vector<std::string>::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:197,1
    - Dst: get_ref
      Src: /src/rnp/src/lib/json-utils.cpp:197,1
    - Dst: erase
      Src: /src/rnp/src/lib/json-utils.cpp:200,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 4
    argNames:
    - '  obj'
    - name
    - out
    - del
    argTypes:
    - nlohmann::ordered_json
    - char*
    - std::vector<std::string>
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 203
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 203
    functionName: rnp::json::get_str_arr
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - std::vector<std::string>::clear
    - is_array
    - std::vector<std::string>::push_back
    - erase
    - is_string
    - get_ref
    - rnp::json::get_field
    linkageType: ''
    returnType: bool
    signature: "bool get_str_arr(nlohmann::ordered_json &  obj,\n            const
      char *              name,\n            std::vector<std::string> &out,\n            bool
      \                     del)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_field
      Src: /src/rnp/src/lib/json-utils.cpp:208,1
    - Dst: is_object
      Src: /src/rnp/src/lib/json-utils.cpp:208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - obj
    - name
    argTypes:
    - nlohmann::ordered_json
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 205
    functionDepth: 2
    functionLinenumber: 205
    functionLinenumberEnd: 209
    functionName: rnp::json::get_obj
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - rnp::json::get_field
    - is_object
    linkageType: ''
    returnType: nlohmann::ordered_json
    signature: 'nlohmann::ordered_json *

      get_obj(nlohmann::ordered_json &obj, const char *name)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: nlohmann::ordered_json::dump
      Src: /src/rnp/src/lib/json-utils.cpp:219,1
    - Dst: std::string::reserve
      Src: /src/rnp/src/lib/json-utils.cpp:221,1
    - Dst: std::string::size
      Src: /src/rnp/src/lib/json-utils.cpp:221,1
    - Dst: std::string::size
      Src: /src/rnp/src/lib/json-utils.cpp:225,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:228,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:236,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:243,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:249,1
    - Dst: std::string::size
      Src: /src/rnp/src/lib/json-utils.cpp:254,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:255,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/json-utils.cpp:259,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 38
    argCount: 1
    argNames:
    - jso
    argTypes:
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 263
    functionName: rnp::json::dump_pretty
    functionSourceFile: /src/rnp/src/lib/json-utils.cpp
    functionUses: 0
    functionsReached:
    - nlohmann::ordered_json::dump
    - std::string::reserve
    - std::string::push_back
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string dump_pretty(const nlohmann::ordered_json &jso)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - rawtype
    - hashed
    - critical
    argTypes:
    - uint8_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: pgp::pkt::sigsub::Raw::Raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Raw::Raw(uint8_t rawtype, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: pgp::pkt::sigsub::Raw::Raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void Raw::Raw(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Raw::~Raw()
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Raw::~Raw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: pgp::pkt::sigsub::Raw::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Raw::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: pgp::pkt::sigsub::Raw::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Raw::parse_data(const uint8_t *data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::Raw::check_size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:71,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:72,1
    - Dst: pgp::pkt::sigsub::Raw::parse_data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:75,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 80
    functionName: pgp::pkt::sigsub::Raw::parse
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - assign
    - pgp::pkt::sigsub::Raw::parse_data
    - pgp::pkt::sigsub::Raw::check_size
    linkageType: ''
    returnType: bool
    signature: bool Raw::parse(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/rnp/src/lib/sig_subpacket.cpp:85,1
    - Dst: write_data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: '&

      Raw::write()'
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - empty
    - write_data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      Raw::write()'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:107,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - type
    - critical
    argTypes:
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 124
    functionName: pgp::pkt::sigsub::report_unknown
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: void
    signature: void report_unknown(uint8_t type, bool critical)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:131,1
    - Dst: CreationTime::CreationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:131,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:133,1
    - Dst: ExpirationTime::ExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:133,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:135,1
    - Dst: ExportableCert::ExportableCert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:135,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:137,1
    - Dst: Trust::Trust
      Src: /src/rnp/src/lib/sig_subpacket.cpp:137,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:139,1
    - Dst: RegExp::RegExp
      Src: /src/rnp/src/lib/sig_subpacket.cpp:139,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:141,1
    - Dst: Revocable::Revocable
      Src: /src/rnp/src/lib/sig_subpacket.cpp:141,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:143,1
    - Dst: KeyExpirationTime::KeyExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:143,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:145,1
    - Dst: PreferredSymmetric::PreferredSymmetric
      Src: /src/rnp/src/lib/sig_subpacket.cpp:145,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:147,1
    - Dst: RevocationKey::RevocationKey
      Src: /src/rnp/src/lib/sig_subpacket.cpp:147,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:149,1
    - Dst: IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:149,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:151,1
    - Dst: NotationData::NotationData
      Src: /src/rnp/src/lib/sig_subpacket.cpp:151,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:153,1
    - Dst: PreferredHash::PreferredHash
      Src: /src/rnp/src/lib/sig_subpacket.cpp:153,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:155,1
    - Dst: PreferredCompress::PreferredCompress
      Src: /src/rnp/src/lib/sig_subpacket.cpp:155,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:157,1
    - Dst: KeyserverPrefs::KeyserverPrefs
      Src: /src/rnp/src/lib/sig_subpacket.cpp:157,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:159,1
    - Dst: PreferredKeyserver::PreferredKeyserver
      Src: /src/rnp/src/lib/sig_subpacket.cpp:159,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:161,1
    - Dst: PrimaryUserID::PrimaryUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:161,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:163,1
    - Dst: PolicyURI::PolicyURI
      Src: /src/rnp/src/lib/sig_subpacket.cpp:163,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:165,1
    - Dst: KeyFlags::KeyFlags
      Src: /src/rnp/src/lib/sig_subpacket.cpp:165,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:167,1
    - Dst: SignersUserID::SignersUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:167,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:169,1
    - Dst: RevocationReason::RevocationReason
      Src: /src/rnp/src/lib/sig_subpacket.cpp:169,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:171,1
    - Dst: Features::Features
      Src: /src/rnp/src/lib/sig_subpacket.cpp:171,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:173,1
    - Dst: EmbeddedSignature::EmbeddedSignature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:173,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:175,1
    - Dst: IssuerFingerprint::IssuerFingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:175,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:177,1
    - Dst: PreferredAEAD::PreferredAEAD
      Src: /src/rnp/src/lib/sig_subpacket.cpp:177,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:180,1
    - Dst: PreferredAEADv6::PreferredAEADv6
      Src: /src/rnp/src/lib/sig_subpacket.cpp:180,1
    - Dst: report_unknown
      Src: /src/rnp/src/lib/sig_subpacket.cpp:183,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:184,1
    - Dst: Raw::Raw
      Src: /src/rnp/src/lib/sig_subpacket.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 56
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - uint8_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 186
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 8
    functionsReached:
    - NotationData::NotationData
    - PreferredAEAD::PreferredAEAD
    - ExportableCert::ExportableCert
    - RawPtr
    - IssuerKeyID::IssuerKeyID
    - Raw::Raw
    - Features::Features
    - CreationTime::CreationTime
    - RevocationReason::RevocationReason
    - PreferredHash::PreferredHash
    - PrimaryUserID::PrimaryUserID
    - EmbeddedSignature::EmbeddedSignature
    - PolicyURI::PolicyURI
    - IssuerFingerprint::IssuerFingerprint
    - KeyExpirationTime::KeyExpirationTime
    - RevocationKey::RevocationKey
    - PreferredAEADv6::PreferredAEADv6
    - KeyserverPrefs::KeyserverPrefs
    - Trust::Trust
    - ExpirationTime::ExpirationTime
    - RegExp::RegExp
    - SignersUserID::SignersUserID
    - PreferredSymmetric::PreferredSymmetric
    - Revocable::Revocable
    - report_unknown
    - KeyFlags::KeyFlags
    - PreferredCompress::PreferredCompress
    - PreferredKeyserver::PreferredKeyserver
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(uint8_t type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/lib/sig_subpacket.cpp:191,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 9
    functionsReached:
    - pgp::pkt::sigsub::Raw::create
    - static_cast<uint8_t>
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(Type type, bool hashed, bool critical)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:198,1
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/lib/sig_subpacket.cpp:203,1
    - Dst: auto::type
      Src: /src/rnp/src/lib/sig_subpacket.cpp:204,1
    - Dst: auto::parse
      Src: /src/rnp/src/lib/sig_subpacket.cpp:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - data
    - size
    - hashed
    argTypes:
    - uint8_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 10
    functionsReached:
    - RNP_LOG
    - auto::parse
    - auto::type
    - pgp::pkt::sigsub::Raw::create
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(const uint8_t *data, size_t size, bool hashed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:214,1
    - Dst: Raw::Raw
      Src: /src/rnp/src/lib/sig_subpacket.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: pgp::pkt::sigsub::Raw::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Raw::Raw
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:221,1
    - Dst: write_uint32
      Src: /src/rnp/src/lib/sig_subpacket.cpp:222,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: pgp::pkt::sigsub::Time::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - write_uint32
    - resize
    linkageType: ''
    returnType: void
    signature: void Time::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: pgp::pkt::sigsub::Time::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Time::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_uint32
      Src: /src/rnp/src/lib/sig_subpacket.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: pgp::pkt::sigsub::Time::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - read_uint32
    linkageType: ''
    returnType: bool
    signature: bool Time::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:242,1
    - Dst: CreationTime::CreationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: pgp::pkt::sigsub::CreationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - CreationTime::CreationTime
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr CreationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:249,1
    - Dst: ExpirationTime::ExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: pgp::pkt::sigsub::ExpirationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - ExpirationTime::ExpirationTime
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr ExpirationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:256,1
    - Dst: KeyExpirationTime::KeyExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 257
    functionName: pgp::pkt::sigsub::KeyExpirationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyExpirationTime::KeyExpirationTime
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyExpirationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: pgp::pkt::sigsub::Bool::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Bool::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: pgp::pkt::sigsub::Bool::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Bool::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: pgp::pkt::sigsub::Bool::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Bool::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:284,1
    - Dst: ExportableCert::ExportableCert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: pgp::pkt::sigsub::ExportableCert::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - ExportableCert::ExportableCert
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr ExportableCert::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 294
    functionName: pgp::pkt::sigsub::Trust::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Trust::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: pgp::pkt::sigsub::Trust::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Trust::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: pgp::pkt::sigsub::Trust::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Trust::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:313,1
    - Dst: Trust::Trust
      Src: /src/rnp/src/lib/sig_subpacket.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: pgp::pkt::sigsub::Trust::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - Trust::Trust
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Trust::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    - Dst: begin
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    - Dst: end
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 321
    functionName: pgp::pkt::sigsub::String::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void String::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: pgp::pkt::sigsub::String::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: bool
    signature: bool String::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:334,1
    - Dst: RegExp::RegExp
      Src: /src/rnp/src/lib/sig_subpacket.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 335
    functionName: pgp::pkt::sigsub::RegExp::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - RegExp::RegExp
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RegExp::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:341,1
    - Dst: Revocable::Revocable
      Src: /src/rnp/src/lib/sig_subpacket.cpp:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: pgp::pkt::sigsub::Revocable::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Revocable::Revocable
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Revocable::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: pgp::pkt::sigsub::Preferred::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Preferred::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 356
    functionName: pgp::pkt::sigsub::Preferred::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Preferred::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 363
    functionName: pgp::pkt::sigsub::Preferred::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: bool
    signature: bool Preferred::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:369,1
    - Dst: PreferredSymmetric::PreferredSymmetric
      Src: /src/rnp/src/lib/sig_subpacket.cpp:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: pgp::pkt::sigsub::PreferredSymmetric::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredSymmetric::PreferredSymmetric
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredSymmetric::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:376,1
    - Dst: PreferredHash::PreferredHash
      Src: /src/rnp/src/lib/sig_subpacket.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 377
    functionName: pgp::pkt::sigsub::PreferredHash::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredHash::PreferredHash
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredHash::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:383,1
    - Dst: PreferredCompress::PreferredCompress
      Src: /src/rnp/src/lib/sig_subpacket.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 384
    functionName: pgp::pkt::sigsub::PreferredCompress::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - PreferredCompress::PreferredCompress
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredCompress::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:390,1
    - Dst: PreferredAEAD::PreferredAEAD
      Src: /src/rnp/src/lib/sig_subpacket.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: pgp::pkt::sigsub::PreferredAEAD::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredAEAD::PreferredAEAD
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredAEAD::clone() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:399,1
    - Dst: pgp::pkt::sigsub::Preferred::check_size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 403
    functionName: pgp::pkt::sigsub::PreferredAEADv6::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::pkt::sigsub::Preferred::check_size
    linkageType: ''
    returnType: bool
    signature: bool PreferredAEADv6::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:408,1
    - Dst: PreferredAEADv6::PreferredAEADv6
      Src: /src/rnp/src/lib/sig_subpacket.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 409
    functionName: pgp::pkt::sigsub::PreferredAEADv6::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredAEADv6::PreferredAEADv6
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredAEADv6::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:416,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:416,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 420
    functionName: pgp::pkt::sigsub::RevocationKey::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    - resize
    linkageType: ''
    returnType: void
    signature: void RevocationKey::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: pgp::pkt::sigsub::RevocationKey::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RevocationKey::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_pubkey_alg_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:432,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 435
    functionName: pgp::pkt::sigsub::RevocationKey::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - pgp::Fingerprint::Fingerprint
    - static_cast<pgp_pubkey_alg_t>
    linkageType: ''
    returnType: bool
    signature: bool RevocationKey::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:440,1
    - Dst: RevocationKey::RevocationKey
      Src: /src/rnp/src/lib/sig_subpacket.cpp:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: pgp::pkt::sigsub::RevocationKey::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - RevocationKey::RevocationKey
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RevocationKey::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    - Dst: begin
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    - Dst: end
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 448
    functionName: pgp::pkt::sigsub::IssuerKeyID::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void IssuerKeyID::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 454
    functionName: pgp::pkt::sigsub::IssuerKeyID::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IssuerKeyID::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 461
    functionName: pgp::pkt::sigsub::IssuerKeyID::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    linkageType: ''
    returnType: bool
    signature: bool IssuerKeyID::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:466,1
    - Dst: IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: pgp::pkt::sigsub::IssuerKeyID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - IssuerKeyID::IssuerKeyID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr IssuerKeyID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:473,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:473,1
    - Dst: assert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:474,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:474,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:475,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:476,1
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:477,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: write_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:479,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:479,1
    - Dst: write_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:480,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:480,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (name_.size() <= 0xffff)
      pos:
        line_end: 472
        line_start: 472
        source_file: /src/rnp/src/lib/sig_subpacket.cpp
    - condition: (value_.size() <= 0xffff)
      pos:
        line_end: 473
        line_start: 473
        source_file: /src/rnp/src/lib/sig_subpacket.cpp
    constantsTouched: []
    func_position:
      end: 483
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 483
    functionName: pgp::pkt::sigsub::NotationData::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - write_uint16
    - resize
    - assert
    - size
    linkageType: ''
    returnType: void
    signature: void NotationData::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 489
    functionName: pgp::pkt::sigsub::NotationData::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool NotationData::check_size(size_t size) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:494,1
    - Dst: read_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:495,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:499,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:499,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:500,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 503
    functionName: pgp::pkt::sigsub::NotationData::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - assign
    - read_uint16
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool NotationData::parse_data(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 513
    functionName: pgp::pkt::sigsub::NotationData::set_human_readable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NotationData::set_human_readable(bool value) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:518,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:519,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 523
    functionName: pgp::pkt::sigsub::NotationData::set_name
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - rnp::rnp_exception::rnp_exception
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void NotationData::set_name(const std::string &name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:528,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:529,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 533
    functionName: pgp::pkt::sigsub::NotationData::set_value
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - std::vector<uint8_t>::size
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void NotationData::set_value(const std::vector<uint8_t> &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:538,1
    - Dst: NotationData::NotationData
      Src: /src/rnp/src/lib/sig_subpacket.cpp:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 539
    functionName: pgp::pkt::sigsub::NotationData::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - NotationData::NotationData
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr NotationData::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: pgp::pkt::sigsub::Flags::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Flags::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 553
    functionName: pgp::pkt::sigsub::Flags::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Flags::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 560
    functionName: pgp::pkt::sigsub::Flags::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Flags::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:566,1
    - Dst: KeyserverPrefs::KeyserverPrefs
      Src: /src/rnp/src/lib/sig_subpacket.cpp:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 567
    functionName: pgp::pkt::sigsub::KeyserverPrefs::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyserverPrefs::KeyserverPrefs
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyserverPrefs::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:573,1
    - Dst: PreferredKeyserver::PreferredKeyserver
      Src: /src/rnp/src/lib/sig_subpacket.cpp:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: pgp::pkt::sigsub::PreferredKeyserver::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredKeyserver::PreferredKeyserver
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredKeyserver::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:580,1
    - Dst: PrimaryUserID::PrimaryUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 581
    functionName: pgp::pkt::sigsub::PrimaryUserID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - PrimaryUserID::PrimaryUserID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PrimaryUserID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:587,1
    - Dst: PolicyURI::PolicyURI
      Src: /src/rnp/src/lib/sig_subpacket.cpp:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 588
    functionName: pgp::pkt::sigsub::PolicyURI::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PolicyURI::PolicyURI
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PolicyURI::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:594,1
    - Dst: KeyFlags::KeyFlags
      Src: /src/rnp/src/lib/sig_subpacket.cpp:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 595
    functionName: pgp::pkt::sigsub::KeyFlags::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyFlags::KeyFlags
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyFlags::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:601,1
    - Dst: SignersUserID::SignersUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 602
    functionName: pgp::pkt::sigsub::SignersUserID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - SignersUserID::SignersUserID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr SignersUserID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:608,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:608,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:609,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 611
    functionName: pgp::pkt::sigsub::RevocationReason::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - resize
    - size
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void RevocationReason::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 617
    functionName: pgp::pkt::sigsub::RevocationReason::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RevocationReason::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_revocation_type_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:622,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 625
    functionName: pgp::pkt::sigsub::RevocationReason::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - static_cast<pgp_revocation_type_t>
    linkageType: ''
    returnType: bool
    signature: bool RevocationReason::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:630,1
    - Dst: RevocationReason::RevocationReason
      Src: /src/rnp/src/lib/sig_subpacket.cpp:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 631
    functionName: pgp::pkt::sigsub::RevocationReason::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RevocationReason::RevocationReason
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RevocationReason::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:637,1
    - Dst: Features::Features
      Src: /src/rnp/src/lib/sig_subpacket.cpp:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 638
    functionName: pgp::pkt::sigsub::Features::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - Features::Features
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Features::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:643,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - EmbeddedSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 644
    functionName: pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Signature>
    - Signature::Signature
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::EmbeddedSignature(const EmbeddedSignature &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - hashed
    - critical
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 649
    functionName: pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::EmbeddedSignature(bool hashed, bool critical)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/rnp/src/lib/sig_subpacket.cpp:657,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:658,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:659,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:660,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 662
    functionName: pgp::pkt::sigsub::EmbeddedSignature::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - write
    - size
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 668
    functionName: pgp::pkt::sigsub::EmbeddedSignature::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EmbeddedSignature::check_size(size_t size) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Signature::parse
      Src: /src/rnp/src/lib/sig_subpacket.cpp:675,1
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    - Dst: std::move
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 680
    functionName: pgp::pkt::sigsub::EmbeddedSignature::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Signature::parse
    - std::unique_ptr<Signature>
    - std::move
    - Signature::Signature
    linkageType: ''
    returnType: bool
    signature: bool EmbeddedSignature::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/sig_subpacket.cpp:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 686
    functionName: pgp::pkt::sigsub::EmbeddedSignature::signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Signature
    signature: 'Signature *

      EmbeddedSignature::signature() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/sig_subpacket.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 692
    functionName: pgp::pkt::sigsub::EmbeddedSignature::signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Signature
    signature: 'Signature *

      EmbeddedSignature::signature() noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:697,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:697,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 699
    functionName: pgp::pkt::sigsub::EmbeddedSignature::set_signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - std::unique_ptr<Signature>
    - Signature::Signature
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::set_signature(const Signature &sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:704,1
    - Dst: EmbeddedSignature::EmbeddedSignature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 705
    functionName: pgp::pkt::sigsub::EmbeddedSignature::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - EmbeddedSignature::EmbeddedSignature
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr EmbeddedSignature::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:711,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:711,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 714
    functionName: pgp::pkt::sigsub::IssuerFingerprint::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    - resize
    linkageType: ''
    returnType: void
    signature: void IssuerFingerprint::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 720
    functionName: pgp::pkt::sigsub::IssuerFingerprint::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IssuerFingerprint::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 728
    functionName: pgp::pkt::sigsub::IssuerFingerprint::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - pgp::Fingerprint::Fingerprint
    linkageType: ''
    returnType: bool
    signature: bool IssuerFingerprint::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:733,1
    - Dst: IssuerFingerprint::IssuerFingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 734
    functionName: pgp::pkt::sigsub::IssuerFingerprint::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - IssuerFingerprint::IssuerFingerprint
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr IssuerFingerprint::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/rnp/src/lib/sig_subpacket.cpp:738,1
    - Dst: List::items::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:738,1
    - Dst: push_back
      Src: /src/rnp/src/lib/sig_subpacket.cpp:740,1
    - Dst: clone
      Src: /src/rnp/src/lib/sig_subpacket.cpp:740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - List
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 742
    functionName: pgp::pkt::sigsub::List::List
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - clone
    - reserve
    - List::items::size
    linkageType: ''
    returnType: void
    signature: void List::List(const List &src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:750,1
    - Dst: reserve
      Src: /src/rnp/src/lib/sig_subpacket.cpp:751,1
    - Dst: List::items::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:751,1
    - Dst: push_back
      Src: /src/rnp/src/lib/sig_subpacket.cpp:753,1
    - Dst: clone
      Src: /src/rnp/src/lib/sig_subpacket.cpp:753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - src
    argTypes:
    - List
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 756
    functionName: '&

      List::operator=(const List &src)'
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - List::items::size
    - reserve
    - clone
    - clear
    linkageType: ''
    returnType: List
    signature: 'List &

      List::operator=(const List &src)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - rawtype
    - hashed
    - critical
    argTypes:
    - uint8_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: pgp::pkt::sigsub::Raw::Raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Raw::Raw(uint8_t rawtype, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: pgp::pkt::sigsub::Raw::Raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void Raw::Raw(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Raw::~Raw()
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Raw::~Raw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: pgp::pkt::sigsub::Raw::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Raw::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: pgp::pkt::sigsub::Raw::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Raw::parse_data(const uint8_t *data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::Raw::check_size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:71,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:72,1
    - Dst: pgp::pkt::sigsub::Raw::parse_data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:75,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 80
    functionName: pgp::pkt::sigsub::Raw::parse
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - assign
    - pgp::pkt::sigsub::Raw::parse_data
    - pgp::pkt::sigsub::Raw::check_size
    linkageType: ''
    returnType: bool
    signature: bool Raw::parse(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/rnp/src/lib/sig_subpacket.cpp:85,1
    - Dst: write_data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: '&

      Raw::write()'
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - empty
    - write_data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      Raw::write()'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:107,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - type
    - critical
    argTypes:
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 124
    functionName: pgp::pkt::sigsub::report_unknown
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: void
    signature: void report_unknown(uint8_t type, bool critical)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:131,1
    - Dst: CreationTime::CreationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:131,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:133,1
    - Dst: ExpirationTime::ExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:133,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:135,1
    - Dst: ExportableCert::ExportableCert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:135,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:137,1
    - Dst: Trust::Trust
      Src: /src/rnp/src/lib/sig_subpacket.cpp:137,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:139,1
    - Dst: RegExp::RegExp
      Src: /src/rnp/src/lib/sig_subpacket.cpp:139,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:141,1
    - Dst: Revocable::Revocable
      Src: /src/rnp/src/lib/sig_subpacket.cpp:141,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:143,1
    - Dst: KeyExpirationTime::KeyExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:143,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:145,1
    - Dst: PreferredSymmetric::PreferredSymmetric
      Src: /src/rnp/src/lib/sig_subpacket.cpp:145,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:147,1
    - Dst: RevocationKey::RevocationKey
      Src: /src/rnp/src/lib/sig_subpacket.cpp:147,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:149,1
    - Dst: IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:149,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:151,1
    - Dst: NotationData::NotationData
      Src: /src/rnp/src/lib/sig_subpacket.cpp:151,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:153,1
    - Dst: PreferredHash::PreferredHash
      Src: /src/rnp/src/lib/sig_subpacket.cpp:153,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:155,1
    - Dst: PreferredCompress::PreferredCompress
      Src: /src/rnp/src/lib/sig_subpacket.cpp:155,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:157,1
    - Dst: KeyserverPrefs::KeyserverPrefs
      Src: /src/rnp/src/lib/sig_subpacket.cpp:157,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:159,1
    - Dst: PreferredKeyserver::PreferredKeyserver
      Src: /src/rnp/src/lib/sig_subpacket.cpp:159,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:161,1
    - Dst: PrimaryUserID::PrimaryUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:161,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:163,1
    - Dst: PolicyURI::PolicyURI
      Src: /src/rnp/src/lib/sig_subpacket.cpp:163,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:165,1
    - Dst: KeyFlags::KeyFlags
      Src: /src/rnp/src/lib/sig_subpacket.cpp:165,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:167,1
    - Dst: SignersUserID::SignersUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:167,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:169,1
    - Dst: RevocationReason::RevocationReason
      Src: /src/rnp/src/lib/sig_subpacket.cpp:169,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:171,1
    - Dst: Features::Features
      Src: /src/rnp/src/lib/sig_subpacket.cpp:171,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:173,1
    - Dst: EmbeddedSignature::EmbeddedSignature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:173,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:175,1
    - Dst: IssuerFingerprint::IssuerFingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:175,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:177,1
    - Dst: PreferredAEAD::PreferredAEAD
      Src: /src/rnp/src/lib/sig_subpacket.cpp:177,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:180,1
    - Dst: PreferredAEADv6::PreferredAEADv6
      Src: /src/rnp/src/lib/sig_subpacket.cpp:180,1
    - Dst: report_unknown
      Src: /src/rnp/src/lib/sig_subpacket.cpp:183,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:184,1
    - Dst: Raw::Raw
      Src: /src/rnp/src/lib/sig_subpacket.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 56
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - uint8_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 186
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 10
    functionsReached:
    - NotationData::NotationData
    - PreferredAEAD::PreferredAEAD
    - ExportableCert::ExportableCert
    - RawPtr
    - IssuerKeyID::IssuerKeyID
    - Raw::Raw
    - Features::Features
    - CreationTime::CreationTime
    - RevocationReason::RevocationReason
    - PreferredHash::PreferredHash
    - PrimaryUserID::PrimaryUserID
    - EmbeddedSignature::EmbeddedSignature
    - PolicyURI::PolicyURI
    - IssuerFingerprint::IssuerFingerprint
    - KeyExpirationTime::KeyExpirationTime
    - RevocationKey::RevocationKey
    - PreferredAEADv6::PreferredAEADv6
    - KeyserverPrefs::KeyserverPrefs
    - Trust::Trust
    - ExpirationTime::ExpirationTime
    - RegExp::RegExp
    - SignersUserID::SignersUserID
    - PreferredSymmetric::PreferredSymmetric
    - Revocable::Revocable
    - report_unknown
    - KeyFlags::KeyFlags
    - PreferredCompress::PreferredCompress
    - PreferredKeyserver::PreferredKeyserver
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(uint8_t type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/lib/sig_subpacket.cpp:191,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 11
    functionsReached:
    - pgp::pkt::sigsub::Raw::create
    - static_cast<uint8_t>
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(Type type, bool hashed, bool critical)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:198,1
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/lib/sig_subpacket.cpp:203,1
    - Dst: auto::type
      Src: /src/rnp/src/lib/sig_subpacket.cpp:204,1
    - Dst: auto::parse
      Src: /src/rnp/src/lib/sig_subpacket.cpp:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - data
    - size
    - hashed
    argTypes:
    - uint8_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 12
    functionsReached:
    - RNP_LOG
    - auto::parse
    - auto::type
    - pgp::pkt::sigsub::Raw::create
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(const uint8_t *data, size_t size, bool hashed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:214,1
    - Dst: Raw::Raw
      Src: /src/rnp/src/lib/sig_subpacket.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: pgp::pkt::sigsub::Raw::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Raw::Raw
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:221,1
    - Dst: write_uint32
      Src: /src/rnp/src/lib/sig_subpacket.cpp:222,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: pgp::pkt::sigsub::Time::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - write_uint32
    - resize
    linkageType: ''
    returnType: void
    signature: void Time::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: pgp::pkt::sigsub::Time::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Time::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_uint32
      Src: /src/rnp/src/lib/sig_subpacket.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: pgp::pkt::sigsub::Time::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - read_uint32
    linkageType: ''
    returnType: bool
    signature: bool Time::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:242,1
    - Dst: CreationTime::CreationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: pgp::pkt::sigsub::CreationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - CreationTime::CreationTime
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr CreationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:249,1
    - Dst: ExpirationTime::ExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: pgp::pkt::sigsub::ExpirationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - ExpirationTime::ExpirationTime
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr ExpirationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:256,1
    - Dst: KeyExpirationTime::KeyExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 257
    functionName: pgp::pkt::sigsub::KeyExpirationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyExpirationTime::KeyExpirationTime
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyExpirationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: pgp::pkt::sigsub::Bool::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Bool::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: pgp::pkt::sigsub::Bool::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Bool::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: pgp::pkt::sigsub::Bool::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Bool::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:284,1
    - Dst: ExportableCert::ExportableCert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: pgp::pkt::sigsub::ExportableCert::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - ExportableCert::ExportableCert
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr ExportableCert::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 294
    functionName: pgp::pkt::sigsub::Trust::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Trust::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: pgp::pkt::sigsub::Trust::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Trust::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: pgp::pkt::sigsub::Trust::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Trust::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:313,1
    - Dst: Trust::Trust
      Src: /src/rnp/src/lib/sig_subpacket.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: pgp::pkt::sigsub::Trust::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - Trust::Trust
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Trust::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    - Dst: begin
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    - Dst: end
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 321
    functionName: pgp::pkt::sigsub::String::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void String::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: pgp::pkt::sigsub::String::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: bool
    signature: bool String::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:334,1
    - Dst: RegExp::RegExp
      Src: /src/rnp/src/lib/sig_subpacket.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 335
    functionName: pgp::pkt::sigsub::RegExp::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - RegExp::RegExp
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RegExp::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:341,1
    - Dst: Revocable::Revocable
      Src: /src/rnp/src/lib/sig_subpacket.cpp:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: pgp::pkt::sigsub::Revocable::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Revocable::Revocable
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Revocable::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: pgp::pkt::sigsub::Preferred::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Preferred::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 356
    functionName: pgp::pkt::sigsub::Preferred::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Preferred::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 363
    functionName: pgp::pkt::sigsub::Preferred::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: bool
    signature: bool Preferred::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:369,1
    - Dst: PreferredSymmetric::PreferredSymmetric
      Src: /src/rnp/src/lib/sig_subpacket.cpp:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: pgp::pkt::sigsub::PreferredSymmetric::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredSymmetric::PreferredSymmetric
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredSymmetric::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:376,1
    - Dst: PreferredHash::PreferredHash
      Src: /src/rnp/src/lib/sig_subpacket.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 377
    functionName: pgp::pkt::sigsub::PreferredHash::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredHash::PreferredHash
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredHash::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:383,1
    - Dst: PreferredCompress::PreferredCompress
      Src: /src/rnp/src/lib/sig_subpacket.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 384
    functionName: pgp::pkt::sigsub::PreferredCompress::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - PreferredCompress::PreferredCompress
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredCompress::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:390,1
    - Dst: PreferredAEAD::PreferredAEAD
      Src: /src/rnp/src/lib/sig_subpacket.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: pgp::pkt::sigsub::PreferredAEAD::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredAEAD::PreferredAEAD
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredAEAD::clone() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:399,1
    - Dst: pgp::pkt::sigsub::Preferred::check_size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 403
    functionName: pgp::pkt::sigsub::PreferredAEADv6::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::pkt::sigsub::Preferred::check_size
    linkageType: ''
    returnType: bool
    signature: bool PreferredAEADv6::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:408,1
    - Dst: PreferredAEADv6::PreferredAEADv6
      Src: /src/rnp/src/lib/sig_subpacket.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 409
    functionName: pgp::pkt::sigsub::PreferredAEADv6::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredAEADv6::PreferredAEADv6
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredAEADv6::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:416,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:416,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 420
    functionName: pgp::pkt::sigsub::RevocationKey::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    - resize
    linkageType: ''
    returnType: void
    signature: void RevocationKey::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: pgp::pkt::sigsub::RevocationKey::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RevocationKey::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_pubkey_alg_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:432,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 435
    functionName: pgp::pkt::sigsub::RevocationKey::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - pgp::Fingerprint::Fingerprint
    - static_cast<pgp_pubkey_alg_t>
    linkageType: ''
    returnType: bool
    signature: bool RevocationKey::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:440,1
    - Dst: RevocationKey::RevocationKey
      Src: /src/rnp/src/lib/sig_subpacket.cpp:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: pgp::pkt::sigsub::RevocationKey::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - RevocationKey::RevocationKey
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RevocationKey::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    - Dst: begin
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    - Dst: end
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 448
    functionName: pgp::pkt::sigsub::IssuerKeyID::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void IssuerKeyID::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 454
    functionName: pgp::pkt::sigsub::IssuerKeyID::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IssuerKeyID::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 461
    functionName: pgp::pkt::sigsub::IssuerKeyID::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    linkageType: ''
    returnType: bool
    signature: bool IssuerKeyID::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:466,1
    - Dst: IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: pgp::pkt::sigsub::IssuerKeyID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - IssuerKeyID::IssuerKeyID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr IssuerKeyID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:473,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:473,1
    - Dst: assert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:474,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:474,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:475,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:476,1
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:477,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: write_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:479,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:479,1
    - Dst: write_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:480,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:480,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (name_.size() <= 0xffff)
      pos:
        line_end: 472
        line_start: 472
        source_file: /src/rnp/src/lib/sig_subpacket.cpp
    - condition: (value_.size() <= 0xffff)
      pos:
        line_end: 473
        line_start: 473
        source_file: /src/rnp/src/lib/sig_subpacket.cpp
    constantsTouched: []
    func_position:
      end: 483
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 483
    functionName: pgp::pkt::sigsub::NotationData::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - write_uint16
    - resize
    - assert
    - size
    linkageType: ''
    returnType: void
    signature: void NotationData::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 489
    functionName: pgp::pkt::sigsub::NotationData::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool NotationData::check_size(size_t size) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:494,1
    - Dst: read_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:495,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:499,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:499,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:500,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 503
    functionName: pgp::pkt::sigsub::NotationData::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - assign
    - read_uint16
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool NotationData::parse_data(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 513
    functionName: pgp::pkt::sigsub::NotationData::set_human_readable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NotationData::set_human_readable(bool value) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:518,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:519,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 523
    functionName: pgp::pkt::sigsub::NotationData::set_name
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - rnp::rnp_exception::rnp_exception
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void NotationData::set_name(const std::string &name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:528,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:529,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 533
    functionName: pgp::pkt::sigsub::NotationData::set_value
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - std::vector<uint8_t>::size
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void NotationData::set_value(const std::vector<uint8_t> &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:538,1
    - Dst: NotationData::NotationData
      Src: /src/rnp/src/lib/sig_subpacket.cpp:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 539
    functionName: pgp::pkt::sigsub::NotationData::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - NotationData::NotationData
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr NotationData::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: pgp::pkt::sigsub::Flags::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Flags::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 553
    functionName: pgp::pkt::sigsub::Flags::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Flags::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 560
    functionName: pgp::pkt::sigsub::Flags::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Flags::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:566,1
    - Dst: KeyserverPrefs::KeyserverPrefs
      Src: /src/rnp/src/lib/sig_subpacket.cpp:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 567
    functionName: pgp::pkt::sigsub::KeyserverPrefs::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyserverPrefs::KeyserverPrefs
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyserverPrefs::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:573,1
    - Dst: PreferredKeyserver::PreferredKeyserver
      Src: /src/rnp/src/lib/sig_subpacket.cpp:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: pgp::pkt::sigsub::PreferredKeyserver::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredKeyserver::PreferredKeyserver
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredKeyserver::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:580,1
    - Dst: PrimaryUserID::PrimaryUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 581
    functionName: pgp::pkt::sigsub::PrimaryUserID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - PrimaryUserID::PrimaryUserID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PrimaryUserID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:587,1
    - Dst: PolicyURI::PolicyURI
      Src: /src/rnp/src/lib/sig_subpacket.cpp:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 588
    functionName: pgp::pkt::sigsub::PolicyURI::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PolicyURI::PolicyURI
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PolicyURI::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:594,1
    - Dst: KeyFlags::KeyFlags
      Src: /src/rnp/src/lib/sig_subpacket.cpp:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 595
    functionName: pgp::pkt::sigsub::KeyFlags::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyFlags::KeyFlags
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyFlags::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:601,1
    - Dst: SignersUserID::SignersUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 602
    functionName: pgp::pkt::sigsub::SignersUserID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - SignersUserID::SignersUserID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr SignersUserID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:608,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:608,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:609,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 611
    functionName: pgp::pkt::sigsub::RevocationReason::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - resize
    - size
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void RevocationReason::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 617
    functionName: pgp::pkt::sigsub::RevocationReason::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RevocationReason::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_revocation_type_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:622,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 625
    functionName: pgp::pkt::sigsub::RevocationReason::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - static_cast<pgp_revocation_type_t>
    linkageType: ''
    returnType: bool
    signature: bool RevocationReason::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:630,1
    - Dst: RevocationReason::RevocationReason
      Src: /src/rnp/src/lib/sig_subpacket.cpp:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 631
    functionName: pgp::pkt::sigsub::RevocationReason::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RevocationReason::RevocationReason
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RevocationReason::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:637,1
    - Dst: Features::Features
      Src: /src/rnp/src/lib/sig_subpacket.cpp:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 638
    functionName: pgp::pkt::sigsub::Features::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - Features::Features
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Features::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:643,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - EmbeddedSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 644
    functionName: pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Signature>
    - Signature::Signature
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::EmbeddedSignature(const EmbeddedSignature &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - hashed
    - critical
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 649
    functionName: pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::EmbeddedSignature(bool hashed, bool critical)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/rnp/src/lib/sig_subpacket.cpp:657,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:658,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:659,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:660,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 662
    functionName: pgp::pkt::sigsub::EmbeddedSignature::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - write
    - size
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 668
    functionName: pgp::pkt::sigsub::EmbeddedSignature::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EmbeddedSignature::check_size(size_t size) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Signature::parse
      Src: /src/rnp/src/lib/sig_subpacket.cpp:675,1
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    - Dst: std::move
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 680
    functionName: pgp::pkt::sigsub::EmbeddedSignature::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Signature::parse
    - std::unique_ptr<Signature>
    - std::move
    - Signature::Signature
    linkageType: ''
    returnType: bool
    signature: bool EmbeddedSignature::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/sig_subpacket.cpp:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 686
    functionName: pgp::pkt::sigsub::EmbeddedSignature::signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Signature
    signature: 'Signature *

      EmbeddedSignature::signature() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/sig_subpacket.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 692
    functionName: pgp::pkt::sigsub::EmbeddedSignature::signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Signature
    signature: 'Signature *

      EmbeddedSignature::signature() noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:697,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:697,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 699
    functionName: pgp::pkt::sigsub::EmbeddedSignature::set_signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - std::unique_ptr<Signature>
    - Signature::Signature
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::set_signature(const Signature &sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:704,1
    - Dst: EmbeddedSignature::EmbeddedSignature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 705
    functionName: pgp::pkt::sigsub::EmbeddedSignature::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - EmbeddedSignature::EmbeddedSignature
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr EmbeddedSignature::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:711,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:711,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 714
    functionName: pgp::pkt::sigsub::IssuerFingerprint::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    - resize
    linkageType: ''
    returnType: void
    signature: void IssuerFingerprint::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 720
    functionName: pgp::pkt::sigsub::IssuerFingerprint::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IssuerFingerprint::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 728
    functionName: pgp::pkt::sigsub::IssuerFingerprint::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - pgp::Fingerprint::Fingerprint
    linkageType: ''
    returnType: bool
    signature: bool IssuerFingerprint::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:733,1
    - Dst: IssuerFingerprint::IssuerFingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 734
    functionName: pgp::pkt::sigsub::IssuerFingerprint::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - IssuerFingerprint::IssuerFingerprint
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr IssuerFingerprint::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/rnp/src/lib/sig_subpacket.cpp:738,1
    - Dst: List::items::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:738,1
    - Dst: push_back
      Src: /src/rnp/src/lib/sig_subpacket.cpp:740,1
    - Dst: clone
      Src: /src/rnp/src/lib/sig_subpacket.cpp:740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - List
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 742
    functionName: pgp::pkt::sigsub::List::List
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - clone
    - reserve
    - List::items::size
    linkageType: ''
    returnType: void
    signature: void List::List(const List &src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:750,1
    - Dst: reserve
      Src: /src/rnp/src/lib/sig_subpacket.cpp:751,1
    - Dst: List::items::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:751,1
    - Dst: push_back
      Src: /src/rnp/src/lib/sig_subpacket.cpp:753,1
    - Dst: clone
      Src: /src/rnp/src/lib/sig_subpacket.cpp:753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - src
    argTypes:
    - List
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 756
    functionName: '&

      List::operator=(const List &src)'
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - List::items::size
    - reserve
    - clone
    - clear
    linkageType: ''
    returnType: List
    signature: 'List &

      List::operator=(const List &src)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - rawtype
    - hashed
    - critical
    argTypes:
    - uint8_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: pgp::pkt::sigsub::Raw::Raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Raw::Raw(uint8_t rawtype, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: pgp::pkt::sigsub::Raw::Raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void Raw::Raw(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Raw::~Raw()
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Raw::~Raw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: pgp::pkt::sigsub::Raw::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Raw::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: pgp::pkt::sigsub::Raw::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Raw::parse_data(const uint8_t *data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::Raw::check_size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:71,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:72,1
    - Dst: pgp::pkt::sigsub::Raw::parse_data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:75,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 80
    functionName: pgp::pkt::sigsub::Raw::parse
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - assign
    - pgp::pkt::sigsub::Raw::parse_data
    - pgp::pkt::sigsub::Raw::check_size
    linkageType: ''
    returnType: bool
    signature: bool Raw::parse(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/rnp/src/lib/sig_subpacket.cpp:85,1
    - Dst: write_data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: '&

      Raw::write()'
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - empty
    - write_data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      Raw::write()'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:107,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - type
    - critical
    argTypes:
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 124
    functionName: pgp::pkt::sigsub::report_unknown
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: void
    signature: void report_unknown(uint8_t type, bool critical)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:131,1
    - Dst: CreationTime::CreationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:131,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:133,1
    - Dst: ExpirationTime::ExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:133,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:135,1
    - Dst: ExportableCert::ExportableCert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:135,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:137,1
    - Dst: Trust::Trust
      Src: /src/rnp/src/lib/sig_subpacket.cpp:137,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:139,1
    - Dst: RegExp::RegExp
      Src: /src/rnp/src/lib/sig_subpacket.cpp:139,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:141,1
    - Dst: Revocable::Revocable
      Src: /src/rnp/src/lib/sig_subpacket.cpp:141,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:143,1
    - Dst: KeyExpirationTime::KeyExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:143,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:145,1
    - Dst: PreferredSymmetric::PreferredSymmetric
      Src: /src/rnp/src/lib/sig_subpacket.cpp:145,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:147,1
    - Dst: RevocationKey::RevocationKey
      Src: /src/rnp/src/lib/sig_subpacket.cpp:147,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:149,1
    - Dst: IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:149,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:151,1
    - Dst: NotationData::NotationData
      Src: /src/rnp/src/lib/sig_subpacket.cpp:151,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:153,1
    - Dst: PreferredHash::PreferredHash
      Src: /src/rnp/src/lib/sig_subpacket.cpp:153,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:155,1
    - Dst: PreferredCompress::PreferredCompress
      Src: /src/rnp/src/lib/sig_subpacket.cpp:155,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:157,1
    - Dst: KeyserverPrefs::KeyserverPrefs
      Src: /src/rnp/src/lib/sig_subpacket.cpp:157,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:159,1
    - Dst: PreferredKeyserver::PreferredKeyserver
      Src: /src/rnp/src/lib/sig_subpacket.cpp:159,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:161,1
    - Dst: PrimaryUserID::PrimaryUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:161,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:163,1
    - Dst: PolicyURI::PolicyURI
      Src: /src/rnp/src/lib/sig_subpacket.cpp:163,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:165,1
    - Dst: KeyFlags::KeyFlags
      Src: /src/rnp/src/lib/sig_subpacket.cpp:165,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:167,1
    - Dst: SignersUserID::SignersUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:167,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:169,1
    - Dst: RevocationReason::RevocationReason
      Src: /src/rnp/src/lib/sig_subpacket.cpp:169,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:171,1
    - Dst: Features::Features
      Src: /src/rnp/src/lib/sig_subpacket.cpp:171,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:173,1
    - Dst: EmbeddedSignature::EmbeddedSignature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:173,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:175,1
    - Dst: IssuerFingerprint::IssuerFingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:175,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:177,1
    - Dst: PreferredAEAD::PreferredAEAD
      Src: /src/rnp/src/lib/sig_subpacket.cpp:177,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:180,1
    - Dst: PreferredAEADv6::PreferredAEADv6
      Src: /src/rnp/src/lib/sig_subpacket.cpp:180,1
    - Dst: report_unknown
      Src: /src/rnp/src/lib/sig_subpacket.cpp:183,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:184,1
    - Dst: Raw::Raw
      Src: /src/rnp/src/lib/sig_subpacket.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 56
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - uint8_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 186
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 12
    functionsReached:
    - NotationData::NotationData
    - PreferredAEAD::PreferredAEAD
    - ExportableCert::ExportableCert
    - RawPtr
    - IssuerKeyID::IssuerKeyID
    - Raw::Raw
    - Features::Features
    - CreationTime::CreationTime
    - RevocationReason::RevocationReason
    - PreferredHash::PreferredHash
    - PrimaryUserID::PrimaryUserID
    - EmbeddedSignature::EmbeddedSignature
    - PolicyURI::PolicyURI
    - IssuerFingerprint::IssuerFingerprint
    - KeyExpirationTime::KeyExpirationTime
    - RevocationKey::RevocationKey
    - PreferredAEADv6::PreferredAEADv6
    - KeyserverPrefs::KeyserverPrefs
    - Trust::Trust
    - ExpirationTime::ExpirationTime
    - RegExp::RegExp
    - SignersUserID::SignersUserID
    - PreferredSymmetric::PreferredSymmetric
    - Revocable::Revocable
    - report_unknown
    - KeyFlags::KeyFlags
    - PreferredCompress::PreferredCompress
    - PreferredKeyserver::PreferredKeyserver
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(uint8_t type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/lib/sig_subpacket.cpp:191,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 13
    functionsReached:
    - pgp::pkt::sigsub::Raw::create
    - static_cast<uint8_t>
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(Type type, bool hashed, bool critical)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:198,1
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/lib/sig_subpacket.cpp:203,1
    - Dst: auto::type
      Src: /src/rnp/src/lib/sig_subpacket.cpp:204,1
    - Dst: auto::parse
      Src: /src/rnp/src/lib/sig_subpacket.cpp:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - data
    - size
    - hashed
    argTypes:
    - uint8_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 14
    functionsReached:
    - RNP_LOG
    - auto::parse
    - auto::type
    - pgp::pkt::sigsub::Raw::create
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(const uint8_t *data, size_t size, bool hashed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:214,1
    - Dst: Raw::Raw
      Src: /src/rnp/src/lib/sig_subpacket.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: pgp::pkt::sigsub::Raw::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Raw::Raw
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:221,1
    - Dst: write_uint32
      Src: /src/rnp/src/lib/sig_subpacket.cpp:222,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: pgp::pkt::sigsub::Time::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - write_uint32
    - resize
    linkageType: ''
    returnType: void
    signature: void Time::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: pgp::pkt::sigsub::Time::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Time::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_uint32
      Src: /src/rnp/src/lib/sig_subpacket.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: pgp::pkt::sigsub::Time::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - read_uint32
    linkageType: ''
    returnType: bool
    signature: bool Time::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:242,1
    - Dst: CreationTime::CreationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: pgp::pkt::sigsub::CreationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - CreationTime::CreationTime
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr CreationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:249,1
    - Dst: ExpirationTime::ExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: pgp::pkt::sigsub::ExpirationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - ExpirationTime::ExpirationTime
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr ExpirationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:256,1
    - Dst: KeyExpirationTime::KeyExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 257
    functionName: pgp::pkt::sigsub::KeyExpirationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyExpirationTime::KeyExpirationTime
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyExpirationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: pgp::pkt::sigsub::Bool::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Bool::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: pgp::pkt::sigsub::Bool::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Bool::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: pgp::pkt::sigsub::Bool::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Bool::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:284,1
    - Dst: ExportableCert::ExportableCert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: pgp::pkt::sigsub::ExportableCert::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - ExportableCert::ExportableCert
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr ExportableCert::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 294
    functionName: pgp::pkt::sigsub::Trust::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Trust::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: pgp::pkt::sigsub::Trust::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Trust::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: pgp::pkt::sigsub::Trust::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Trust::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:313,1
    - Dst: Trust::Trust
      Src: /src/rnp/src/lib/sig_subpacket.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: pgp::pkt::sigsub::Trust::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - Trust::Trust
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Trust::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    - Dst: begin
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    - Dst: end
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 321
    functionName: pgp::pkt::sigsub::String::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void String::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: pgp::pkt::sigsub::String::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: bool
    signature: bool String::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:334,1
    - Dst: RegExp::RegExp
      Src: /src/rnp/src/lib/sig_subpacket.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 335
    functionName: pgp::pkt::sigsub::RegExp::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - RegExp::RegExp
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RegExp::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:341,1
    - Dst: Revocable::Revocable
      Src: /src/rnp/src/lib/sig_subpacket.cpp:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: pgp::pkt::sigsub::Revocable::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Revocable::Revocable
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Revocable::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: pgp::pkt::sigsub::Preferred::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Preferred::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 356
    functionName: pgp::pkt::sigsub::Preferred::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Preferred::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 363
    functionName: pgp::pkt::sigsub::Preferred::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: bool
    signature: bool Preferred::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:369,1
    - Dst: PreferredSymmetric::PreferredSymmetric
      Src: /src/rnp/src/lib/sig_subpacket.cpp:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: pgp::pkt::sigsub::PreferredSymmetric::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredSymmetric::PreferredSymmetric
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredSymmetric::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:376,1
    - Dst: PreferredHash::PreferredHash
      Src: /src/rnp/src/lib/sig_subpacket.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 377
    functionName: pgp::pkt::sigsub::PreferredHash::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredHash::PreferredHash
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredHash::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:383,1
    - Dst: PreferredCompress::PreferredCompress
      Src: /src/rnp/src/lib/sig_subpacket.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 384
    functionName: pgp::pkt::sigsub::PreferredCompress::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - PreferredCompress::PreferredCompress
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredCompress::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:390,1
    - Dst: PreferredAEAD::PreferredAEAD
      Src: /src/rnp/src/lib/sig_subpacket.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: pgp::pkt::sigsub::PreferredAEAD::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredAEAD::PreferredAEAD
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredAEAD::clone() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:399,1
    - Dst: pgp::pkt::sigsub::Preferred::check_size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 403
    functionName: pgp::pkt::sigsub::PreferredAEADv6::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::pkt::sigsub::Preferred::check_size
    linkageType: ''
    returnType: bool
    signature: bool PreferredAEADv6::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:408,1
    - Dst: PreferredAEADv6::PreferredAEADv6
      Src: /src/rnp/src/lib/sig_subpacket.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 409
    functionName: pgp::pkt::sigsub::PreferredAEADv6::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredAEADv6::PreferredAEADv6
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredAEADv6::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:416,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:416,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 420
    functionName: pgp::pkt::sigsub::RevocationKey::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    - resize
    linkageType: ''
    returnType: void
    signature: void RevocationKey::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: pgp::pkt::sigsub::RevocationKey::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RevocationKey::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_pubkey_alg_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:432,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 435
    functionName: pgp::pkt::sigsub::RevocationKey::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - pgp::Fingerprint::Fingerprint
    - static_cast<pgp_pubkey_alg_t>
    linkageType: ''
    returnType: bool
    signature: bool RevocationKey::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:440,1
    - Dst: RevocationKey::RevocationKey
      Src: /src/rnp/src/lib/sig_subpacket.cpp:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: pgp::pkt::sigsub::RevocationKey::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - RevocationKey::RevocationKey
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RevocationKey::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    - Dst: begin
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    - Dst: end
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 448
    functionName: pgp::pkt::sigsub::IssuerKeyID::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void IssuerKeyID::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 454
    functionName: pgp::pkt::sigsub::IssuerKeyID::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IssuerKeyID::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 461
    functionName: pgp::pkt::sigsub::IssuerKeyID::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    linkageType: ''
    returnType: bool
    signature: bool IssuerKeyID::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:466,1
    - Dst: IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: pgp::pkt::sigsub::IssuerKeyID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - IssuerKeyID::IssuerKeyID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr IssuerKeyID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:473,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:473,1
    - Dst: assert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:474,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:474,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:475,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:476,1
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:477,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: write_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:479,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:479,1
    - Dst: write_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:480,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:480,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (name_.size() <= 0xffff)
      pos:
        line_end: 472
        line_start: 472
        source_file: /src/rnp/src/lib/sig_subpacket.cpp
    - condition: (value_.size() <= 0xffff)
      pos:
        line_end: 473
        line_start: 473
        source_file: /src/rnp/src/lib/sig_subpacket.cpp
    constantsTouched: []
    func_position:
      end: 483
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 483
    functionName: pgp::pkt::sigsub::NotationData::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - write_uint16
    - resize
    - assert
    - size
    linkageType: ''
    returnType: void
    signature: void NotationData::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 489
    functionName: pgp::pkt::sigsub::NotationData::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool NotationData::check_size(size_t size) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:494,1
    - Dst: read_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:495,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:499,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:499,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:500,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 503
    functionName: pgp::pkt::sigsub::NotationData::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - assign
    - read_uint16
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool NotationData::parse_data(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 513
    functionName: pgp::pkt::sigsub::NotationData::set_human_readable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NotationData::set_human_readable(bool value) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:518,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:519,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 523
    functionName: pgp::pkt::sigsub::NotationData::set_name
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - rnp::rnp_exception::rnp_exception
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void NotationData::set_name(const std::string &name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:528,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:529,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 533
    functionName: pgp::pkt::sigsub::NotationData::set_value
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - std::vector<uint8_t>::size
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void NotationData::set_value(const std::vector<uint8_t> &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:538,1
    - Dst: NotationData::NotationData
      Src: /src/rnp/src/lib/sig_subpacket.cpp:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 539
    functionName: pgp::pkt::sigsub::NotationData::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - NotationData::NotationData
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr NotationData::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: pgp::pkt::sigsub::Flags::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Flags::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 553
    functionName: pgp::pkt::sigsub::Flags::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Flags::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 560
    functionName: pgp::pkt::sigsub::Flags::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Flags::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:566,1
    - Dst: KeyserverPrefs::KeyserverPrefs
      Src: /src/rnp/src/lib/sig_subpacket.cpp:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 567
    functionName: pgp::pkt::sigsub::KeyserverPrefs::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyserverPrefs::KeyserverPrefs
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyserverPrefs::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:573,1
    - Dst: PreferredKeyserver::PreferredKeyserver
      Src: /src/rnp/src/lib/sig_subpacket.cpp:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: pgp::pkt::sigsub::PreferredKeyserver::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredKeyserver::PreferredKeyserver
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredKeyserver::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:580,1
    - Dst: PrimaryUserID::PrimaryUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 581
    functionName: pgp::pkt::sigsub::PrimaryUserID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - PrimaryUserID::PrimaryUserID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PrimaryUserID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:587,1
    - Dst: PolicyURI::PolicyURI
      Src: /src/rnp/src/lib/sig_subpacket.cpp:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 588
    functionName: pgp::pkt::sigsub::PolicyURI::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PolicyURI::PolicyURI
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PolicyURI::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:594,1
    - Dst: KeyFlags::KeyFlags
      Src: /src/rnp/src/lib/sig_subpacket.cpp:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 595
    functionName: pgp::pkt::sigsub::KeyFlags::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyFlags::KeyFlags
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyFlags::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:601,1
    - Dst: SignersUserID::SignersUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 602
    functionName: pgp::pkt::sigsub::SignersUserID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - SignersUserID::SignersUserID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr SignersUserID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:608,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:608,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:609,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 611
    functionName: pgp::pkt::sigsub::RevocationReason::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - resize
    - size
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void RevocationReason::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 617
    functionName: pgp::pkt::sigsub::RevocationReason::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RevocationReason::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_revocation_type_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:622,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 625
    functionName: pgp::pkt::sigsub::RevocationReason::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - static_cast<pgp_revocation_type_t>
    linkageType: ''
    returnType: bool
    signature: bool RevocationReason::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:630,1
    - Dst: RevocationReason::RevocationReason
      Src: /src/rnp/src/lib/sig_subpacket.cpp:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 631
    functionName: pgp::pkt::sigsub::RevocationReason::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RevocationReason::RevocationReason
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RevocationReason::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:637,1
    - Dst: Features::Features
      Src: /src/rnp/src/lib/sig_subpacket.cpp:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 638
    functionName: pgp::pkt::sigsub::Features::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - Features::Features
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Features::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:643,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - EmbeddedSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 644
    functionName: pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Signature>
    - Signature::Signature
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::EmbeddedSignature(const EmbeddedSignature &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - hashed
    - critical
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 649
    functionName: pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::EmbeddedSignature(bool hashed, bool critical)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/rnp/src/lib/sig_subpacket.cpp:657,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:658,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:659,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:660,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 662
    functionName: pgp::pkt::sigsub::EmbeddedSignature::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - write
    - size
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 668
    functionName: pgp::pkt::sigsub::EmbeddedSignature::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EmbeddedSignature::check_size(size_t size) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Signature::parse
      Src: /src/rnp/src/lib/sig_subpacket.cpp:675,1
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    - Dst: std::move
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 680
    functionName: pgp::pkt::sigsub::EmbeddedSignature::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Signature::parse
    - std::unique_ptr<Signature>
    - std::move
    - Signature::Signature
    linkageType: ''
    returnType: bool
    signature: bool EmbeddedSignature::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/sig_subpacket.cpp:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 686
    functionName: pgp::pkt::sigsub::EmbeddedSignature::signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Signature
    signature: 'Signature *

      EmbeddedSignature::signature() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/sig_subpacket.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 692
    functionName: pgp::pkt::sigsub::EmbeddedSignature::signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Signature
    signature: 'Signature *

      EmbeddedSignature::signature() noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:697,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:697,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 699
    functionName: pgp::pkt::sigsub::EmbeddedSignature::set_signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - std::unique_ptr<Signature>
    - Signature::Signature
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::set_signature(const Signature &sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:704,1
    - Dst: EmbeddedSignature::EmbeddedSignature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 705
    functionName: pgp::pkt::sigsub::EmbeddedSignature::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - EmbeddedSignature::EmbeddedSignature
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr EmbeddedSignature::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:711,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:711,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 714
    functionName: pgp::pkt::sigsub::IssuerFingerprint::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    - resize
    linkageType: ''
    returnType: void
    signature: void IssuerFingerprint::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 720
    functionName: pgp::pkt::sigsub::IssuerFingerprint::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IssuerFingerprint::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 728
    functionName: pgp::pkt::sigsub::IssuerFingerprint::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - pgp::Fingerprint::Fingerprint
    linkageType: ''
    returnType: bool
    signature: bool IssuerFingerprint::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:733,1
    - Dst: IssuerFingerprint::IssuerFingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 734
    functionName: pgp::pkt::sigsub::IssuerFingerprint::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - IssuerFingerprint::IssuerFingerprint
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr IssuerFingerprint::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/rnp/src/lib/sig_subpacket.cpp:738,1
    - Dst: List::items::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:738,1
    - Dst: push_back
      Src: /src/rnp/src/lib/sig_subpacket.cpp:740,1
    - Dst: clone
      Src: /src/rnp/src/lib/sig_subpacket.cpp:740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - List
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 742
    functionName: pgp::pkt::sigsub::List::List
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - clone
    - reserve
    - List::items::size
    linkageType: ''
    returnType: void
    signature: void List::List(const List &src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:750,1
    - Dst: reserve
      Src: /src/rnp/src/lib/sig_subpacket.cpp:751,1
    - Dst: List::items::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:751,1
    - Dst: push_back
      Src: /src/rnp/src/lib/sig_subpacket.cpp:753,1
    - Dst: clone
      Src: /src/rnp/src/lib/sig_subpacket.cpp:753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - src
    argTypes:
    - List
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 756
    functionName: '&

      List::operator=(const List &src)'
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - List::items::size
    - reserve
    - clone
    - clear
    linkageType: ''
    returnType: List
    signature: 'List &

      List::operator=(const List &src)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - rawtype
    - hashed
    - critical
    argTypes:
    - uint8_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: pgp::pkt::sigsub::Raw::Raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Raw::Raw(uint8_t rawtype, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: pgp::pkt::sigsub::Raw::Raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void Raw::Raw(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Raw::~Raw()
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Raw::~Raw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: pgp::pkt::sigsub::Raw::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Raw::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: pgp::pkt::sigsub::Raw::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Raw::parse_data(const uint8_t *data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::Raw::check_size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:71,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:72,1
    - Dst: pgp::pkt::sigsub::Raw::parse_data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:75,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 80
    functionName: pgp::pkt::sigsub::Raw::parse
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - assign
    - pgp::pkt::sigsub::Raw::parse_data
    - pgp::pkt::sigsub::Raw::check_size
    linkageType: ''
    returnType: bool
    signature: bool Raw::parse(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/rnp/src/lib/sig_subpacket.cpp:85,1
    - Dst: write_data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: '&

      Raw::write()'
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - empty
    - write_data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      Raw::write()'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:107,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - type
    - critical
    argTypes:
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 124
    functionName: pgp::pkt::sigsub::report_unknown
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: void
    signature: void report_unknown(uint8_t type, bool critical)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:131,1
    - Dst: CreationTime::CreationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:131,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:133,1
    - Dst: ExpirationTime::ExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:133,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:135,1
    - Dst: ExportableCert::ExportableCert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:135,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:137,1
    - Dst: Trust::Trust
      Src: /src/rnp/src/lib/sig_subpacket.cpp:137,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:139,1
    - Dst: RegExp::RegExp
      Src: /src/rnp/src/lib/sig_subpacket.cpp:139,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:141,1
    - Dst: Revocable::Revocable
      Src: /src/rnp/src/lib/sig_subpacket.cpp:141,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:143,1
    - Dst: KeyExpirationTime::KeyExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:143,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:145,1
    - Dst: PreferredSymmetric::PreferredSymmetric
      Src: /src/rnp/src/lib/sig_subpacket.cpp:145,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:147,1
    - Dst: RevocationKey::RevocationKey
      Src: /src/rnp/src/lib/sig_subpacket.cpp:147,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:149,1
    - Dst: IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:149,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:151,1
    - Dst: NotationData::NotationData
      Src: /src/rnp/src/lib/sig_subpacket.cpp:151,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:153,1
    - Dst: PreferredHash::PreferredHash
      Src: /src/rnp/src/lib/sig_subpacket.cpp:153,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:155,1
    - Dst: PreferredCompress::PreferredCompress
      Src: /src/rnp/src/lib/sig_subpacket.cpp:155,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:157,1
    - Dst: KeyserverPrefs::KeyserverPrefs
      Src: /src/rnp/src/lib/sig_subpacket.cpp:157,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:159,1
    - Dst: PreferredKeyserver::PreferredKeyserver
      Src: /src/rnp/src/lib/sig_subpacket.cpp:159,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:161,1
    - Dst: PrimaryUserID::PrimaryUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:161,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:163,1
    - Dst: PolicyURI::PolicyURI
      Src: /src/rnp/src/lib/sig_subpacket.cpp:163,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:165,1
    - Dst: KeyFlags::KeyFlags
      Src: /src/rnp/src/lib/sig_subpacket.cpp:165,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:167,1
    - Dst: SignersUserID::SignersUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:167,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:169,1
    - Dst: RevocationReason::RevocationReason
      Src: /src/rnp/src/lib/sig_subpacket.cpp:169,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:171,1
    - Dst: Features::Features
      Src: /src/rnp/src/lib/sig_subpacket.cpp:171,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:173,1
    - Dst: EmbeddedSignature::EmbeddedSignature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:173,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:175,1
    - Dst: IssuerFingerprint::IssuerFingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:175,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:177,1
    - Dst: PreferredAEAD::PreferredAEAD
      Src: /src/rnp/src/lib/sig_subpacket.cpp:177,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:180,1
    - Dst: PreferredAEADv6::PreferredAEADv6
      Src: /src/rnp/src/lib/sig_subpacket.cpp:180,1
    - Dst: report_unknown
      Src: /src/rnp/src/lib/sig_subpacket.cpp:183,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:184,1
    - Dst: Raw::Raw
      Src: /src/rnp/src/lib/sig_subpacket.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 56
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - uint8_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 186
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 14
    functionsReached:
    - NotationData::NotationData
    - PreferredAEAD::PreferredAEAD
    - ExportableCert::ExportableCert
    - RawPtr
    - IssuerKeyID::IssuerKeyID
    - Raw::Raw
    - Features::Features
    - CreationTime::CreationTime
    - RevocationReason::RevocationReason
    - PreferredHash::PreferredHash
    - PrimaryUserID::PrimaryUserID
    - EmbeddedSignature::EmbeddedSignature
    - PolicyURI::PolicyURI
    - IssuerFingerprint::IssuerFingerprint
    - KeyExpirationTime::KeyExpirationTime
    - RevocationKey::RevocationKey
    - PreferredAEADv6::PreferredAEADv6
    - KeyserverPrefs::KeyserverPrefs
    - Trust::Trust
    - ExpirationTime::ExpirationTime
    - RegExp::RegExp
    - SignersUserID::SignersUserID
    - PreferredSymmetric::PreferredSymmetric
    - Revocable::Revocable
    - report_unknown
    - KeyFlags::KeyFlags
    - PreferredCompress::PreferredCompress
    - PreferredKeyserver::PreferredKeyserver
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(uint8_t type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/lib/sig_subpacket.cpp:191,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 15
    functionsReached:
    - pgp::pkt::sigsub::Raw::create
    - static_cast<uint8_t>
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(Type type, bool hashed, bool critical)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:198,1
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/lib/sig_subpacket.cpp:203,1
    - Dst: auto::type
      Src: /src/rnp/src/lib/sig_subpacket.cpp:204,1
    - Dst: auto::parse
      Src: /src/rnp/src/lib/sig_subpacket.cpp:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - data
    - size
    - hashed
    argTypes:
    - uint8_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 16
    functionsReached:
    - RNP_LOG
    - auto::parse
    - auto::type
    - pgp::pkt::sigsub::Raw::create
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(const uint8_t *data, size_t size, bool hashed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:214,1
    - Dst: Raw::Raw
      Src: /src/rnp/src/lib/sig_subpacket.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: pgp::pkt::sigsub::Raw::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Raw::Raw
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:221,1
    - Dst: write_uint32
      Src: /src/rnp/src/lib/sig_subpacket.cpp:222,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: pgp::pkt::sigsub::Time::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - write_uint32
    - resize
    linkageType: ''
    returnType: void
    signature: void Time::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: pgp::pkt::sigsub::Time::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Time::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_uint32
      Src: /src/rnp/src/lib/sig_subpacket.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: pgp::pkt::sigsub::Time::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - read_uint32
    linkageType: ''
    returnType: bool
    signature: bool Time::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:242,1
    - Dst: CreationTime::CreationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: pgp::pkt::sigsub::CreationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - CreationTime::CreationTime
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr CreationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:249,1
    - Dst: ExpirationTime::ExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: pgp::pkt::sigsub::ExpirationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - ExpirationTime::ExpirationTime
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr ExpirationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:256,1
    - Dst: KeyExpirationTime::KeyExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 257
    functionName: pgp::pkt::sigsub::KeyExpirationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyExpirationTime::KeyExpirationTime
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyExpirationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: pgp::pkt::sigsub::Bool::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Bool::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: pgp::pkt::sigsub::Bool::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Bool::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: pgp::pkt::sigsub::Bool::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Bool::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:284,1
    - Dst: ExportableCert::ExportableCert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: pgp::pkt::sigsub::ExportableCert::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - ExportableCert::ExportableCert
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr ExportableCert::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 294
    functionName: pgp::pkt::sigsub::Trust::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Trust::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: pgp::pkt::sigsub::Trust::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Trust::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: pgp::pkt::sigsub::Trust::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Trust::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:313,1
    - Dst: Trust::Trust
      Src: /src/rnp/src/lib/sig_subpacket.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: pgp::pkt::sigsub::Trust::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - Trust::Trust
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Trust::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    - Dst: begin
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    - Dst: end
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 321
    functionName: pgp::pkt::sigsub::String::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void String::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: pgp::pkt::sigsub::String::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: bool
    signature: bool String::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:334,1
    - Dst: RegExp::RegExp
      Src: /src/rnp/src/lib/sig_subpacket.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 335
    functionName: pgp::pkt::sigsub::RegExp::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - RegExp::RegExp
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RegExp::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:341,1
    - Dst: Revocable::Revocable
      Src: /src/rnp/src/lib/sig_subpacket.cpp:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: pgp::pkt::sigsub::Revocable::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Revocable::Revocable
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Revocable::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: pgp::pkt::sigsub::Preferred::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Preferred::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 356
    functionName: pgp::pkt::sigsub::Preferred::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Preferred::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 363
    functionName: pgp::pkt::sigsub::Preferred::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: bool
    signature: bool Preferred::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:369,1
    - Dst: PreferredSymmetric::PreferredSymmetric
      Src: /src/rnp/src/lib/sig_subpacket.cpp:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: pgp::pkt::sigsub::PreferredSymmetric::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredSymmetric::PreferredSymmetric
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredSymmetric::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:376,1
    - Dst: PreferredHash::PreferredHash
      Src: /src/rnp/src/lib/sig_subpacket.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 377
    functionName: pgp::pkt::sigsub::PreferredHash::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredHash::PreferredHash
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredHash::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:383,1
    - Dst: PreferredCompress::PreferredCompress
      Src: /src/rnp/src/lib/sig_subpacket.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 384
    functionName: pgp::pkt::sigsub::PreferredCompress::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - PreferredCompress::PreferredCompress
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredCompress::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:390,1
    - Dst: PreferredAEAD::PreferredAEAD
      Src: /src/rnp/src/lib/sig_subpacket.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: pgp::pkt::sigsub::PreferredAEAD::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredAEAD::PreferredAEAD
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredAEAD::clone() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:399,1
    - Dst: pgp::pkt::sigsub::Preferred::check_size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 403
    functionName: pgp::pkt::sigsub::PreferredAEADv6::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::pkt::sigsub::Preferred::check_size
    linkageType: ''
    returnType: bool
    signature: bool PreferredAEADv6::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:408,1
    - Dst: PreferredAEADv6::PreferredAEADv6
      Src: /src/rnp/src/lib/sig_subpacket.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 409
    functionName: pgp::pkt::sigsub::PreferredAEADv6::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredAEADv6::PreferredAEADv6
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredAEADv6::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:416,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:416,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 420
    functionName: pgp::pkt::sigsub::RevocationKey::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    - resize
    linkageType: ''
    returnType: void
    signature: void RevocationKey::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: pgp::pkt::sigsub::RevocationKey::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RevocationKey::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_pubkey_alg_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:432,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 435
    functionName: pgp::pkt::sigsub::RevocationKey::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - pgp::Fingerprint::Fingerprint
    - static_cast<pgp_pubkey_alg_t>
    linkageType: ''
    returnType: bool
    signature: bool RevocationKey::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:440,1
    - Dst: RevocationKey::RevocationKey
      Src: /src/rnp/src/lib/sig_subpacket.cpp:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: pgp::pkt::sigsub::RevocationKey::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - RevocationKey::RevocationKey
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RevocationKey::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    - Dst: begin
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    - Dst: end
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 448
    functionName: pgp::pkt::sigsub::IssuerKeyID::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void IssuerKeyID::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 454
    functionName: pgp::pkt::sigsub::IssuerKeyID::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IssuerKeyID::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 461
    functionName: pgp::pkt::sigsub::IssuerKeyID::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    linkageType: ''
    returnType: bool
    signature: bool IssuerKeyID::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:466,1
    - Dst: IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: pgp::pkt::sigsub::IssuerKeyID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - IssuerKeyID::IssuerKeyID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr IssuerKeyID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:473,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:473,1
    - Dst: assert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:474,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:474,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:475,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:476,1
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:477,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: write_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:479,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:479,1
    - Dst: write_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:480,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:480,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (name_.size() <= 0xffff)
      pos:
        line_end: 472
        line_start: 472
        source_file: /src/rnp/src/lib/sig_subpacket.cpp
    - condition: (value_.size() <= 0xffff)
      pos:
        line_end: 473
        line_start: 473
        source_file: /src/rnp/src/lib/sig_subpacket.cpp
    constantsTouched: []
    func_position:
      end: 483
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 483
    functionName: pgp::pkt::sigsub::NotationData::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - write_uint16
    - resize
    - assert
    - size
    linkageType: ''
    returnType: void
    signature: void NotationData::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 489
    functionName: pgp::pkt::sigsub::NotationData::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool NotationData::check_size(size_t size) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:494,1
    - Dst: read_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:495,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:499,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:499,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:500,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 503
    functionName: pgp::pkt::sigsub::NotationData::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - assign
    - read_uint16
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool NotationData::parse_data(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 513
    functionName: pgp::pkt::sigsub::NotationData::set_human_readable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NotationData::set_human_readable(bool value) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:518,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:519,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 523
    functionName: pgp::pkt::sigsub::NotationData::set_name
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - rnp::rnp_exception::rnp_exception
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void NotationData::set_name(const std::string &name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:528,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:529,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 533
    functionName: pgp::pkt::sigsub::NotationData::set_value
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - std::vector<uint8_t>::size
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void NotationData::set_value(const std::vector<uint8_t> &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:538,1
    - Dst: NotationData::NotationData
      Src: /src/rnp/src/lib/sig_subpacket.cpp:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 539
    functionName: pgp::pkt::sigsub::NotationData::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - NotationData::NotationData
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr NotationData::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: pgp::pkt::sigsub::Flags::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Flags::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 553
    functionName: pgp::pkt::sigsub::Flags::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Flags::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 560
    functionName: pgp::pkt::sigsub::Flags::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Flags::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:566,1
    - Dst: KeyserverPrefs::KeyserverPrefs
      Src: /src/rnp/src/lib/sig_subpacket.cpp:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 567
    functionName: pgp::pkt::sigsub::KeyserverPrefs::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyserverPrefs::KeyserverPrefs
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyserverPrefs::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:573,1
    - Dst: PreferredKeyserver::PreferredKeyserver
      Src: /src/rnp/src/lib/sig_subpacket.cpp:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: pgp::pkt::sigsub::PreferredKeyserver::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredKeyserver::PreferredKeyserver
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredKeyserver::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:580,1
    - Dst: PrimaryUserID::PrimaryUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 581
    functionName: pgp::pkt::sigsub::PrimaryUserID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - PrimaryUserID::PrimaryUserID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PrimaryUserID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:587,1
    - Dst: PolicyURI::PolicyURI
      Src: /src/rnp/src/lib/sig_subpacket.cpp:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 588
    functionName: pgp::pkt::sigsub::PolicyURI::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PolicyURI::PolicyURI
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PolicyURI::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:594,1
    - Dst: KeyFlags::KeyFlags
      Src: /src/rnp/src/lib/sig_subpacket.cpp:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 595
    functionName: pgp::pkt::sigsub::KeyFlags::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyFlags::KeyFlags
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyFlags::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:601,1
    - Dst: SignersUserID::SignersUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 602
    functionName: pgp::pkt::sigsub::SignersUserID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - SignersUserID::SignersUserID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr SignersUserID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:608,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:608,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:609,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 611
    functionName: pgp::pkt::sigsub::RevocationReason::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - resize
    - size
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void RevocationReason::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 617
    functionName: pgp::pkt::sigsub::RevocationReason::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RevocationReason::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_revocation_type_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:622,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 625
    functionName: pgp::pkt::sigsub::RevocationReason::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - static_cast<pgp_revocation_type_t>
    linkageType: ''
    returnType: bool
    signature: bool RevocationReason::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:630,1
    - Dst: RevocationReason::RevocationReason
      Src: /src/rnp/src/lib/sig_subpacket.cpp:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 631
    functionName: pgp::pkt::sigsub::RevocationReason::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RevocationReason::RevocationReason
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RevocationReason::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:637,1
    - Dst: Features::Features
      Src: /src/rnp/src/lib/sig_subpacket.cpp:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 638
    functionName: pgp::pkt::sigsub::Features::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - Features::Features
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Features::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:643,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - EmbeddedSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 644
    functionName: pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Signature>
    - Signature::Signature
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::EmbeddedSignature(const EmbeddedSignature &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - hashed
    - critical
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 649
    functionName: pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::EmbeddedSignature(bool hashed, bool critical)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/rnp/src/lib/sig_subpacket.cpp:657,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:658,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:659,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:660,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 662
    functionName: pgp::pkt::sigsub::EmbeddedSignature::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - write
    - size
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 668
    functionName: pgp::pkt::sigsub::EmbeddedSignature::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EmbeddedSignature::check_size(size_t size) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Signature::parse
      Src: /src/rnp/src/lib/sig_subpacket.cpp:675,1
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    - Dst: std::move
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 680
    functionName: pgp::pkt::sigsub::EmbeddedSignature::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Signature::parse
    - std::unique_ptr<Signature>
    - std::move
    - Signature::Signature
    linkageType: ''
    returnType: bool
    signature: bool EmbeddedSignature::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/sig_subpacket.cpp:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 686
    functionName: pgp::pkt::sigsub::EmbeddedSignature::signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Signature
    signature: 'Signature *

      EmbeddedSignature::signature() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/sig_subpacket.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 692
    functionName: pgp::pkt::sigsub::EmbeddedSignature::signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Signature
    signature: 'Signature *

      EmbeddedSignature::signature() noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:697,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:697,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 699
    functionName: pgp::pkt::sigsub::EmbeddedSignature::set_signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - std::unique_ptr<Signature>
    - Signature::Signature
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::set_signature(const Signature &sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:704,1
    - Dst: EmbeddedSignature::EmbeddedSignature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 705
    functionName: pgp::pkt::sigsub::EmbeddedSignature::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - EmbeddedSignature::EmbeddedSignature
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr EmbeddedSignature::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:711,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:711,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 714
    functionName: pgp::pkt::sigsub::IssuerFingerprint::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    - resize
    linkageType: ''
    returnType: void
    signature: void IssuerFingerprint::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 720
    functionName: pgp::pkt::sigsub::IssuerFingerprint::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IssuerFingerprint::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 728
    functionName: pgp::pkt::sigsub::IssuerFingerprint::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - pgp::Fingerprint::Fingerprint
    linkageType: ''
    returnType: bool
    signature: bool IssuerFingerprint::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:733,1
    - Dst: IssuerFingerprint::IssuerFingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 734
    functionName: pgp::pkt::sigsub::IssuerFingerprint::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - IssuerFingerprint::IssuerFingerprint
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr IssuerFingerprint::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/rnp/src/lib/sig_subpacket.cpp:738,1
    - Dst: List::items::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:738,1
    - Dst: push_back
      Src: /src/rnp/src/lib/sig_subpacket.cpp:740,1
    - Dst: clone
      Src: /src/rnp/src/lib/sig_subpacket.cpp:740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - List
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 742
    functionName: pgp::pkt::sigsub::List::List
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - clone
    - reserve
    - List::items::size
    linkageType: ''
    returnType: void
    signature: void List::List(const List &src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:750,1
    - Dst: reserve
      Src: /src/rnp/src/lib/sig_subpacket.cpp:751,1
    - Dst: List::items::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:751,1
    - Dst: push_back
      Src: /src/rnp/src/lib/sig_subpacket.cpp:753,1
    - Dst: clone
      Src: /src/rnp/src/lib/sig_subpacket.cpp:753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - src
    argTypes:
    - List
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 756
    functionName: '&

      List::operator=(const List &src)'
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - List::items::size
    - reserve
    - clone
    - clear
    linkageType: ''
    returnType: List
    signature: 'List &

      List::operator=(const List &src)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - rawtype
    - hashed
    - critical
    argTypes:
    - uint8_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: pgp::pkt::sigsub::Raw::Raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Raw::Raw(uint8_t rawtype, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: pgp::pkt::sigsub::Raw::Raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void Raw::Raw(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Raw::~Raw()
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Raw::~Raw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: pgp::pkt::sigsub::Raw::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Raw::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: pgp::pkt::sigsub::Raw::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Raw::parse_data(const uint8_t *data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::Raw::check_size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:71,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:72,1
    - Dst: pgp::pkt::sigsub::Raw::parse_data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:75,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 80
    functionName: pgp::pkt::sigsub::Raw::parse
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - assign
    - pgp::pkt::sigsub::Raw::parse_data
    - pgp::pkt::sigsub::Raw::check_size
    linkageType: ''
    returnType: bool
    signature: bool Raw::parse(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/rnp/src/lib/sig_subpacket.cpp:85,1
    - Dst: write_data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: '&

      Raw::write()'
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - empty
    - write_data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      Raw::write()'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:107,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - type
    - critical
    argTypes:
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 124
    functionName: pgp::pkt::sigsub::report_unknown
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: void
    signature: void report_unknown(uint8_t type, bool critical)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:131,1
    - Dst: CreationTime::CreationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:131,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:133,1
    - Dst: ExpirationTime::ExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:133,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:135,1
    - Dst: ExportableCert::ExportableCert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:135,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:137,1
    - Dst: Trust::Trust
      Src: /src/rnp/src/lib/sig_subpacket.cpp:137,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:139,1
    - Dst: RegExp::RegExp
      Src: /src/rnp/src/lib/sig_subpacket.cpp:139,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:141,1
    - Dst: Revocable::Revocable
      Src: /src/rnp/src/lib/sig_subpacket.cpp:141,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:143,1
    - Dst: KeyExpirationTime::KeyExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:143,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:145,1
    - Dst: PreferredSymmetric::PreferredSymmetric
      Src: /src/rnp/src/lib/sig_subpacket.cpp:145,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:147,1
    - Dst: RevocationKey::RevocationKey
      Src: /src/rnp/src/lib/sig_subpacket.cpp:147,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:149,1
    - Dst: IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:149,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:151,1
    - Dst: NotationData::NotationData
      Src: /src/rnp/src/lib/sig_subpacket.cpp:151,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:153,1
    - Dst: PreferredHash::PreferredHash
      Src: /src/rnp/src/lib/sig_subpacket.cpp:153,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:155,1
    - Dst: PreferredCompress::PreferredCompress
      Src: /src/rnp/src/lib/sig_subpacket.cpp:155,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:157,1
    - Dst: KeyserverPrefs::KeyserverPrefs
      Src: /src/rnp/src/lib/sig_subpacket.cpp:157,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:159,1
    - Dst: PreferredKeyserver::PreferredKeyserver
      Src: /src/rnp/src/lib/sig_subpacket.cpp:159,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:161,1
    - Dst: PrimaryUserID::PrimaryUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:161,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:163,1
    - Dst: PolicyURI::PolicyURI
      Src: /src/rnp/src/lib/sig_subpacket.cpp:163,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:165,1
    - Dst: KeyFlags::KeyFlags
      Src: /src/rnp/src/lib/sig_subpacket.cpp:165,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:167,1
    - Dst: SignersUserID::SignersUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:167,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:169,1
    - Dst: RevocationReason::RevocationReason
      Src: /src/rnp/src/lib/sig_subpacket.cpp:169,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:171,1
    - Dst: Features::Features
      Src: /src/rnp/src/lib/sig_subpacket.cpp:171,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:173,1
    - Dst: EmbeddedSignature::EmbeddedSignature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:173,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:175,1
    - Dst: IssuerFingerprint::IssuerFingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:175,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:177,1
    - Dst: PreferredAEAD::PreferredAEAD
      Src: /src/rnp/src/lib/sig_subpacket.cpp:177,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:180,1
    - Dst: PreferredAEADv6::PreferredAEADv6
      Src: /src/rnp/src/lib/sig_subpacket.cpp:180,1
    - Dst: report_unknown
      Src: /src/rnp/src/lib/sig_subpacket.cpp:183,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:184,1
    - Dst: Raw::Raw
      Src: /src/rnp/src/lib/sig_subpacket.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 56
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - uint8_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 186
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 16
    functionsReached:
    - NotationData::NotationData
    - PreferredAEAD::PreferredAEAD
    - ExportableCert::ExportableCert
    - RawPtr
    - IssuerKeyID::IssuerKeyID
    - Raw::Raw
    - Features::Features
    - CreationTime::CreationTime
    - RevocationReason::RevocationReason
    - PreferredHash::PreferredHash
    - PrimaryUserID::PrimaryUserID
    - EmbeddedSignature::EmbeddedSignature
    - PolicyURI::PolicyURI
    - IssuerFingerprint::IssuerFingerprint
    - KeyExpirationTime::KeyExpirationTime
    - RevocationKey::RevocationKey
    - PreferredAEADv6::PreferredAEADv6
    - KeyserverPrefs::KeyserverPrefs
    - Trust::Trust
    - ExpirationTime::ExpirationTime
    - RegExp::RegExp
    - SignersUserID::SignersUserID
    - PreferredSymmetric::PreferredSymmetric
    - Revocable::Revocable
    - report_unknown
    - KeyFlags::KeyFlags
    - PreferredCompress::PreferredCompress
    - PreferredKeyserver::PreferredKeyserver
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(uint8_t type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/lib/sig_subpacket.cpp:191,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 17
    functionsReached:
    - pgp::pkt::sigsub::Raw::create
    - static_cast<uint8_t>
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(Type type, bool hashed, bool critical)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:198,1
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/lib/sig_subpacket.cpp:203,1
    - Dst: auto::type
      Src: /src/rnp/src/lib/sig_subpacket.cpp:204,1
    - Dst: auto::parse
      Src: /src/rnp/src/lib/sig_subpacket.cpp:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - data
    - size
    - hashed
    argTypes:
    - uint8_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 18
    functionsReached:
    - RNP_LOG
    - auto::parse
    - auto::type
    - pgp::pkt::sigsub::Raw::create
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(const uint8_t *data, size_t size, bool hashed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:214,1
    - Dst: Raw::Raw
      Src: /src/rnp/src/lib/sig_subpacket.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: pgp::pkt::sigsub::Raw::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Raw::Raw
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:221,1
    - Dst: write_uint32
      Src: /src/rnp/src/lib/sig_subpacket.cpp:222,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: pgp::pkt::sigsub::Time::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - write_uint32
    - resize
    linkageType: ''
    returnType: void
    signature: void Time::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: pgp::pkt::sigsub::Time::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Time::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_uint32
      Src: /src/rnp/src/lib/sig_subpacket.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: pgp::pkt::sigsub::Time::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - read_uint32
    linkageType: ''
    returnType: bool
    signature: bool Time::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:242,1
    - Dst: CreationTime::CreationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: pgp::pkt::sigsub::CreationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - CreationTime::CreationTime
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr CreationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:249,1
    - Dst: ExpirationTime::ExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: pgp::pkt::sigsub::ExpirationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - ExpirationTime::ExpirationTime
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr ExpirationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:256,1
    - Dst: KeyExpirationTime::KeyExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 257
    functionName: pgp::pkt::sigsub::KeyExpirationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyExpirationTime::KeyExpirationTime
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyExpirationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: pgp::pkt::sigsub::Bool::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Bool::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: pgp::pkt::sigsub::Bool::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Bool::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: pgp::pkt::sigsub::Bool::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Bool::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:284,1
    - Dst: ExportableCert::ExportableCert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: pgp::pkt::sigsub::ExportableCert::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - ExportableCert::ExportableCert
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr ExportableCert::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 294
    functionName: pgp::pkt::sigsub::Trust::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Trust::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: pgp::pkt::sigsub::Trust::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Trust::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: pgp::pkt::sigsub::Trust::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Trust::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:313,1
    - Dst: Trust::Trust
      Src: /src/rnp/src/lib/sig_subpacket.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: pgp::pkt::sigsub::Trust::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - Trust::Trust
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Trust::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    - Dst: begin
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    - Dst: end
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 321
    functionName: pgp::pkt::sigsub::String::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void String::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: pgp::pkt::sigsub::String::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: bool
    signature: bool String::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:334,1
    - Dst: RegExp::RegExp
      Src: /src/rnp/src/lib/sig_subpacket.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 335
    functionName: pgp::pkt::sigsub::RegExp::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - RegExp::RegExp
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RegExp::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:341,1
    - Dst: Revocable::Revocable
      Src: /src/rnp/src/lib/sig_subpacket.cpp:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: pgp::pkt::sigsub::Revocable::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Revocable::Revocable
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Revocable::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: pgp::pkt::sigsub::Preferred::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Preferred::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 356
    functionName: pgp::pkt::sigsub::Preferred::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Preferred::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 363
    functionName: pgp::pkt::sigsub::Preferred::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: bool
    signature: bool Preferred::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:369,1
    - Dst: PreferredSymmetric::PreferredSymmetric
      Src: /src/rnp/src/lib/sig_subpacket.cpp:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: pgp::pkt::sigsub::PreferredSymmetric::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredSymmetric::PreferredSymmetric
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredSymmetric::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:376,1
    - Dst: PreferredHash::PreferredHash
      Src: /src/rnp/src/lib/sig_subpacket.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 377
    functionName: pgp::pkt::sigsub::PreferredHash::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredHash::PreferredHash
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredHash::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:383,1
    - Dst: PreferredCompress::PreferredCompress
      Src: /src/rnp/src/lib/sig_subpacket.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 384
    functionName: pgp::pkt::sigsub::PreferredCompress::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - PreferredCompress::PreferredCompress
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredCompress::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:390,1
    - Dst: PreferredAEAD::PreferredAEAD
      Src: /src/rnp/src/lib/sig_subpacket.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: pgp::pkt::sigsub::PreferredAEAD::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredAEAD::PreferredAEAD
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredAEAD::clone() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:399,1
    - Dst: pgp::pkt::sigsub::Preferred::check_size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 403
    functionName: pgp::pkt::sigsub::PreferredAEADv6::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::pkt::sigsub::Preferred::check_size
    linkageType: ''
    returnType: bool
    signature: bool PreferredAEADv6::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:408,1
    - Dst: PreferredAEADv6::PreferredAEADv6
      Src: /src/rnp/src/lib/sig_subpacket.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 409
    functionName: pgp::pkt::sigsub::PreferredAEADv6::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredAEADv6::PreferredAEADv6
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredAEADv6::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:416,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:416,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 420
    functionName: pgp::pkt::sigsub::RevocationKey::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    - resize
    linkageType: ''
    returnType: void
    signature: void RevocationKey::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: pgp::pkt::sigsub::RevocationKey::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RevocationKey::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_pubkey_alg_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:432,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 435
    functionName: pgp::pkt::sigsub::RevocationKey::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - pgp::Fingerprint::Fingerprint
    - static_cast<pgp_pubkey_alg_t>
    linkageType: ''
    returnType: bool
    signature: bool RevocationKey::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:440,1
    - Dst: RevocationKey::RevocationKey
      Src: /src/rnp/src/lib/sig_subpacket.cpp:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: pgp::pkt::sigsub::RevocationKey::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - RevocationKey::RevocationKey
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RevocationKey::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    - Dst: begin
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    - Dst: end
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 448
    functionName: pgp::pkt::sigsub::IssuerKeyID::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void IssuerKeyID::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 454
    functionName: pgp::pkt::sigsub::IssuerKeyID::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IssuerKeyID::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 461
    functionName: pgp::pkt::sigsub::IssuerKeyID::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    linkageType: ''
    returnType: bool
    signature: bool IssuerKeyID::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:466,1
    - Dst: IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: pgp::pkt::sigsub::IssuerKeyID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - IssuerKeyID::IssuerKeyID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr IssuerKeyID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:473,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:473,1
    - Dst: assert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:474,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:474,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:475,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:476,1
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:477,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: write_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:479,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:479,1
    - Dst: write_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:480,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:480,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (name_.size() <= 0xffff)
      pos:
        line_end: 472
        line_start: 472
        source_file: /src/rnp/src/lib/sig_subpacket.cpp
    - condition: (value_.size() <= 0xffff)
      pos:
        line_end: 473
        line_start: 473
        source_file: /src/rnp/src/lib/sig_subpacket.cpp
    constantsTouched: []
    func_position:
      end: 483
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 483
    functionName: pgp::pkt::sigsub::NotationData::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - write_uint16
    - resize
    - assert
    - size
    linkageType: ''
    returnType: void
    signature: void NotationData::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 489
    functionName: pgp::pkt::sigsub::NotationData::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool NotationData::check_size(size_t size) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:494,1
    - Dst: read_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:495,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:499,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:499,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:500,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 503
    functionName: pgp::pkt::sigsub::NotationData::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - assign
    - read_uint16
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool NotationData::parse_data(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 513
    functionName: pgp::pkt::sigsub::NotationData::set_human_readable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NotationData::set_human_readable(bool value) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:518,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:519,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 523
    functionName: pgp::pkt::sigsub::NotationData::set_name
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - rnp::rnp_exception::rnp_exception
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void NotationData::set_name(const std::string &name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:528,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:529,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 533
    functionName: pgp::pkt::sigsub::NotationData::set_value
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - std::vector<uint8_t>::size
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void NotationData::set_value(const std::vector<uint8_t> &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:538,1
    - Dst: NotationData::NotationData
      Src: /src/rnp/src/lib/sig_subpacket.cpp:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 539
    functionName: pgp::pkt::sigsub::NotationData::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - NotationData::NotationData
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr NotationData::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: pgp::pkt::sigsub::Flags::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Flags::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 553
    functionName: pgp::pkt::sigsub::Flags::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Flags::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 560
    functionName: pgp::pkt::sigsub::Flags::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Flags::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:566,1
    - Dst: KeyserverPrefs::KeyserverPrefs
      Src: /src/rnp/src/lib/sig_subpacket.cpp:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 567
    functionName: pgp::pkt::sigsub::KeyserverPrefs::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyserverPrefs::KeyserverPrefs
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyserverPrefs::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:573,1
    - Dst: PreferredKeyserver::PreferredKeyserver
      Src: /src/rnp/src/lib/sig_subpacket.cpp:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: pgp::pkt::sigsub::PreferredKeyserver::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredKeyserver::PreferredKeyserver
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredKeyserver::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:580,1
    - Dst: PrimaryUserID::PrimaryUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 581
    functionName: pgp::pkt::sigsub::PrimaryUserID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - PrimaryUserID::PrimaryUserID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PrimaryUserID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:587,1
    - Dst: PolicyURI::PolicyURI
      Src: /src/rnp/src/lib/sig_subpacket.cpp:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 588
    functionName: pgp::pkt::sigsub::PolicyURI::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PolicyURI::PolicyURI
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PolicyURI::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:594,1
    - Dst: KeyFlags::KeyFlags
      Src: /src/rnp/src/lib/sig_subpacket.cpp:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 595
    functionName: pgp::pkt::sigsub::KeyFlags::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyFlags::KeyFlags
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyFlags::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:601,1
    - Dst: SignersUserID::SignersUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 602
    functionName: pgp::pkt::sigsub::SignersUserID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - SignersUserID::SignersUserID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr SignersUserID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:608,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:608,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:609,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 611
    functionName: pgp::pkt::sigsub::RevocationReason::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - resize
    - size
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void RevocationReason::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 617
    functionName: pgp::pkt::sigsub::RevocationReason::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RevocationReason::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_revocation_type_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:622,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 625
    functionName: pgp::pkt::sigsub::RevocationReason::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - static_cast<pgp_revocation_type_t>
    linkageType: ''
    returnType: bool
    signature: bool RevocationReason::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:630,1
    - Dst: RevocationReason::RevocationReason
      Src: /src/rnp/src/lib/sig_subpacket.cpp:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 631
    functionName: pgp::pkt::sigsub::RevocationReason::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RevocationReason::RevocationReason
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RevocationReason::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:637,1
    - Dst: Features::Features
      Src: /src/rnp/src/lib/sig_subpacket.cpp:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 638
    functionName: pgp::pkt::sigsub::Features::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - Features::Features
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Features::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:643,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - EmbeddedSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 644
    functionName: pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Signature>
    - Signature::Signature
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::EmbeddedSignature(const EmbeddedSignature &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - hashed
    - critical
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 649
    functionName: pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::EmbeddedSignature(bool hashed, bool critical)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/rnp/src/lib/sig_subpacket.cpp:657,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:658,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:659,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:660,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 662
    functionName: pgp::pkt::sigsub::EmbeddedSignature::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - write
    - size
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 668
    functionName: pgp::pkt::sigsub::EmbeddedSignature::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EmbeddedSignature::check_size(size_t size) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Signature::parse
      Src: /src/rnp/src/lib/sig_subpacket.cpp:675,1
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    - Dst: std::move
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 680
    functionName: pgp::pkt::sigsub::EmbeddedSignature::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Signature::parse
    - std::unique_ptr<Signature>
    - std::move
    - Signature::Signature
    linkageType: ''
    returnType: bool
    signature: bool EmbeddedSignature::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/sig_subpacket.cpp:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 686
    functionName: pgp::pkt::sigsub::EmbeddedSignature::signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Signature
    signature: 'Signature *

      EmbeddedSignature::signature() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/sig_subpacket.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 692
    functionName: pgp::pkt::sigsub::EmbeddedSignature::signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Signature
    signature: 'Signature *

      EmbeddedSignature::signature() noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:697,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:697,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 699
    functionName: pgp::pkt::sigsub::EmbeddedSignature::set_signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - std::unique_ptr<Signature>
    - Signature::Signature
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::set_signature(const Signature &sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:704,1
    - Dst: EmbeddedSignature::EmbeddedSignature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 705
    functionName: pgp::pkt::sigsub::EmbeddedSignature::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - EmbeddedSignature::EmbeddedSignature
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr EmbeddedSignature::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:711,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:711,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 714
    functionName: pgp::pkt::sigsub::IssuerFingerprint::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    - resize
    linkageType: ''
    returnType: void
    signature: void IssuerFingerprint::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 720
    functionName: pgp::pkt::sigsub::IssuerFingerprint::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IssuerFingerprint::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 728
    functionName: pgp::pkt::sigsub::IssuerFingerprint::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - pgp::Fingerprint::Fingerprint
    linkageType: ''
    returnType: bool
    signature: bool IssuerFingerprint::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:733,1
    - Dst: IssuerFingerprint::IssuerFingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 734
    functionName: pgp::pkt::sigsub::IssuerFingerprint::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - IssuerFingerprint::IssuerFingerprint
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr IssuerFingerprint::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/rnp/src/lib/sig_subpacket.cpp:738,1
    - Dst: List::items::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:738,1
    - Dst: push_back
      Src: /src/rnp/src/lib/sig_subpacket.cpp:740,1
    - Dst: clone
      Src: /src/rnp/src/lib/sig_subpacket.cpp:740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - List
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 742
    functionName: pgp::pkt::sigsub::List::List
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - clone
    - reserve
    - List::items::size
    linkageType: ''
    returnType: void
    signature: void List::List(const List &src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:750,1
    - Dst: reserve
      Src: /src/rnp/src/lib/sig_subpacket.cpp:751,1
    - Dst: List::items::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:751,1
    - Dst: push_back
      Src: /src/rnp/src/lib/sig_subpacket.cpp:753,1
    - Dst: clone
      Src: /src/rnp/src/lib/sig_subpacket.cpp:753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - src
    argTypes:
    - List
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 756
    functionName: '&

      List::operator=(const List &src)'
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - List::items::size
    - reserve
    - clone
    - clear
    linkageType: ''
    returnType: List
    signature: 'List &

      List::operator=(const List &src)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - rawtype
    - hashed
    - critical
    argTypes:
    - uint8_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: pgp::pkt::sigsub::Raw::Raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Raw::Raw(uint8_t rawtype, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: pgp::pkt::sigsub::Raw::Raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void Raw::Raw(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Raw::~Raw()
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Raw::~Raw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: pgp::pkt::sigsub::Raw::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Raw::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: pgp::pkt::sigsub::Raw::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Raw::parse_data(const uint8_t *data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::Raw::check_size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:71,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:72,1
    - Dst: pgp::pkt::sigsub::Raw::parse_data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:75,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 80
    functionName: pgp::pkt::sigsub::Raw::parse
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - assign
    - pgp::pkt::sigsub::Raw::parse_data
    - pgp::pkt::sigsub::Raw::check_size
    linkageType: ''
    returnType: bool
    signature: bool Raw::parse(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/rnp/src/lib/sig_subpacket.cpp:85,1
    - Dst: write_data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: '&

      Raw::write()'
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - empty
    - write_data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      Raw::write()'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:107,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - type
    - critical
    argTypes:
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 124
    functionName: pgp::pkt::sigsub::report_unknown
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: void
    signature: void report_unknown(uint8_t type, bool critical)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:131,1
    - Dst: CreationTime::CreationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:131,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:133,1
    - Dst: ExpirationTime::ExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:133,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:135,1
    - Dst: ExportableCert::ExportableCert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:135,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:137,1
    - Dst: Trust::Trust
      Src: /src/rnp/src/lib/sig_subpacket.cpp:137,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:139,1
    - Dst: RegExp::RegExp
      Src: /src/rnp/src/lib/sig_subpacket.cpp:139,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:141,1
    - Dst: Revocable::Revocable
      Src: /src/rnp/src/lib/sig_subpacket.cpp:141,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:143,1
    - Dst: KeyExpirationTime::KeyExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:143,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:145,1
    - Dst: PreferredSymmetric::PreferredSymmetric
      Src: /src/rnp/src/lib/sig_subpacket.cpp:145,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:147,1
    - Dst: RevocationKey::RevocationKey
      Src: /src/rnp/src/lib/sig_subpacket.cpp:147,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:149,1
    - Dst: IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:149,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:151,1
    - Dst: NotationData::NotationData
      Src: /src/rnp/src/lib/sig_subpacket.cpp:151,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:153,1
    - Dst: PreferredHash::PreferredHash
      Src: /src/rnp/src/lib/sig_subpacket.cpp:153,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:155,1
    - Dst: PreferredCompress::PreferredCompress
      Src: /src/rnp/src/lib/sig_subpacket.cpp:155,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:157,1
    - Dst: KeyserverPrefs::KeyserverPrefs
      Src: /src/rnp/src/lib/sig_subpacket.cpp:157,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:159,1
    - Dst: PreferredKeyserver::PreferredKeyserver
      Src: /src/rnp/src/lib/sig_subpacket.cpp:159,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:161,1
    - Dst: PrimaryUserID::PrimaryUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:161,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:163,1
    - Dst: PolicyURI::PolicyURI
      Src: /src/rnp/src/lib/sig_subpacket.cpp:163,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:165,1
    - Dst: KeyFlags::KeyFlags
      Src: /src/rnp/src/lib/sig_subpacket.cpp:165,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:167,1
    - Dst: SignersUserID::SignersUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:167,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:169,1
    - Dst: RevocationReason::RevocationReason
      Src: /src/rnp/src/lib/sig_subpacket.cpp:169,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:171,1
    - Dst: Features::Features
      Src: /src/rnp/src/lib/sig_subpacket.cpp:171,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:173,1
    - Dst: EmbeddedSignature::EmbeddedSignature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:173,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:175,1
    - Dst: IssuerFingerprint::IssuerFingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:175,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:177,1
    - Dst: PreferredAEAD::PreferredAEAD
      Src: /src/rnp/src/lib/sig_subpacket.cpp:177,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:180,1
    - Dst: PreferredAEADv6::PreferredAEADv6
      Src: /src/rnp/src/lib/sig_subpacket.cpp:180,1
    - Dst: report_unknown
      Src: /src/rnp/src/lib/sig_subpacket.cpp:183,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:184,1
    - Dst: Raw::Raw
      Src: /src/rnp/src/lib/sig_subpacket.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 56
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - uint8_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 186
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 18
    functionsReached:
    - NotationData::NotationData
    - PreferredAEAD::PreferredAEAD
    - ExportableCert::ExportableCert
    - RawPtr
    - IssuerKeyID::IssuerKeyID
    - Raw::Raw
    - Features::Features
    - CreationTime::CreationTime
    - RevocationReason::RevocationReason
    - PreferredHash::PreferredHash
    - PrimaryUserID::PrimaryUserID
    - EmbeddedSignature::EmbeddedSignature
    - PolicyURI::PolicyURI
    - IssuerFingerprint::IssuerFingerprint
    - KeyExpirationTime::KeyExpirationTime
    - RevocationKey::RevocationKey
    - PreferredAEADv6::PreferredAEADv6
    - KeyserverPrefs::KeyserverPrefs
    - Trust::Trust
    - ExpirationTime::ExpirationTime
    - RegExp::RegExp
    - SignersUserID::SignersUserID
    - PreferredSymmetric::PreferredSymmetric
    - Revocable::Revocable
    - report_unknown
    - KeyFlags::KeyFlags
    - PreferredCompress::PreferredCompress
    - PreferredKeyserver::PreferredKeyserver
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(uint8_t type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/lib/sig_subpacket.cpp:191,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 19
    functionsReached:
    - pgp::pkt::sigsub::Raw::create
    - static_cast<uint8_t>
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(Type type, bool hashed, bool critical)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:198,1
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/lib/sig_subpacket.cpp:203,1
    - Dst: auto::type
      Src: /src/rnp/src/lib/sig_subpacket.cpp:204,1
    - Dst: auto::parse
      Src: /src/rnp/src/lib/sig_subpacket.cpp:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - data
    - size
    - hashed
    argTypes:
    - uint8_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 20
    functionsReached:
    - RNP_LOG
    - auto::parse
    - auto::type
    - pgp::pkt::sigsub::Raw::create
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(const uint8_t *data, size_t size, bool hashed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:214,1
    - Dst: Raw::Raw
      Src: /src/rnp/src/lib/sig_subpacket.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: pgp::pkt::sigsub::Raw::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Raw::Raw
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:221,1
    - Dst: write_uint32
      Src: /src/rnp/src/lib/sig_subpacket.cpp:222,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: pgp::pkt::sigsub::Time::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - write_uint32
    - resize
    linkageType: ''
    returnType: void
    signature: void Time::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: pgp::pkt::sigsub::Time::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Time::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_uint32
      Src: /src/rnp/src/lib/sig_subpacket.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: pgp::pkt::sigsub::Time::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - read_uint32
    linkageType: ''
    returnType: bool
    signature: bool Time::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:242,1
    - Dst: CreationTime::CreationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: pgp::pkt::sigsub::CreationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - CreationTime::CreationTime
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr CreationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:249,1
    - Dst: ExpirationTime::ExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: pgp::pkt::sigsub::ExpirationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - ExpirationTime::ExpirationTime
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr ExpirationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:256,1
    - Dst: KeyExpirationTime::KeyExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 257
    functionName: pgp::pkt::sigsub::KeyExpirationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyExpirationTime::KeyExpirationTime
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyExpirationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: pgp::pkt::sigsub::Bool::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Bool::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: pgp::pkt::sigsub::Bool::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Bool::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: pgp::pkt::sigsub::Bool::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Bool::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:284,1
    - Dst: ExportableCert::ExportableCert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: pgp::pkt::sigsub::ExportableCert::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - ExportableCert::ExportableCert
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr ExportableCert::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 294
    functionName: pgp::pkt::sigsub::Trust::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Trust::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: pgp::pkt::sigsub::Trust::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Trust::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: pgp::pkt::sigsub::Trust::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Trust::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:313,1
    - Dst: Trust::Trust
      Src: /src/rnp/src/lib/sig_subpacket.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: pgp::pkt::sigsub::Trust::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - Trust::Trust
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Trust::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    - Dst: begin
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    - Dst: end
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 321
    functionName: pgp::pkt::sigsub::String::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void String::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: pgp::pkt::sigsub::String::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: bool
    signature: bool String::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:334,1
    - Dst: RegExp::RegExp
      Src: /src/rnp/src/lib/sig_subpacket.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 335
    functionName: pgp::pkt::sigsub::RegExp::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - RegExp::RegExp
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RegExp::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:341,1
    - Dst: Revocable::Revocable
      Src: /src/rnp/src/lib/sig_subpacket.cpp:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: pgp::pkt::sigsub::Revocable::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Revocable::Revocable
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Revocable::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: pgp::pkt::sigsub::Preferred::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Preferred::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 356
    functionName: pgp::pkt::sigsub::Preferred::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Preferred::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 363
    functionName: pgp::pkt::sigsub::Preferred::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: bool
    signature: bool Preferred::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:369,1
    - Dst: PreferredSymmetric::PreferredSymmetric
      Src: /src/rnp/src/lib/sig_subpacket.cpp:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: pgp::pkt::sigsub::PreferredSymmetric::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredSymmetric::PreferredSymmetric
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredSymmetric::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:376,1
    - Dst: PreferredHash::PreferredHash
      Src: /src/rnp/src/lib/sig_subpacket.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 377
    functionName: pgp::pkt::sigsub::PreferredHash::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredHash::PreferredHash
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredHash::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:383,1
    - Dst: PreferredCompress::PreferredCompress
      Src: /src/rnp/src/lib/sig_subpacket.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 384
    functionName: pgp::pkt::sigsub::PreferredCompress::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - PreferredCompress::PreferredCompress
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredCompress::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:390,1
    - Dst: PreferredAEAD::PreferredAEAD
      Src: /src/rnp/src/lib/sig_subpacket.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: pgp::pkt::sigsub::PreferredAEAD::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredAEAD::PreferredAEAD
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredAEAD::clone() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:399,1
    - Dst: pgp::pkt::sigsub::Preferred::check_size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 403
    functionName: pgp::pkt::sigsub::PreferredAEADv6::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::pkt::sigsub::Preferred::check_size
    linkageType: ''
    returnType: bool
    signature: bool PreferredAEADv6::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:408,1
    - Dst: PreferredAEADv6::PreferredAEADv6
      Src: /src/rnp/src/lib/sig_subpacket.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 409
    functionName: pgp::pkt::sigsub::PreferredAEADv6::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredAEADv6::PreferredAEADv6
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredAEADv6::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:416,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:416,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 420
    functionName: pgp::pkt::sigsub::RevocationKey::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    - resize
    linkageType: ''
    returnType: void
    signature: void RevocationKey::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: pgp::pkt::sigsub::RevocationKey::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RevocationKey::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_pubkey_alg_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:432,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 435
    functionName: pgp::pkt::sigsub::RevocationKey::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - pgp::Fingerprint::Fingerprint
    - static_cast<pgp_pubkey_alg_t>
    linkageType: ''
    returnType: bool
    signature: bool RevocationKey::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:440,1
    - Dst: RevocationKey::RevocationKey
      Src: /src/rnp/src/lib/sig_subpacket.cpp:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: pgp::pkt::sigsub::RevocationKey::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - RevocationKey::RevocationKey
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RevocationKey::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    - Dst: begin
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    - Dst: end
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 448
    functionName: pgp::pkt::sigsub::IssuerKeyID::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void IssuerKeyID::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 454
    functionName: pgp::pkt::sigsub::IssuerKeyID::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IssuerKeyID::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 461
    functionName: pgp::pkt::sigsub::IssuerKeyID::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    linkageType: ''
    returnType: bool
    signature: bool IssuerKeyID::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:466,1
    - Dst: IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: pgp::pkt::sigsub::IssuerKeyID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - IssuerKeyID::IssuerKeyID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr IssuerKeyID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:473,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:473,1
    - Dst: assert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:474,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:474,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:475,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:476,1
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:477,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: write_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:479,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:479,1
    - Dst: write_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:480,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:480,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (name_.size() <= 0xffff)
      pos:
        line_end: 472
        line_start: 472
        source_file: /src/rnp/src/lib/sig_subpacket.cpp
    - condition: (value_.size() <= 0xffff)
      pos:
        line_end: 473
        line_start: 473
        source_file: /src/rnp/src/lib/sig_subpacket.cpp
    constantsTouched: []
    func_position:
      end: 483
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 483
    functionName: pgp::pkt::sigsub::NotationData::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - write_uint16
    - resize
    - assert
    - size
    linkageType: ''
    returnType: void
    signature: void NotationData::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 489
    functionName: pgp::pkt::sigsub::NotationData::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool NotationData::check_size(size_t size) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:494,1
    - Dst: read_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:495,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:499,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:499,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:500,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 503
    functionName: pgp::pkt::sigsub::NotationData::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - assign
    - read_uint16
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool NotationData::parse_data(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 513
    functionName: pgp::pkt::sigsub::NotationData::set_human_readable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NotationData::set_human_readable(bool value) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:518,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:519,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 523
    functionName: pgp::pkt::sigsub::NotationData::set_name
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - rnp::rnp_exception::rnp_exception
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void NotationData::set_name(const std::string &name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:528,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:529,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 533
    functionName: pgp::pkt::sigsub::NotationData::set_value
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - std::vector<uint8_t>::size
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void NotationData::set_value(const std::vector<uint8_t> &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:538,1
    - Dst: NotationData::NotationData
      Src: /src/rnp/src/lib/sig_subpacket.cpp:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 539
    functionName: pgp::pkt::sigsub::NotationData::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - NotationData::NotationData
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr NotationData::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: pgp::pkt::sigsub::Flags::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Flags::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 553
    functionName: pgp::pkt::sigsub::Flags::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Flags::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 560
    functionName: pgp::pkt::sigsub::Flags::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Flags::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:566,1
    - Dst: KeyserverPrefs::KeyserverPrefs
      Src: /src/rnp/src/lib/sig_subpacket.cpp:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 567
    functionName: pgp::pkt::sigsub::KeyserverPrefs::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyserverPrefs::KeyserverPrefs
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyserverPrefs::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:573,1
    - Dst: PreferredKeyserver::PreferredKeyserver
      Src: /src/rnp/src/lib/sig_subpacket.cpp:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: pgp::pkt::sigsub::PreferredKeyserver::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredKeyserver::PreferredKeyserver
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredKeyserver::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:580,1
    - Dst: PrimaryUserID::PrimaryUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 581
    functionName: pgp::pkt::sigsub::PrimaryUserID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - PrimaryUserID::PrimaryUserID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PrimaryUserID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:587,1
    - Dst: PolicyURI::PolicyURI
      Src: /src/rnp/src/lib/sig_subpacket.cpp:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 588
    functionName: pgp::pkt::sigsub::PolicyURI::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PolicyURI::PolicyURI
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PolicyURI::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:594,1
    - Dst: KeyFlags::KeyFlags
      Src: /src/rnp/src/lib/sig_subpacket.cpp:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 595
    functionName: pgp::pkt::sigsub::KeyFlags::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyFlags::KeyFlags
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyFlags::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:601,1
    - Dst: SignersUserID::SignersUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 602
    functionName: pgp::pkt::sigsub::SignersUserID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - SignersUserID::SignersUserID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr SignersUserID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:608,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:608,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:609,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 611
    functionName: pgp::pkt::sigsub::RevocationReason::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - resize
    - size
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void RevocationReason::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 617
    functionName: pgp::pkt::sigsub::RevocationReason::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RevocationReason::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_revocation_type_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:622,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 625
    functionName: pgp::pkt::sigsub::RevocationReason::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - static_cast<pgp_revocation_type_t>
    linkageType: ''
    returnType: bool
    signature: bool RevocationReason::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:630,1
    - Dst: RevocationReason::RevocationReason
      Src: /src/rnp/src/lib/sig_subpacket.cpp:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 631
    functionName: pgp::pkt::sigsub::RevocationReason::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RevocationReason::RevocationReason
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RevocationReason::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:637,1
    - Dst: Features::Features
      Src: /src/rnp/src/lib/sig_subpacket.cpp:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 638
    functionName: pgp::pkt::sigsub::Features::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - Features::Features
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Features::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:643,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - EmbeddedSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 644
    functionName: pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Signature>
    - Signature::Signature
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::EmbeddedSignature(const EmbeddedSignature &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - hashed
    - critical
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 649
    functionName: pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::EmbeddedSignature(bool hashed, bool critical)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/rnp/src/lib/sig_subpacket.cpp:657,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:658,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:659,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:660,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 662
    functionName: pgp::pkt::sigsub::EmbeddedSignature::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - write
    - size
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 668
    functionName: pgp::pkt::sigsub::EmbeddedSignature::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EmbeddedSignature::check_size(size_t size) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Signature::parse
      Src: /src/rnp/src/lib/sig_subpacket.cpp:675,1
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    - Dst: std::move
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 680
    functionName: pgp::pkt::sigsub::EmbeddedSignature::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Signature::parse
    - std::unique_ptr<Signature>
    - std::move
    - Signature::Signature
    linkageType: ''
    returnType: bool
    signature: bool EmbeddedSignature::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/sig_subpacket.cpp:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 686
    functionName: pgp::pkt::sigsub::EmbeddedSignature::signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Signature
    signature: 'Signature *

      EmbeddedSignature::signature() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/sig_subpacket.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 692
    functionName: pgp::pkt::sigsub::EmbeddedSignature::signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Signature
    signature: 'Signature *

      EmbeddedSignature::signature() noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:697,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:697,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 699
    functionName: pgp::pkt::sigsub::EmbeddedSignature::set_signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - std::unique_ptr<Signature>
    - Signature::Signature
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::set_signature(const Signature &sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:704,1
    - Dst: EmbeddedSignature::EmbeddedSignature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 705
    functionName: pgp::pkt::sigsub::EmbeddedSignature::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - EmbeddedSignature::EmbeddedSignature
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr EmbeddedSignature::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:711,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:711,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 714
    functionName: pgp::pkt::sigsub::IssuerFingerprint::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    - resize
    linkageType: ''
    returnType: void
    signature: void IssuerFingerprint::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 720
    functionName: pgp::pkt::sigsub::IssuerFingerprint::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IssuerFingerprint::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 728
    functionName: pgp::pkt::sigsub::IssuerFingerprint::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - pgp::Fingerprint::Fingerprint
    linkageType: ''
    returnType: bool
    signature: bool IssuerFingerprint::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:733,1
    - Dst: IssuerFingerprint::IssuerFingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 734
    functionName: pgp::pkt::sigsub::IssuerFingerprint::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - IssuerFingerprint::IssuerFingerprint
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr IssuerFingerprint::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/rnp/src/lib/sig_subpacket.cpp:738,1
    - Dst: List::items::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:738,1
    - Dst: push_back
      Src: /src/rnp/src/lib/sig_subpacket.cpp:740,1
    - Dst: clone
      Src: /src/rnp/src/lib/sig_subpacket.cpp:740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - List
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 742
    functionName: pgp::pkt::sigsub::List::List
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - clone
    - reserve
    - List::items::size
    linkageType: ''
    returnType: void
    signature: void List::List(const List &src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:750,1
    - Dst: reserve
      Src: /src/rnp/src/lib/sig_subpacket.cpp:751,1
    - Dst: List::items::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:751,1
    - Dst: push_back
      Src: /src/rnp/src/lib/sig_subpacket.cpp:753,1
    - Dst: clone
      Src: /src/rnp/src/lib/sig_subpacket.cpp:753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - src
    argTypes:
    - List
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 756
    functionName: '&

      List::operator=(const List &src)'
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - List::items::size
    - reserve
    - clone
    - clear
    linkageType: ''
    returnType: List
    signature: 'List &

      List::operator=(const List &src)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - rawtype
    - hashed
    - critical
    argTypes:
    - uint8_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: pgp::pkt::sigsub::Raw::Raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Raw::Raw(uint8_t rawtype, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: pgp::pkt::sigsub::Raw::Raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void Raw::Raw(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Raw::~Raw()
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Raw::~Raw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: pgp::pkt::sigsub::Raw::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Raw::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: pgp::pkt::sigsub::Raw::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Raw::parse_data(const uint8_t *data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::Raw::check_size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:71,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:72,1
    - Dst: pgp::pkt::sigsub::Raw::parse_data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:75,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 80
    functionName: pgp::pkt::sigsub::Raw::parse
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - assign
    - pgp::pkt::sigsub::Raw::parse_data
    - pgp::pkt::sigsub::Raw::check_size
    linkageType: ''
    returnType: bool
    signature: bool Raw::parse(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/rnp/src/lib/sig_subpacket.cpp:85,1
    - Dst: write_data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: '&

      Raw::write()'
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - empty
    - write_data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      Raw::write()'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:107,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - type
    - critical
    argTypes:
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 124
    functionName: pgp::pkt::sigsub::report_unknown
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: void
    signature: void report_unknown(uint8_t type, bool critical)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:131,1
    - Dst: CreationTime::CreationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:131,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:133,1
    - Dst: ExpirationTime::ExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:133,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:135,1
    - Dst: ExportableCert::ExportableCert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:135,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:137,1
    - Dst: Trust::Trust
      Src: /src/rnp/src/lib/sig_subpacket.cpp:137,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:139,1
    - Dst: RegExp::RegExp
      Src: /src/rnp/src/lib/sig_subpacket.cpp:139,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:141,1
    - Dst: Revocable::Revocable
      Src: /src/rnp/src/lib/sig_subpacket.cpp:141,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:143,1
    - Dst: KeyExpirationTime::KeyExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:143,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:145,1
    - Dst: PreferredSymmetric::PreferredSymmetric
      Src: /src/rnp/src/lib/sig_subpacket.cpp:145,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:147,1
    - Dst: RevocationKey::RevocationKey
      Src: /src/rnp/src/lib/sig_subpacket.cpp:147,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:149,1
    - Dst: IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:149,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:151,1
    - Dst: NotationData::NotationData
      Src: /src/rnp/src/lib/sig_subpacket.cpp:151,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:153,1
    - Dst: PreferredHash::PreferredHash
      Src: /src/rnp/src/lib/sig_subpacket.cpp:153,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:155,1
    - Dst: PreferredCompress::PreferredCompress
      Src: /src/rnp/src/lib/sig_subpacket.cpp:155,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:157,1
    - Dst: KeyserverPrefs::KeyserverPrefs
      Src: /src/rnp/src/lib/sig_subpacket.cpp:157,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:159,1
    - Dst: PreferredKeyserver::PreferredKeyserver
      Src: /src/rnp/src/lib/sig_subpacket.cpp:159,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:161,1
    - Dst: PrimaryUserID::PrimaryUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:161,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:163,1
    - Dst: PolicyURI::PolicyURI
      Src: /src/rnp/src/lib/sig_subpacket.cpp:163,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:165,1
    - Dst: KeyFlags::KeyFlags
      Src: /src/rnp/src/lib/sig_subpacket.cpp:165,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:167,1
    - Dst: SignersUserID::SignersUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:167,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:169,1
    - Dst: RevocationReason::RevocationReason
      Src: /src/rnp/src/lib/sig_subpacket.cpp:169,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:171,1
    - Dst: Features::Features
      Src: /src/rnp/src/lib/sig_subpacket.cpp:171,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:173,1
    - Dst: EmbeddedSignature::EmbeddedSignature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:173,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:175,1
    - Dst: IssuerFingerprint::IssuerFingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:175,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:177,1
    - Dst: PreferredAEAD::PreferredAEAD
      Src: /src/rnp/src/lib/sig_subpacket.cpp:177,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:180,1
    - Dst: PreferredAEADv6::PreferredAEADv6
      Src: /src/rnp/src/lib/sig_subpacket.cpp:180,1
    - Dst: report_unknown
      Src: /src/rnp/src/lib/sig_subpacket.cpp:183,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:184,1
    - Dst: Raw::Raw
      Src: /src/rnp/src/lib/sig_subpacket.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 56
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - uint8_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 186
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 20
    functionsReached:
    - NotationData::NotationData
    - PreferredAEAD::PreferredAEAD
    - ExportableCert::ExportableCert
    - RawPtr
    - IssuerKeyID::IssuerKeyID
    - Raw::Raw
    - Features::Features
    - CreationTime::CreationTime
    - RevocationReason::RevocationReason
    - PreferredHash::PreferredHash
    - PrimaryUserID::PrimaryUserID
    - EmbeddedSignature::EmbeddedSignature
    - PolicyURI::PolicyURI
    - IssuerFingerprint::IssuerFingerprint
    - KeyExpirationTime::KeyExpirationTime
    - RevocationKey::RevocationKey
    - PreferredAEADv6::PreferredAEADv6
    - KeyserverPrefs::KeyserverPrefs
    - Trust::Trust
    - ExpirationTime::ExpirationTime
    - RegExp::RegExp
    - SignersUserID::SignersUserID
    - PreferredSymmetric::PreferredSymmetric
    - Revocable::Revocable
    - report_unknown
    - KeyFlags::KeyFlags
    - PreferredCompress::PreferredCompress
    - PreferredKeyserver::PreferredKeyserver
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(uint8_t type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/lib/sig_subpacket.cpp:191,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 21
    functionsReached:
    - pgp::pkt::sigsub::Raw::create
    - static_cast<uint8_t>
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(Type type, bool hashed, bool critical)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:198,1
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/lib/sig_subpacket.cpp:203,1
    - Dst: auto::type
      Src: /src/rnp/src/lib/sig_subpacket.cpp:204,1
    - Dst: auto::parse
      Src: /src/rnp/src/lib/sig_subpacket.cpp:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - data
    - size
    - hashed
    argTypes:
    - uint8_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 22
    functionsReached:
    - RNP_LOG
    - auto::parse
    - auto::type
    - pgp::pkt::sigsub::Raw::create
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(const uint8_t *data, size_t size, bool hashed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:214,1
    - Dst: Raw::Raw
      Src: /src/rnp/src/lib/sig_subpacket.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: pgp::pkt::sigsub::Raw::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Raw::Raw
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:221,1
    - Dst: write_uint32
      Src: /src/rnp/src/lib/sig_subpacket.cpp:222,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: pgp::pkt::sigsub::Time::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - write_uint32
    - resize
    linkageType: ''
    returnType: void
    signature: void Time::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: pgp::pkt::sigsub::Time::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Time::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_uint32
      Src: /src/rnp/src/lib/sig_subpacket.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: pgp::pkt::sigsub::Time::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - read_uint32
    linkageType: ''
    returnType: bool
    signature: bool Time::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:242,1
    - Dst: CreationTime::CreationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: pgp::pkt::sigsub::CreationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - CreationTime::CreationTime
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr CreationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:249,1
    - Dst: ExpirationTime::ExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: pgp::pkt::sigsub::ExpirationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - ExpirationTime::ExpirationTime
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr ExpirationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:256,1
    - Dst: KeyExpirationTime::KeyExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 257
    functionName: pgp::pkt::sigsub::KeyExpirationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyExpirationTime::KeyExpirationTime
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyExpirationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: pgp::pkt::sigsub::Bool::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Bool::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: pgp::pkt::sigsub::Bool::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Bool::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: pgp::pkt::sigsub::Bool::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Bool::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:284,1
    - Dst: ExportableCert::ExportableCert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: pgp::pkt::sigsub::ExportableCert::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - ExportableCert::ExportableCert
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr ExportableCert::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 294
    functionName: pgp::pkt::sigsub::Trust::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Trust::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: pgp::pkt::sigsub::Trust::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Trust::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: pgp::pkt::sigsub::Trust::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Trust::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:313,1
    - Dst: Trust::Trust
      Src: /src/rnp/src/lib/sig_subpacket.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: pgp::pkt::sigsub::Trust::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - Trust::Trust
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Trust::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    - Dst: begin
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    - Dst: end
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 321
    functionName: pgp::pkt::sigsub::String::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void String::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: pgp::pkt::sigsub::String::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: bool
    signature: bool String::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:334,1
    - Dst: RegExp::RegExp
      Src: /src/rnp/src/lib/sig_subpacket.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 335
    functionName: pgp::pkt::sigsub::RegExp::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - RegExp::RegExp
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RegExp::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:341,1
    - Dst: Revocable::Revocable
      Src: /src/rnp/src/lib/sig_subpacket.cpp:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: pgp::pkt::sigsub::Revocable::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Revocable::Revocable
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Revocable::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: pgp::pkt::sigsub::Preferred::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Preferred::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 356
    functionName: pgp::pkt::sigsub::Preferred::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Preferred::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 363
    functionName: pgp::pkt::sigsub::Preferred::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: bool
    signature: bool Preferred::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:369,1
    - Dst: PreferredSymmetric::PreferredSymmetric
      Src: /src/rnp/src/lib/sig_subpacket.cpp:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: pgp::pkt::sigsub::PreferredSymmetric::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredSymmetric::PreferredSymmetric
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredSymmetric::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:376,1
    - Dst: PreferredHash::PreferredHash
      Src: /src/rnp/src/lib/sig_subpacket.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 377
    functionName: pgp::pkt::sigsub::PreferredHash::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredHash::PreferredHash
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredHash::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:383,1
    - Dst: PreferredCompress::PreferredCompress
      Src: /src/rnp/src/lib/sig_subpacket.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 384
    functionName: pgp::pkt::sigsub::PreferredCompress::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - PreferredCompress::PreferredCompress
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredCompress::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:390,1
    - Dst: PreferredAEAD::PreferredAEAD
      Src: /src/rnp/src/lib/sig_subpacket.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: pgp::pkt::sigsub::PreferredAEAD::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredAEAD::PreferredAEAD
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredAEAD::clone() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:399,1
    - Dst: pgp::pkt::sigsub::Preferred::check_size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 403
    functionName: pgp::pkt::sigsub::PreferredAEADv6::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::pkt::sigsub::Preferred::check_size
    linkageType: ''
    returnType: bool
    signature: bool PreferredAEADv6::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:408,1
    - Dst: PreferredAEADv6::PreferredAEADv6
      Src: /src/rnp/src/lib/sig_subpacket.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 409
    functionName: pgp::pkt::sigsub::PreferredAEADv6::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredAEADv6::PreferredAEADv6
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredAEADv6::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:416,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:416,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 420
    functionName: pgp::pkt::sigsub::RevocationKey::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    - resize
    linkageType: ''
    returnType: void
    signature: void RevocationKey::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: pgp::pkt::sigsub::RevocationKey::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RevocationKey::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_pubkey_alg_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:432,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 435
    functionName: pgp::pkt::sigsub::RevocationKey::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - pgp::Fingerprint::Fingerprint
    - static_cast<pgp_pubkey_alg_t>
    linkageType: ''
    returnType: bool
    signature: bool RevocationKey::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:440,1
    - Dst: RevocationKey::RevocationKey
      Src: /src/rnp/src/lib/sig_subpacket.cpp:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: pgp::pkt::sigsub::RevocationKey::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - RevocationKey::RevocationKey
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RevocationKey::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    - Dst: begin
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    - Dst: end
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 448
    functionName: pgp::pkt::sigsub::IssuerKeyID::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void IssuerKeyID::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 454
    functionName: pgp::pkt::sigsub::IssuerKeyID::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IssuerKeyID::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 461
    functionName: pgp::pkt::sigsub::IssuerKeyID::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    linkageType: ''
    returnType: bool
    signature: bool IssuerKeyID::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:466,1
    - Dst: IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: pgp::pkt::sigsub::IssuerKeyID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - IssuerKeyID::IssuerKeyID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr IssuerKeyID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:473,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:473,1
    - Dst: assert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:474,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:474,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:475,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:476,1
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:477,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: write_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:479,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:479,1
    - Dst: write_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:480,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:480,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (name_.size() <= 0xffff)
      pos:
        line_end: 472
        line_start: 472
        source_file: /src/rnp/src/lib/sig_subpacket.cpp
    - condition: (value_.size() <= 0xffff)
      pos:
        line_end: 473
        line_start: 473
        source_file: /src/rnp/src/lib/sig_subpacket.cpp
    constantsTouched: []
    func_position:
      end: 483
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 483
    functionName: pgp::pkt::sigsub::NotationData::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - write_uint16
    - resize
    - assert
    - size
    linkageType: ''
    returnType: void
    signature: void NotationData::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 489
    functionName: pgp::pkt::sigsub::NotationData::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool NotationData::check_size(size_t size) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:494,1
    - Dst: read_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:495,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:499,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:499,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:500,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 503
    functionName: pgp::pkt::sigsub::NotationData::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - assign
    - read_uint16
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool NotationData::parse_data(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 513
    functionName: pgp::pkt::sigsub::NotationData::set_human_readable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NotationData::set_human_readable(bool value) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:518,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:519,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 523
    functionName: pgp::pkt::sigsub::NotationData::set_name
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - rnp::rnp_exception::rnp_exception
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void NotationData::set_name(const std::string &name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:528,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:529,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 533
    functionName: pgp::pkt::sigsub::NotationData::set_value
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - std::vector<uint8_t>::size
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void NotationData::set_value(const std::vector<uint8_t> &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:538,1
    - Dst: NotationData::NotationData
      Src: /src/rnp/src/lib/sig_subpacket.cpp:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 539
    functionName: pgp::pkt::sigsub::NotationData::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - NotationData::NotationData
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr NotationData::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: pgp::pkt::sigsub::Flags::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Flags::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 553
    functionName: pgp::pkt::sigsub::Flags::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Flags::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 560
    functionName: pgp::pkt::sigsub::Flags::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Flags::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:566,1
    - Dst: KeyserverPrefs::KeyserverPrefs
      Src: /src/rnp/src/lib/sig_subpacket.cpp:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 567
    functionName: pgp::pkt::sigsub::KeyserverPrefs::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyserverPrefs::KeyserverPrefs
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyserverPrefs::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:573,1
    - Dst: PreferredKeyserver::PreferredKeyserver
      Src: /src/rnp/src/lib/sig_subpacket.cpp:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: pgp::pkt::sigsub::PreferredKeyserver::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredKeyserver::PreferredKeyserver
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredKeyserver::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:580,1
    - Dst: PrimaryUserID::PrimaryUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 581
    functionName: pgp::pkt::sigsub::PrimaryUserID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - PrimaryUserID::PrimaryUserID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PrimaryUserID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:587,1
    - Dst: PolicyURI::PolicyURI
      Src: /src/rnp/src/lib/sig_subpacket.cpp:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 588
    functionName: pgp::pkt::sigsub::PolicyURI::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PolicyURI::PolicyURI
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PolicyURI::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:594,1
    - Dst: KeyFlags::KeyFlags
      Src: /src/rnp/src/lib/sig_subpacket.cpp:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 595
    functionName: pgp::pkt::sigsub::KeyFlags::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyFlags::KeyFlags
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyFlags::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:601,1
    - Dst: SignersUserID::SignersUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 602
    functionName: pgp::pkt::sigsub::SignersUserID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - SignersUserID::SignersUserID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr SignersUserID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:608,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:608,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:609,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 611
    functionName: pgp::pkt::sigsub::RevocationReason::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - resize
    - size
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void RevocationReason::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 617
    functionName: pgp::pkt::sigsub::RevocationReason::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RevocationReason::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_revocation_type_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:622,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 625
    functionName: pgp::pkt::sigsub::RevocationReason::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - static_cast<pgp_revocation_type_t>
    linkageType: ''
    returnType: bool
    signature: bool RevocationReason::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:630,1
    - Dst: RevocationReason::RevocationReason
      Src: /src/rnp/src/lib/sig_subpacket.cpp:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 631
    functionName: pgp::pkt::sigsub::RevocationReason::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RevocationReason::RevocationReason
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RevocationReason::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:637,1
    - Dst: Features::Features
      Src: /src/rnp/src/lib/sig_subpacket.cpp:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 638
    functionName: pgp::pkt::sigsub::Features::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - Features::Features
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Features::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:643,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - EmbeddedSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 644
    functionName: pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Signature>
    - Signature::Signature
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::EmbeddedSignature(const EmbeddedSignature &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - hashed
    - critical
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 649
    functionName: pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::EmbeddedSignature(bool hashed, bool critical)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/rnp/src/lib/sig_subpacket.cpp:657,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:658,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:659,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:660,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 662
    functionName: pgp::pkt::sigsub::EmbeddedSignature::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - write
    - size
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 668
    functionName: pgp::pkt::sigsub::EmbeddedSignature::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EmbeddedSignature::check_size(size_t size) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Signature::parse
      Src: /src/rnp/src/lib/sig_subpacket.cpp:675,1
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    - Dst: std::move
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 680
    functionName: pgp::pkt::sigsub::EmbeddedSignature::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Signature::parse
    - std::unique_ptr<Signature>
    - std::move
    - Signature::Signature
    linkageType: ''
    returnType: bool
    signature: bool EmbeddedSignature::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/sig_subpacket.cpp:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 686
    functionName: pgp::pkt::sigsub::EmbeddedSignature::signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Signature
    signature: 'Signature *

      EmbeddedSignature::signature() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/sig_subpacket.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 692
    functionName: pgp::pkt::sigsub::EmbeddedSignature::signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Signature
    signature: 'Signature *

      EmbeddedSignature::signature() noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:697,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:697,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 699
    functionName: pgp::pkt::sigsub::EmbeddedSignature::set_signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - std::unique_ptr<Signature>
    - Signature::Signature
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::set_signature(const Signature &sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:704,1
    - Dst: EmbeddedSignature::EmbeddedSignature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 705
    functionName: pgp::pkt::sigsub::EmbeddedSignature::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - EmbeddedSignature::EmbeddedSignature
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr EmbeddedSignature::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:711,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:711,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 714
    functionName: pgp::pkt::sigsub::IssuerFingerprint::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    - resize
    linkageType: ''
    returnType: void
    signature: void IssuerFingerprint::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 720
    functionName: pgp::pkt::sigsub::IssuerFingerprint::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IssuerFingerprint::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 728
    functionName: pgp::pkt::sigsub::IssuerFingerprint::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - pgp::Fingerprint::Fingerprint
    linkageType: ''
    returnType: bool
    signature: bool IssuerFingerprint::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:733,1
    - Dst: IssuerFingerprint::IssuerFingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 734
    functionName: pgp::pkt::sigsub::IssuerFingerprint::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - IssuerFingerprint::IssuerFingerprint
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr IssuerFingerprint::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/rnp/src/lib/sig_subpacket.cpp:738,1
    - Dst: List::items::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:738,1
    - Dst: push_back
      Src: /src/rnp/src/lib/sig_subpacket.cpp:740,1
    - Dst: clone
      Src: /src/rnp/src/lib/sig_subpacket.cpp:740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - List
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 742
    functionName: pgp::pkt::sigsub::List::List
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - clone
    - reserve
    - List::items::size
    linkageType: ''
    returnType: void
    signature: void List::List(const List &src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:750,1
    - Dst: reserve
      Src: /src/rnp/src/lib/sig_subpacket.cpp:751,1
    - Dst: List::items::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:751,1
    - Dst: push_back
      Src: /src/rnp/src/lib/sig_subpacket.cpp:753,1
    - Dst: clone
      Src: /src/rnp/src/lib/sig_subpacket.cpp:753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - src
    argTypes:
    - List
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 756
    functionName: '&

      List::operator=(const List &src)'
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - List::items::size
    - reserve
    - clone
    - clear
    linkageType: ''
    returnType: List
    signature: 'List &

      List::operator=(const List &src)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - rawtype
    - hashed
    - critical
    argTypes:
    - uint8_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: pgp::pkt::sigsub::Raw::Raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Raw::Raw(uint8_t rawtype, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: pgp::pkt::sigsub::Raw::Raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void Raw::Raw(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: Raw::~Raw()
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Raw::~Raw()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: pgp::pkt::sigsub::Raw::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Raw::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: pgp::pkt::sigsub::Raw::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Raw::parse_data(const uint8_t *data, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::Raw::check_size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:71,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:72,1
    - Dst: pgp::pkt::sigsub::Raw::parse_data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:75,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:78,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 80
    functionName: pgp::pkt::sigsub::Raw::parse
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - assign
    - pgp::pkt::sigsub::Raw::parse_data
    - pgp::pkt::sigsub::Raw::check_size
    linkageType: ''
    returnType: bool
    signature: bool Raw::parse(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/rnp/src/lib/sig_subpacket.cpp:85,1
    - Dst: write_data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: '&

      Raw::write()'
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - empty
    - write_data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      Raw::write()'
  - BBCount: 23
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:107,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 2
    argNames:
    - type
    - critical
    argTypes:
    - uint8_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 124
    functionName: pgp::pkt::sigsub::report_unknown
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: void
    signature: void report_unknown(uint8_t type, bool critical)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:131,1
    - Dst: CreationTime::CreationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:131,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:133,1
    - Dst: ExpirationTime::ExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:133,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:135,1
    - Dst: ExportableCert::ExportableCert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:135,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:137,1
    - Dst: Trust::Trust
      Src: /src/rnp/src/lib/sig_subpacket.cpp:137,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:139,1
    - Dst: RegExp::RegExp
      Src: /src/rnp/src/lib/sig_subpacket.cpp:139,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:141,1
    - Dst: Revocable::Revocable
      Src: /src/rnp/src/lib/sig_subpacket.cpp:141,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:143,1
    - Dst: KeyExpirationTime::KeyExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:143,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:145,1
    - Dst: PreferredSymmetric::PreferredSymmetric
      Src: /src/rnp/src/lib/sig_subpacket.cpp:145,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:147,1
    - Dst: RevocationKey::RevocationKey
      Src: /src/rnp/src/lib/sig_subpacket.cpp:147,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:149,1
    - Dst: IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:149,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:151,1
    - Dst: NotationData::NotationData
      Src: /src/rnp/src/lib/sig_subpacket.cpp:151,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:153,1
    - Dst: PreferredHash::PreferredHash
      Src: /src/rnp/src/lib/sig_subpacket.cpp:153,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:155,1
    - Dst: PreferredCompress::PreferredCompress
      Src: /src/rnp/src/lib/sig_subpacket.cpp:155,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:157,1
    - Dst: KeyserverPrefs::KeyserverPrefs
      Src: /src/rnp/src/lib/sig_subpacket.cpp:157,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:159,1
    - Dst: PreferredKeyserver::PreferredKeyserver
      Src: /src/rnp/src/lib/sig_subpacket.cpp:159,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:161,1
    - Dst: PrimaryUserID::PrimaryUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:161,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:163,1
    - Dst: PolicyURI::PolicyURI
      Src: /src/rnp/src/lib/sig_subpacket.cpp:163,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:165,1
    - Dst: KeyFlags::KeyFlags
      Src: /src/rnp/src/lib/sig_subpacket.cpp:165,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:167,1
    - Dst: SignersUserID::SignersUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:167,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:169,1
    - Dst: RevocationReason::RevocationReason
      Src: /src/rnp/src/lib/sig_subpacket.cpp:169,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:171,1
    - Dst: Features::Features
      Src: /src/rnp/src/lib/sig_subpacket.cpp:171,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:173,1
    - Dst: EmbeddedSignature::EmbeddedSignature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:173,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:175,1
    - Dst: IssuerFingerprint::IssuerFingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:175,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:177,1
    - Dst: PreferredAEAD::PreferredAEAD
      Src: /src/rnp/src/lib/sig_subpacket.cpp:177,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:180,1
    - Dst: PreferredAEADv6::PreferredAEADv6
      Src: /src/rnp/src/lib/sig_subpacket.cpp:180,1
    - Dst: report_unknown
      Src: /src/rnp/src/lib/sig_subpacket.cpp:183,1
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:184,1
    - Dst: Raw::Raw
      Src: /src/rnp/src/lib/sig_subpacket.cpp:184,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 56
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - uint8_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 186
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 22
    functionsReached:
    - NotationData::NotationData
    - PreferredAEAD::PreferredAEAD
    - ExportableCert::ExportableCert
    - RawPtr
    - IssuerKeyID::IssuerKeyID
    - Raw::Raw
    - Features::Features
    - CreationTime::CreationTime
    - RevocationReason::RevocationReason
    - PreferredHash::PreferredHash
    - PrimaryUserID::PrimaryUserID
    - EmbeddedSignature::EmbeddedSignature
    - PolicyURI::PolicyURI
    - IssuerFingerprint::IssuerFingerprint
    - KeyExpirationTime::KeyExpirationTime
    - RevocationKey::RevocationKey
    - PreferredAEADv6::PreferredAEADv6
    - KeyserverPrefs::KeyserverPrefs
    - Trust::Trust
    - ExpirationTime::ExpirationTime
    - RegExp::RegExp
    - SignersUserID::SignersUserID
    - PreferredSymmetric::PreferredSymmetric
    - Revocable::Revocable
    - report_unknown
    - KeyFlags::KeyFlags
    - PreferredCompress::PreferredCompress
    - PreferredKeyserver::PreferredKeyserver
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(uint8_t type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/lib/sig_subpacket.cpp:191,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 23
    functionsReached:
    - pgp::pkt::sigsub::Raw::create
    - static_cast<uint8_t>
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(Type type, bool hashed, bool critical)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:198,1
    - Dst: pgp::pkt::sigsub::Raw::create
      Src: /src/rnp/src/lib/sig_subpacket.cpp:203,1
    - Dst: auto::type
      Src: /src/rnp/src/lib/sig_subpacket.cpp:204,1
    - Dst: auto::parse
      Src: /src/rnp/src/lib/sig_subpacket.cpp:205,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 3
    argNames:
    - data
    - size
    - hashed
    argTypes:
    - uint8_t*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 194
    functionDepth: 1
    functionLinenumber: 194
    functionLinenumberEnd: 209
    functionName: pgp::pkt::sigsub::Raw::create
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 24
    functionsReached:
    - RNP_LOG
    - auto::parse
    - auto::type
    - pgp::pkt::sigsub::Raw::create
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::create(const uint8_t *data, size_t size, bool hashed)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:214,1
    - Dst: Raw::Raw
      Src: /src/rnp/src/lib/sig_subpacket.cpp:214,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 211
    functionDepth: 0
    functionLinenumber: 211
    functionLinenumberEnd: 215
    functionName: pgp::pkt::sigsub::Raw::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Raw::Raw
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Raw::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:221,1
    - Dst: write_uint32
      Src: /src/rnp/src/lib/sig_subpacket.cpp:222,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: pgp::pkt::sigsub::Time::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - write_uint32
    - resize
    linkageType: ''
    returnType: void
    signature: void Time::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 225
    functionDepth: 0
    functionLinenumber: 225
    functionLinenumberEnd: 229
    functionName: pgp::pkt::sigsub::Time::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Time::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: read_uint32
      Src: /src/rnp/src/lib/sig_subpacket.cpp:234,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 231
    functionDepth: 1
    functionLinenumber: 231
    functionLinenumberEnd: 236
    functionName: pgp::pkt::sigsub::Time::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - read_uint32
    linkageType: ''
    returnType: bool
    signature: bool Time::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:242,1
    - Dst: CreationTime::CreationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:242,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 243
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 243
    functionName: pgp::pkt::sigsub::CreationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - CreationTime::CreationTime
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr CreationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:249,1
    - Dst: ExpirationTime::ExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:249,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: pgp::pkt::sigsub::ExpirationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - ExpirationTime::ExpirationTime
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr ExpirationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:256,1
    - Dst: KeyExpirationTime::KeyExpirationTime
      Src: /src/rnp/src/lib/sig_subpacket.cpp:256,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 257
    functionName: pgp::pkt::sigsub::KeyExpirationTime::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyExpirationTime::KeyExpirationTime
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyExpirationTime::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:263,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 260
    functionDepth: 0
    functionLinenumber: 260
    functionLinenumberEnd: 265
    functionName: pgp::pkt::sigsub::Bool::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Bool::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: pgp::pkt::sigsub::Bool::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Bool::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 278
    functionName: pgp::pkt::sigsub::Bool::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Bool::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:284,1
    - Dst: ExportableCert::ExportableCert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:284,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 285
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 285
    functionName: pgp::pkt::sigsub::ExportableCert::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - ExportableCert::ExportableCert
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr ExportableCert::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:291,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 294
    functionName: pgp::pkt::sigsub::Trust::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Trust::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 296
    functionDepth: 0
    functionLinenumber: 296
    functionLinenumberEnd: 300
    functionName: pgp::pkt::sigsub::Trust::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Trust::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 308
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 308
    functionName: pgp::pkt::sigsub::Trust::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Trust::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:313,1
    - Dst: Trust::Trust
      Src: /src/rnp/src/lib/sig_subpacket.cpp:313,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 310
    functionDepth: 0
    functionLinenumber: 310
    functionLinenumberEnd: 314
    functionName: pgp::pkt::sigsub::Trust::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - Trust::Trust
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Trust::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    - Dst: begin
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    - Dst: end
      Src: /src/rnp/src/lib/sig_subpacket.cpp:320,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 321
      start: 317
    functionDepth: 1
    functionLinenumber: 317
    functionLinenumberEnd: 321
    functionName: pgp::pkt::sigsub::String::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void String::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 328
      start: 323
    functionDepth: 0
    functionLinenumber: 323
    functionLinenumberEnd: 328
    functionName: pgp::pkt::sigsub::String::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: bool
    signature: bool String::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:334,1
    - Dst: RegExp::RegExp
      Src: /src/rnp/src/lib/sig_subpacket.cpp:334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 335
      start: 331
    functionDepth: 0
    functionLinenumber: 331
    functionLinenumberEnd: 335
    functionName: pgp::pkt::sigsub::RegExp::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - RegExp::RegExp
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RegExp::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:341,1
    - Dst: Revocable::Revocable
      Src: /src/rnp/src/lib/sig_subpacket.cpp:341,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 338
    functionDepth: 0
    functionLinenumber: 338
    functionLinenumberEnd: 342
    functionName: pgp::pkt::sigsub::Revocable::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Revocable::Revocable
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Revocable::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: pgp::pkt::sigsub::Preferred::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Preferred::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 356
    functionName: pgp::pkt::sigsub::Preferred::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Preferred::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:361,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 363
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 363
    functionName: pgp::pkt::sigsub::Preferred::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: bool
    signature: bool Preferred::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:369,1
    - Dst: PreferredSymmetric::PreferredSymmetric
      Src: /src/rnp/src/lib/sig_subpacket.cpp:369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: pgp::pkt::sigsub::PreferredSymmetric::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredSymmetric::PreferredSymmetric
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredSymmetric::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:376,1
    - Dst: PreferredHash::PreferredHash
      Src: /src/rnp/src/lib/sig_subpacket.cpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 377
    functionName: pgp::pkt::sigsub::PreferredHash::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredHash::PreferredHash
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredHash::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:383,1
    - Dst: PreferredCompress::PreferredCompress
      Src: /src/rnp/src/lib/sig_subpacket.cpp:383,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 380
    functionDepth: 0
    functionLinenumber: 380
    functionLinenumberEnd: 384
    functionName: pgp::pkt::sigsub::PreferredCompress::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - PreferredCompress::PreferredCompress
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredCompress::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:390,1
    - Dst: PreferredAEAD::PreferredAEAD
      Src: /src/rnp/src/lib/sig_subpacket.cpp:390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 391
      start: 387
    functionDepth: 0
    functionLinenumber: 387
    functionLinenumberEnd: 391
    functionName: pgp::pkt::sigsub::PreferredAEAD::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredAEAD::PreferredAEAD
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredAEAD::clone() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_subpacket.cpp:399,1
    - Dst: pgp::pkt::sigsub::Preferred::check_size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:402,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 403
      start: 395
    functionDepth: 1
    functionLinenumber: 395
    functionLinenumberEnd: 403
    functionName: pgp::pkt::sigsub::PreferredAEADv6::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::pkt::sigsub::Preferred::check_size
    linkageType: ''
    returnType: bool
    signature: bool PreferredAEADv6::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:408,1
    - Dst: PreferredAEADv6::PreferredAEADv6
      Src: /src/rnp/src/lib/sig_subpacket.cpp:408,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 409
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 409
    functionName: pgp::pkt::sigsub::PreferredAEADv6::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredAEADv6::PreferredAEADv6
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredAEADv6::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:416,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:416,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 413
    functionDepth: 1
    functionLinenumber: 413
    functionLinenumberEnd: 420
    functionName: pgp::pkt::sigsub::RevocationKey::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    - resize
    linkageType: ''
    returnType: void
    signature: void RevocationKey::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 422
    functionDepth: 0
    functionLinenumber: 422
    functionLinenumberEnd: 426
    functionName: pgp::pkt::sigsub::RevocationKey::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RevocationKey::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_pubkey_alg_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:432,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:433,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 435
      start: 428
    functionDepth: 1
    functionLinenumber: 428
    functionLinenumberEnd: 435
    functionName: pgp::pkt::sigsub::RevocationKey::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - pgp::Fingerprint::Fingerprint
    - static_cast<pgp_pubkey_alg_t>
    linkageType: ''
    returnType: bool
    signature: bool RevocationKey::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:440,1
    - Dst: RevocationKey::RevocationKey
      Src: /src/rnp/src/lib/sig_subpacket.cpp:440,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 441
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 441
    functionName: pgp::pkt::sigsub::RevocationKey::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - RevocationKey::RevocationKey
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RevocationKey::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    - Dst: begin
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    - Dst: end
      Src: /src/rnp/src/lib/sig_subpacket.cpp:447,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 448
    functionName: pgp::pkt::sigsub::IssuerKeyID::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - begin
    - end
    linkageType: ''
    returnType: void
    signature: void IssuerKeyID::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 450
    functionDepth: 0
    functionLinenumber: 450
    functionLinenumberEnd: 454
    functionName: pgp::pkt::sigsub::IssuerKeyID::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IssuerKeyID::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:459,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 461
    functionName: pgp::pkt::sigsub::IssuerKeyID::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    linkageType: ''
    returnType: bool
    signature: bool IssuerKeyID::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:466,1
    - Dst: IssuerKeyID::IssuerKeyID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:466,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 467
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 467
    functionName: pgp::pkt::sigsub::IssuerKeyID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - IssuerKeyID::IssuerKeyID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr IssuerKeyID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:473,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:473,1
    - Dst: assert
      Src: /src/rnp/src/lib/sig_subpacket.cpp:474,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:474,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:475,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:476,1
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:477,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:478,1
    - Dst: write_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:479,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:479,1
    - Dst: write_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:480,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:480,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:481,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:482,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (name_.size() <= 0xffff)
      pos:
        line_end: 472
        line_start: 472
        source_file: /src/rnp/src/lib/sig_subpacket.cpp
    - condition: (value_.size() <= 0xffff)
      pos:
        line_end: 473
        line_start: 473
        source_file: /src/rnp/src/lib/sig_subpacket.cpp
    constantsTouched: []
    func_position:
      end: 483
      start: 470
    functionDepth: 1
    functionLinenumber: 470
    functionLinenumberEnd: 483
    functionName: pgp::pkt::sigsub::NotationData::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - write_uint16
    - resize
    - assert
    - size
    linkageType: ''
    returnType: void
    signature: void NotationData::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 485
    functionDepth: 0
    functionLinenumber: 485
    functionLinenumberEnd: 489
    functionName: pgp::pkt::sigsub::NotationData::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool NotationData::check_size(size_t size) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:494,1
    - Dst: read_uint16
      Src: /src/rnp/src/lib/sig_subpacket.cpp:495,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:499,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:499,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:500,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 503
      start: 491
    functionDepth: 1
    functionLinenumber: 491
    functionLinenumberEnd: 503
    functionName: pgp::pkt::sigsub::NotationData::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - assign
    - read_uint16
    - memcpy
    linkageType: ''
    returnType: bool
    signature: bool NotationData::parse_data(const uint8_t *data, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 505
    functionDepth: 0
    functionLinenumber: 505
    functionLinenumberEnd: 513
    functionName: pgp::pkt::sigsub::NotationData::set_human_readable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NotationData::set_human_readable(bool value) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:518,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:519,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:522,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - name
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 523
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 523
    functionName: pgp::pkt::sigsub::NotationData::set_name
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - rnp::rnp_exception::rnp_exception
    - std::string::size
    linkageType: ''
    returnType: void
    signature: void NotationData::set_name(const std::string &name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:528,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:529,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:532,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 533
      start: 525
    functionDepth: 1
    functionLinenumber: 525
    functionLinenumberEnd: 533
    functionName: pgp::pkt::sigsub::NotationData::set_value
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - std::vector<uint8_t>::size
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void NotationData::set_value(const std::vector<uint8_t> &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:538,1
    - Dst: NotationData::NotationData
      Src: /src/rnp/src/lib/sig_subpacket.cpp:538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 539
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 539
    functionName: pgp::pkt::sigsub::NotationData::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - NotationData::NotationData
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr NotationData::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:545,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 0
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: pgp::pkt::sigsub::Flags::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - resize
    linkageType: ''
    returnType: void
    signature: void Flags::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 553
    functionName: pgp::pkt::sigsub::Flags::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Flags::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 560
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 560
    functionName: pgp::pkt::sigsub::Flags::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Flags::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:566,1
    - Dst: KeyserverPrefs::KeyserverPrefs
      Src: /src/rnp/src/lib/sig_subpacket.cpp:566,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 567
      start: 563
    functionDepth: 0
    functionLinenumber: 563
    functionLinenumberEnd: 567
    functionName: pgp::pkt::sigsub::KeyserverPrefs::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyserverPrefs::KeyserverPrefs
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyserverPrefs::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:573,1
    - Dst: PreferredKeyserver::PreferredKeyserver
      Src: /src/rnp/src/lib/sig_subpacket.cpp:573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: pgp::pkt::sigsub::PreferredKeyserver::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PreferredKeyserver::PreferredKeyserver
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PreferredKeyserver::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:580,1
    - Dst: PrimaryUserID::PrimaryUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 581
    functionName: pgp::pkt::sigsub::PrimaryUserID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - PrimaryUserID::PrimaryUserID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PrimaryUserID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:587,1
    - Dst: PolicyURI::PolicyURI
      Src: /src/rnp/src/lib/sig_subpacket.cpp:587,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 588
      start: 584
    functionDepth: 0
    functionLinenumber: 584
    functionLinenumberEnd: 588
    functionName: pgp::pkt::sigsub::PolicyURI::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - PolicyURI::PolicyURI
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr PolicyURI::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:594,1
    - Dst: KeyFlags::KeyFlags
      Src: /src/rnp/src/lib/sig_subpacket.cpp:594,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 595
      start: 591
    functionDepth: 0
    functionLinenumber: 591
    functionLinenumberEnd: 595
    functionName: pgp::pkt::sigsub::KeyFlags::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - KeyFlags::KeyFlags
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr KeyFlags::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:601,1
    - Dst: SignersUserID::SignersUserID
      Src: /src/rnp/src/lib/sig_subpacket.cpp:601,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 602
      start: 598
    functionDepth: 0
    functionLinenumber: 598
    functionLinenumberEnd: 602
    functionName: pgp::pkt::sigsub::SignersUserID::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - SignersUserID::SignersUserID
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr SignersUserID::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:608,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:608,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:609,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:610,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 611
      start: 605
    functionDepth: 1
    functionLinenumber: 605
    functionLinenumberEnd: 611
    functionName: pgp::pkt::sigsub::RevocationReason::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - resize
    - size
    - static_cast<uint8_t>
    linkageType: ''
    returnType: void
    signature: void RevocationReason::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 617
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 617
    functionName: pgp::pkt::sigsub::RevocationReason::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool RevocationReason::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_revocation_type_t>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:622,1
    - Dst: assign
      Src: /src/rnp/src/lib/sig_subpacket.cpp:623,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 619
    functionDepth: 0
    functionLinenumber: 619
    functionLinenumberEnd: 625
    functionName: pgp::pkt::sigsub::RevocationReason::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    - static_cast<pgp_revocation_type_t>
    linkageType: ''
    returnType: bool
    signature: bool RevocationReason::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:630,1
    - Dst: RevocationReason::RevocationReason
      Src: /src/rnp/src/lib/sig_subpacket.cpp:630,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 631
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 631
    functionName: pgp::pkt::sigsub::RevocationReason::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RevocationReason::RevocationReason
    - RawPtr
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr RevocationReason::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:637,1
    - Dst: Features::Features
      Src: /src/rnp/src/lib/sig_subpacket.cpp:637,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 638
    functionName: pgp::pkt::sigsub::Features::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - Features::Features
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr Features::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:643,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - EmbeddedSignature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 644
    functionName: pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Signature>
    - Signature::Signature
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::EmbeddedSignature(const EmbeddedSignature &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - hashed
    - critical
    argTypes:
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 649
      start: 646
    functionDepth: 0
    functionLinenumber: 646
    functionLinenumberEnd: 649
    functionName: pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::EmbeddedSignature(bool hashed, bool critical)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/rnp/src/lib/sig_subpacket.cpp:657,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:658,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:659,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sig_subpacket.cpp:660,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 662
      start: 651
    functionDepth: 1
    functionLinenumber: 651
    functionLinenumberEnd: 662
    functionName: pgp::pkt::sigsub::EmbeddedSignature::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - write
    - size
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 668
      start: 664
    functionDepth: 0
    functionLinenumber: 664
    functionLinenumberEnd: 668
    functionName: pgp::pkt::sigsub::EmbeddedSignature::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool EmbeddedSignature::check_size(size_t size) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Signature::parse
      Src: /src/rnp/src/lib/sig_subpacket.cpp:675,1
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    - Dst: std::move
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:678,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 680
      start: 670
    functionDepth: 1
    functionLinenumber: 670
    functionLinenumberEnd: 680
    functionName: pgp::pkt::sigsub::EmbeddedSignature::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - Signature::parse
    - std::unique_ptr<Signature>
    - std::move
    - Signature::Signature
    linkageType: ''
    returnType: bool
    signature: bool EmbeddedSignature::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/sig_subpacket.cpp:685,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 686
      start: 682
    functionDepth: 1
    functionLinenumber: 682
    functionLinenumberEnd: 686
    functionName: pgp::pkt::sigsub::EmbeddedSignature::signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Signature
    signature: 'Signature *

      EmbeddedSignature::signature() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/sig_subpacket.cpp:691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 692
      start: 688
    functionDepth: 1
    functionLinenumber: 688
    functionLinenumberEnd: 692
    functionName: pgp::pkt::sigsub::EmbeddedSignature::signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: Signature
    signature: 'Signature *

      EmbeddedSignature::signature() noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Signature>
      Src: /src/rnp/src/lib/sig_subpacket.cpp:697,1
    - Dst: Signature::Signature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:697,1
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 699
      start: 694
    functionDepth: 1
    functionLinenumber: 694
    functionLinenumberEnd: 699
    functionName: pgp::pkt::sigsub::EmbeddedSignature::set_signature
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - clear
    - std::unique_ptr<Signature>
    - Signature::Signature
    linkageType: ''
    returnType: void
    signature: void EmbeddedSignature::set_signature(const Signature &sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:704,1
    - Dst: EmbeddedSignature::EmbeddedSignature
      Src: /src/rnp/src/lib/sig_subpacket.cpp:704,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 705
      start: 701
    functionDepth: 0
    functionLinenumber: 701
    functionLinenumberEnd: 705
    functionName: pgp::pkt::sigsub::EmbeddedSignature::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - EmbeddedSignature::EmbeddedSignature
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr EmbeddedSignature::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: resize
      Src: /src/rnp/src/lib/sig_subpacket.cpp:711,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:711,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: data
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    - Dst: size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:713,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 708
    functionDepth: 1
    functionLinenumber: 708
    functionLinenumberEnd: 714
    functionName: pgp::pkt::sigsub::IssuerFingerprint::write_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcpy
    - size
    - resize
    linkageType: ''
    returnType: void
    signature: void IssuerFingerprint::write_data()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - size
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 720
      start: 716
    functionDepth: 0
    functionLinenumber: 716
    functionLinenumberEnd: 720
    functionName: pgp::pkt::sigsub::IssuerFingerprint::check_size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool IssuerFingerprint::check_size(size_t size) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 728
      start: 722
    functionDepth: 1
    functionLinenumber: 722
    functionLinenumberEnd: 728
    functionName: pgp::pkt::sigsub::IssuerFingerprint::parse_data
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - pgp::Fingerprint::Fingerprint
    linkageType: ''
    returnType: bool
    signature: bool IssuerFingerprint::parse_data(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RawPtr
      Src: /src/rnp/src/lib/sig_subpacket.cpp:733,1
    - Dst: IssuerFingerprint::IssuerFingerprint
      Src: /src/rnp/src/lib/sig_subpacket.cpp:733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 734
      start: 730
    functionDepth: 0
    functionLinenumber: 730
    functionLinenumberEnd: 734
    functionName: pgp::pkt::sigsub::IssuerFingerprint::clone
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - RawPtr
    - IssuerFingerprint::IssuerFingerprint
    linkageType: ''
    returnType: RawPtr
    signature: RawPtr IssuerFingerprint::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/rnp/src/lib/sig_subpacket.cpp:738,1
    - Dst: List::items::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:738,1
    - Dst: push_back
      Src: /src/rnp/src/lib/sig_subpacket.cpp:740,1
    - Dst: clone
      Src: /src/rnp/src/lib/sig_subpacket.cpp:740,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - List
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 742
      start: 736
    functionDepth: 1
    functionLinenumber: 736
    functionLinenumberEnd: 742
    functionName: pgp::pkt::sigsub::List::List
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - clone
    - reserve
    - List::items::size
    linkageType: ''
    returnType: void
    signature: void List::List(const List &src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.cpp:750,1
    - Dst: reserve
      Src: /src/rnp/src/lib/sig_subpacket.cpp:751,1
    - Dst: List::items::size
      Src: /src/rnp/src/lib/sig_subpacket.cpp:751,1
    - Dst: push_back
      Src: /src/rnp/src/lib/sig_subpacket.cpp:753,1
    - Dst: clone
      Src: /src/rnp/src/lib/sig_subpacket.cpp:753,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - src
    argTypes:
    - List
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 744
    functionDepth: 1
    functionLinenumber: 744
    functionLinenumberEnd: 756
    functionName: '&

      List::operator=(const List &src)'
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.cpp
    functionUses: 0
    functionsReached:
    - push_back
    - List::items::size
    - reserve
    - clone
    - clear
    linkageType: ''
    returnType: List
    signature: 'List &

      List::operator=(const List &src)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: pgp_validity_t::mark_valid
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_validity_t::mark_valid()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 57
    functionDepth: 0
    functionLinenumber: 57
    functionLinenumberEnd: 63
    functionName: pgp_validity_t::reset
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_validity_t::reset()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RawPacket::data
      Src: /src/rnp/src/lib/key.cpp:71,1
    - Dst: std::unique_ptr<pgp_key_pkt_t>
      Src: /src/rnp/src/lib/key.cpp:72,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/lib/key.cpp:72,1
    - Dst: auto::parse
      Src: /src/rnp/src/lib/key.cpp:73,1
    - Dst: MemorySource::src
      Src: /src/rnp/src/lib/key.cpp:73,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/lib/key.cpp:73,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/key.cpp:73,1
    - Dst: auto::release
      Src: /src/rnp/src/lib/key.cpp:76,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:78,1
    - Dst: what
      Src: /src/rnp/src/lib/key.cpp:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - raw
    - pubkey
    - password
    argTypes:
    - RawPacket
    - pgp_key_pkt_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: rnp::pgp_decrypt_seckey_pgp
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - RawPacket::data
    - what
    - std::unique_ptr<pgp_key_pkt_t>
    - auto::parse
    - pgp_key_pkt_t::pgp_key_pkt_t
    - auto::get
    - auto::release
    - MemorySource::src
    - decrypt_secret_key
    linkageType: ''
    returnType: pgp_key_pkt_t
    signature: 'pgp_key_pkt_t *

      pgp_decrypt_seckey_pgp(const RawPacket &raw, const pgp_key_pkt_t &pubkey, const
      char *password)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_secret
      Src: /src/rnp/src/lib/key.cpp:95,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:96,1
    - Dst: is_protected
      Src: /src/rnp/src/lib/key.cpp:101,1
    - Dst: pgp_request_password
      Src: /src/rnp/src/lib/key.cpp:102,1
    - Dst: secure_array::data
      Src: /src/rnp/src/lib/key.cpp:102,1
    - Dst: secure_array::size
      Src: /src/rnp/src/lib/key.cpp:102,1
    - Dst: rnp::pgp_decrypt_seckey_pgp
      Src: /src/rnp/src/lib/key.cpp:109,1
    - Dst: rawpkt
      Src: /src/rnp/src/lib/key.cpp:109,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:109,1
    - Dst: secure_array::data
      Src: /src/rnp/src/lib/key.cpp:109,1
    - Dst: g10_decrypt_seckey
      Src: /src/rnp/src/lib/key.cpp:111,1
    - Dst: rawpkt
      Src: /src/rnp/src/lib/key.cpp:111,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:111,1
    - Dst: secure_array::data
      Src: /src/rnp/src/lib/key.cpp:111,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:113,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/lib/key.cpp:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - '                    key'
    - provider
    - '     ctx'
    argTypes:
    - Key
    - pgp_password_provider_t
    - pgp_password_ctx_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 89
    functionDepth: 8
    functionLinenumber: 89
    functionLinenumberEnd: 116
    functionName: rnp::pgp_decrypt_seckey
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - is_secret
    - RNP_LOG
    - secure_array::data
    - pkt
    - secure_array::size
    - rawpkt
    - is_protected
    - static_cast<int>
    - rnp::pgp_decrypt_seckey_pgp
    - pgp_request_password
    - g10_decrypt_seckey
    linkageType: ''
    returnType: pgp_key_pkt_t
    signature: "pgp_key_pkt_t *\npgp_decrypt_seckey(const Key &                    key,\n
      \                  const pgp_password_provider_t &provider,\n                   const
      pgp_password_ctx_t &     ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::type
      Src: /src/rnp/src/lib/key.cpp:127,1
    - Dst: encrypt_secret_key
      Src: /src/rnp/src/lib/key.cpp:128,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/key.cpp:128,1
    - Dst: rnp::Key::write
      Src: /src/rnp/src/lib/key.cpp:132,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:135,1
    - Dst: what
      Src: /src/rnp/src/lib/key.cpp:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - '       dst'
    - '    seckey'
    - password
    - '              rng'
    argTypes:
    - pgp_dest_t
    - pgp_key_pkt_t
    - std::string
    - RNG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 140
    functionName: rnp::Key::write_sec_pgp
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - encrypt_secret_key
    - what
    - std::string::c_str
    - rnp::Key::write
    - rnp::Key::type
    linkageType: ''
    returnType: bool
    signature: "bool Key::write_sec_pgp(pgp_dest_t &       dst,\n                   pgp_key_pkt_t
      &    seckey,\n                   const std::string &password,\n                   RNG
      &              rng)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::write_sec_pgp
      Src: /src/rnp/src/lib/key.cpp:151,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/lib/key.cpp:151,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:152,1
    - Dst: g10_write_seckey
      Src: /src/rnp/src/lib/key.cpp:157,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/lib/key.cpp:157,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/key.cpp:157,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:158,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:163,1
    - Dst: RawPacket
      Src: /src/rnp/src/lib/key.cpp:167,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/lib/key.cpp:167,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/lib/key.cpp:167,1
    - Dst: rnp::Key::type
      Src: /src/rnp/src/lib/key.cpp:167,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:170,1
    - Dst: what
      Src: /src/rnp/src/lib/key.cpp:170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - seckey
    - password
    - ctx
    argTypes:
    - pgp_key_pkt_t
    - std::string
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 142
    functionDepth: 4
    functionLinenumber: 142
    functionLinenumberEnd: 173
    functionName: rnp::Key::write_sec_rawpkt
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - MemoryDest::dst
    - RNP_LOG
    - MemoryDest::memory
    - what
    - std::string::c_str
    - RawPacket
    - MemoryDest::writeb
    - rnp::Key::type
    - rnp::Key::write_sec_pgp
    - g10_write_seckey
    linkageType: ''
    returnType: bool
    signature: bool Key::write_sec_rawpkt(pgp_key_pkt_t &seckey, const std::string
      &password, SecurityContext &ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: profile::def_level
      Src: /src/rnp/src/lib/key.cpp:185,1
    - Dst: profile::has_rule
      Src: /src/rnp/src/lib/key.cpp:186,1
    - Dst: time
      Src: /src/rnp/src/lib/key.cpp:187,1
    - Dst: profile::get_rule
      Src: /src/rnp/src/lib/key.cpp:188,1
    - Dst: time
      Src: /src/rnp/src/lib/key.cpp:189,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:193,1
    - Dst: pgp::pkt::Signature*::remove_subpkt
      Src: /src/rnp/src/lib/key.cpp:197,1
    - Dst: pgp::pkt::Signature*::find_subpkt
      Src: /src/rnp/src/lib/key.cpp:197,1
    - Dst: pgp::pkt::Signature*::set_key_expiration
      Src: /src/rnp/src/lib/key.cpp:200,1
    - Dst: pgp::pkt::Signature*::set_creation
      Src: /src/rnp/src/lib/key.cpp:202,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:205,1
    - Dst: what
      Src: /src/rnp/src/lib/key.cpp:205,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - dst
    - src
    - create
    - expiry
    - '          ctx'
    argTypes:
    - pgp::pkt::Signature*
    - pgp::pkt::Signature*
    - uint64_t
    - uint32_t
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 208
    functionName: rnp::update_sig_expiration
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - profile::def_level
    - profile::has_rule
    - profile::get_rule
    - pgp::pkt::Signature*::remove_subpkt
    - pgp::pkt::Signature*::set_key_expiration
    - pgp::pkt::Signature*::find_subpkt
    - time
    - pgp::pkt::Signature*::set_creation
    linkageType: ''
    returnType: bool
    signature: "bool update_sig_expiration(pgp::pkt::Signature *      dst,\n                      const
      pgp::pkt::Signature *src,\n                      uint64_t                   create,\n
      \                     uint32_t                   expiry,\n                      SecurityContext
      &          ctx)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Key*::is_primary
      Src: /src/rnp/src/lib/key.cpp:217,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:218,1
    - Dst: Key*::latest_selfsig
      Src: /src/rnp/src/lib/key.cpp:225,1
    - Dst: pgp::SigIDs::push_back
      Src: /src/rnp/src/lib/key.cpp:227,1
    - Dst: Key*::uid_count
      Src: /src/rnp/src/lib/key.cpp:229,1
    - Dst: Key*::latest_selfsig
      Src: /src/rnp/src/lib/key.cpp:230,1
    - Dst: pgp::SigIDs::push_back
      Src: /src/rnp/src/lib/key.cpp:232,1
    - Dst: pgp::SigIDs::empty
      Src: /src/rnp/src/lib/key.cpp:235,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:236,1
    - Dst: Key*::get_sig
      Src: /src/rnp/src/lib/key.cpp:242,1
    - Dst: auto::sig::has_subpkt
      Src: /src/rnp/src/lib/key.cpp:244,1
    - Dst: Key*::is_locked
      Src: /src/rnp/src/lib/key.cpp:249,1
    - Dst: Key*::unlock
      Src: /src/rnp/src/lib/key.cpp:249,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:250,1
    - Dst: pgp::pkt::Signature::Signature
      Src: /src/rnp/src/lib/key.cpp:254,1
    - Dst: rnp::update_sig_expiration
      Src: /src/rnp/src/lib/key.cpp:256,1
    - Dst: time
      Src: /src/rnp/src/lib/key.cpp:256,1
    - Dst: auto::is_cert
      Src: /src/rnp/src/lib/key.cpp:260,1
    - Dst: Key*::uid_count
      Src: /src/rnp/src/lib/key.cpp:261,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:262,1
    - Dst: Key*::sign_cert
      Src: /src/rnp/src/lib/key.cpp:265,1
    - Dst: Key*::pkt
      Src: /src/rnp/src/lib/key.cpp:265,1
    - Dst: Key*::get_uid
      Src: /src/rnp/src/lib/key.cpp:265,1
    - Dst: Key*::sign_direct
      Src: /src/rnp/src/lib/key.cpp:268,1
    - Dst: Key*::pkt
      Src: /src/rnp/src/lib/key.cpp:268,1
    - Dst: Key*::has_sig
      Src: /src/rnp/src/lib/key.cpp:271,1
    - Dst: Key*::replace_sig
      Src: /src/rnp/src/lib/key.cpp:272,1
    - Dst: Key*::replace_sig
      Src: /src/rnp/src/lib/key.cpp:275,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:278,1
    - Dst: what
      Src: /src/rnp/src/lib/key.cpp:278,1
    - Dst: Key*::refresh_data
      Src: /src/rnp/src/lib/key.cpp:283,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:284,1
    - Dst: Key*::refresh_data
      Src: /src/rnp/src/lib/key.cpp:287,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:288,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 5
    argNames:
    - key
    - seckey
    - expiry
    - prov
    - '              ctx'
    argTypes:
    - Key*
    - Key*
    - uint32_t
    - pgp_password_provider_t
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 292
    functionName: rnp::pgp_key_set_expiration
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::Signature
    - Key*::refresh_data
    - rnp::update_sig_expiration
    - pgp::SigIDs::push_back
    - Key*::uid_count
    - pgp::SigIDs::empty
    - Key*::sign_cert
    - Key*::is_locked
    - Key*::pkt
    - Key*::is_primary
    - auto::sig::has_subpkt
    - RNP_LOG
    - Key*::get_sig
    - Key*::latest_selfsig
    - time
    - what
    - Key*::sign_direct
    - Key*::has_sig
    - Key*::unlock
    - Key*::replace_sig
    - auto::is_cert
    - Key*::get_uid
    linkageType: ''
    returnType: bool
    signature: "bool pgp_key_set_expiration(Key *                          key,\n
      \                      Key *                          seckey,\n                       uint32_t
      \                      expiry,\n                       const pgp_password_provider_t
      &prov,\n                       SecurityContext &              ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Key*::is_subkey
      Src: /src/rnp/src/lib/key.cpp:302,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:303,1
    - Dst: Key*::latest_binding
      Src: /src/rnp/src/lib/key.cpp:308,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:310,1
    - Dst: auto::sig::has_subpkt
      Src: /src/rnp/src/lib/key.cpp:313,1
    - Dst: Key*::is_locked
      Src: /src/rnp/src/lib/key.cpp:318,1
    - Dst: Key*::unlock
      Src: /src/rnp/src/lib/key.cpp:318,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:319,1
    - Dst: Key*::can_sign
      Src: /src/rnp/src/lib/key.cpp:322,1
    - Dst: Key*::is_locked
      Src: /src/rnp/src/lib/key.cpp:324,1
    - Dst: Key*::unlock
      Src: /src/rnp/src/lib/key.cpp:324,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:325,1
    - Dst: pgp::pkt::Signature::Signature
      Src: /src/rnp/src/lib/key.cpp:331,1
    - Dst: rnp::update_sig_expiration
      Src: /src/rnp/src/lib/key.cpp:333,1
    - Dst: time
      Src: /src/rnp/src/lib/key.cpp:333,1
    - Dst: Key*::sign_subkey_binding
      Src: /src/rnp/src/lib/key.cpp:336,1
    - Dst: Key*::has_sig
      Src: /src/rnp/src/lib/key.cpp:338,1
    - Dst: Key*::replace_sig
      Src: /src/rnp/src/lib/key.cpp:339,1
    - Dst: Key*::refresh_data
      Src: /src/rnp/src/lib/key.cpp:340,1
    - Dst: Key*::replace_sig
      Src: /src/rnp/src/lib/key.cpp:347,1
    - Dst: Key*::refresh_data
      Src: /src/rnp/src/lib/key.cpp:348,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:350,1
    - Dst: what
      Src: /src/rnp/src/lib/key.cpp:350,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 6
    argNames:
    - sub
    - primsec
    - secsub
    - expiry
    - prov
    - '              ctx'
    argTypes:
    - Key*
    - Key*
    - Key*
    - uint32_t
    - pgp_password_provider_t
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 353
    functionName: rnp::pgp_subkey_set_expiration
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - Key*::is_subkey
    - pgp::pkt::Signature::Signature
    - Key*::is_locked
    - rnp::update_sig_expiration
    - Key*::refresh_data
    - what
    - Key*::sign_subkey_binding
    - Key*::has_sig
    - Key*::can_sign
    - Key*::unlock
    - Key*::replace_sig
    - auto::sig::has_subpkt
    - time
    - Key*::latest_binding
    linkageType: ''
    returnType: bool
    signature: "bool pgp_subkey_set_expiration(Key *                          sub,\n
      \                         Key *                          primsec,\n                          Key
      *                          secsub,\n                          uint32_t                       expiry,\n
      \                         const pgp_password_provider_t &prov,\n                          SecurityContext
      &              ctx)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:371,1
    - Dst: Key*::usable_for
      Src: /src/rnp/src/lib/key.cpp:375,1
    - Dst: Key*::is_public
      Src: /src/rnp/src/lib/key.cpp:379,1
    - Dst: Key*::usable_for
      Src: /src/rnp/src/lib/key.cpp:379,1
    - Dst: Key*::fp
      Src: /src/rnp/src/lib/key.cpp:380,1
    - Dst: KeyProvider*::request_key
      Src: /src/rnp/src/lib/key.cpp:381,1
    - Dst: Key*::usable_for
      Src: /src/rnp/src/lib/key.cpp:382,1
    - Dst: Key*::subkey_fps
      Src: /src/rnp/src/lib/key.cpp:388,1
    - Dst: KeyProvider*::request_key
      Src: /src/rnp/src/lib/key.cpp:390,1
    - Dst: Key*::usable_for
      Src: /src/rnp/src/lib/key.cpp:391,1
    - Dst: Key*::is_pqc
      Src: /src/rnp/src/lib/key.cpp:398,1
    - Dst: Key*::is_pqc
      Src: /src/rnp/src/lib/key.cpp:398,1
    - Dst: Key*::is_pqc
      Src: /src/rnp/src/lib/key.cpp:402,1
    - Dst: Key*::is_pqc
      Src: /src/rnp/src/lib/key.cpp:402,1
    - Dst: Key*::creation
      Src: /src/rnp/src/lib/key.cpp:409,1
    - Dst: Key*::creation
      Src: /src/rnp/src/lib/key.cpp:409,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 40
    argCount: 5
    argNames:
    - op
    - key
    - key_provider
    - no_primary
    - pref_pqc_sub
    argTypes:
    - pgp_op_t
    - Key*
    - KeyProvider*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 414
    functionName: rnp::find_suitable_key
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - Key*::is_pqc
    - Key*::usable_for
    - Key*::creation
    - Key*::fp
    - Key*::is_public
    - Key*::subkey_fps
    - KeyProvider*::request_key
    linkageType: ''
    returnType: Key
    signature: "Key *\nfind_suitable_key(\n  pgp_op_t op, Key *key, KeyProvider *key_provider,
      bool no_primary, bool pref_pqc_sub)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_key_pkt
      Src: /src/rnp/src/lib/key.cpp:418,1
    - Dst: material::alg
      Src: /src/rnp/src/lib/key.cpp:418,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:419,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/lib/key.cpp:421,1
    - Dst: material::grip
      Src: /src/rnp/src/lib/key.cpp:422,1
    - Dst: is_secret_key_pkt
      Src: /src/rnp/src/lib/key.cpp:425,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/lib/key.cpp:427,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:428,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:429,1
    - Dst: material::set_validity
      Src: /src/rnp/src/lib/key.cpp:432,1
    - Dst: pgp_key_pkt_t::material::validity
      Src: /src/rnp/src/lib/key.cpp:432,1
    - Dst: RawPacket
      Src: /src/rnp/src/lib/key.cpp:435,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - keypkt
    argTypes:
    - pgp_key_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 416
    functionDepth: 3
    functionLinenumber: 416
    functionLinenumberEnd: 437
    functionName: rnp::Key::Key
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - material::set_validity
    - is_secret_key_pkt
    - material::grip
    - pgp::Fingerprint::Fingerprint
    - material::alg
    - RawPacket
    - pgp_key_pkt_t::material::validity
    - rnp_exception
    - decrypt_secret_key
    - is_key_pkt
    linkageType: ''
    returnType: void
    signature: void Key::Key(const pgp_key_pkt_t &keypkt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key::link_subkey_fp
      Src: /src/rnp/src/lib/key.cpp:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkt
    - primary
    argTypes:
    - pgp_key_pkt_t
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 442
    functionName: rnp::Key::Key
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 4
    functionsReached:
    - Key::link_subkey_fp
    linkageType: ''
    returnType: void
    signature: void Key::Key(const pgp_key_pkt_t &pkt, Key &primary)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:449,1
    - Dst: std::invalid_argument
      Src: /src/rnp/src/lib/key.cpp:450,1
    - Dst: pgp_key_pkt_t
      Src: /src/rnp/src/lib/key.cpp:455,1
    - Dst: RawPacket
      Src: /src/rnp/src/lib/key.cpp:456,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - src
    - pubonly
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 481
    functionName: rnp::Key::Key
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - std::invalid_argument
    - pgp_key_pkt_t
    - RawPacket
    linkageType: ''
    returnType: void
    signature: void Key::Key(const Key &src, bool pubonly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:487,1
    - Dst: add_uid
      Src: /src/rnp/src/lib/key.cpp:492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_transferable_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 494
    functionName: rnp::Key::Key
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 4
    functionsReached:
    - add_uid
    - add_sig
    linkageType: ''
    returnType: void
    signature: void Key::Key(const pgp_transferable_key_t &src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:500,1
    - Dst: Key*::link_subkey_fp
      Src: /src/rnp/src/lib/key.cpp:505,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - src
    - primary
    argTypes:
    - pgp_transferable_subkey_t
    - Key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 507
    functionName: rnp::Key::Key
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 4
    functionsReached:
    - Key*::link_subkey_fp
    - add_sig
    linkageType: ''
    returnType: void
    signature: void Key::Key(const pgp_transferable_subkey_t &src, Key *primary)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 513
    functionName: rnp::Key::sig_count
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t Key::sig_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:518,1
    - Dst: at
      Src: /src/rnp/src/lib/key.cpp:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 519
    functionName: '&

      Key::get_sig(size_t idx)'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - at
    - get_sig
    linkageType: ''
    returnType: Signature
    signature: 'Signature &

      Key::get_sig(size_t idx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:524,1
    - Dst: at
      Src: /src/rnp/src/lib/key.cpp:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 525
    functionName: '&

      Key::get_sig(size_t idx) const'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - at
    - get_sig
    linkageType: ''
    returnType: Signature
    signature: 'Signature &

      Key::get_sig(size_t idx) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/rnp/src/lib/key.cpp:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - pgp::SigID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 531
    functionName: rnp::Key::has_sig
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - count
    linkageType: ''
    returnType: bool
    signature: bool Key::has_sig(const pgp::SigID &id) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_sig
      Src: /src/rnp/src/lib/key.cpp:536,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:537,1
    - Dst: at
      Src: /src/rnp/src/lib/key.cpp:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - pgp::SigID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 540
    functionName: '&

      Key::get_sig(const pgp::SigID &id)'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - at
    - rnp_exception
    - has_sig
    linkageType: ''
    returnType: Signature
    signature: 'Signature &

      Key::get_sig(const pgp::SigID &id)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_sig
      Src: /src/rnp/src/lib/key.cpp:545,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:546,1
    - Dst: at
      Src: /src/rnp/src/lib/key.cpp:548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - pgp::SigID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 549
    functionName: '&

      Key::get_sig(const pgp::SigID &id) const'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - at
    - rnp_exception
    - has_sig
    linkageType: ''
    returnType: Signature
    signature: 'Signature &

      Key::get_sig(const pgp::SigID &id) const'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:555,1
    - Dst: erase
      Src: /src/rnp/src/lib/key.cpp:558,1
    - Dst: emplace
      Src: /src/rnp/src/lib/key.cpp:559,1
    - Dst: std::make_pair
      Src: /src/rnp/src/lib/key.cpp:559,1
    - Dst: pgp::pkt::Signature::get_id
      Src: /src/rnp/src/lib/key.cpp:559,1
    - Dst: std::find
      Src: /src/rnp/src/lib/key.cpp:561,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:561,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:561,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:562,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:563,1
    - Dst: std::find
      Src: /src/rnp/src/lib/key.cpp:567,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:567,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:567,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:568,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:569,1
    - Dst: replace_sig
      Src: /src/rnp/src/lib/key.cpp:573,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - id
    - newsig
    argTypes:
    - pgp::SigID
    - pgp::pkt::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 551
    functionDepth: 2
    functionLinenumber: 551
    functionLinenumberEnd: 576
    functionName: '&

      Key::replace_sig(const pgp::SigID &id, const pgp::pkt::Signature &newsig)'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp_exception
    - end
    - pgp::pkt::Signature::get_id
    - erase
    - std::make_pair
    - get_sig
    - std::find
    - emplace
    - begin
    - replace_sig
    linkageType: ''
    returnType: Signature
    signature: 'Signature &

      Key::replace_sig(const pgp::SigID &id, const pgp::pkt::Signature &newsig)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::get_id
      Src: /src/rnp/src/lib/key.cpp:581,1
    - Dst: erase
      Src: /src/rnp/src/lib/key.cpp:582,1
    - Dst: emplace
      Src: /src/rnp/src/lib/key.cpp:583,1
    - Dst: std::make_pair
      Src: /src/rnp/src/lib/key.cpp:583,1
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:586,1
    - Dst: insert
      Src: /src/rnp/src/lib/key.cpp:587,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:587,1
    - Dst: insert
      Src: /src/rnp/src/lib/key.cpp:588,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:588,1
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:593,1
    - Dst: sig_count
      Src: /src/rnp/src/lib/key.cpp:595,1
    - Dst: sig_count
      Src: /src/rnp/src/lib/key.cpp:598,1
    - Dst: insert
      Src: /src/rnp/src/lib/key.cpp:600,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:600,1
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:601,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - sig
    - uid
    - begin
    argTypes:
    - pgp::pkt::Signature
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 603
    functionName: '&

      Key::add_sig(const pgp::pkt::Signature &sig, size_t uid, bool begin)'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - sig_count
    - insert
    - pgp::pkt::Signature::get_id
    - erase
    - add_sig
    - std::make_pair
    - emplace
    - begin
    - size
    linkageType: ''
    returnType: Signature
    signature: 'Signature &

      Key::add_sig(const pgp::pkt::Signature &sig, size_t uid, bool begin)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::has_sig
      Src: /src/rnp/src/lib/key.cpp:608,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:611,1
    - Dst: std::find
      Src: /src/rnp/src/lib/key.cpp:614,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:614,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:614,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:615,1
    - Dst: erase
      Src: /src/rnp/src/lib/key.cpp:616,1
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:618,1
    - Dst: rnp::Key::del_sig
      Src: /src/rnp/src/lib/key.cpp:620,1
    - Dst: std::find
      Src: /src/rnp/src/lib/key.cpp:622,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:622,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:622,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:623,1
    - Dst: erase
      Src: /src/rnp/src/lib/key.cpp:624,1
    - Dst: erase
      Src: /src/rnp/src/lib/key.cpp:626,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - sigid
    argTypes:
    - pgp::SigID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 627
    functionName: rnp::Key::del_sig
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - end
    - size
    - rnp::Key::del_sig
    - erase
    - get_sig
    - std::find
    - begin
    - rnp::Key::has_sig
    linkageType: ''
    returnType: bool
    signature: bool Key::del_sig(const pgp::SigID &sigid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/rnp/src/lib/key.cpp:635,1
    - Dst: clear
      Src: /src/rnp/src/lib/key.cpp:638,1
    - Dst: clear_sigs
      Src: /src/rnp/src/lib/key.cpp:640,1
    - Dst: pgp::SigIDs::reserve
      Src: /src/rnp/src/lib/key.cpp:643,1
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:643,1
    - Dst: count
      Src: /src/rnp/src/lib/key.cpp:645,1
    - Dst: pgp::SigIDs::push_back
      Src: /src/rnp/src/lib/key.cpp:648,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:649,1
    - Dst: push_back
      Src: /src/rnp/src/lib/key.cpp:651,1
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:653,1
    - Dst: std::move
      Src: /src/rnp/src/lib/key.cpp:656,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - sigs
    argTypes:
    - pgp::SigIDs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 658
    functionName: rnp::Key::del_sigs
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - pgp::SigIDs::reserve
    - std::move
    - pgp::SigIDs::push_back
    - push_back
    - clear_sigs
    - erase
    - add_sig
    - get_sig
    - clear
    - count
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t Key::del_sigs(const pgp::SigIDs &sigs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 664
    functionName: rnp::Key::keysig_count
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t Key::keysig_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:669,1
    - Dst: at
      Src: /src/rnp/src/lib/key.cpp:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 670
    functionName: '&

      Key::get_keysig(size_t idx)'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - at
    - get_sig
    linkageType: ''
    returnType: Signature
    signature: 'Signature &

      Key::get_keysig(size_t idx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 676
    functionName: rnp::Key::uid_count
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t Key::uid_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/rnp/src/lib/key.cpp:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 682
    functionName: '&

      Key::get_uid(size_t idx)'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: UserID
    signature: 'UserID &

      Key::get_uid(size_t idx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/rnp/src/lib/key.cpp:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 688
    functionName: '&

      Key::get_uid(size_t idx) const'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: UserID
    signature: 'UserID &

      Key::get_uid(size_t idx) const'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - uidstr
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 702
    functionName: rnp::Key::has_uid
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Key::has_uid(const std::string &uidstr) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:707,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - uid
    argTypes:
    - pgp_userid_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 713
    functionName: rnp::Key::uid_idx
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Key::uid_idx(const pgp_userid_pkt_t &uid) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:718,1
    - Dst: std::out_of_range
      Src: /src/rnp/src/lib/key.cpp:719,1
    - Dst: pgp::SigIDs::reserve
      Src: /src/rnp/src/lib/key.cpp:724,1
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:724,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:726,1
    - Dst: erase
      Src: /src/rnp/src/lib/key.cpp:727,1
    - Dst: pgp::SigIDs::push_back
      Src: /src/rnp/src/lib/key.cpp:730,1
    - Dst: std::move
      Src: /src/rnp/src/lib/key.cpp:732,1
    - Dst: erase
      Src: /src/rnp/src/lib/key.cpp:733,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:733,1
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:735,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 744
    functionName: rnp::Key::del_uid
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - pgp::SigIDs::reserve
    - std::out_of_range
    - std::move
    - pgp::SigIDs::push_back
    - erase
    - get_sig
    - begin
    - size
    linkageType: ''
    returnType: void
    signature: void Key::del_uid(size_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 750
    functionName: rnp::Key::has_primary_uid
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Key::has_primary_uid() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:756,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 759
    functionName: rnp::Key::get_primary_uid
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp_exception
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Key::get_primary_uid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/rnp/src/lib/key.cpp:765,1
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:768,1
    - Dst: uid_count
      Src: /src/rnp/src/lib/key.cpp:768,1
    - Dst: back
      Src: /src/rnp/src/lib/key.cpp:770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - uid
    argTypes:
    - pgp_transferable_userid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 771
    functionName: '&

      Key::add_uid(const pgp_transferable_userid_t &uid)'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - back
    - emplace_back
    - add_sig
    - uid_count
    linkageType: ''
    returnType: UserID
    signature: 'UserID &

      Key::add_uid(const pgp_transferable_userid_t &uid)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 777
    functionName: rnp::Key::revoked
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Key::revoked() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:783,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 786
    functionName: '&

      Key::revocation() const'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp_exception
    linkageType: ''
    returnType: Revocation
    signature: 'Revocation &

      Key::revocation() const'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 797
    functionName: rnp::Key::clear_revokes
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key::clear_revokes()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/rnp/src/lib/key.cpp:802,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:802,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:802,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:802,1
    - Dst: push_back
      Src: /src/rnp/src/lib/key.cpp:803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - revoker
    argTypes:
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 805
    functionName: rnp::Key::add_revoker
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - std::find
    - end
    - begin
    - push_back
    linkageType: ''
    returnType: void
    signature: void Key::add_revoker(const pgp::Fingerprint &revoker)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/rnp/src/lib/key.cpp:810,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:810,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:810,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - revoker
    argTypes:
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 811
    functionName: rnp::Key::has_revoker
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - std::find
    - end
    - begin
    linkageType: ''
    returnType: bool
    signature: bool Key::has_revoker(const pgp::Fingerprint &revoker) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 817
    functionName: rnp::Key::revoker_count
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t Key::revoker_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/rnp/src/lib/key.cpp:822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 823
    functionName: '&

      Key::get_revoker(size_t idx) const'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: pgp::Fingerprint
    signature: 'pgp::Fingerprint &

      Key::get_revoker(size_t idx) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 829
    functionName: '&

      Key::pkt() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_key_pkt_t
    signature: 'pgp_key_pkt_t &

      Key::pkt() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 835
    functionName: '&

      Key::pkt() noexcept'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_key_pkt_t
    signature: 'pgp_key_pkt_t &

      Key::pkt() noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_key_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 841
    functionName: rnp::Key::set_pkt
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key::set_pkt(const pgp_key_pkt_t &pkt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: material::get
      Src: /src/rnp/src/lib/key.cpp:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 847
    functionName: rnp::Key::material
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - material::get
    linkageType: ''
    returnType: pgp::KeyMaterial
    signature: 'pgp::KeyMaterial *

      Key::material() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: material::get
      Src: /src/rnp/src/lib/key.cpp:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 849
    functionDepth: 1
    functionLinenumber: 849
    functionLinenumberEnd: 853
    functionName: rnp::Key::material
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - material::get
    linkageType: ''
    returnType: pgp::KeyMaterial
    signature: 'pgp::KeyMaterial *

      Key::material() noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 859
    functionName: rnp::Key::alg
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: pgp_pubkey_alg_t
    signature: pgp_pubkey_alg_t Key::alg() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::material
      Src: /src/rnp/src/lib/key.cpp:864,1
    - Dst: rnp::Key::material
      Src: /src/rnp/src/lib/key.cpp:864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 861
    functionDepth: 2
    functionLinenumber: 861
    functionLinenumberEnd: 865
    functionName: rnp::Key::curve
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key::material
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t Key::curve() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 871
    functionName: rnp::Key::version
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - pkt
    linkageType: ''
    returnType: pgp_version_t
    signature: pgp_version_t Key::version() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 877
    functionName: rnp::Key::type
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - pkt
    linkageType: ''
    returnType: pgp_pkt_type_t
    signature: pgp_pkt_type_t Key::type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:882,1
    - Dst: rnp::Key::material
      Src: /src/rnp/src/lib/key.cpp:882,1
    - Dst: rnp::Key::material
      Src: /src/rnp/src/lib/key.cpp:882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 879
    functionDepth: 2
    functionLinenumber: 879
    functionLinenumberEnd: 883
    functionName: rnp::Key::encrypted
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key::material
    - rnp::Key::is_secret
    linkageType: ''
    returnType: bool
    signature: bool Key::encrypted() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 889
    functionName: rnp::Key::flags
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Key::flags() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 895
    functionName: rnp::Key::can_sign
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Key::can_sign() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 901
    functionName: rnp::Key::can_certify
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Key::can_certify() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 907
    functionName: rnp::Key::can_encrypt
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Key::can_encrypt() const noexcept
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:912,1
    - Dst: sec_data::empty
      Src: /src/rnp/src/lib/key.cpp:915,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 909
    functionDepth: 1
    functionLinenumber: 909
    functionLinenumberEnd: 932
    functionName: rnp::Key::has_secret
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - sec_data::empty
    - rnp::Key::is_secret
    linkageType: ''
    returnType: bool
    signature: bool Key::has_secret() const noexcept
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 974
    functionName: rnp::Key::is_pqc_alg
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Key::is_pqc_alg(pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_pqc_alg
      Src: /src/rnp/src/lib/key.cpp:979,1
    - Dst: rnp::Key::alg
      Src: /src/rnp/src/lib/key.cpp:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 980
    functionName: rnp::Key::is_pqc
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key::alg
    - rnp::Key::is_pqc_alg
    linkageType: ''
    returnType: bool
    signature: bool Key::is_pqc() const noexcept
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:988,1
    - Dst: rnp::Key::can_sign
      Src: /src/rnp/src/lib/key.cpp:988,1
    - Dst: rnp::Key::has_secret
      Src: /src/rnp/src/lib/key.cpp:988,1
    - Dst: rnp::Key::can_sign
      Src: /src/rnp/src/lib/key.cpp:990,1
    - Dst: rnp::Key::valid
      Src: /src/rnp/src/lib/key.cpp:990,1
    - Dst: rnp::Key::has_secret
      Src: /src/rnp/src/lib/key.cpp:990,1
    - Dst: rnp::Key::can_certify
      Src: /src/rnp/src/lib/key.cpp:992,1
    - Dst: rnp::Key::valid
      Src: /src/rnp/src/lib/key.cpp:992,1
    - Dst: rnp::Key::has_secret
      Src: /src/rnp/src/lib/key.cpp:992,1
    - Dst: rnp::Key::can_encrypt
      Src: /src/rnp/src/lib/key.cpp:994,1
    - Dst: rnp::Key::valid
      Src: /src/rnp/src/lib/key.cpp:994,1
    - Dst: rnp::Key::has_secret
      Src: /src/rnp/src/lib/key.cpp:994,1
    - Dst: rnp::Key::has_secret
      Src: /src/rnp/src/lib/key.cpp:998,1
    - Dst: rnp::Key::can_sign
      Src: /src/rnp/src/lib/key.cpp:1000,1
    - Dst: rnp::Key::valid
      Src: /src/rnp/src/lib/key.cpp:1000,1
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:1002,1
    - Dst: rnp::Key::can_sign
      Src: /src/rnp/src/lib/key.cpp:1002,1
    - Dst: rnp::Key::has_secret
      Src: /src/rnp/src/lib/key.cpp:1002,1
    - Dst: rnp::Key::can_encrypt
      Src: /src/rnp/src/lib/key.cpp:1004,1
    - Dst: rnp::Key::valid
      Src: /src/rnp/src/lib/key.cpp:1004,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 23
    argCount: 2
    argNames:
    - op
    - if_secret
    argTypes:
    - pgp_op_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 983
    functionDepth: 2
    functionLinenumber: 983
    functionLinenumberEnd: 1008
    functionName: rnp::Key::usable_for
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key::has_secret
    - rnp::Key::can_encrypt
    - rnp::Key::can_certify
    - rnp::Key::valid
    - rnp::Key::can_sign
    - rnp::Key::is_primary
    linkageType: ''
    returnType: bool
    signature: bool Key::usable_for(pgp_op_t op, bool if_secret) const
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1021
    functionName: rnp::Key::expiration
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Key::expiration() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1027
    functionName: rnp::Key::expired
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Key::expired() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1033
    functionName: rnp::Key::creation
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Key::creation() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_public_key_pkt
      Src: /src/rnp/src/lib/key.cpp:1038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1039
    functionName: rnp::Key::is_public
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - is_public_key_pkt
    linkageType: ''
    returnType: bool
    signature: bool Key::is_public() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_secret_key_pkt
      Src: /src/rnp/src/lib/key.cpp:1044,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1041
    functionDepth: 1
    functionLinenumber: 1041
    functionLinenumberEnd: 1045
    functionName: rnp::Key::is_secret
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 3
    functionsReached:
    - is_secret_key_pkt
    linkageType: ''
    returnType: bool
    signature: bool Key::is_secret() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_primary_key_pkt
      Src: /src/rnp/src/lib/key.cpp:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1051
    functionName: rnp::Key::is_primary
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - is_primary_key_pkt
    linkageType: ''
    returnType: bool
    signature: bool Key::is_primary() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_subkey_pkt
      Src: /src/rnp/src/lib/key.cpp:1056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1053
    functionDepth: 1
    functionLinenumber: 1053
    functionLinenumberEnd: 1057
    functionName: rnp::Key::is_subkey
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - is_subkey_pkt
    linkageType: ''
    returnType: bool
    signature: bool Key::is_subkey() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:1062,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1063,1
    - Dst: rnp::Key::encrypted
      Src: /src/rnp/src/lib/key.cpp:1066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1059
    functionDepth: 3
    functionLinenumber: 1059
    functionLinenumberEnd: 1067
    functionName: rnp::Key::is_locked
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::Key::encrypted
    - rnp::Key::is_secret
    linkageType: ''
    returnType: bool
    signature: bool Key::is_locked() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:1073,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1074,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1069
    functionDepth: 2
    functionLinenumber: 1069
    functionLinenumberEnd: 1077
    functionName: rnp::Key::is_protected
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::Key::is_secret
    linkageType: ''
    returnType: bool
    signature: bool Key::is_protected() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1079
    functionDepth: 0
    functionLinenumber: 1079
    functionLinenumberEnd: 1083
    functionName: rnp::Key::valid
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Key::valid() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1089
    functionName: rnp::Key::validated
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Key::validated() const noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::validated
      Src: /src/rnp/src/lib/key.cpp:1094,1
    - Dst: rnp::Key::expiration
      Src: /src/rnp/src/lib/key.cpp:1097,1
    - Dst: rnp::Key::creation
      Src: /src/rnp/src/lib/key.cpp:1097,1
    - Dst: rnp::Key::expiration
      Src: /src/rnp/src/lib/key.cpp:1097,1
    - Dst: rnp::Key::valid
      Src: /src/rnp/src/lib/key.cpp:1098,1
    - Dst: rnp::Key::revoked
      Src: /src/rnp/src/lib/key.cpp:1101,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1106,1
    - Dst: auto::sig::creation
      Src: /src/rnp/src/lib/key.cpp:1107,1
    - Dst: rnp::Key::creation
      Src: /src/rnp/src/lib/key.cpp:1107,1
    - Dst: std::min
      Src: /src/rnp/src/lib/key.cpp:1109,1
    - Dst: auto::sig::creation
      Src: /src/rnp/src/lib/key.cpp:1109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - expiry
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1115
    functionName: rnp::Key::valid_till_common
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key::creation
    - auto::sig::creation
    - rnp::Key::valid
    - rnp::Key::expiration
    - std::min
    - rnp::Key::revoked
    - get_sig
    - rnp::Key::validated
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Key::valid_till_common(bool expiry) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1117
    functionDepth: 0
    functionLinenumber: 1117
    functionLinenumberEnd: 1121
    functionName: rnp::Key::valid_till
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Key::valid_till() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::creation
      Src: /src/rnp/src/lib/key.cpp:1128,1
    - Dst: rnp::Key::valid_till
      Src: /src/rnp/src/lib/key.cpp:1128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - timestamp
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1129
    functionName: rnp::Key::valid_at
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key::creation
    - rnp::Key::valid_till
    linkageType: ''
    returnType: bool
    signature: bool Key::valid_at(uint64_t timestamp) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keyid
      Src: /src/rnp/src/lib/key.cpp:1134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1131
    functionDepth: 0
    functionLinenumber: 1131
    functionLinenumberEnd: 1135
    functionName: '&

      Key::keyid() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - keyid
    linkageType: ''
    returnType: pgp::KeyID
    signature: 'pgp::KeyID &

      Key::keyid() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1137
    functionDepth: 0
    functionLinenumber: 1137
    functionLinenumberEnd: 1141
    functionName: '&

      Key::fp() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp::Fingerprint
    signature: 'pgp::Fingerprint &

      Key::fp() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1143
    functionDepth: 0
    functionLinenumber: 1143
    functionLinenumberEnd: 1147
    functionName: '&

      Key::grip() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp::KeyGrip
    signature: 'pgp::KeyGrip &

      Key::grip() const noexcept'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:1153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1149
    functionDepth: 0
    functionLinenumber: 1149
    functionLinenumberEnd: 1156
    functionName: '&

      Key::primary_fp() const'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp_exception
    linkageType: ''
    returnType: pgp::Fingerprint
    signature: 'pgp::Fingerprint &

      Key::primary_fp() const'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1158
    functionDepth: 0
    functionLinenumber: 1158
    functionLinenumberEnd: 1162
    functionName: rnp::Key::has_primary_fp
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Key::has_primary_fp() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1169
    functionName: rnp::Key::unset_primary_fp
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key::unset_primary_fp() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:1174,1
    - Dst: Key::is_subkey
      Src: /src/rnp/src/lib/key.cpp:1174,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:1175,1
    - Dst: fp
      Src: /src/rnp/src/lib/key.cpp:1177,1
    - Dst: rnp::Key::add_subkey_fp
      Src: /src/rnp/src/lib/key.cpp:1179,1
    - Dst: Key::fp
      Src: /src/rnp/src/lib/key.cpp:1179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - subkey
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1171
    functionDepth: 2
    functionLinenumber: 1171
    functionLinenumberEnd: 1180
    functionName: rnp::Key::link_subkey_fp
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key::add_subkey_fp
    - fp
    - Key::is_subkey
    - Key::fp
    - rnp::Key::is_primary
    - rnp_exception
    linkageType: ''
    returnType: void
    signature: void Key::link_subkey_fp(Key &subkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/rnp/src/lib/key.cpp:1185,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:1185,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:1185,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:1185,1
    - Dst: push_back
      Src: /src/rnp/src/lib/key.cpp:1186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fp
    argTypes:
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1182
    functionDepth: 1
    functionLinenumber: 1182
    functionLinenumberEnd: 1188
    functionName: rnp::Key::add_subkey_fp
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - std::find
    - end
    - begin
    - push_back
    linkageType: ''
    returnType: void
    signature: void Key::add_subkey_fp(const pgp::Fingerprint &fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:1193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1190
    functionDepth: 1
    functionLinenumber: 1190
    functionLinenumberEnd: 1194
    functionName: rnp::Key::subkey_count
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t Key::subkey_count() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/rnp/src/lib/key.cpp:1199,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:1199,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:1199,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:1200,1
    - Dst: erase
      Src: /src/rnp/src/lib/key.cpp:1201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fp
    argTypes:
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1196
    functionDepth: 1
    functionLinenumber: 1196
    functionLinenumberEnd: 1203
    functionName: rnp::Key::remove_subkey_fp
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - std::find
    - end
    - begin
    - erase
    linkageType: ''
    returnType: void
    signature: void Key::remove_subkey_fp(const pgp::Fingerprint &fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1205
    functionDepth: 0
    functionLinenumber: 1205
    functionLinenumberEnd: 1209
    functionName: '&

      Key::get_subkey_fp(size_t idx) const'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp::Fingerprint
    signature: 'pgp::Fingerprint &

      Key::get_subkey_fp(size_t idx) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1211
    functionDepth: 0
    functionLinenumber: 1211
    functionLinenumberEnd: 1215
    functionName: '&

      Key::subkey_fps() const'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp::Fingerprints
    signature: 'pgp::Fingerprints &

      Key::subkey_fps() const'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::uid_count
      Src: /src/rnp/src/lib/key.cpp:1223,1
    - Dst: rnp::Key::sig_count
      Src: /src/rnp/src/lib/key.cpp:1223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1217
    functionDepth: 2
    functionLinenumber: 1217
    functionLinenumberEnd: 1224
    functionName: rnp::Key::rawpkt_count
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - rnp::Key::uid_count
    - rnp::Key::sig_count
    linkageType: ''
    returnType: size_t
    signature: size_t Key::rawpkt_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1226
    functionDepth: 0
    functionLinenumber: 1226
    functionLinenumberEnd: 1230
    functionName: '&

      Key::rawpkt()'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawPacket
    signature: 'RawPacket &

      Key::rawpkt()'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1232
    functionDepth: 0
    functionLinenumber: 1232
    functionLinenumberEnd: 1236
    functionName: '&

      Key::rawpkt() const'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawPacket
    signature: 'RawPacket &

      Key::rawpkt() const'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - RawPacket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1238
    functionDepth: 0
    functionLinenumber: 1238
    functionLinenumberEnd: 1242
    functionName: rnp::Key::set_rawpkt
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key::set_rawpkt(const RawPacket &src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::usable_for
      Src: /src/rnp/src/lib/key.cpp:1248,1
    - Dst: rnp::Key::is_locked
      Src: /src/rnp/src/lib/key.cpp:1252,1
    - Dst: pgp_decrypt_seckey
      Src: /src/rnp/src/lib/key.cpp:1257,1
    - Dst: std::move
      Src: /src/rnp/src/lib/key.cpp:1263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - provider
    - op
    argTypes:
    - pgp_password_provider_t
    - pgp_op_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1244
    functionDepth: 4
    functionLinenumber: 1244
    functionLinenumberEnd: 1266
    functionName: rnp::Key::unlock
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - rnp::Key::is_locked
    - rnp::Key::usable_for
    - pgp_decrypt_seckey
    - std::move
    linkageType: ''
    returnType: bool
    signature: bool Key::unlock(const pgp_password_provider_t &provider, pgp_op_t
      op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:1272,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1273,1
    - Dst: rnp::Key::is_locked
      Src: /src/rnp/src/lib/key.cpp:1278,1
    - Dst: assert
      Src: /src/rnp/src/lib/key.cpp:1282,1
    - Dst: rnp::Key::material
      Src: /src/rnp/src/lib/key.cpp:1282,1
    - Dst: rnp::Key::material
      Src: /src/rnp/src/lib/key.cpp:1283,1
    - Dst: rnp::Key::material
      Src: /src/rnp/src/lib/key.cpp:1284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (material())
      pos:
        line_end: 1281
        line_start: 1281
        source_file: /src/rnp/src/lib/key.cpp
    constantsTouched: []
    func_position:
      end: 1287
      start: 1268
    functionDepth: 4
    functionLinenumber: 1268
    functionLinenumberEnd: 1287
    functionName: rnp::Key::lock
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::Key::material
    - rnp::Key::is_locked
    - assert
    - rnp::Key::is_secret
    linkageType: ''
    returnType: bool
    signature: bool Key::lock() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_request_password
      Src: /src/rnp/src/lib/key.cpp:1298,1
    - Dst: secure_array::data
      Src: /src/rnp/src/lib/key.cpp:1298,1
    - Dst: secure_array::size
      Src: /src/rnp/src/lib/key.cpp:1298,1
    - Dst: rnp::Key::protect
      Src: /src/rnp/src/lib/key.cpp:1301,1
    - Dst: secure_array::data
      Src: /src/rnp/src/lib/key.cpp:1301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - protection
    - '    password_provider'
    - '                  sctx'
    argTypes:
    - rnp_key_protection_params_t
    - pgp_password_provider_t
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1289
    functionDepth: 1
    functionLinenumber: 1289
    functionLinenumberEnd: 1302
    functionName: rnp::Key::protect
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - pgp_request_password
    - secure_array::data
    - rnp::Key::protect
    - secure_array::size
    linkageType: ''
    returnType: bool
    signature: "bool Key::protect(const rnp_key_protection_params_t &protection,\n
      \            const pgp_password_provider_t &    password_provider,\n             SecurityContext
      &                  sctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:1310,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1311,1
    - Dst: material::secret
      Src: /src/rnp/src/lib/key.cpp:1315,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1316,1
    - Dst: s2k_iterations
      Src: /src/rnp/src/lib/key.cpp:1358,1
    - Dst: pgp_s2k_round_iterations
      Src: /src/rnp/src/lib/key.cpp:1360,1
    - Dst: rnp::Key::write_sec_rawpkt
      Src: /src/rnp/src/lib/key.cpp:1368,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 4
    argNames:
    - '                    decrypted'
    - protection
    - '                new_password'
    - '                  ctx'
    argTypes:
    - pgp_key_pkt_t
    - rnp_key_protection_params_t
    - std::string
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1304
    functionDepth: 5
    functionLinenumber: 1304
    functionLinenumberEnd: 1369
    functionName: rnp::Key::protect
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - rnp::Key::write_sec_rawpkt
    - material::secret
    - s2k_iterations
    - rnp::Key::is_secret
    - pgp_s2k_round_iterations
    linkageType: ''
    returnType: bool
    signature: "bool Key::protect(pgp_key_pkt_t &                    decrypted,\n
      \            const rnp_key_protection_params_t &protection,\n             const
      std::string &                new_password,\n             SecurityContext &                  ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:1375,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1376,1
    - Dst: rnp::Key::is_protected
      Src: /src/rnp/src/lib/key.cpp:1380,1
    - Dst: rnp::Key::encrypted
      Src: /src/rnp/src/lib/key.cpp:1384,1
    - Dst: rnp::Key::write_sec_rawpkt
      Src: /src/rnp/src/lib/key.cpp:1386,1
    - Dst: pgp_decrypt_seckey
      Src: /src/rnp/src/lib/key.cpp:1391,1
    - Dst: rnp::Key::write_sec_rawpkt
      Src: /src/rnp/src/lib/key.cpp:1396,1
    - Dst: std::move
      Src: /src/rnp/src/lib/key.cpp:1400,1
    - Dst: assert
      Src: /src/rnp/src/lib/key.cpp:1402,1
    - Dst: rnp::Key::material
      Src: /src/rnp/src/lib/key.cpp:1402,1
    - Dst: rnp::Key::material
      Src: /src/rnp/src/lib/key.cpp:1403,1
    - Dst: rnp::Key::material
      Src: /src/rnp/src/lib/key.cpp:1404,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - password_provider
    - secctx
    argTypes:
    - pgp_password_provider_t
    - SecurityContext
    assertStmts:
    - condition: (material())
      pos:
        line_end: 1401
        line_start: 1401
        source_file: /src/rnp/src/lib/key.cpp
    constantsTouched: []
    func_position:
      end: 1408
      start: 1371
    functionDepth: 5
    functionLinenumber: 1371
    functionLinenumberEnd: 1408
    functionName: rnp::Key::unprotect
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::Key::write_sec_rawpkt
    - rnp::Key::encrypted
    - rnp::Key::material
    - pgp_decrypt_seckey
    - rnp::Key::is_protected
    - assert
    - rnp::Key::is_secret
    - std::move
    linkageType: ''
    returnType: bool
    signature: bool Key::unprotect(const pgp_password_provider_t &password_provider,
      SecurityContext &secctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::write
      Src: /src/rnp/src/lib/key.cpp:1414,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1422,1
    - Dst: rnp::Key::write
      Src: /src/rnp/src/lib/key.cpp:1422,1
    - Dst: rawpkt::write
      Src: /src/rnp/src/lib/key.cpp:1427,1
    - Dst: rnp::Key::sig_count
      Src: /src/rnp/src/lib/key.cpp:1428,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1429,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1429,1
    - Dst: rnp::Key::write
      Src: /src/rnp/src/lib/key.cpp:1429,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1410
    functionDepth: 2
    functionLinenumber: 1410
    functionLinenumberEnd: 1432
    functionName: rnp::Key::write
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - rawpkt::write
    - rnp::Key::sig_count
    - rnp::Key::write
    - get_sig
    linkageType: ''
    returnType: void
    signature: void Key::write(pgp_dest_t &dst) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::write
      Src: /src/rnp/src/lib/key.cpp:1437,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1439,1
    - Dst: KeyStore*::get_key
      Src: /src/rnp/src/lib/key.cpp:1449,1
    - Dst: bin_to_hex
      Src: /src/rnp/src/lib/key.cpp:1451,1
    - Dst: data
      Src: /src/rnp/src/lib/key.cpp:1451,1
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:1451,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1452,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/key.cpp:1452,1
    - Dst: Key*::write
      Src: /src/rnp/src/lib/key.cpp:1455,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1457,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - dst
    - keyring
    argTypes:
    - pgp_dest_t
    - KeyStore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1434
    functionDepth: 3
    functionLinenumber: 1434
    functionLinenumberEnd: 1461
    functionName: rnp::Key::write_xfer
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - data
    - bin_to_hex
    - std::string::c_str
    - Key*::write
    - rnp::Key::write
    - KeyStore*::get_key
    - size
    linkageType: ''
    returnType: void
    signature: void Key::write_xfer(pgp_dest_t &dst, const KeyStore *keyring) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::latest_uid_selfcert
      Src: /src/rnp/src/lib/key.cpp:1466,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1468,1
    - Dst: Key::latest_binding
      Src: /src/rnp/src/lib/key.cpp:1471,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1473,1
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:1476,1
    - Dst: Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:1476,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1477,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:1484,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/lib/key.cpp:1484,1
    - Dst: get_uid
      Src: /src/rnp/src/lib/key.cpp:1485,1
    - Dst: rnp::Key::write
      Src: /src/rnp/src/lib/key.cpp:1485,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/lib/key.cpp:1485,1
    - Dst: auto::sig::write
      Src: /src/rnp/src/lib/key.cpp:1486,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/lib/key.cpp:1486,1
    - Dst: Key::pkt
      Src: /src/rnp/src/lib/key.cpp:1487,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/lib/key.cpp:1487,1
    - Dst: auto::sig::write
      Src: /src/rnp/src/lib/key.cpp:1488,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/lib/key.cpp:1488,1
    - Dst: dst_write
      Src: /src/rnp/src/lib/key.cpp:1489,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/lib/key.cpp:1489,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/lib/key.cpp:1489,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1492,1
    - Dst: what
      Src: /src/rnp/src/lib/key.cpp:1492,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - dst
    - sub
    - uid
    argTypes:
    - pgp_dest_t
    - Key
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1463
    functionDepth: 3
    functionLinenumber: 1463
    functionLinenumberEnd: 1495
    functionName: rnp::Key::write_autocrypt
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pkt
    - MemoryDest::dst
    - MemoryDest::memory
    - Key::latest_binding
    - what
    - Key::is_secret
    - auto::sig::write
    - dst_write
    - rnp::Key::latest_uid_selfcert
    - get_uid
    - rnp::Key::write
    - MemoryDest::writeb
    - Key::pkt
    - rnp::Key::is_secret
    linkageType: ''
    returnType: bool
    signature: bool Key::write_autocrypt(pgp_dest_t &dst, Key &sub, uint32_t uid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::write
      Src: /src/rnp/src/lib/key.cpp:1501,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/lib/key.cpp:1501,1
    - Dst: MemoryDest::to_vector
      Src: /src/rnp/src/lib/key.cpp:1502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1497
    functionDepth: 3
    functionLinenumber: 1497
    functionLinenumberEnd: 1503
    functionName: rnp::Key::write_vec
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - MemoryDest::dst
    - rnp::Key::write
    - MemoryDest::to_vector
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Key::write_vec() const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1512,1
    - Dst: auto::validity::valid
      Src: /src/rnp/src/lib/key.cpp:1513,1
    - Dst: rnp::Key::is_direct_self
      Src: /src/rnp/src/lib/key.cpp:1519,1
    - Dst: rnp::Key::is_self_cert
      Src: /src/rnp/src/lib/key.cpp:1522,1
    - Dst: auto::sig::get_subpkt
      Src: /src/rnp/src/lib/key.cpp:1523,1
    - Dst: auto::sig::primary_uid
      Src: /src/rnp/src/lib/key.cpp:1524,1
    - Dst: rnp::Key::is_self_cert
      Src: /src/rnp/src/lib/key.cpp:1528,1
    - Dst: rnp::Key::is_self_cert
      Src: /src/rnp/src/lib/key.cpp:1531,1
    - Dst: auto::sig::creation
      Src: /src/rnp/src/lib/key.cpp:1538,1
    - Dst: rnp::Key::latest_selfsig
      Src: /src/rnp/src/lib/key.cpp:1547,1
    - Dst: auto::sig::creation
      Src: /src/rnp/src/lib/key.cpp:1548,1
    - Dst: Signature*::sig::creation
      Src: /src/rnp/src/lib/key.cpp:1548,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 33
    argCount: 2
    argNames:
    - uid
    - validated
    argTypes:
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1505
    functionDepth: 1
    functionLinenumber: 1505
    functionLinenumberEnd: 1553
    functionName: rnp::Key::latest_selfsig
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - auto::validity::valid
    - rnp::Key::is_self_cert
    - auto::sig::creation
    - rnp::Key::latest_selfsig
    - Signature*::sig::creation
    - get_sig
    - auto::sig::get_subpkt
    - rnp::Key::is_direct_self
    - auto::sig::primary_uid
    linkageType: ''
    returnType: Signature
    signature: 'Signature *

      Key::latest_selfsig(uint32_t uid, bool validated)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1562,1
    - Dst: auto::validity::valid
      Src: /src/rnp/src/lib/key.cpp:1563,1
    - Dst: rnp::Key::is_binding
      Src: /src/rnp/src/lib/key.cpp:1566,1
    - Dst: auto::sig::creation
      Src: /src/rnp/src/lib/key.cpp:1570,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - validated
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1555
    functionDepth: 1
    functionLinenumber: 1555
    functionLinenumberEnd: 1577
    functionName: rnp::Key::latest_binding
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key::is_binding
    - auto::validity::valid
    - auto::sig::creation
    - get_sig
    linkageType: ''
    returnType: Signature
    signature: 'Signature *

      Key::latest_binding(bool validated)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:1585,1
    - Dst: rnp::Key::sig_count
      Src: /src/rnp/src/lib/key.cpp:1589,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1590,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1590,1
    - Dst: auto::validity::valid
      Src: /src/rnp/src/lib/key.cpp:1591,1
    - Dst: rnp::Key::is_self_cert
      Src: /src/rnp/src/lib/key.cpp:1594,1
    - Dst: auto::sig::creation
      Src: /src/rnp/src/lib/key.cpp:1598,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - uid
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1579
    functionDepth: 2
    functionLinenumber: 1579
    functionLinenumberEnd: 1605
    functionName: rnp::Key::latest_uid_selfcert
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - auto::validity::valid
    - rnp::Key::is_self_cert
    - auto::sig::creation
    - rnp::Key::sig_count
    - get_sig
    - size
    linkageType: ''
    returnType: Signature
    signature: 'Signature *

      Key::latest_uid_selfcert(uint32_t uid)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Signature::sig::has_keyfp
      Src: /src/rnp/src/lib/key.cpp:1611,1
    - Dst: Signature::sig::keyfp
      Src: /src/rnp/src/lib/key.cpp:1612,1
    - Dst: fp
      Src: /src/rnp/src/lib/key.cpp:1612,1
    - Dst: Signature::sig::has_keyid
      Src: /src/rnp/src/lib/key.cpp:1614,1
    - Dst: keyid
      Src: /src/rnp/src/lib/key.cpp:1617,1
    - Dst: Signature::sig::keyid
      Src: /src/rnp/src/lib/key.cpp:1617,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1607
    functionDepth: 0
    functionLinenumber: 1607
    functionLinenumberEnd: 1618
    functionName: rnp::Key::is_signer
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - keyid
    - fp
    - Signature::sig::keyid
    - Signature::sig::keyfp
    - Signature::sig::has_keyid
    - Signature::sig::has_keyfp
    linkageType: ''
    returnType: bool
    signature: bool Key::is_signer(const Signature &sig) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Signature::sig::key_expiration
      Src: /src/rnp/src/lib/key.cpp:1624,1
    - Dst: rnp::Key::creation
      Src: /src/rnp/src/lib/key.cpp:1628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - sig
    - at
    argTypes:
    - Signature
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1620
    functionDepth: 1
    functionLinenumber: 1620
    functionLinenumberEnd: 1629
    functionName: rnp::Key::expired_with
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key::creation
    - Signature::sig::key_expiration
    linkageType: ''
    returnType: bool
    signature: bool Key::expired_with(const Signature &sig, uint64_t at) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:1634,1
    - Dst: Signature::is_cert
      Src: /src/rnp/src/lib/key.cpp:1634,1
    - Dst: rnp::Key::is_signer
      Src: /src/rnp/src/lib/key.cpp:1634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1631
    functionDepth: 2
    functionLinenumber: 1631
    functionLinenumberEnd: 1635
    functionName: rnp::Key::is_self_cert
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - rnp::Key::is_primary
    - rnp::Key::is_signer
    - Signature::is_cert
    linkageType: ''
    returnType: bool
    signature: bool Key::is_self_cert(const Signature &sig) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:1640,1
    - Dst: Signature::sig::type
      Src: /src/rnp/src/lib/key.cpp:1640,1
    - Dst: rnp::Key::is_signer
      Src: /src/rnp/src/lib/key.cpp:1640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1637
    functionDepth: 2
    functionLinenumber: 1637
    functionLinenumberEnd: 1641
    functionName: rnp::Key::is_direct_self
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - rnp::Key::is_primary
    - rnp::Key::is_signer
    - Signature::sig::type
    linkageType: ''
    returnType: bool
    signature: bool Key::is_direct_self(const Signature &sig) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:1646,1
    - Dst: Signature::sig::type
      Src: /src/rnp/src/lib/key.cpp:1646,1
    - Dst: Signature::sig::type
      Src: /src/rnp/src/lib/key.cpp:1647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1643
    functionDepth: 2
    functionLinenumber: 1643
    functionLinenumberEnd: 1648
    functionName: rnp::Key::is_revocation
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key::is_primary
    - Signature::sig::type
    linkageType: ''
    returnType: bool
    signature: bool Key::is_revocation(const Signature &sig) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:1653,1
    - Dst: Signature::sig::type
      Src: /src/rnp/src/lib/key.cpp:1653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1650
    functionDepth: 2
    functionLinenumber: 1650
    functionLinenumberEnd: 1654
    functionName: rnp::Key::is_uid_revocation
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key::is_primary
    - Signature::sig::type
    linkageType: ''
    returnType: bool
    signature: bool Key::is_uid_revocation(const Signature &sig) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_subkey
      Src: /src/rnp/src/lib/key.cpp:1659,1
    - Dst: Signature::sig::type
      Src: /src/rnp/src/lib/key.cpp:1659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1660
      start: 1656
    functionDepth: 2
    functionLinenumber: 1656
    functionLinenumberEnd: 1660
    functionName: rnp::Key::is_binding
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - rnp::Key::is_subkey
    - Signature::sig::type
    linkageType: ''
    returnType: bool
    signature: bool Key::is_binding(const Signature &sig) const
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: Signature::validity::reset
      Src: /src/rnp/src/lib/key.cpp:1665,1
    - Dst: Key::is_self_cert
      Src: /src/rnp/src/lib/key.cpp:1670,1
    - Dst: Key::is_binding
      Src: /src/rnp/src/lib/key.cpp:1670,1
    - Dst: Signature::is_revocation
      Src: /src/rnp/src/lib/key.cpp:1671,1
    - Dst: Signature::sig::type
      Src: /src/rnp/src/lib/key.cpp:1673,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1680,1
    - Dst: SignatureInfo::validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1681,1
    - Dst: Key::uid_count
      Src: /src/rnp/src/lib/key.cpp:1688,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1689,1
    - Dst: SignatureInfo::validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1690,1
    - Dst: rnp::Key::validate_cert
      Src: /src/rnp/src/lib/key.cpp:1693,1
    - Dst: Key::pkt
      Src: /src/rnp/src/lib/key.cpp:1693,1
    - Dst: Key::get_uid
      Src: /src/rnp/src/lib/key.cpp:1693,1
    - Dst: rnp::Key::is_signer
      Src: /src/rnp/src/lib/key.cpp:1697,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1698,1
    - Dst: SignatureInfo::validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1699,1
    - Dst: rnp::Key::validate_binding
      Src: /src/rnp/src/lib/key.cpp:1702,1
    - Dst: rnp::Key::is_signer
      Src: /src/rnp/src/lib/key.cpp:1705,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1706,1
    - Dst: SignatureInfo::validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1707,1
    - Dst: rnp::Key::validate_direct
      Src: /src/rnp/src/lib/key.cpp:1710,1
    - Dst: rnp::Key::is_signer
      Src: /src/rnp/src/lib/key.cpp:1713,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1714,1
    - Dst: SignatureInfo::validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1715,1
    - Dst: rnp::Key::validate_key_rev
      Src: /src/rnp/src/lib/key.cpp:1718,1
    - Dst: Key::pkt
      Src: /src/rnp/src/lib/key.cpp:1718,1
    - Dst: rnp::Key::is_signer
      Src: /src/rnp/src/lib/key.cpp:1721,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1722,1
    - Dst: SignatureInfo::validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1723,1
    - Dst: rnp::Key::validate_sub_rev
      Src: /src/rnp/src/lib/key.cpp:1726,1
    - Dst: Key::pkt
      Src: /src/rnp/src/lib/key.cpp:1726,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1729,1
    - Dst: SignatureInfo::validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1730,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1734,1
    - Dst: what
      Src: /src/rnp/src/lib/key.cpp:1734,1
    - Dst: SignatureInfo::validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1735,1
    - Dst: SignatureInfo::validity::mark_validated
      Src: /src/rnp/src/lib/key.cpp:1738,1
    - Dst: std::move
      Src: /src/rnp/src/lib/key.cpp:1739,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 71
    argCount: 3
    argNames:
    - key
    - sig
    - ctx
    argTypes:
    - Key
    - Signature
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1662
    functionDepth: 1
    functionLinenumber: 1662
    functionLinenumberEnd: 1740
    functionName: rnp::Key::validate_sig
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - Signature::sig::type
    - Key::is_binding
    - rnp::Key::validate_sub_rev
    - rnp::Key::validate_key_rev
    - rnp::Key::validate_cert
    - std::move
    - rnp::Key::validate_direct
    - rnp::Key::validate_binding
    - Key::uid_count
    - RNP_LOG
    - Signature::validity::reset
    - Key::pkt
    - Key::is_self_cert
    - Key::get_uid
    - what
    - rnp::Key::is_signer
    - SignatureInfo::validity::mark_validated
    - Signature::is_revocation
    - SignatureInfo::validity::add_error
    linkageType: ''
    returnType: void
    signature: void Key::validate_sig(const Key &key, Signature &sig, const SecurityContext
      &ctx) const noexcept
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: signature_validate
      Src: /src/rnp/src/lib/key.cpp:1749,1
    - Dst: rnp::Key::valid_at
      Src: /src/rnp/src/lib/key.cpp:1750,1
    - Dst: sig::creation
      Src: /src/rnp/src/lib/key.cpp:1750,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1751,1
    - Dst: auto::add_error
      Src: /src/rnp/src/lib/key.cpp:1752,1
    - Dst: time
      Src: /src/rnp/src/lib/key.cpp:1756,1
    - Dst: sig::creation
      Src: /src/rnp/src/lib/key.cpp:1757,1
    - Dst: sig::expiration
      Src: /src/rnp/src/lib/key.cpp:1758,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1761,1
    - Dst: auto::add_error
      Src: /src/rnp/src/lib/key.cpp:1763,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1768,1
    - Dst: auto::add_error
      Src: /src/rnp/src/lib/key.cpp:1770,1
    - Dst: rnp::Key::creation
      Src: /src/rnp/src/lib/key.cpp:1775,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1776,1
    - Dst: auto::add_error
      Src: /src/rnp/src/lib/key.cpp:1777,1
    - Dst: rnp::Key::expiration
      Src: /src/rnp/src/lib/key.cpp:1781,1
    - Dst: rnp::Key::creation
      Src: /src/rnp/src/lib/key.cpp:1781,1
    - Dst: rnp::Key::expiration
      Src: /src/rnp/src/lib/key.cpp:1781,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1782,1
    - Dst: auto::add_error
      Src: /src/rnp/src/lib/key.cpp:1783,1
    - Dst: sig::has_keyfp
      Src: /src/rnp/src/lib/key.cpp:1787,1
    - Dst: sig::keyfp
      Src: /src/rnp/src/lib/key.cpp:1787,1
    - Dst: fp
      Src: /src/rnp/src/lib/key.cpp:1787,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1788,1
    - Dst: auto::add_error
      Src: /src/rnp/src/lib/key.cpp:1789,1
    - Dst: critical
      Src: /src/rnp/src/lib/key.cpp:1794,1
    - Dst: rnp::Key::type
      Src: /src/rnp/src/lib/key.cpp:1794,1
    - Dst: dynamic_cast<pgp::pkt::sigsub::NotationData &>
      Src: /src/rnp/src/lib/key.cpp:1797,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1798,1
    - Dst: auto::name
      Src: /src/rnp/src/lib/key.cpp:1798,1
    - Dst: auto::add_error
      Src: /src/rnp/src/lib/key.cpp:1799,1
    - Dst: auto::errors
      Src: /src/rnp/src/lib/key.cpp:1802,1
    - Dst: validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1803,1
    - Dst: validity::mark_validated
      Src: /src/rnp/src/lib/key.cpp:1805,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 38
    argCount: 4
    argNames:
    - '          sinfo'
    - '                   hash'
    - '  ctx'
    - hdr
    argTypes:
    - SignatureInfo
    - Hash
    - SecurityContext
    - pgp_literal_hdr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1806
      start: 1742
    functionDepth: 2
    functionLinenumber: 1742
    functionLinenumberEnd: 1806
    functionName: rnp::Key::validate_sig
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - validity::add_error
    - rnp::Key::expiration
    - rnp::Key::creation
    - sig::creation
    - sig::has_keyfp
    - fp
    - auto::name
    - dynamic_cast<pgp::pkt::sigsub::NotationData &>
    - RNP_LOG
    - auto::errors
    - signature_validate
    - sig::keyfp
    - time
    - sig::expiration
    - critical
    - validity::mark_validated
    - auto::add_error
    - rnp::Key::valid_at
    - rnp::Key::type
    linkageType: ''
    returnType: void
    signature: "void Key::validate_sig(SignatureInfo &          sinfo,\n                  Hash
      &                   hash,\n                  const SecurityContext &  ctx,\n
      \                 const pgp_literal_hdr_t *hdr) const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signature_hash_certification
      Src: /src/rnp/src/lib/key.cpp:1814,1
    - Dst: rnp::Key::validate_sig
      Src: /src/rnp/src/lib/key.cpp:1815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - '         sinfo'
    - '   key'
    - uid
    - ' ctx'
    argTypes:
    - SignatureInfo
    - pgp_key_pkt_t
    - pgp_userid_pkt_t
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1808
    functionDepth: 3
    functionLinenumber: 1808
    functionLinenumberEnd: 1816
    functionName: rnp::Key::validate_cert
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - rnp::Key::validate_sig
    - signature_hash_certification
    linkageType: ''
    returnType: void
    signature: "void Key::validate_cert(SignatureInfo &         sinfo,\n                   const
      pgp_key_pkt_t &   key,\n                   const pgp_userid_pkt_t &uid,\n                   const
      SecurityContext & ctx) const"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:1823,1
    - Dst: rnp::Key::is_subkey
      Src: /src/rnp/src/lib/key.cpp:1823,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1824,1
    - Dst: validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1825,1
    - Dst: validity::mark_validated
      Src: /src/rnp/src/lib/key.cpp:1826,1
    - Dst: signature_hash_binding
      Src: /src/rnp/src/lib/key.cpp:1829,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:1829,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:1829,1
    - Dst: rnp::Key::validate_sig
      Src: /src/rnp/src/lib/key.cpp:1830,1
    - Dst: validity::valid
      Src: /src/rnp/src/lib/key.cpp:1832,1
    - Dst: sig::key_flags
      Src: /src/rnp/src/lib/key.cpp:1832,1
    - Dst: dynamic_cast<pgp::pkt::sigsub::EmbeddedSignature *>
      Src: /src/rnp/src/lib/key.cpp:1837,1
    - Dst: sig::get_subpkt
      Src: /src/rnp/src/lib/key.cpp:1838,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1840,1
    - Dst: validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1841,1
    - Dst: auto::signature
      Src: /src/rnp/src/lib/key.cpp:1844,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1845,1
    - Dst: validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1846,1
    - Dst: auto::signature
      Src: /src/rnp/src/lib/key.cpp:1849,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1850,1
    - Dst: validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1851,1
    - Dst: auto::signature
      Src: /src/rnp/src/lib/key.cpp:1854,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1855,1
    - Dst: validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1856,1
    - Dst: signature_hash_binding
      Src: /src/rnp/src/lib/key.cpp:1860,1
    - Dst: auto::signature
      Src: /src/rnp/src/lib/key.cpp:1860,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:1860,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:1860,1
    - Dst: auto::signature
      Src: /src/rnp/src/lib/key.cpp:1862,1
    - Dst: rnp::Key::validate_sig
      Src: /src/rnp/src/lib/key.cpp:1865,1
    - Dst: SignatureInfo::validity::valid
      Src: /src/rnp/src/lib/key.cpp:1866,1
    - Dst: validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1867,1
    - Dst: SignatureInfo::validity::errors
      Src: /src/rnp/src/lib/key.cpp:1868,1
    - Dst: validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1869,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - '        sinfo'
    - '            subkey'
    - ctx
    argTypes:
    - SignatureInfo
    - Key
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1818
    functionDepth: 3
    functionLinenumber: 1818
    functionLinenumberEnd: 1872
    functionName: rnp::Key::validate_binding
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - pkt
    - dynamic_cast<pgp::pkt::sigsub::EmbeddedSignature *>
    - validity::add_error
    - rnp::Key::validate_sig
    - SignatureInfo::validity::valid
    - validity::valid
    - sig::get_subpkt
    - auto::signature
    - validity::mark_validated
    - sig::key_flags
    - SignatureInfo::validity::errors
    - rnp::Key::is_primary
    - signature_hash_binding
    - rnp::Key::is_subkey
    linkageType: ''
    returnType: void
    signature: "void Key::validate_binding(SignatureInfo &        sinfo,\n                      const
      Key &            subkey,\n                      const SecurityContext &ctx)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signature_hash_binding
      Src: /src/rnp/src/lib/key.cpp:1879,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:1879,1
    - Dst: rnp::Key::validate_sig
      Src: /src/rnp/src/lib/key.cpp:1880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - '        sinfo'
    - '  subkey'
    - ctx
    argTypes:
    - SignatureInfo
    - pgp_key_pkt_t
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1881
      start: 1874
    functionDepth: 3
    functionLinenumber: 1874
    functionLinenumberEnd: 1881
    functionName: rnp::Key::validate_sub_rev
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - signature_hash_binding
    - rnp::Key::validate_sig
    - pkt
    linkageType: ''
    returnType: void
    signature: "void Key::validate_sub_rev(SignatureInfo &        sinfo,\n                      const
      pgp_key_pkt_t &  subkey,\n                      const SecurityContext &ctx)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signature_hash_direct
      Src: /src/rnp/src/lib/key.cpp:1886,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:1886,1
    - Dst: rnp::Key::validate_sig
      Src: /src/rnp/src/lib/key.cpp:1887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sinfo
    - ctx
    argTypes:
    - SignatureInfo
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1883
    functionDepth: 3
    functionLinenumber: 1883
    functionLinenumberEnd: 1888
    functionName: rnp::Key::validate_direct
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - signature_hash_direct
    - pkt
    - rnp::Key::validate_sig
    linkageType: ''
    returnType: void
    signature: void Key::validate_direct(SignatureInfo &sinfo, const SecurityContext
      &ctx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signature_hash_direct
      Src: /src/rnp/src/lib/key.cpp:1895,1
    - Dst: rnp::Key::validate_sig
      Src: /src/rnp/src/lib/key.cpp:1896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - '        sinfo'
    - '  key'
    - ctx
    argTypes:
    - SignatureInfo
    - pgp_key_pkt_t
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1890
    functionDepth: 3
    functionLinenumber: 1890
    functionLinenumberEnd: 1897
    functionName: rnp::Key::validate_key_rev
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - signature_hash_direct
    - rnp::Key::validate_sig
    linkageType: ''
    returnType: void
    signature: "void Key::validate_key_rev(SignatureInfo &        sinfo,\n                      const
      pgp_key_pkt_t &  key,\n                      const SecurityContext &ctx) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1903,1
    - Dst: auto::validity::validated
      Src: /src/rnp/src/lib/key.cpp:1904,1
    - Dst: rnp::Key::is_signer
      Src: /src/rnp/src/lib/key.cpp:1907,1
    - Dst: rnp::Key::is_direct_self
      Src: /src/rnp/src/lib/key.cpp:1911,1
    - Dst: rnp::Key::is_self_cert
      Src: /src/rnp/src/lib/key.cpp:1911,1
    - Dst: rnp::Key::is_uid_revocation
      Src: /src/rnp/src/lib/key.cpp:1911,1
    - Dst: rnp::Key::is_revocation
      Src: /src/rnp/src/lib/key.cpp:1912,1
    - Dst: rnp::Key::validate_sig
      Src: /src/rnp/src/lib/key.cpp:1913,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1899
    functionDepth: 3
    functionLinenumber: 1899
    functionLinenumberEnd: 1916
    functionName: rnp::Key::validate_self_signatures
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key::is_self_cert
    - rnp::Key::is_signer
    - rnp::Key::validate_sig
    - rnp::Key::is_uid_revocation
    - rnp::Key::is_revocation
    - auto::validity::validated
    - get_sig
    - rnp::Key::is_direct_self
    linkageType: ''
    returnType: void
    signature: void Key::validate_self_signatures(const SecurityContext &ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1922,1
    - Dst: auto::validity::validated
      Src: /src/rnp/src/lib/key.cpp:1923,1
    - Dst: rnp::Key::is_binding
      Src: /src/rnp/src/lib/key.cpp:1927,1
    - Dst: rnp::Key::is_revocation
      Src: /src/rnp/src/lib/key.cpp:1927,1
    - Dst: Key::validate_sig
      Src: /src/rnp/src/lib/key.cpp:1928,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - primary
    - ctx
    argTypes:
    - Key
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1918
    functionDepth: 3
    functionLinenumber: 1918
    functionLinenumberEnd: 1931
    functionName: rnp::Key::validate_self_signatures
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key::is_revocation
    - rnp::Key::is_binding
    - auto::validity::validated
    - get_sig
    - Key::validate_sig
    linkageType: ''
    returnType: void
    signature: void Key::validate_self_signatures(Key &primary, const SecurityContext
      &ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/rnp/src/lib/key.cpp:1936,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1941,1
    - Dst: rnp::Key::is_revocation
      Src: /src/rnp/src/lib/key.cpp:1942,1
    - Dst: rnp::Key::is_signer
      Src: /src/rnp/src/lib/key.cpp:1942,1
    - Dst: auto::sig::has_keyfp
      Src: /src/rnp/src/lib/key.cpp:1946,1
    - Dst: rnp::Key::has_revoker
      Src: /src/rnp/src/lib/key.cpp:1946,1
    - Dst: auto::sig::keyfp
      Src: /src/rnp/src/lib/key.cpp:1946,1
    - Dst: auto::validity::valid
      Src: /src/rnp/src/lib/key.cpp:1950,1
    - Dst: KeyStore::get_signer
      Src: /src/rnp/src/lib/key.cpp:1954,1
    - Dst: auto::validate_sig
      Src: /src/rnp/src/lib/key.cpp:1959,1
    - Dst: auto::validity::valid
      Src: /src/rnp/src/lib/key.cpp:1960,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 1
    argNames:
    - keyring
    argTypes:
    - KeyStore
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1967
      start: 1933
    functionDepth: 3
    functionLinenumber: 1933
    functionLinenumberEnd: 1967
    functionName: rnp::Key::validate_desig_revokes
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - auto::sig::has_keyfp
    - auto::validity::valid
    - rnp::Key::is_signer
    - auto::sig::keyfp
    - rnp::Key::has_revoker
    - rnp::Key::is_revocation
    - KeyStore::get_signer
    - get_sig
    - empty
    - auto::validate_sig
    linkageType: ''
    returnType: bool
    signature: bool Key::validate_desig_revokes(KeyStore &keyring)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::validate_self_signatures
      Src: /src/rnp/src/lib/key.cpp:1973,1
    - Dst: reset
      Src: /src/rnp/src/lib/key.cpp:1977,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1983,1
    - Dst: auto::validity::valid
      Src: /src/rnp/src/lib/key.cpp:1984,1
    - Dst: rnp::Key::is_revocation
      Src: /src/rnp/src/lib/key.cpp:1987,1
    - Dst: KeyStore::secctx::time
      Src: /src/rnp/src/lib/key.cpp:1992,1
    - Dst: rnp::Key::latest_selfsig
      Src: /src/rnp/src/lib/key.cpp:1993,1
    - Dst: rnp::Key::expired_with
      Src: /src/rnp/src/lib/key.cpp:1995,1
    - Dst: rnp::Key::latest_selfsig
      Src: /src/rnp/src/lib/key.cpp:2000,1
    - Dst: rnp::Key::expired_with
      Src: /src/rnp/src/lib/key.cpp:2001,1
    - Dst: rnp::Key::latest_selfsig
      Src: /src/rnp/src/lib/key.cpp:2006,1
    - Dst: rnp::Key::expired_with
      Src: /src/rnp/src/lib/key.cpp:2007,1
    - Dst: rnp::Key::subkey_count
      Src: /src/rnp/src/lib/key.cpp:2023,1
    - Dst: KeyStore::get_subkey
      Src: /src/rnp/src/lib/key.cpp:2024,1
    - Dst: Key*::validate_self_signatures
      Src: /src/rnp/src/lib/key.cpp:2028,1
    - Dst: Key*::latest_binding
      Src: /src/rnp/src/lib/key.cpp:2029,1
    - Dst: Key*::expired_with
      Src: /src/rnp/src/lib/key.cpp:2034,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 45
    argCount: 1
    argNames:
    - keyring
    argTypes:
    - KeyStore
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 1969
    functionDepth: 4
    functionLinenumber: 1969
    functionLinenumberEnd: 2040
    functionName: rnp::Key::validate_primary
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - Key*::expired_with
    - auto::validity::valid
    - rnp::Key::validate_self_signatures
    - rnp::Key::subkey_count
    - rnp::Key::is_revocation
    - rnp::Key::expired_with
    - KeyStore::get_subkey
    - Key*::latest_binding
    - get_sig
    - KeyStore::secctx::time
    - reset
    - rnp::Key::latest_selfsig
    - Key*::validate_self_signatures
    linkageType: ''
    returnType: void
    signature: void Key::validate_primary(KeyStore &keyring)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/rnp/src/lib/key.cpp:2047,1
    - Dst: Key*::valid
      Src: /src/rnp/src/lib/key.cpp:2049,1
    - Dst: Key*::expired
      Src: /src/rnp/src/lib/key.cpp:2049,1
    - Dst: rnp::Key::validate_self_signatures
      Src: /src/rnp/src/lib/key.cpp:2053,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:2058,1
    - Dst: auto::validity::valid
      Src: /src/rnp/src/lib/key.cpp:2059,1
    - Dst: rnp::Key::is_binding
      Src: /src/rnp/src/lib/key.cpp:2063,1
    - Dst: rnp::Key::expired_with
      Src: /src/rnp/src/lib/key.cpp:2065,1
    - Dst: SecurityContext::time
      Src: /src/rnp/src/lib/key.cpp:2065,1
    - Dst: rnp::Key::is_revocation
      Src: /src/rnp/src/lib/key.cpp:2070,1
    - Dst: Key*::valid
      Src: /src/rnp/src/lib/key.cpp:2074,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 2
    argNames:
    - primary
    - ctx
    argTypes:
    - Key*
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2078
      start: 2042
    functionDepth: 4
    functionLinenumber: 2042
    functionLinenumberEnd: 2078
    functionName: rnp::Key::validate_subkey
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - auto::validity::valid
    - rnp::Key::validate_self_signatures
    - Key*::expired
    - rnp::Key::expired_with
    - rnp::Key::is_binding
    - rnp::Key::is_revocation
    - SecurityContext::time
    - get_sig
    - reset
    - Key*::valid
    linkageType: ''
    returnType: void
    signature: void Key::validate_subkey(Key *primary, const SecurityContext &ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/rnp/src/lib/key.cpp:2083,1
    - Dst: rnp::Key::is_subkey
      Src: /src/rnp/src/lib/key.cpp:2084,1
    - Dst: rnp::Key::validate_primary
      Src: /src/rnp/src/lib/key.cpp:2085,1
    - Dst: rnp::Key::has_primary_fp
      Src: /src/rnp/src/lib/key.cpp:2089,1
    - Dst: KeyStore::get_key
      Src: /src/rnp/src/lib/key.cpp:2090,1
    - Dst: primary_fp
      Src: /src/rnp/src/lib/key.cpp:2090,1
    - Dst: rnp::Key::validate_subkey
      Src: /src/rnp/src/lib/key.cpp:2092,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - keyring
    argTypes:
    - KeyStore
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2080
    functionDepth: 5
    functionLinenumber: 2080
    functionLinenumberEnd: 2093
    functionName: rnp::Key::validate
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - rnp::Key::validate_primary
    - primary_fp
    - rnp::Key::has_primary_fp
    - rnp::Key::validate_subkey
    - KeyStore::get_key
    - reset
    - rnp::Key::is_subkey
    linkageType: ''
    returnType: void
    signature: void Key::validate(KeyStore &keyring)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_subkey
      Src: /src/rnp/src/lib/key.cpp:2098,1
    - Dst: KeyStore::primary_key
      Src: /src/rnp/src/lib/key.cpp:2099,1
    - Dst: Key*::revalidate
      Src: /src/rnp/src/lib/key.cpp:2101,1
    - Dst: rnp::Key::validate_subkey
      Src: /src/rnp/src/lib/key.cpp:2103,1
    - Dst: rnp::Key::validate_desig_revokes
      Src: /src/rnp/src/lib/key.cpp:2108,1
    - Dst: rnp::Key::validate
      Src: /src/rnp/src/lib/key.cpp:2109,1
    - Dst: rnp::Key::refresh_data
      Src: /src/rnp/src/lib/key.cpp:2110,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2111,1
    - Dst: KeyStore::get_key
      Src: /src/rnp/src/lib/key.cpp:2115,1
    - Dst: Key*::validate_subkey
      Src: /src/rnp/src/lib/key.cpp:2117,1
    - Dst: Key*::refresh_data
      Src: /src/rnp/src/lib/key.cpp:2118,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2119,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - keyring
    argTypes:
    - KeyStore
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2123
      start: 2095
    functionDepth: 6
    functionLinenumber: 2095
    functionLinenumberEnd: 2123
    functionName: rnp::Key::revalidate
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - Key*::revalidate
    - Key*::refresh_data
    - rnp::Key::refresh_data
    - rnp::Key::validate_desig_revokes
    - rnp::Key::validate
    - rnp::Key::validate_subkey
    - KeyStore::get_key
    - KeyStore::primary_key
    - rnp::Key::is_subkey
    - Key*::validate_subkey
    linkageType: ''
    returnType: void
    signature: void Key::revalidate(KeyStore &keyring)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::mark_valid
      Src: /src/rnp/src/lib/key.cpp:2128,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:2130,1
    - Dst: reset
      Src: /src/rnp/src/lib/key.cpp:2130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2125
    functionDepth: 1
    functionLinenumber: 2125
    functionLinenumberEnd: 2132
    functionName: rnp::Key::mark_valid
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - reset
    - rnp::Key::mark_valid
    - get_sig
    linkageType: ''
    returnType: void
    signature: void Key::mark_valid()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: material::adjust_hash
      Src: /src/rnp/src/lib/key.cpp:2142,1
    - Dst: rnp::Key::alg
      Src: /src/rnp/src/lib/key.cpp:2143,1
    - Dst: pgp::pkt::Signature::set_keyfp
      Src: /src/rnp/src/lib/key.cpp:2144,1
    - Dst: fp
      Src: /src/rnp/src/lib/key.cpp:2144,1
    - Dst: pgp::pkt::Signature::set_creation
      Src: /src/rnp/src/lib/key.cpp:2145,1
    - Dst: pgp::pkt::Signature::set_keyid
      Src: /src/rnp/src/lib/key.cpp:2148,1
    - Dst: keyid
      Src: /src/rnp/src/lib/key.cpp:2148,1
    - Dst: pgp::pkt::Signature::salt::empty
      Src: /src/rnp/src/lib/key.cpp:2151,1
    - Dst: pgp::pkt::Signature::v6_salt_size
      Src: /src/rnp/src/lib/key.cpp:2154,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:2156,1
    - Dst: pgp::pkt::Signature::salt::resize
      Src: /src/rnp/src/lib/key.cpp:2158,1
    - Dst: get
      Src: /src/rnp/src/lib/key.cpp:2159,1
    - Dst: pgp::pkt::Signature::salt::data
      Src: /src/rnp/src/lib/key.cpp:2159,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - '                rng'
    - sig
    - hash
    - creation
    - version
    argTypes:
    - RNG
    - pgp::pkt::Signature
    - pgp_hash_alg_t
    - uint64_t
    - pgp_version_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2162
      start: 2134
    functionDepth: 2
    functionLinenumber: 2134
    functionLinenumberEnd: 2162
    functionName: rnp::Key::sign_init
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::set_creation
    - pgp::pkt::Signature::salt::data
    - keyid
    - rnp::Key::alg
    - material::adjust_hash
    - fp
    - pgp::pkt::Signature::set_keyfp
    - pgp::pkt::Signature::set_keyid
    - get
    - rnp_exception
    - pgp::pkt::Signature::salt::empty
    - pgp::pkt::Signature::salt::resize
    - pgp::pkt::Signature::v6_salt_size
    linkageType: ''
    returnType: void
    signature: "void Key::sign_init(RNG &                rng,\n               pgp::pkt::Signature
      &sig,\n               pgp_hash_alg_t       hash,\n               uint64_t             creation,\n
      \              pgp_version_t        version) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fill_hashed_data
      Src: /src/rnp/src/lib/key.cpp:2170,1
    - Dst: signature_hash_certification
      Src: /src/rnp/src/lib/key.cpp:2171,1
    - Dst: signature_calculate
      Src: /src/rnp/src/lib/key.cpp:2172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - '   key'
    - uid
    - '   sig'
    - '       ctx'
    argTypes:
    - pgp_key_pkt_t
    - pgp_userid_pkt_t
    - pgp::pkt::Signature
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2173
      start: 2164
    functionDepth: 3
    functionLinenumber: 2164
    functionLinenumberEnd: 2173
    functionName: rnp::Key::sign_cert
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - signature_calculate
    - signature_hash_certification
    - fill_hashed_data
    linkageType: ''
    returnType: void
    signature: "void Key::sign_cert(const pgp_key_pkt_t &   key,\n               const
      pgp_userid_pkt_t &uid,\n               pgp::pkt::Signature &   sig,\n               SecurityContext
      &       ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::fill_hashed_data
      Src: /src/rnp/src/lib/key.cpp:2178,1
    - Dst: signature_hash_direct
      Src: /src/rnp/src/lib/key.cpp:2179,1
    - Dst: signature_calculate
      Src: /src/rnp/src/lib/key.cpp:2180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - sig
    - ctx
    argTypes:
    - pgp_key_pkt_t
    - pgp::pkt::Signature
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2175
    functionDepth: 3
    functionLinenumber: 2175
    functionLinenumberEnd: 2181
    functionName: rnp::Key::sign_direct
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - signature_hash_direct
    - pgp::pkt::Signature::fill_hashed_data
    - signature_calculate
    linkageType: ''
    returnType: void
    signature: void Key::sign_direct(const pgp_key_pkt_t &key, pgp::pkt::Signature
      &sig, SecurityContext &ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::fill_hashed_data
      Src: /src/rnp/src/lib/key.cpp:2186,1
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:2187,1
    - Dst: signature_hash_binding
      Src: /src/rnp/src/lib/key.cpp:2187,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:2187,1
    - Dst: signature_hash_binding
      Src: /src/rnp/src/lib/key.cpp:2188,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:2188,1
    - Dst: signature_calculate
      Src: /src/rnp/src/lib/key.cpp:2189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - sig
    - ctx
    argTypes:
    - pgp_key_pkt_t
    - pgp::pkt::Signature
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2190
      start: 2183
    functionDepth: 3
    functionLinenumber: 2183
    functionLinenumberEnd: 2190
    functionName: rnp::Key::sign_binding
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - pkt
    - signature_calculate
    - rnp::Key::is_primary
    - signature_hash_binding
    - pgp::pkt::Signature::fill_hashed_data
    linkageType: ''
    returnType: void
    signature: void Key::sign_binding(const pgp_key_pkt_t &key, pgp::pkt::Signature
      &sig, SecurityContext &ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::sign_init
      Src: /src/rnp/src/lib/key.cpp:2199,1
    - Dst: time
      Src: /src/rnp/src/lib/key.cpp:2199,1
    - Dst: pgp::pkt::Signature::set_type
      Src: /src/rnp/src/lib/key.cpp:2200,1
    - Dst: is_primary_key_pkt
      Src: /src/rnp/src/lib/key.cpp:2200,1
    - Dst: pgp::pkt::Signature::set_revocation_reason
      Src: /src/rnp/src/lib/key.cpp:2201,1
    - Dst: is_primary_key_pkt
      Src: /src/rnp/src/lib/key.cpp:2203,1
    - Dst: rnp::Key::sign_direct
      Src: /src/rnp/src/lib/key.cpp:2204,1
    - Dst: rnp::Key::sign_binding
      Src: /src/rnp/src/lib/key.cpp:2206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - '   rev'
    - hash
    - key
    - sig
    - '    ctx'
    argTypes:
    - Revocation
    - pgp_hash_alg_t
    - pgp_key_pkt_t
    - pgp::pkt::Signature
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2208
      start: 2192
    functionDepth: 4
    functionLinenumber: 2192
    functionLinenumberEnd: 2208
    functionName: rnp::Key::gen_revocation
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::set_revocation_reason
    - rnp::Key::sign_binding
    - is_primary_key_pkt
    - rnp::Key::sign_init
    - rnp::Key::sign_direct
    - time
    - pgp::pkt::Signature::set_type
    linkageType: ''
    returnType: void
    signature: "void Key::gen_revocation(const Revocation &   rev,\n                    pgp_hash_alg_t
      \      hash,\n                    const pgp_key_pkt_t &key,\n                    pgp::pkt::Signature
      &sig,\n                    SecurityContext &    ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:2216,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:2217,1
    - Dst: rnp::Key::sign_binding
      Src: /src/rnp/src/lib/key.cpp:2219,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:2219,1
    - Dst: pgp::pkt::Signature::Signature
      Src: /src/rnp/src/lib/key.cpp:2222,1
    - Dst: rnp::Key::sign_init
      Src: /src/rnp/src/lib/key.cpp:2223,1
    - Dst: time
      Src: /src/rnp/src/lib/key.cpp:2223,1
    - Dst: rnp::Key::version
      Src: /src/rnp/src/lib/key.cpp:2223,1
    - Dst: pgp::pkt::Signature::set_type
      Src: /src/rnp/src/lib/key.cpp:2224,1
    - Dst: rnp::Key::sign_binding
      Src: /src/rnp/src/lib/key.cpp:2225,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:2225,1
    - Dst: pgp::pkt::Signature::set_embedded_sig
      Src: /src/rnp/src/lib/key.cpp:2226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - '                sub'
    - sig
    - '    ctx'
    - subsign
    argTypes:
    - Key
    - pgp::pkt::Signature
    - SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2210
    functionDepth: 4
    functionLinenumber: 2210
    functionLinenumberEnd: 2228
    functionName: rnp::Key::sign_subkey_binding
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - pkt
    - pgp::pkt::Signature::Signature
    - rnp::Key::version
    - rnp::Key::sign_binding
    - pgp::pkt::Signature::set_embedded_sig
    - rnp::Key::is_primary
    - rnp::Key::sign_init
    - time
    - rnp_exception
    - pgp::pkt::Signature::set_type
    linkageType: ''
    returnType: void
    signature: "void Key::sign_subkey_binding(Key &                sub,\n                         pgp::pkt::Signature
      &sig,\n                         SecurityContext &    ctx,\n                         bool
      \                subsign)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:2235,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2236,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:2237,1
    - Dst: pgp::pkt::Signature::Signature
      Src: /src/rnp/src/lib/key.cpp:2240,1
    - Dst: rnp::Key::sign_init
      Src: /src/rnp/src/lib/key.cpp:2241,1
    - Dst: SecurityContext::time
      Src: /src/rnp/src/lib/key.cpp:2241,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:2241,1
    - Dst: pgp::pkt::Signature::set_type
      Src: /src/rnp/src/lib/key.cpp:2242,1
    - Dst: CertParams::populate
      Src: /src/rnp/src/lib/key.cpp:2243,1
    - Dst: rnp::Key::sign_direct
      Src: /src/rnp/src/lib/key.cpp:2244,1
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:2246,1
    - Dst: rnp::Key::refresh_data
      Src: /src/rnp/src/lib/key.cpp:2247,1
    - Dst: Key*::add_sig
      Src: /src/rnp/src/lib/key.cpp:2251,1
    - Dst: Key*::refresh_data
      Src: /src/rnp/src/lib/key.cpp:2252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - cert
    - hash
    - ctx
    - pubkey
    argTypes:
    - CertParams
    - pgp_hash_alg_t
    - SecurityContext
    - Key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2253
      start: 2231
    functionDepth: 4
    functionLinenumber: 2231
    functionLinenumberEnd: 2253
    functionName: rnp::Key::add_direct_sig
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pkt
    - pgp::pkt::Signature::Signature
    - Key*::refresh_data
    - rnp::Key::refresh_data
    - CertParams::populate
    - add_sig
    - SecurityContext::time
    - rnp::Key::sign_init
    - rnp::Key::sign_direct
    - Key*::add_sig
    - rnp_exception
    - pgp::pkt::Signature::set_type
    linkageType: ''
    returnType: void
    signature: void Key::add_direct_sig(CertParams &cert, pgp_hash_alg_t hash, SecurityContext
      &ctx, Key *pubkey)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CertParams::userid::empty
      Src: /src/rnp/src/lib/key.cpp:2259,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2261,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:2262,1
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:2265,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2266,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:2267,1
    - Dst: rnp::Key::has_uid
      Src: /src/rnp/src/lib/key.cpp:2270,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2271,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:2272,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2276,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:2277,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:2280,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2281,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:2282,1
    - Dst: rnp::Key::has_primary_uid
      Src: /src/rnp/src/lib/key.cpp:2285,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2286,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:2287,1
    - Dst: pgp::pkt::Signature::Signature
      Src: /src/rnp/src/lib/key.cpp:2292,1
    - Dst: rnp::Key::sign_init
      Src: /src/rnp/src/lib/key.cpp:2293,1
    - Dst: SecurityContext::time
      Src: /src/rnp/src/lib/key.cpp:2293,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:2293,1
    - Dst: CertParams::populate
      Src: /src/rnp/src/lib/key.cpp:2294,1
    - Dst: rnp::Key::sign_cert
      Src: /src/rnp/src/lib/key.cpp:2296,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2298,1
    - Dst: what
      Src: /src/rnp/src/lib/key.cpp:2298,1
    - Dst: emplace_back
      Src: /src/rnp/src/lib/key.cpp:2302,1
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:2303,1
    - Dst: rnp::Key::uid_count
      Src: /src/rnp/src/lib/key.cpp:2303,1
    - Dst: rnp::Key::refresh_data
      Src: /src/rnp/src/lib/key.cpp:2304,1
    - Dst: Key*::uids_::emplace_back
      Src: /src/rnp/src/lib/key.cpp:2308,1
    - Dst: Key*::add_sig
      Src: /src/rnp/src/lib/key.cpp:2309,1
    - Dst: Key*::uid_count
      Src: /src/rnp/src/lib/key.cpp:2309,1
    - Dst: Key*::refresh_data
      Src: /src/rnp/src/lib/key.cpp:2310,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 4
    argNames:
    - cert
    - hash
    - ctx
    - pubkey
    argTypes:
    - CertParams
    - pgp_hash_alg_t
    - SecurityContext
    - Key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2311
      start: 2256
    functionDepth: 4
    functionLinenumber: 2256
    functionLinenumberEnd: 2311
    functionName: rnp::Key::add_uid_cert
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::Signature
    - Key*::refresh_data
    - emplace_back
    - rnp::Key::refresh_data
    - CertParams::populate
    - add_sig
    - Key*::uid_count
    - rnp::Key::is_primary
    - Key*::add_sig
    - pkt
    - rnp::Key::sign_cert
    - Key*::uids_::emplace_back
    - CertParams::userid::empty
    - RNP_LOG
    - rnp::Key::has_primary_uid
    - rnp::Key::uid_count
    - rnp::Key::sign_init
    - rnp_exception
    - what
    - SecurityContext::time
    - rnp::Key::has_uid
    linkageType: ''
    returnType: void
    signature: void Key::add_uid_cert(CertParams &cert, pgp_hash_alg_t hash, SecurityContext
      &ctx, Key *pubkey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:2320,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2321,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:2322,1
    - Dst: pgp::pkt::Signature::Signature
      Src: /src/rnp/src/lib/key.cpp:2326,1
    - Dst: rnp::Key::sign_init
      Src: /src/rnp/src/lib/key.cpp:2327,1
    - Dst: time
      Src: /src/rnp/src/lib/key.cpp:2327,1
    - Dst: rnp::Key::version
      Src: /src/rnp/src/lib/key.cpp:2327,1
    - Dst: pgp::pkt::Signature::set_type
      Src: /src/rnp/src/lib/key.cpp:2328,1
    - Dst: pgp::pkt::Signature::set_key_expiration
      Src: /src/rnp/src/lib/key.cpp:2330,1
    - Dst: pgp::pkt::Signature::set_key_flags
      Src: /src/rnp/src/lib/key.cpp:2333,1
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/lib/key.cpp:2338,1
    - Dst: rnp::Key::alg
      Src: /src/rnp/src/lib/key.cpp:2338,1
    - Dst: rnp::Key::sign_subkey_binding
      Src: /src/rnp/src/lib/key.cpp:2340,1
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:2342,1
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:2343,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - '                subsec'
    - '                subpub'
    - binding
    - hash
    - '    ctx'
    argTypes:
    - Key
    - Key
    - BindingParams
    - pgp_hash_alg_t
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2344
      start: 2313
    functionDepth: 5
    functionLinenumber: 2313
    functionLinenumberEnd: 2344
    functionName: rnp::Key::add_sub_binding
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::pkt::Signature::Signature
    - rnp::Key::alg
    - rnp::Key::version
    - pgp::pkt::Signature::set_key_flags
    - pgp::pkt::Signature::set_key_expiration
    - add_sig
    - pgp_pk_alg_capabilities
    - rnp::Key::is_primary
    - rnp::Key::sign_init
    - time
    - rnp::Key::sign_subkey_binding
    - rnp_exception
    - pgp::pkt::Signature::set_type
    linkageType: ''
    returnType: void
    signature: "void Key::add_sub_binding(Key &                subsec,\n                     Key
      &                subpub,\n                     const BindingParams &binding,\n
      \                    pgp_hash_alg_t       hash,\n                     SecurityContext
      &    ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::clear_revokes
      Src: /src/rnp/src/lib/key.cpp:2349,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:2351,1
    - Dst: auto::validity::valid
      Src: /src/rnp/src/lib/key.cpp:2352,1
    - Dst: rnp::Key::is_revocation
      Src: /src/rnp/src/lib/key.cpp:2355,1
    - Dst: Revocation
      Src: /src/rnp/src/lib/key.cpp:2360,1
    - Dst: rnp::Key::is_uid_revocation
      Src: /src/rnp/src/lib/key.cpp:2363,1
    - Dst: rnp::Key::uid_count
      Src: /src/rnp/src/lib/key.cpp:2364,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2365,1
    - Dst: get_uid
      Src: /src/rnp/src/lib/key.cpp:2368,1
    - Dst: Revocation
      Src: /src/rnp/src/lib/key.cpp:2373,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2346
    functionDepth: 3
    functionLinenumber: 2346
    functionLinenumberEnd: 2376
    functionName: rnp::Key::refresh_revocations
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - auto::validity::valid
    - rnp::Key::uid_count
    - rnp::Key::is_uid_revocation
    - Revocation
    - get_uid
    - rnp::Key::is_revocation
    - rnp::Key::clear_revokes
    - get_sig
    linkageType: ''
    returnType: void
    signature: void Key::refresh_revocations()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:2381,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2382,1
    - Dst: rnp::Key::validate_self_signatures
      Src: /src/rnp/src/lib/key.cpp:2386,1
    - Dst: rnp::Key::latest_selfsig
      Src: /src/rnp/src/lib/key.cpp:2390,1
    - Dst: auto::sig::key_expiration
      Src: /src/rnp/src/lib/key.cpp:2392,1
    - Dst: rnp::Key::latest_selfsig
      Src: /src/rnp/src/lib/key.cpp:2395,1
    - Dst: auto::sig::key_expiration
      Src: /src/rnp/src/lib/key.cpp:2396,1
    - Dst: auto::sig::key_expiration
      Src: /src/rnp/src/lib/key.cpp:2397,1
    - Dst: auto::sig::key_expiration
      Src: /src/rnp/src/lib/key.cpp:2398,1
    - Dst: rnp::Key::latest_selfsig
      Src: /src/rnp/src/lib/key.cpp:2401,1
    - Dst: auto::sig::key_expiration
      Src: /src/rnp/src/lib/key.cpp:2403,1
    - Dst: auto::sig::has_subpkt
      Src: /src/rnp/src/lib/key.cpp:2406,1
    - Dst: auto::sig::key_flags
      Src: /src/rnp/src/lib/key.cpp:2407,1
    - Dst: auto::sig::has_subpkt
      Src: /src/rnp/src/lib/key.cpp:2408,1
    - Dst: auto::sig::key_flags
      Src: /src/rnp/src/lib/key.cpp:2409,1
    - Dst: auto::sig::has_subpkt
      Src: /src/rnp/src/lib/key.cpp:2410,1
    - Dst: auto::sig::key_flags
      Src: /src/rnp/src/lib/key.cpp:2411,1
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/lib/key.cpp:2413,1
    - Dst: rnp::Key::alg
      Src: /src/rnp/src/lib/key.cpp:2413,1
    - Dst: clear
      Src: /src/rnp/src/lib/key.cpp:2416,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:2418,1
    - Dst: auto::validity::valid
      Src: /src/rnp/src/lib/key.cpp:2420,1
    - Dst: rnp::Key::is_direct_self
      Src: /src/rnp/src/lib/key.cpp:2420,1
    - Dst: auto::sig::has_revoker
      Src: /src/rnp/src/lib/key.cpp:2423,1
    - Dst: rnp::Key::add_revoker
      Src: /src/rnp/src/lib/key.cpp:2426,1
    - Dst: auto::sig::revoker
      Src: /src/rnp/src/lib/key.cpp:2426,1
    - Dst: rnp::Key::refresh_revocations
      Src: /src/rnp/src/lib/key.cpp:2429,1
    - Dst: rnp::Key::valid_till_common
      Src: /src/rnp/src/lib/key.cpp:2431,1
    - Dst: rnp::Key::expired
      Src: /src/rnp/src/lib/key.cpp:2431,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:2437,1
    - Dst: auto::validity::valid
      Src: /src/rnp/src/lib/key.cpp:2439,1
    - Dst: auto::is_cert
      Src: /src/rnp/src/lib/key.cpp:2439,1
    - Dst: rnp::Key::is_signer
      Src: /src/rnp/src/lib/key.cpp:2439,1
    - Dst: auto::expired
      Src: /src/rnp/src/lib/key.cpp:2440,1
    - Dst: SecurityContext::time
      Src: /src/rnp/src/lib/key.cpp:2440,1
    - Dst: rnp::Key::uid_count
      Src: /src/rnp/src/lib/key.cpp:2443,1
    - Dst: get_uid
      Src: /src/rnp/src/lib/key.cpp:2446,1
    - Dst: get_uid
      Src: /src/rnp/src/lib/key.cpp:2456,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 58
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2461
      start: 2378
    functionDepth: 4
    functionLinenumber: 2378
    functionLinenumberEnd: 2461
    functionName: rnp::Key::refresh_data
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 3
    functionsReached:
    - rnp::Key::alg
    - pgp_pk_alg_capabilities
    - rnp::Key::is_primary
    - auto::sig::key_flags
    - get_sig
    - auto::sig::revoker
    - rnp::Key::is_direct_self
    - rnp::Key::validate_self_signatures
    - auto::sig::has_subpkt
    - rnp::Key::refresh_revocations
    - auto::expired
    - clear
    - rnp::Key::add_revoker
    - RNP_LOG
    - rnp::Key::uid_count
    - auto::sig::has_revoker
    - auto::sig::key_expiration
    - auto::validity::valid
    - rnp::Key::is_signer
    - get_uid
    - auto::is_cert
    - SecurityContext::time
    - rnp::Key::expired
    - rnp::Key::valid_till_common
    - rnp::Key::latest_selfsig
    linkageType: ''
    returnType: bool
    signature: bool Key::refresh_data(const SecurityContext &ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::validate_self_signatures
      Src: /src/rnp/src/lib/key.cpp:2468,1
    - Dst: rnp::Key::latest_binding
      Src: /src/rnp/src/lib/key.cpp:2470,1
    - Dst: auto::sig::key_expiration
      Src: /src/rnp/src/lib/key.cpp:2472,1
    - Dst: auto::sig::has_subpkt
      Src: /src/rnp/src/lib/key.cpp:2474,1
    - Dst: auto::sig::key_flags
      Src: /src/rnp/src/lib/key.cpp:2475,1
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/lib/key.cpp:2477,1
    - Dst: rnp::Key::alg
      Src: /src/rnp/src/lib/key.cpp:2477,1
    - Dst: rnp::Key::clear_revokes
      Src: /src/rnp/src/lib/key.cpp:2480,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:2482,1
    - Dst: auto::validity::valid
      Src: /src/rnp/src/lib/key.cpp:2483,1
    - Dst: rnp::Key::is_revocation
      Src: /src/rnp/src/lib/key.cpp:2483,1
    - Dst: Revocation
      Src: /src/rnp/src/lib/key.cpp:2488,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2490,1
    - Dst: what
      Src: /src/rnp/src/lib/key.cpp:2490,1
    - Dst: std::min
      Src: /src/rnp/src/lib/key.cpp:2498,1
    - Dst: Key*::valid_till
      Src: /src/rnp/src/lib/key.cpp:2498,1
    - Dst: rnp::Key::valid_till_common
      Src: /src/rnp/src/lib/key.cpp:2498,1
    - Dst: rnp::Key::expired
      Src: /src/rnp/src/lib/key.cpp:2498,1
    - Dst: Key*::expired
      Src: /src/rnp/src/lib/key.cpp:2498,1
    - Dst: rnp::Key::valid_till_common
      Src: /src/rnp/src/lib/key.cpp:2500,1
    - Dst: rnp::Key::expired
      Src: /src/rnp/src/lib/key.cpp:2500,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - primary
    - ctx
    argTypes:
    - Key*
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2503
      start: 2463
    functionDepth: 4
    functionLinenumber: 2463
    functionLinenumberEnd: 2503
    functionName: rnp::Key::refresh_data
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 3
    functionsReached:
    - rnp::Key::alg
    - Key*::expired
    - pgp_pk_alg_capabilities
    - auto::sig::key_flags
    - get_sig
    - rnp::Key::validate_self_signatures
    - rnp::Key::clear_revokes
    - rnp::Key::is_revocation
    - auto::sig::has_subpkt
    - RNP_LOG
    - std::min
    - auto::sig::key_expiration
    - Key*::valid_till
    - auto::validity::valid
    - what
    - Revocation
    - rnp::Key::latest_binding
    - rnp::Key::expired
    - rnp::Key::valid_till_common
    linkageType: ''
    returnType: bool
    signature: bool Key::refresh_data(Key *primary, const SecurityContext &ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_validity_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2515
      start: 2505
    functionDepth: 0
    functionLinenumber: 2505
    functionLinenumberEnd: 2515
    functionName: rnp::Key::merge_validity
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key::merge_validity(const pgp_validity_t &src)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/key.cpp:2520,1
    - Dst: rnp::Key::is_subkey
      Src: /src/rnp/src/lib/key.cpp:2520,1
    - Dst: assert
      Src: /src/rnp/src/lib/key.cpp:2521,1
    - Dst: Key::is_subkey
      Src: /src/rnp/src/lib/key.cpp:2521,1
    - Dst: Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:2524,1
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:2524,1
    - Dst: Key::pkt
      Src: /src/rnp/src/lib/key.cpp:2525,1
    - Dst: Key::rawpkt
      Src: /src/rnp/src/lib/key.cpp:2526,1
    - Dst: rnp::Key::has_sig
      Src: /src/rnp/src/lib/key.cpp:2532,1
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:2535,1
    - Dst: Key::get_sig
      Src: /src/rnp/src/lib/key.cpp:2535,1
    - Dst: rnp::Key::uid_idx
      Src: /src/rnp/src/lib/key.cpp:2541,1
    - Dst: rnp::Key::uid_count
      Src: /src/rnp/src/lib/key.cpp:2543,1
    - Dst: emplace_back
      Src: /src/rnp/src/lib/key.cpp:2544,1
    - Dst: rnp::Key::sig_count
      Src: /src/rnp/src/lib/key.cpp:2547,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:2548,1
    - Dst: rnp::Key::has_sig
      Src: /src/rnp/src/lib/key.cpp:2549,1
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:2552,1
    - Dst: Key::get_sig
      Src: /src/rnp/src/lib/key.cpp:2552,1
    - Dst: Key::subkey_fps
      Src: /src/rnp/src/lib/key.cpp:2557,1
    - Dst: rnp::Key::add_subkey_fp
      Src: /src/rnp/src/lib/key.cpp:2558,1
    - Dst: Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:2562,1
    - Dst: Key::is_locked
      Src: /src/rnp/src/lib/key.cpp:2562,1
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:2562,1
    - Dst: rnp::Key::is_locked
      Src: /src/rnp/src/lib/key.cpp:2562,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:2563,1
    - Dst: Key::pkt
      Src: /src/rnp/src/lib/key.cpp:2563,1
    - Dst: clone
      Src: /src/rnp/src/lib/key.cpp:2563,1
    - Dst: rnp::Key::merge_validity
      Src: /src/rnp/src/lib/key.cpp:2566,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 1
    argNames:
    - src
    argTypes:
    - Key
    assertStmts:
    - condition: (!is_subkey())
      pos:
        line_end: 2519
        line_start: 2519
        source_file: /src/rnp/src/lib/key.cpp
    - condition: (!src.is_subkey())
      pos:
        line_end: 2520
        line_start: 2520
        source_file: /src/rnp/src/lib/key.cpp
    constantsTouched: []
    func_position:
      end: 2568
      start: 2517
    functionDepth: 4
    functionLinenumber: 2517
    functionLinenumberEnd: 2568
    functionName: rnp::Key::merge
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - Key::get_sig
    - emplace_back
    - add_sig
    - rnp::Key::sig_count
    - get_sig
    - pkt
    - Key::is_secret
    - Key::is_locked
    - Key::is_subkey
    - rnp::Key::is_locked
    - clone
    - rnp::Key::is_secret
    - rnp::Key::uid_count
    - rnp::Key::merge_validity
    - assert
    - Key::pkt
    - rnp::Key::is_subkey
    - Key::rawpkt
    - rnp::Key::add_subkey_fp
    - rnp::Key::uid_idx
    - rnp::Key::has_sig
    - Key::subkey_fps
    linkageType: ''
    returnType: bool
    signature: bool Key::merge(const Key &src)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/key.cpp:2573,1
    - Dst: rnp::Key::is_subkey
      Src: /src/rnp/src/lib/key.cpp:2573,1
    - Dst: assert
      Src: /src/rnp/src/lib/key.cpp:2574,1
    - Dst: Key::is_subkey
      Src: /src/rnp/src/lib/key.cpp:2574,1
    - Dst: Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:2577,1
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:2577,1
    - Dst: Key::pkt
      Src: /src/rnp/src/lib/key.cpp:2578,1
    - Dst: Key::rawpkt
      Src: /src/rnp/src/lib/key.cpp:2579,1
    - Dst: rnp::Key::has_sig
      Src: /src/rnp/src/lib/key.cpp:2584,1
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:2587,1
    - Dst: Key::get_sig
      Src: /src/rnp/src/lib/key.cpp:2587,1
    - Dst: Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:2591,1
    - Dst: Key::is_locked
      Src: /src/rnp/src/lib/key.cpp:2591,1
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:2591,1
    - Dst: rnp::Key::is_locked
      Src: /src/rnp/src/lib/key.cpp:2591,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:2592,1
    - Dst: Key::pkt
      Src: /src/rnp/src/lib/key.cpp:2592,1
    - Dst: clone
      Src: /src/rnp/src/lib/key.cpp:2592,1
    - Dst: rnp::Key::merge_validity
      Src: /src/rnp/src/lib/key.cpp:2595,1
    - Dst: Key*::link_subkey_fp
      Src: /src/rnp/src/lib/key.cpp:2598,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - src
    - primary
    argTypes:
    - Key
    - Key*
    assertStmts:
    - condition: (src.is_subkey())
      pos:
        line_end: 2573
        line_start: 2573
        source_file: /src/rnp/src/lib/key.cpp
    - condition: (is_subkey())
      pos:
        line_end: 2572
        line_start: 2572
        source_file: /src/rnp/src/lib/key.cpp
    constantsTouched: []
    func_position:
      end: 2601
      start: 2570
    functionDepth: 4
    functionLinenumber: 2570
    functionLinenumberEnd: 2601
    functionName: rnp::Key::merge
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - Key::get_sig
    - pkt
    - Key::rawpkt
    - rnp::Key::merge_validity
    - Key::is_secret
    - Key::is_locked
    - Key*::link_subkey_fp
    - Key::is_subkey
    - add_sig
    - assert
    - rnp::Key::is_locked
    - Key::pkt
    - clone
    - rnp::Key::is_subkey
    - rnp::Key::is_secret
    - rnp::Key::has_sig
    linkageType: ''
    returnType: bool
    signature: bool Key::merge(const Key &src, Key *primary)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RawPacket::data
      Src: /src/rnp/src/lib/key.cpp:71,1
    - Dst: std::unique_ptr<pgp_key_pkt_t>
      Src: /src/rnp/src/lib/key.cpp:72,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/lib/key.cpp:72,1
    - Dst: auto::parse
      Src: /src/rnp/src/lib/key.cpp:73,1
    - Dst: MemorySource::src
      Src: /src/rnp/src/lib/key.cpp:73,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/lib/key.cpp:73,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/key.cpp:73,1
    - Dst: auto::release
      Src: /src/rnp/src/lib/key.cpp:76,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:78,1
    - Dst: what
      Src: /src/rnp/src/lib/key.cpp:78,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - raw
    - pubkey
    - password
    argTypes:
    - RawPacket
    - pgp_key_pkt_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 3
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: rnp::pgp_decrypt_seckey_pgp
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - RawPacket::data
    - what
    - std::unique_ptr<pgp_key_pkt_t>
    - auto::parse
    - pgp_key_pkt_t::pgp_key_pkt_t
    - auto::get
    - auto::release
    - MemorySource::src
    - decrypt_secret_key
    linkageType: ''
    returnType: pgp_key_pkt_t
    signature: 'pgp_key_pkt_t *

      pgp_decrypt_seckey_pgp(const RawPacket &raw, const pgp_key_pkt_t &pubkey, const
      char *password)'
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_secret
      Src: /src/rnp/src/lib/key.cpp:95,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:96,1
    - Dst: is_protected
      Src: /src/rnp/src/lib/key.cpp:101,1
    - Dst: pgp_request_password
      Src: /src/rnp/src/lib/key.cpp:102,1
    - Dst: secure_array::data
      Src: /src/rnp/src/lib/key.cpp:102,1
    - Dst: secure_array::size
      Src: /src/rnp/src/lib/key.cpp:102,1
    - Dst: rnp::pgp_decrypt_seckey_pgp
      Src: /src/rnp/src/lib/key.cpp:109,1
    - Dst: rawpkt
      Src: /src/rnp/src/lib/key.cpp:109,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:109,1
    - Dst: secure_array::data
      Src: /src/rnp/src/lib/key.cpp:109,1
    - Dst: g10_decrypt_seckey
      Src: /src/rnp/src/lib/key.cpp:111,1
    - Dst: rawpkt
      Src: /src/rnp/src/lib/key.cpp:111,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:111,1
    - Dst: secure_array::data
      Src: /src/rnp/src/lib/key.cpp:111,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:113,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/lib/key.cpp:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - '                    key'
    - provider
    - '     ctx'
    argTypes:
    - Key
    - pgp_password_provider_t
    - pgp_password_ctx_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 89
    functionDepth: 8
    functionLinenumber: 89
    functionLinenumberEnd: 116
    functionName: rnp::pgp_decrypt_seckey
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - is_secret
    - RNP_LOG
    - secure_array::data
    - pkt
    - secure_array::size
    - rawpkt
    - is_protected
    - static_cast<int>
    - rnp::pgp_decrypt_seckey_pgp
    - pgp_request_password
    - g10_decrypt_seckey
    linkageType: ''
    returnType: pgp_key_pkt_t
    signature: "pgp_key_pkt_t *\npgp_decrypt_seckey(const Key &                    key,\n
      \                  const pgp_password_provider_t &provider,\n                   const
      pgp_password_ctx_t &     ctx)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::type
      Src: /src/rnp/src/lib/key.cpp:127,1
    - Dst: encrypt_secret_key
      Src: /src/rnp/src/lib/key.cpp:128,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/key.cpp:128,1
    - Dst: rnp::Key::write
      Src: /src/rnp/src/lib/key.cpp:132,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:135,1
    - Dst: what
      Src: /src/rnp/src/lib/key.cpp:135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - '       dst'
    - '    seckey'
    - password
    - '              rng'
    argTypes:
    - pgp_dest_t
    - pgp_key_pkt_t
    - std::string
    - RNG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 118
    functionDepth: 3
    functionLinenumber: 118
    functionLinenumberEnd: 140
    functionName: rnp::Key::write_sec_pgp
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - encrypt_secret_key
    - what
    - std::string::c_str
    - rnp::Key::write
    - rnp::Key::type
    linkageType: ''
    returnType: bool
    signature: "bool Key::write_sec_pgp(pgp_dest_t &       dst,\n                   pgp_key_pkt_t
      &    seckey,\n                   const std::string &password,\n                   RNG
      &              rng)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::write_sec_pgp
      Src: /src/rnp/src/lib/key.cpp:151,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/lib/key.cpp:151,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:152,1
    - Dst: g10_write_seckey
      Src: /src/rnp/src/lib/key.cpp:157,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/lib/key.cpp:157,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/key.cpp:157,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:158,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:163,1
    - Dst: RawPacket
      Src: /src/rnp/src/lib/key.cpp:167,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/lib/key.cpp:167,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/lib/key.cpp:167,1
    - Dst: rnp::Key::type
      Src: /src/rnp/src/lib/key.cpp:167,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:170,1
    - Dst: what
      Src: /src/rnp/src/lib/key.cpp:170,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - seckey
    - password
    - ctx
    argTypes:
    - pgp_key_pkt_t
    - std::string
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 142
    functionDepth: 4
    functionLinenumber: 142
    functionLinenumberEnd: 173
    functionName: rnp::Key::write_sec_rawpkt
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - MemoryDest::dst
    - RNP_LOG
    - MemoryDest::memory
    - what
    - std::string::c_str
    - RawPacket
    - MemoryDest::writeb
    - rnp::Key::type
    - rnp::Key::write_sec_pgp
    - g10_write_seckey
    linkageType: ''
    returnType: bool
    signature: bool Key::write_sec_rawpkt(pgp_key_pkt_t &seckey, const std::string
      &password, SecurityContext &ctx)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: profile::def_level
      Src: /src/rnp/src/lib/key.cpp:185,1
    - Dst: profile::has_rule
      Src: /src/rnp/src/lib/key.cpp:186,1
    - Dst: time
      Src: /src/rnp/src/lib/key.cpp:187,1
    - Dst: profile::get_rule
      Src: /src/rnp/src/lib/key.cpp:188,1
    - Dst: time
      Src: /src/rnp/src/lib/key.cpp:189,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:193,1
    - Dst: pgp::pkt::Signature*::remove_subpkt
      Src: /src/rnp/src/lib/key.cpp:197,1
    - Dst: pgp::pkt::Signature*::find_subpkt
      Src: /src/rnp/src/lib/key.cpp:197,1
    - Dst: pgp::pkt::Signature*::set_key_expiration
      Src: /src/rnp/src/lib/key.cpp:200,1
    - Dst: pgp::pkt::Signature*::set_creation
      Src: /src/rnp/src/lib/key.cpp:202,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:205,1
    - Dst: what
      Src: /src/rnp/src/lib/key.cpp:205,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - dst
    - src
    - create
    - expiry
    - '          ctx'
    argTypes:
    - pgp::pkt::Signature*
    - pgp::pkt::Signature*
    - uint64_t
    - uint32_t
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 208
    functionName: rnp::update_sig_expiration
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - what
    - profile::def_level
    - profile::has_rule
    - profile::get_rule
    - pgp::pkt::Signature*::remove_subpkt
    - pgp::pkt::Signature*::set_key_expiration
    - pgp::pkt::Signature*::find_subpkt
    - time
    - pgp::pkt::Signature*::set_creation
    linkageType: ''
    returnType: bool
    signature: "bool update_sig_expiration(pgp::pkt::Signature *      dst,\n                      const
      pgp::pkt::Signature *src,\n                      uint64_t                   create,\n
      \                     uint32_t                   expiry,\n                      SecurityContext
      &          ctx)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: Key*::is_primary
      Src: /src/rnp/src/lib/key.cpp:217,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:218,1
    - Dst: Key*::latest_selfsig
      Src: /src/rnp/src/lib/key.cpp:225,1
    - Dst: pgp::SigIDs::push_back
      Src: /src/rnp/src/lib/key.cpp:227,1
    - Dst: Key*::uid_count
      Src: /src/rnp/src/lib/key.cpp:229,1
    - Dst: Key*::latest_selfsig
      Src: /src/rnp/src/lib/key.cpp:230,1
    - Dst: pgp::SigIDs::push_back
      Src: /src/rnp/src/lib/key.cpp:232,1
    - Dst: pgp::SigIDs::empty
      Src: /src/rnp/src/lib/key.cpp:235,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:236,1
    - Dst: Key*::get_sig
      Src: /src/rnp/src/lib/key.cpp:242,1
    - Dst: auto::sig::has_subpkt
      Src: /src/rnp/src/lib/key.cpp:244,1
    - Dst: Key*::is_locked
      Src: /src/rnp/src/lib/key.cpp:249,1
    - Dst: Key*::unlock
      Src: /src/rnp/src/lib/key.cpp:249,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:250,1
    - Dst: pgp::pkt::Signature::Signature
      Src: /src/rnp/src/lib/key.cpp:254,1
    - Dst: rnp::update_sig_expiration
      Src: /src/rnp/src/lib/key.cpp:256,1
    - Dst: time
      Src: /src/rnp/src/lib/key.cpp:256,1
    - Dst: auto::is_cert
      Src: /src/rnp/src/lib/key.cpp:260,1
    - Dst: Key*::uid_count
      Src: /src/rnp/src/lib/key.cpp:261,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:262,1
    - Dst: Key*::sign_cert
      Src: /src/rnp/src/lib/key.cpp:265,1
    - Dst: Key*::pkt
      Src: /src/rnp/src/lib/key.cpp:265,1
    - Dst: Key*::get_uid
      Src: /src/rnp/src/lib/key.cpp:265,1
    - Dst: Key*::sign_direct
      Src: /src/rnp/src/lib/key.cpp:268,1
    - Dst: Key*::pkt
      Src: /src/rnp/src/lib/key.cpp:268,1
    - Dst: Key*::has_sig
      Src: /src/rnp/src/lib/key.cpp:271,1
    - Dst: Key*::replace_sig
      Src: /src/rnp/src/lib/key.cpp:272,1
    - Dst: Key*::replace_sig
      Src: /src/rnp/src/lib/key.cpp:275,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:278,1
    - Dst: what
      Src: /src/rnp/src/lib/key.cpp:278,1
    - Dst: Key*::refresh_data
      Src: /src/rnp/src/lib/key.cpp:283,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:284,1
    - Dst: Key*::refresh_data
      Src: /src/rnp/src/lib/key.cpp:287,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:288,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 58
    argCount: 5
    argNames:
    - key
    - seckey
    - expiry
    - prov
    - '              ctx'
    argTypes:
    - Key*
    - Key*
    - uint32_t
    - pgp_password_provider_t
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 292
      start: 210
    functionDepth: 2
    functionLinenumber: 210
    functionLinenumberEnd: 292
    functionName: rnp::pgp_key_set_expiration
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::Signature
    - Key*::refresh_data
    - rnp::update_sig_expiration
    - pgp::SigIDs::push_back
    - Key*::uid_count
    - pgp::SigIDs::empty
    - Key*::sign_cert
    - Key*::is_locked
    - Key*::pkt
    - Key*::is_primary
    - auto::sig::has_subpkt
    - RNP_LOG
    - Key*::get_sig
    - Key*::latest_selfsig
    - time
    - what
    - Key*::sign_direct
    - Key*::has_sig
    - Key*::unlock
    - Key*::replace_sig
    - auto::is_cert
    - Key*::get_uid
    linkageType: ''
    returnType: bool
    signature: "bool pgp_key_set_expiration(Key *                          key,\n
      \                      Key *                          seckey,\n                       uint32_t
      \                      expiry,\n                       const pgp_password_provider_t
      &prov,\n                       SecurityContext &              ctx)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: Key*::is_subkey
      Src: /src/rnp/src/lib/key.cpp:302,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:303,1
    - Dst: Key*::latest_binding
      Src: /src/rnp/src/lib/key.cpp:308,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:310,1
    - Dst: auto::sig::has_subpkt
      Src: /src/rnp/src/lib/key.cpp:313,1
    - Dst: Key*::is_locked
      Src: /src/rnp/src/lib/key.cpp:318,1
    - Dst: Key*::unlock
      Src: /src/rnp/src/lib/key.cpp:318,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:319,1
    - Dst: Key*::can_sign
      Src: /src/rnp/src/lib/key.cpp:322,1
    - Dst: Key*::is_locked
      Src: /src/rnp/src/lib/key.cpp:324,1
    - Dst: Key*::unlock
      Src: /src/rnp/src/lib/key.cpp:324,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:325,1
    - Dst: pgp::pkt::Signature::Signature
      Src: /src/rnp/src/lib/key.cpp:331,1
    - Dst: rnp::update_sig_expiration
      Src: /src/rnp/src/lib/key.cpp:333,1
    - Dst: time
      Src: /src/rnp/src/lib/key.cpp:333,1
    - Dst: Key*::sign_subkey_binding
      Src: /src/rnp/src/lib/key.cpp:336,1
    - Dst: Key*::has_sig
      Src: /src/rnp/src/lib/key.cpp:338,1
    - Dst: Key*::replace_sig
      Src: /src/rnp/src/lib/key.cpp:339,1
    - Dst: Key*::refresh_data
      Src: /src/rnp/src/lib/key.cpp:340,1
    - Dst: Key*::replace_sig
      Src: /src/rnp/src/lib/key.cpp:347,1
    - Dst: Key*::refresh_data
      Src: /src/rnp/src/lib/key.cpp:348,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:350,1
    - Dst: what
      Src: /src/rnp/src/lib/key.cpp:350,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 40
    argCount: 6
    argNames:
    - sub
    - primsec
    - secsub
    - expiry
    - prov
    - '              ctx'
    argTypes:
    - Key*
    - Key*
    - Key*
    - uint32_t
    - pgp_password_provider_t
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 294
    functionDepth: 2
    functionLinenumber: 294
    functionLinenumberEnd: 353
    functionName: rnp::pgp_subkey_set_expiration
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - Key*::is_subkey
    - pgp::pkt::Signature::Signature
    - Key*::is_locked
    - rnp::update_sig_expiration
    - Key*::refresh_data
    - what
    - Key*::sign_subkey_binding
    - Key*::has_sig
    - Key*::can_sign
    - Key*::unlock
    - Key*::replace_sig
    - auto::sig::has_subpkt
    - time
    - Key*::latest_binding
    linkageType: ''
    returnType: bool
    signature: "bool pgp_subkey_set_expiration(Key *                          sub,\n
      \                         Key *                          primsec,\n                          Key
      *                          secsub,\n                          uint32_t                       expiry,\n
      \                         const pgp_password_provider_t &prov,\n                          SecurityContext
      &              ctx)"
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:371,1
    - Dst: Key*::usable_for
      Src: /src/rnp/src/lib/key.cpp:375,1
    - Dst: Key*::is_public
      Src: /src/rnp/src/lib/key.cpp:379,1
    - Dst: Key*::usable_for
      Src: /src/rnp/src/lib/key.cpp:379,1
    - Dst: Key*::fp
      Src: /src/rnp/src/lib/key.cpp:380,1
    - Dst: KeyProvider*::request_key
      Src: /src/rnp/src/lib/key.cpp:381,1
    - Dst: Key*::usable_for
      Src: /src/rnp/src/lib/key.cpp:382,1
    - Dst: Key*::subkey_fps
      Src: /src/rnp/src/lib/key.cpp:388,1
    - Dst: KeyProvider*::request_key
      Src: /src/rnp/src/lib/key.cpp:390,1
    - Dst: Key*::usable_for
      Src: /src/rnp/src/lib/key.cpp:391,1
    - Dst: Key*::is_pqc
      Src: /src/rnp/src/lib/key.cpp:398,1
    - Dst: Key*::is_pqc
      Src: /src/rnp/src/lib/key.cpp:398,1
    - Dst: Key*::is_pqc
      Src: /src/rnp/src/lib/key.cpp:402,1
    - Dst: Key*::is_pqc
      Src: /src/rnp/src/lib/key.cpp:402,1
    - Dst: Key*::creation
      Src: /src/rnp/src/lib/key.cpp:409,1
    - Dst: Key*::creation
      Src: /src/rnp/src/lib/key.cpp:409,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 40
    argCount: 5
    argNames:
    - op
    - key
    - key_provider
    - no_primary
    - pref_pqc_sub
    argTypes:
    - pgp_op_t
    - Key*
    - KeyProvider*
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 414
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 414
    functionName: rnp::find_suitable_key
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - Key*::is_pqc
    - Key*::usable_for
    - Key*::creation
    - Key*::fp
    - Key*::is_public
    - Key*::subkey_fps
    - KeyProvider*::request_key
    linkageType: ''
    returnType: Key
    signature: "Key *\nfind_suitable_key(\n  pgp_op_t op, Key *key, KeyProvider *key_provider,
      bool no_primary, bool pref_pqc_sub)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_key_pkt
      Src: /src/rnp/src/lib/key.cpp:418,1
    - Dst: material::alg
      Src: /src/rnp/src/lib/key.cpp:418,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:419,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/lib/key.cpp:421,1
    - Dst: material::grip
      Src: /src/rnp/src/lib/key.cpp:422,1
    - Dst: is_secret_key_pkt
      Src: /src/rnp/src/lib/key.cpp:425,1
    - Dst: decrypt_secret_key
      Src: /src/rnp/src/lib/key.cpp:427,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:428,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:429,1
    - Dst: material::set_validity
      Src: /src/rnp/src/lib/key.cpp:432,1
    - Dst: pgp_key_pkt_t::material::validity
      Src: /src/rnp/src/lib/key.cpp:432,1
    - Dst: RawPacket
      Src: /src/rnp/src/lib/key.cpp:435,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 15
    argCount: 1
    argNames:
    - keypkt
    argTypes:
    - pgp_key_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 416
    functionDepth: 3
    functionLinenumber: 416
    functionLinenumberEnd: 437
    functionName: rnp::Key::Key
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - material::set_validity
    - is_secret_key_pkt
    - material::grip
    - pgp::Fingerprint::Fingerprint
    - material::alg
    - RawPacket
    - pgp_key_pkt_t::material::validity
    - rnp_exception
    - decrypt_secret_key
    - is_key_pkt
    linkageType: ''
    returnType: void
    signature: void Key::Key(const pgp_key_pkt_t &keypkt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key::link_subkey_fp
      Src: /src/rnp/src/lib/key.cpp:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pkt
    - primary
    argTypes:
    - pgp_key_pkt_t
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 439
    functionDepth: 0
    functionLinenumber: 439
    functionLinenumberEnd: 442
    functionName: rnp::Key::Key
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 4
    functionsReached:
    - Key::link_subkey_fp
    linkageType: ''
    returnType: void
    signature: void Key::Key(const pgp_key_pkt_t &pkt, Key &primary)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:449,1
    - Dst: std::invalid_argument
      Src: /src/rnp/src/lib/key.cpp:450,1
    - Dst: pgp_key_pkt_t
      Src: /src/rnp/src/lib/key.cpp:455,1
    - Dst: RawPacket
      Src: /src/rnp/src/lib/key.cpp:456,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 33
    argCount: 2
    argNames:
    - src
    - pubonly
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 481
      start: 444
    functionDepth: 1
    functionLinenumber: 444
    functionLinenumberEnd: 481
    functionName: rnp::Key::Key
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - std::invalid_argument
    - pgp_key_pkt_t
    - RawPacket
    linkageType: ''
    returnType: void
    signature: void Key::Key(const Key &src, bool pubonly)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:487,1
    - Dst: add_uid
      Src: /src/rnp/src/lib/key.cpp:492,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_transferable_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 494
      start: 483
    functionDepth: 0
    functionLinenumber: 483
    functionLinenumberEnd: 494
    functionName: rnp::Key::Key
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 4
    functionsReached:
    - add_uid
    - add_sig
    linkageType: ''
    returnType: void
    signature: void Key::Key(const pgp_transferable_key_t &src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:500,1
    - Dst: Key*::link_subkey_fp
      Src: /src/rnp/src/lib/key.cpp:505,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - src
    - primary
    argTypes:
    - pgp_transferable_subkey_t
    - Key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 507
      start: 496
    functionDepth: 0
    functionLinenumber: 496
    functionLinenumberEnd: 507
    functionName: rnp::Key::Key
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 4
    functionsReached:
    - Key*::link_subkey_fp
    - add_sig
    linkageType: ''
    returnType: void
    signature: void Key::Key(const pgp_transferable_subkey_t &src, Key *primary)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:512,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 513
      start: 509
    functionDepth: 1
    functionLinenumber: 509
    functionLinenumberEnd: 513
    functionName: rnp::Key::sig_count
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 5
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t Key::sig_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:518,1
    - Dst: at
      Src: /src/rnp/src/lib/key.cpp:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 515
    functionDepth: 1
    functionLinenumber: 515
    functionLinenumberEnd: 519
    functionName: '&

      Key::get_sig(size_t idx)'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - at
    - get_sig
    linkageType: ''
    returnType: Signature
    signature: 'Signature &

      Key::get_sig(size_t idx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:524,1
    - Dst: at
      Src: /src/rnp/src/lib/key.cpp:524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 525
      start: 521
    functionDepth: 1
    functionLinenumber: 521
    functionLinenumberEnd: 525
    functionName: '&

      Key::get_sig(size_t idx) const'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - at
    - get_sig
    linkageType: ''
    returnType: Signature
    signature: 'Signature &

      Key::get_sig(size_t idx) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/rnp/src/lib/key.cpp:530,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - pgp::SigID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 531
      start: 527
    functionDepth: 1
    functionLinenumber: 527
    functionLinenumberEnd: 531
    functionName: rnp::Key::has_sig
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 3
    functionsReached:
    - count
    linkageType: ''
    returnType: bool
    signature: bool Key::has_sig(const pgp::SigID &id) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_sig
      Src: /src/rnp/src/lib/key.cpp:536,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:537,1
    - Dst: at
      Src: /src/rnp/src/lib/key.cpp:539,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - pgp::SigID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 533
    functionDepth: 1
    functionLinenumber: 533
    functionLinenumberEnd: 540
    functionName: '&

      Key::get_sig(const pgp::SigID &id)'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - at
    - rnp_exception
    - has_sig
    linkageType: ''
    returnType: Signature
    signature: 'Signature &

      Key::get_sig(const pgp::SigID &id)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: has_sig
      Src: /src/rnp/src/lib/key.cpp:545,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:546,1
    - Dst: at
      Src: /src/rnp/src/lib/key.cpp:548,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - id
    argTypes:
    - pgp::SigID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 549
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 549
    functionName: '&

      Key::get_sig(const pgp::SigID &id) const'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - at
    - rnp_exception
    - has_sig
    linkageType: ''
    returnType: Signature
    signature: 'Signature &

      Key::get_sig(const pgp::SigID &id) const'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:555,1
    - Dst: erase
      Src: /src/rnp/src/lib/key.cpp:558,1
    - Dst: emplace
      Src: /src/rnp/src/lib/key.cpp:559,1
    - Dst: std::make_pair
      Src: /src/rnp/src/lib/key.cpp:559,1
    - Dst: pgp::pkt::Signature::get_id
      Src: /src/rnp/src/lib/key.cpp:559,1
    - Dst: std::find
      Src: /src/rnp/src/lib/key.cpp:561,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:561,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:561,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:562,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:563,1
    - Dst: std::find
      Src: /src/rnp/src/lib/key.cpp:567,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:567,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:567,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:568,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:569,1
    - Dst: replace_sig
      Src: /src/rnp/src/lib/key.cpp:573,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 2
    argNames:
    - id
    - newsig
    argTypes:
    - pgp::SigID
    - pgp::pkt::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 576
      start: 551
    functionDepth: 2
    functionLinenumber: 551
    functionLinenumberEnd: 576
    functionName: '&

      Key::replace_sig(const pgp::SigID &id, const pgp::pkt::Signature &newsig)'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp_exception
    - end
    - pgp::pkt::Signature::get_id
    - erase
    - std::make_pair
    - get_sig
    - std::find
    - emplace
    - begin
    - replace_sig
    linkageType: ''
    returnType: Signature
    signature: 'Signature &

      Key::replace_sig(const pgp::SigID &id, const pgp::pkt::Signature &newsig)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::get_id
      Src: /src/rnp/src/lib/key.cpp:581,1
    - Dst: erase
      Src: /src/rnp/src/lib/key.cpp:582,1
    - Dst: emplace
      Src: /src/rnp/src/lib/key.cpp:583,1
    - Dst: std::make_pair
      Src: /src/rnp/src/lib/key.cpp:583,1
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:586,1
    - Dst: insert
      Src: /src/rnp/src/lib/key.cpp:587,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:587,1
    - Dst: insert
      Src: /src/rnp/src/lib/key.cpp:588,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:588,1
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:593,1
    - Dst: sig_count
      Src: /src/rnp/src/lib/key.cpp:595,1
    - Dst: sig_count
      Src: /src/rnp/src/lib/key.cpp:598,1
    - Dst: insert
      Src: /src/rnp/src/lib/key.cpp:600,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:600,1
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:601,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 3
    argNames:
    - sig
    - uid
    - begin
    argTypes:
    - pgp::pkt::Signature
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 603
      start: 578
    functionDepth: 2
    functionLinenumber: 578
    functionLinenumberEnd: 603
    functionName: '&

      Key::add_sig(const pgp::pkt::Signature &sig, size_t uid, bool begin)'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - sig_count
    - insert
    - pgp::pkt::Signature::get_id
    - erase
    - add_sig
    - std::make_pair
    - emplace
    - begin
    - size
    linkageType: ''
    returnType: Signature
    signature: 'Signature &

      Key::add_sig(const pgp::pkt::Signature &sig, size_t uid, bool begin)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::has_sig
      Src: /src/rnp/src/lib/key.cpp:608,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:611,1
    - Dst: std::find
      Src: /src/rnp/src/lib/key.cpp:614,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:614,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:614,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:615,1
    - Dst: erase
      Src: /src/rnp/src/lib/key.cpp:616,1
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:618,1
    - Dst: rnp::Key::del_sig
      Src: /src/rnp/src/lib/key.cpp:620,1
    - Dst: std::find
      Src: /src/rnp/src/lib/key.cpp:622,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:622,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:622,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:623,1
    - Dst: erase
      Src: /src/rnp/src/lib/key.cpp:624,1
    - Dst: erase
      Src: /src/rnp/src/lib/key.cpp:626,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 1
    argNames:
    - sigid
    argTypes:
    - pgp::SigID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 605
    functionDepth: 2
    functionLinenumber: 605
    functionLinenumberEnd: 627
    functionName: rnp::Key::del_sig
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - end
    - size
    - rnp::Key::del_sig
    - erase
    - get_sig
    - std::find
    - begin
    - rnp::Key::has_sig
    linkageType: ''
    returnType: bool
    signature: bool Key::del_sig(const pgp::SigID &sigid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/rnp/src/lib/key.cpp:635,1
    - Dst: clear
      Src: /src/rnp/src/lib/key.cpp:638,1
    - Dst: clear_sigs
      Src: /src/rnp/src/lib/key.cpp:640,1
    - Dst: pgp::SigIDs::reserve
      Src: /src/rnp/src/lib/key.cpp:643,1
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:643,1
    - Dst: count
      Src: /src/rnp/src/lib/key.cpp:645,1
    - Dst: pgp::SigIDs::push_back
      Src: /src/rnp/src/lib/key.cpp:648,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:649,1
    - Dst: push_back
      Src: /src/rnp/src/lib/key.cpp:651,1
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:653,1
    - Dst: std::move
      Src: /src/rnp/src/lib/key.cpp:656,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - sigs
    argTypes:
    - pgp::SigIDs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 658
    functionName: rnp::Key::del_sigs
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - pgp::SigIDs::reserve
    - std::move
    - pgp::SigIDs::push_back
    - push_back
    - clear_sigs
    - erase
    - add_sig
    - get_sig
    - clear
    - count
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t Key::del_sigs(const pgp::SigIDs &sigs)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:663,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 660
    functionDepth: 1
    functionLinenumber: 660
    functionLinenumberEnd: 664
    functionName: rnp::Key::keysig_count
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t Key::keysig_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:669,1
    - Dst: at
      Src: /src/rnp/src/lib/key.cpp:669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 670
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 670
    functionName: '&

      Key::get_keysig(size_t idx)'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - at
    - get_sig
    linkageType: ''
    returnType: Signature
    signature: 'Signature &

      Key::get_keysig(size_t idx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:675,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 672
    functionDepth: 1
    functionLinenumber: 672
    functionLinenumberEnd: 676
    functionName: rnp::Key::uid_count
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 5
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t Key::uid_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/rnp/src/lib/key.cpp:681,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 678
    functionDepth: 1
    functionLinenumber: 678
    functionLinenumberEnd: 682
    functionName: '&

      Key::get_uid(size_t idx)'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: UserID
    signature: 'UserID &

      Key::get_uid(size_t idx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/rnp/src/lib/key.cpp:687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 684
    functionDepth: 1
    functionLinenumber: 684
    functionLinenumberEnd: 688
    functionName: '&

      Key::get_uid(size_t idx) const'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: UserID
    signature: 'UserID &

      Key::get_uid(size_t idx) const'
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - uidstr
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 702
      start: 690
    functionDepth: 0
    functionLinenumber: 690
    functionLinenumberEnd: 702
    functionName: rnp::Key::has_uid
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Key::has_uid(const std::string &uidstr) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:707,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - uid
    argTypes:
    - pgp_userid_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 713
      start: 704
    functionDepth: 1
    functionLinenumber: 704
    functionLinenumberEnd: 713
    functionName: rnp::Key::uid_idx
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - size
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Key::uid_idx(const pgp_userid_pkt_t &uid) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:718,1
    - Dst: std::out_of_range
      Src: /src/rnp/src/lib/key.cpp:719,1
    - Dst: pgp::SigIDs::reserve
      Src: /src/rnp/src/lib/key.cpp:724,1
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:724,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:726,1
    - Dst: erase
      Src: /src/rnp/src/lib/key.cpp:727,1
    - Dst: pgp::SigIDs::push_back
      Src: /src/rnp/src/lib/key.cpp:730,1
    - Dst: std::move
      Src: /src/rnp/src/lib/key.cpp:732,1
    - Dst: erase
      Src: /src/rnp/src/lib/key.cpp:733,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:733,1
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:735,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 21
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 715
    functionDepth: 1
    functionLinenumber: 715
    functionLinenumberEnd: 744
    functionName: rnp::Key::del_uid
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - pgp::SigIDs::reserve
    - std::out_of_range
    - std::move
    - pgp::SigIDs::push_back
    - erase
    - get_sig
    - begin
    - size
    linkageType: ''
    returnType: void
    signature: void Key::del_uid(size_t idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 750
      start: 746
    functionDepth: 0
    functionLinenumber: 746
    functionLinenumberEnd: 750
    functionName: rnp::Key::has_primary_uid
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Key::has_primary_uid() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:756,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 759
      start: 752
    functionDepth: 0
    functionLinenumber: 752
    functionLinenumberEnd: 759
    functionName: rnp::Key::get_primary_uid
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp_exception
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Key::get_primary_uid() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/rnp/src/lib/key.cpp:765,1
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:768,1
    - Dst: uid_count
      Src: /src/rnp/src/lib/key.cpp:768,1
    - Dst: back
      Src: /src/rnp/src/lib/key.cpp:770,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - uid
    argTypes:
    - pgp_transferable_userid_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 771
      start: 761
    functionDepth: 1
    functionLinenumber: 761
    functionLinenumberEnd: 771
    functionName: '&

      Key::add_uid(const pgp_transferable_userid_t &uid)'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - back
    - emplace_back
    - add_sig
    - uid_count
    linkageType: ''
    returnType: UserID
    signature: 'UserID &

      Key::add_uid(const pgp_transferable_userid_t &uid)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 777
      start: 773
    functionDepth: 0
    functionLinenumber: 773
    functionLinenumberEnd: 777
    functionName: rnp::Key::revoked
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Key::revoked() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:783,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 786
    functionName: '&

      Key::revocation() const'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp_exception
    linkageType: ''
    returnType: Revocation
    signature: 'Revocation &

      Key::revocation() const'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 788
    functionDepth: 0
    functionLinenumber: 788
    functionLinenumberEnd: 797
    functionName: rnp::Key::clear_revokes
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key::clear_revokes()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/rnp/src/lib/key.cpp:802,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:802,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:802,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:802,1
    - Dst: push_back
      Src: /src/rnp/src/lib/key.cpp:803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - revoker
    argTypes:
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 805
      start: 799
    functionDepth: 1
    functionLinenumber: 799
    functionLinenumberEnd: 805
    functionName: rnp::Key::add_revoker
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - std::find
    - end
    - begin
    - push_back
    linkageType: ''
    returnType: void
    signature: void Key::add_revoker(const pgp::Fingerprint &revoker)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/rnp/src/lib/key.cpp:810,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:810,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:810,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - revoker
    argTypes:
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 811
      start: 807
    functionDepth: 1
    functionLinenumber: 807
    functionLinenumberEnd: 811
    functionName: rnp::Key::has_revoker
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - std::find
    - end
    - begin
    linkageType: ''
    returnType: bool
    signature: bool Key::has_revoker(const pgp::Fingerprint &revoker) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:816,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 813
    functionDepth: 1
    functionLinenumber: 813
    functionLinenumberEnd: 817
    functionName: rnp::Key::revoker_count
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t Key::revoker_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/rnp/src/lib/key.cpp:822,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 819
    functionDepth: 1
    functionLinenumber: 819
    functionLinenumberEnd: 823
    functionName: '&

      Key::get_revoker(size_t idx) const'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: pgp::Fingerprint
    signature: 'pgp::Fingerprint &

      Key::get_revoker(size_t idx) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 829
      start: 825
    functionDepth: 0
    functionLinenumber: 825
    functionLinenumberEnd: 829
    functionName: '&

      Key::pkt() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_key_pkt_t
    signature: 'pgp_key_pkt_t &

      Key::pkt() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 835
      start: 831
    functionDepth: 0
    functionLinenumber: 831
    functionLinenumberEnd: 835
    functionName: '&

      Key::pkt() noexcept'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_key_pkt_t
    signature: 'pgp_key_pkt_t &

      Key::pkt() noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_key_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 841
    functionName: rnp::Key::set_pkt
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key::set_pkt(const pgp_key_pkt_t &pkt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: material::get
      Src: /src/rnp/src/lib/key.cpp:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 843
    functionDepth: 1
    functionLinenumber: 843
    functionLinenumberEnd: 847
    functionName: rnp::Key::material
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 4
    functionsReached:
    - material::get
    linkageType: ''
    returnType: pgp::KeyMaterial
    signature: 'pgp::KeyMaterial *

      Key::material() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: material::get
      Src: /src/rnp/src/lib/key.cpp:852,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 853
      start: 849
    functionDepth: 1
    functionLinenumber: 849
    functionLinenumberEnd: 853
    functionName: rnp::Key::material
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 4
    functionsReached:
    - material::get
    linkageType: ''
    returnType: pgp::KeyMaterial
    signature: 'pgp::KeyMaterial *

      Key::material() noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 859
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 859
    functionName: rnp::Key::alg
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: pgp_pubkey_alg_t
    signature: pgp_pubkey_alg_t Key::alg() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::material
      Src: /src/rnp/src/lib/key.cpp:864,1
    - Dst: rnp::Key::material
      Src: /src/rnp/src/lib/key.cpp:864,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 865
      start: 861
    functionDepth: 2
    functionLinenumber: 861
    functionLinenumberEnd: 865
    functionName: rnp::Key::curve
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key::material
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t Key::curve() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:870,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 871
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 871
    functionName: rnp::Key::version
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - pkt
    linkageType: ''
    returnType: pgp_version_t
    signature: pgp_version_t Key::version() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:876,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 873
    functionDepth: 0
    functionLinenumber: 873
    functionLinenumberEnd: 877
    functionName: rnp::Key::type
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 5
    functionsReached:
    - pkt
    linkageType: ''
    returnType: pgp_pkt_type_t
    signature: pgp_pkt_type_t Key::type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:882,1
    - Dst: rnp::Key::material
      Src: /src/rnp/src/lib/key.cpp:882,1
    - Dst: rnp::Key::material
      Src: /src/rnp/src/lib/key.cpp:882,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 879
    functionDepth: 2
    functionLinenumber: 879
    functionLinenumberEnd: 883
    functionName: rnp::Key::encrypted
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - rnp::Key::material
    - rnp::Key::is_secret
    linkageType: ''
    returnType: bool
    signature: bool Key::encrypted() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 889
      start: 885
    functionDepth: 0
    functionLinenumber: 885
    functionLinenumberEnd: 889
    functionName: rnp::Key::flags
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t Key::flags() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 895
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 895
    functionName: rnp::Key::can_sign
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Key::can_sign() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 897
    functionDepth: 0
    functionLinenumber: 897
    functionLinenumberEnd: 901
    functionName: rnp::Key::can_certify
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Key::can_certify() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 907
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 907
    functionName: rnp::Key::can_encrypt
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Key::can_encrypt() const noexcept
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:912,1
    - Dst: sec_data::empty
      Src: /src/rnp/src/lib/key.cpp:915,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 909
    functionDepth: 2
    functionLinenumber: 909
    functionLinenumberEnd: 932
    functionName: rnp::Key::has_secret
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - sec_data::empty
    - rnp::Key::is_secret
    linkageType: ''
    returnType: bool
    signature: bool Key::has_secret() const noexcept
  - BBCount: 17
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 974
      start: 935
    functionDepth: 0
    functionLinenumber: 935
    functionLinenumberEnd: 974
    functionName: rnp::Key::is_pqc_alg
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Key::is_pqc_alg(pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_pqc_alg
      Src: /src/rnp/src/lib/key.cpp:979,1
    - Dst: rnp::Key::alg
      Src: /src/rnp/src/lib/key.cpp:979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 980
      start: 976
    functionDepth: 1
    functionLinenumber: 976
    functionLinenumberEnd: 980
    functionName: rnp::Key::is_pqc
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key::alg
    - rnp::Key::is_pqc_alg
    linkageType: ''
    returnType: bool
    signature: bool Key::is_pqc() const noexcept
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:988,1
    - Dst: rnp::Key::can_sign
      Src: /src/rnp/src/lib/key.cpp:988,1
    - Dst: rnp::Key::has_secret
      Src: /src/rnp/src/lib/key.cpp:988,1
    - Dst: rnp::Key::can_sign
      Src: /src/rnp/src/lib/key.cpp:990,1
    - Dst: rnp::Key::valid
      Src: /src/rnp/src/lib/key.cpp:990,1
    - Dst: rnp::Key::has_secret
      Src: /src/rnp/src/lib/key.cpp:990,1
    - Dst: rnp::Key::can_certify
      Src: /src/rnp/src/lib/key.cpp:992,1
    - Dst: rnp::Key::valid
      Src: /src/rnp/src/lib/key.cpp:992,1
    - Dst: rnp::Key::has_secret
      Src: /src/rnp/src/lib/key.cpp:992,1
    - Dst: rnp::Key::can_encrypt
      Src: /src/rnp/src/lib/key.cpp:994,1
    - Dst: rnp::Key::valid
      Src: /src/rnp/src/lib/key.cpp:994,1
    - Dst: rnp::Key::has_secret
      Src: /src/rnp/src/lib/key.cpp:994,1
    - Dst: rnp::Key::has_secret
      Src: /src/rnp/src/lib/key.cpp:998,1
    - Dst: rnp::Key::can_sign
      Src: /src/rnp/src/lib/key.cpp:1000,1
    - Dst: rnp::Key::valid
      Src: /src/rnp/src/lib/key.cpp:1000,1
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:1002,1
    - Dst: rnp::Key::can_sign
      Src: /src/rnp/src/lib/key.cpp:1002,1
    - Dst: rnp::Key::has_secret
      Src: /src/rnp/src/lib/key.cpp:1002,1
    - Dst: rnp::Key::can_encrypt
      Src: /src/rnp/src/lib/key.cpp:1004,1
    - Dst: rnp::Key::valid
      Src: /src/rnp/src/lib/key.cpp:1004,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 23
    argCount: 2
    argNames:
    - op
    - if_secret
    argTypes:
    - pgp_op_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1008
      start: 983
    functionDepth: 2
    functionLinenumber: 983
    functionLinenumberEnd: 1008
    functionName: rnp::Key::usable_for
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - rnp::Key::has_secret
    - rnp::Key::can_encrypt
    - rnp::Key::can_certify
    - rnp::Key::valid
    - rnp::Key::can_sign
    - rnp::Key::is_primary
    linkageType: ''
    returnType: bool
    signature: bool Key::usable_for(pgp_op_t op, bool if_secret) const
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1021
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1021
    functionName: rnp::Key::expiration
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Key::expiration() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1023
    functionDepth: 0
    functionLinenumber: 1023
    functionLinenumberEnd: 1027
    functionName: rnp::Key::expired
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Key::expired() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1033
      start: 1029
    functionDepth: 0
    functionLinenumber: 1029
    functionLinenumberEnd: 1033
    functionName: rnp::Key::creation
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t Key::creation() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_public_key_pkt
      Src: /src/rnp/src/lib/key.cpp:1038,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1039
      start: 1035
    functionDepth: 1
    functionLinenumber: 1035
    functionLinenumberEnd: 1039
    functionName: rnp::Key::is_public
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - is_public_key_pkt
    linkageType: ''
    returnType: bool
    signature: bool Key::is_public() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_secret_key_pkt
      Src: /src/rnp/src/lib/key.cpp:1044,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1045
      start: 1041
    functionDepth: 1
    functionLinenumber: 1041
    functionLinenumberEnd: 1045
    functionName: rnp::Key::is_secret
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 13
    functionsReached:
    - is_secret_key_pkt
    linkageType: ''
    returnType: bool
    signature: bool Key::is_secret() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_primary_key_pkt
      Src: /src/rnp/src/lib/key.cpp:1050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1051
      start: 1047
    functionDepth: 1
    functionLinenumber: 1047
    functionLinenumberEnd: 1051
    functionName: rnp::Key::is_primary
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 13
    functionsReached:
    - is_primary_key_pkt
    linkageType: ''
    returnType: bool
    signature: bool Key::is_primary() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_subkey_pkt
      Src: /src/rnp/src/lib/key.cpp:1056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1057
      start: 1053
    functionDepth: 1
    functionLinenumber: 1053
    functionLinenumberEnd: 1057
    functionName: rnp::Key::is_subkey
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 6
    functionsReached:
    - is_subkey_pkt
    linkageType: ''
    returnType: bool
    signature: bool Key::is_subkey() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:1062,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1063,1
    - Dst: rnp::Key::encrypted
      Src: /src/rnp/src/lib/key.cpp:1066,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1067
      start: 1059
    functionDepth: 3
    functionLinenumber: 1059
    functionLinenumberEnd: 1067
    functionName: rnp::Key::is_locked
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - rnp::Key::encrypted
    - rnp::Key::is_secret
    linkageType: ''
    returnType: bool
    signature: bool Key::is_locked() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:1073,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1074,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1077
      start: 1069
    functionDepth: 2
    functionLinenumber: 1069
    functionLinenumberEnd: 1077
    functionName: rnp::Key::is_protected
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::Key::is_secret
    linkageType: ''
    returnType: bool
    signature: bool Key::is_protected() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1083
      start: 1079
    functionDepth: 0
    functionLinenumber: 1079
    functionLinenumberEnd: 1083
    functionName: rnp::Key::valid
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Key::valid() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1089
      start: 1085
    functionDepth: 0
    functionLinenumber: 1085
    functionLinenumberEnd: 1089
    functionName: rnp::Key::validated
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Key::validated() const noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::validated
      Src: /src/rnp/src/lib/key.cpp:1094,1
    - Dst: rnp::Key::expiration
      Src: /src/rnp/src/lib/key.cpp:1097,1
    - Dst: rnp::Key::creation
      Src: /src/rnp/src/lib/key.cpp:1097,1
    - Dst: rnp::Key::expiration
      Src: /src/rnp/src/lib/key.cpp:1097,1
    - Dst: rnp::Key::valid
      Src: /src/rnp/src/lib/key.cpp:1098,1
    - Dst: rnp::Key::revoked
      Src: /src/rnp/src/lib/key.cpp:1101,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1106,1
    - Dst: auto::sig::creation
      Src: /src/rnp/src/lib/key.cpp:1107,1
    - Dst: rnp::Key::creation
      Src: /src/rnp/src/lib/key.cpp:1107,1
    - Dst: std::min
      Src: /src/rnp/src/lib/key.cpp:1109,1
    - Dst: auto::sig::creation
      Src: /src/rnp/src/lib/key.cpp:1109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 1
    argNames:
    - expiry
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1115
      start: 1091
    functionDepth: 1
    functionLinenumber: 1091
    functionLinenumberEnd: 1115
    functionName: rnp::Key::valid_till_common
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - rnp::Key::creation
    - auto::sig::creation
    - rnp::Key::valid
    - rnp::Key::expiration
    - std::min
    - rnp::Key::revoked
    - get_sig
    - rnp::Key::validated
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Key::valid_till_common(bool expiry) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1121
      start: 1117
    functionDepth: 0
    functionLinenumber: 1117
    functionLinenumberEnd: 1121
    functionName: rnp::Key::valid_till
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t Key::valid_till() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::creation
      Src: /src/rnp/src/lib/key.cpp:1128,1
    - Dst: rnp::Key::valid_till
      Src: /src/rnp/src/lib/key.cpp:1128,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - timestamp
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1123
    functionDepth: 1
    functionLinenumber: 1123
    functionLinenumberEnd: 1129
    functionName: rnp::Key::valid_at
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - rnp::Key::creation
    - rnp::Key::valid_till
    linkageType: ''
    returnType: bool
    signature: bool Key::valid_at(uint64_t timestamp) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: keyid
      Src: /src/rnp/src/lib/key.cpp:1134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1131
    functionDepth: 0
    functionLinenumber: 1131
    functionLinenumberEnd: 1135
    functionName: '&

      Key::keyid() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - keyid
    linkageType: ''
    returnType: pgp::KeyID
    signature: 'pgp::KeyID &

      Key::keyid() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1137
    functionDepth: 0
    functionLinenumber: 1137
    functionLinenumberEnd: 1141
    functionName: '&

      Key::fp() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp::Fingerprint
    signature: 'pgp::Fingerprint &

      Key::fp() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1147
      start: 1143
    functionDepth: 0
    functionLinenumber: 1143
    functionLinenumberEnd: 1147
    functionName: '&

      Key::grip() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp::KeyGrip
    signature: 'pgp::KeyGrip &

      Key::grip() const noexcept'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:1153,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1149
    functionDepth: 0
    functionLinenumber: 1149
    functionLinenumberEnd: 1156
    functionName: '&

      Key::primary_fp() const'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp_exception
    linkageType: ''
    returnType: pgp::Fingerprint
    signature: 'pgp::Fingerprint &

      Key::primary_fp() const'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1158
    functionDepth: 0
    functionLinenumber: 1158
    functionLinenumberEnd: 1162
    functionName: rnp::Key::has_primary_fp
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Key::has_primary_fp() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1169
    functionName: rnp::Key::unset_primary_fp
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key::unset_primary_fp() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:1174,1
    - Dst: Key::is_subkey
      Src: /src/rnp/src/lib/key.cpp:1174,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:1175,1
    - Dst: fp
      Src: /src/rnp/src/lib/key.cpp:1177,1
    - Dst: rnp::Key::add_subkey_fp
      Src: /src/rnp/src/lib/key.cpp:1179,1
    - Dst: Key::fp
      Src: /src/rnp/src/lib/key.cpp:1179,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - subkey
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1180
      start: 1171
    functionDepth: 2
    functionLinenumber: 1171
    functionLinenumberEnd: 1180
    functionName: rnp::Key::link_subkey_fp
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key::add_subkey_fp
    - fp
    - Key::is_subkey
    - Key::fp
    - rnp::Key::is_primary
    - rnp_exception
    linkageType: ''
    returnType: void
    signature: void Key::link_subkey_fp(Key &subkey)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/rnp/src/lib/key.cpp:1185,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:1185,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:1185,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:1185,1
    - Dst: push_back
      Src: /src/rnp/src/lib/key.cpp:1186,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fp
    argTypes:
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1188
      start: 1182
    functionDepth: 1
    functionLinenumber: 1182
    functionLinenumberEnd: 1188
    functionName: rnp::Key::add_subkey_fp
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 3
    functionsReached:
    - std::find
    - end
    - begin
    - push_back
    linkageType: ''
    returnType: void
    signature: void Key::add_subkey_fp(const pgp::Fingerprint &fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:1193,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1194
      start: 1190
    functionDepth: 1
    functionLinenumber: 1190
    functionLinenumberEnd: 1194
    functionName: rnp::Key::subkey_count
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t Key::subkey_count() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/rnp/src/lib/key.cpp:1199,1
    - Dst: begin
      Src: /src/rnp/src/lib/key.cpp:1199,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:1199,1
    - Dst: end
      Src: /src/rnp/src/lib/key.cpp:1200,1
    - Dst: erase
      Src: /src/rnp/src/lib/key.cpp:1201,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - fp
    argTypes:
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1203
      start: 1196
    functionDepth: 1
    functionLinenumber: 1196
    functionLinenumberEnd: 1203
    functionName: rnp::Key::remove_subkey_fp
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - std::find
    - end
    - begin
    - erase
    linkageType: ''
    returnType: void
    signature: void Key::remove_subkey_fp(const pgp::Fingerprint &fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1209
      start: 1205
    functionDepth: 0
    functionLinenumber: 1205
    functionLinenumberEnd: 1209
    functionName: '&

      Key::get_subkey_fp(size_t idx) const'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp::Fingerprint
    signature: 'pgp::Fingerprint &

      Key::get_subkey_fp(size_t idx) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1215
      start: 1211
    functionDepth: 0
    functionLinenumber: 1211
    functionLinenumberEnd: 1215
    functionName: '&

      Key::subkey_fps() const'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp::Fingerprints
    signature: 'pgp::Fingerprints &

      Key::subkey_fps() const'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::uid_count
      Src: /src/rnp/src/lib/key.cpp:1223,1
    - Dst: rnp::Key::sig_count
      Src: /src/rnp/src/lib/key.cpp:1223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1224
      start: 1217
    functionDepth: 2
    functionLinenumber: 1217
    functionLinenumberEnd: 1224
    functionName: rnp::Key::rawpkt_count
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - rnp::Key::uid_count
    - rnp::Key::sig_count
    linkageType: ''
    returnType: size_t
    signature: size_t Key::rawpkt_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1230
      start: 1226
    functionDepth: 0
    functionLinenumber: 1226
    functionLinenumberEnd: 1230
    functionName: '&

      Key::rawpkt()'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawPacket
    signature: 'RawPacket &

      Key::rawpkt()'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1236
      start: 1232
    functionDepth: 0
    functionLinenumber: 1232
    functionLinenumberEnd: 1236
    functionName: '&

      Key::rawpkt() const'
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawPacket
    signature: 'RawPacket &

      Key::rawpkt() const'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - RawPacket
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1242
      start: 1238
    functionDepth: 0
    functionLinenumber: 1238
    functionLinenumberEnd: 1242
    functionName: rnp::Key::set_rawpkt
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key::set_rawpkt(const RawPacket &src)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::usable_for
      Src: /src/rnp/src/lib/key.cpp:1248,1
    - Dst: rnp::Key::is_locked
      Src: /src/rnp/src/lib/key.cpp:1252,1
    - Dst: pgp_decrypt_seckey
      Src: /src/rnp/src/lib/key.cpp:1257,1
    - Dst: std::move
      Src: /src/rnp/src/lib/key.cpp:1263,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - provider
    - op
    argTypes:
    - pgp_password_provider_t
    - pgp_op_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1266
      start: 1244
    functionDepth: 4
    functionLinenumber: 1244
    functionLinenumberEnd: 1266
    functionName: rnp::Key::unlock
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - rnp::Key::is_locked
    - rnp::Key::usable_for
    - pgp_decrypt_seckey
    - std::move
    linkageType: ''
    returnType: bool
    signature: bool Key::unlock(const pgp_password_provider_t &provider, pgp_op_t
      op)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:1272,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1273,1
    - Dst: rnp::Key::is_locked
      Src: /src/rnp/src/lib/key.cpp:1278,1
    - Dst: assert
      Src: /src/rnp/src/lib/key.cpp:1282,1
    - Dst: rnp::Key::material
      Src: /src/rnp/src/lib/key.cpp:1282,1
    - Dst: rnp::Key::material
      Src: /src/rnp/src/lib/key.cpp:1283,1
    - Dst: rnp::Key::material
      Src: /src/rnp/src/lib/key.cpp:1284,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (material())
      pos:
        line_end: 1281
        line_start: 1281
        source_file: /src/rnp/src/lib/key.cpp
    constantsTouched: []
    func_position:
      end: 1287
      start: 1268
    functionDepth: 4
    functionLinenumber: 1268
    functionLinenumberEnd: 1287
    functionName: rnp::Key::lock
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::Key::material
    - rnp::Key::is_locked
    - assert
    - rnp::Key::is_secret
    linkageType: ''
    returnType: bool
    signature: bool Key::lock() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_request_password
      Src: /src/rnp/src/lib/key.cpp:1298,1
    - Dst: secure_array::data
      Src: /src/rnp/src/lib/key.cpp:1298,1
    - Dst: secure_array::size
      Src: /src/rnp/src/lib/key.cpp:1298,1
    - Dst: rnp::Key::protect
      Src: /src/rnp/src/lib/key.cpp:1301,1
    - Dst: secure_array::data
      Src: /src/rnp/src/lib/key.cpp:1301,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - protection
    - '    password_provider'
    - '                  sctx'
    argTypes:
    - rnp_key_protection_params_t
    - pgp_password_provider_t
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1302
      start: 1289
    functionDepth: 1
    functionLinenumber: 1289
    functionLinenumberEnd: 1302
    functionName: rnp::Key::protect
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 3
    functionsReached:
    - pgp_request_password
    - secure_array::data
    - rnp::Key::protect
    - secure_array::size
    linkageType: ''
    returnType: bool
    signature: "bool Key::protect(const rnp_key_protection_params_t &protection,\n
      \            const pgp_password_provider_t &    password_provider,\n             SecurityContext
      &                  sctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:1310,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1311,1
    - Dst: material::secret
      Src: /src/rnp/src/lib/key.cpp:1315,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1316,1
    - Dst: s2k_iterations
      Src: /src/rnp/src/lib/key.cpp:1358,1
    - Dst: pgp_s2k_round_iterations
      Src: /src/rnp/src/lib/key.cpp:1360,1
    - Dst: rnp::Key::write_sec_rawpkt
      Src: /src/rnp/src/lib/key.cpp:1368,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 40
    argCount: 4
    argNames:
    - '                    decrypted'
    - protection
    - '                new_password'
    - '                  ctx'
    argTypes:
    - pgp_key_pkt_t
    - rnp_key_protection_params_t
    - std::string
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1369
      start: 1304
    functionDepth: 5
    functionLinenumber: 1304
    functionLinenumberEnd: 1369
    functionName: rnp::Key::protect
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - rnp::Key::write_sec_rawpkt
    - material::secret
    - s2k_iterations
    - rnp::Key::is_secret
    - pgp_s2k_round_iterations
    linkageType: ''
    returnType: bool
    signature: "bool Key::protect(pgp_key_pkt_t &                    decrypted,\n
      \            const rnp_key_protection_params_t &protection,\n             const
      std::string &                new_password,\n             SecurityContext &                  ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:1375,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1376,1
    - Dst: rnp::Key::is_protected
      Src: /src/rnp/src/lib/key.cpp:1380,1
    - Dst: rnp::Key::encrypted
      Src: /src/rnp/src/lib/key.cpp:1384,1
    - Dst: rnp::Key::write_sec_rawpkt
      Src: /src/rnp/src/lib/key.cpp:1386,1
    - Dst: pgp_decrypt_seckey
      Src: /src/rnp/src/lib/key.cpp:1391,1
    - Dst: rnp::Key::write_sec_rawpkt
      Src: /src/rnp/src/lib/key.cpp:1396,1
    - Dst: std::move
      Src: /src/rnp/src/lib/key.cpp:1400,1
    - Dst: assert
      Src: /src/rnp/src/lib/key.cpp:1402,1
    - Dst: rnp::Key::material
      Src: /src/rnp/src/lib/key.cpp:1402,1
    - Dst: rnp::Key::material
      Src: /src/rnp/src/lib/key.cpp:1403,1
    - Dst: rnp::Key::material
      Src: /src/rnp/src/lib/key.cpp:1404,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - password_provider
    - secctx
    argTypes:
    - pgp_password_provider_t
    - SecurityContext
    assertStmts:
    - condition: (material())
      pos:
        line_end: 1401
        line_start: 1401
        source_file: /src/rnp/src/lib/key.cpp
    constantsTouched: []
    func_position:
      end: 1408
      start: 1371
    functionDepth: 5
    functionLinenumber: 1371
    functionLinenumberEnd: 1408
    functionName: rnp::Key::unprotect
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::Key::write_sec_rawpkt
    - rnp::Key::encrypted
    - rnp::Key::material
    - pgp_decrypt_seckey
    - rnp::Key::is_protected
    - assert
    - rnp::Key::is_secret
    - std::move
    linkageType: ''
    returnType: bool
    signature: bool Key::unprotect(const pgp_password_provider_t &password_provider,
      SecurityContext &secctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::write
      Src: /src/rnp/src/lib/key.cpp:1414,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1422,1
    - Dst: rnp::Key::write
      Src: /src/rnp/src/lib/key.cpp:1422,1
    - Dst: rawpkt::write
      Src: /src/rnp/src/lib/key.cpp:1427,1
    - Dst: rnp::Key::sig_count
      Src: /src/rnp/src/lib/key.cpp:1428,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1429,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1429,1
    - Dst: rnp::Key::write
      Src: /src/rnp/src/lib/key.cpp:1429,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1410
    functionDepth: 2
    functionLinenumber: 1410
    functionLinenumberEnd: 1432
    functionName: rnp::Key::write
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 7
    functionsReached:
    - rawpkt::write
    - rnp::Key::sig_count
    - rnp::Key::write
    - get_sig
    linkageType: ''
    returnType: void
    signature: void Key::write(pgp_dest_t &dst) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::write
      Src: /src/rnp/src/lib/key.cpp:1437,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1439,1
    - Dst: KeyStore*::get_key
      Src: /src/rnp/src/lib/key.cpp:1449,1
    - Dst: bin_to_hex
      Src: /src/rnp/src/lib/key.cpp:1451,1
    - Dst: data
      Src: /src/rnp/src/lib/key.cpp:1451,1
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:1451,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1452,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/key.cpp:1452,1
    - Dst: Key*::write
      Src: /src/rnp/src/lib/key.cpp:1455,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1457,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - dst
    - keyring
    argTypes:
    - pgp_dest_t
    - KeyStore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1461
      start: 1434
    functionDepth: 3
    functionLinenumber: 1434
    functionLinenumberEnd: 1461
    functionName: rnp::Key::write_xfer
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - data
    - bin_to_hex
    - std::string::c_str
    - Key*::write
    - rnp::Key::write
    - KeyStore*::get_key
    - size
    linkageType: ''
    returnType: void
    signature: void Key::write_xfer(pgp_dest_t &dst, const KeyStore *keyring) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::latest_uid_selfcert
      Src: /src/rnp/src/lib/key.cpp:1466,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1468,1
    - Dst: Key::latest_binding
      Src: /src/rnp/src/lib/key.cpp:1471,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1473,1
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:1476,1
    - Dst: Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:1476,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1477,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:1484,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/lib/key.cpp:1484,1
    - Dst: get_uid
      Src: /src/rnp/src/lib/key.cpp:1485,1
    - Dst: rnp::Key::write
      Src: /src/rnp/src/lib/key.cpp:1485,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/lib/key.cpp:1485,1
    - Dst: auto::sig::write
      Src: /src/rnp/src/lib/key.cpp:1486,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/lib/key.cpp:1486,1
    - Dst: Key::pkt
      Src: /src/rnp/src/lib/key.cpp:1487,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/lib/key.cpp:1487,1
    - Dst: auto::sig::write
      Src: /src/rnp/src/lib/key.cpp:1488,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/lib/key.cpp:1488,1
    - Dst: dst_write
      Src: /src/rnp/src/lib/key.cpp:1489,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/lib/key.cpp:1489,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/lib/key.cpp:1489,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1492,1
    - Dst: what
      Src: /src/rnp/src/lib/key.cpp:1492,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - dst
    - sub
    - uid
    argTypes:
    - pgp_dest_t
    - Key
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1495
      start: 1463
    functionDepth: 3
    functionLinenumber: 1463
    functionLinenumberEnd: 1495
    functionName: rnp::Key::write_autocrypt
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pkt
    - MemoryDest::dst
    - MemoryDest::memory
    - Key::latest_binding
    - what
    - Key::is_secret
    - auto::sig::write
    - dst_write
    - rnp::Key::latest_uid_selfcert
    - get_uid
    - rnp::Key::write
    - MemoryDest::writeb
    - Key::pkt
    - rnp::Key::is_secret
    linkageType: ''
    returnType: bool
    signature: bool Key::write_autocrypt(pgp_dest_t &dst, Key &sub, uint32_t uid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::write
      Src: /src/rnp/src/lib/key.cpp:1501,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/lib/key.cpp:1501,1
    - Dst: MemoryDest::to_vector
      Src: /src/rnp/src/lib/key.cpp:1502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1503
      start: 1497
    functionDepth: 3
    functionLinenumber: 1497
    functionLinenumberEnd: 1503
    functionName: rnp::Key::write_vec
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - MemoryDest::dst
    - rnp::Key::write
    - MemoryDest::to_vector
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Key::write_vec() const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1512,1
    - Dst: auto::validity::valid
      Src: /src/rnp/src/lib/key.cpp:1513,1
    - Dst: rnp::Key::is_direct_self
      Src: /src/rnp/src/lib/key.cpp:1519,1
    - Dst: rnp::Key::is_self_cert
      Src: /src/rnp/src/lib/key.cpp:1522,1
    - Dst: auto::sig::get_subpkt
      Src: /src/rnp/src/lib/key.cpp:1523,1
    - Dst: auto::sig::primary_uid
      Src: /src/rnp/src/lib/key.cpp:1524,1
    - Dst: rnp::Key::is_self_cert
      Src: /src/rnp/src/lib/key.cpp:1528,1
    - Dst: rnp::Key::is_self_cert
      Src: /src/rnp/src/lib/key.cpp:1531,1
    - Dst: auto::sig::creation
      Src: /src/rnp/src/lib/key.cpp:1538,1
    - Dst: rnp::Key::latest_selfsig
      Src: /src/rnp/src/lib/key.cpp:1547,1
    - Dst: auto::sig::creation
      Src: /src/rnp/src/lib/key.cpp:1548,1
    - Dst: Signature*::sig::creation
      Src: /src/rnp/src/lib/key.cpp:1548,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 33
    argCount: 2
    argNames:
    - uid
    - validated
    argTypes:
    - uint32_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1553
      start: 1505
    functionDepth: 3
    functionLinenumber: 1505
    functionLinenumberEnd: 1553
    functionName: rnp::Key::latest_selfsig
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 4
    functionsReached:
    - auto::validity::valid
    - rnp::Key::is_self_cert
    - auto::sig::creation
    - rnp::Key::latest_selfsig
    - Signature*::sig::creation
    - get_sig
    - auto::sig::get_subpkt
    - rnp::Key::is_direct_self
    - auto::sig::primary_uid
    linkageType: ''
    returnType: Signature
    signature: 'Signature *

      Key::latest_selfsig(uint32_t uid, bool validated)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1562,1
    - Dst: auto::validity::valid
      Src: /src/rnp/src/lib/key.cpp:1563,1
    - Dst: rnp::Key::is_binding
      Src: /src/rnp/src/lib/key.cpp:1566,1
    - Dst: auto::sig::creation
      Src: /src/rnp/src/lib/key.cpp:1570,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 13
    argCount: 1
    argNames:
    - validated
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1555
    functionDepth: 3
    functionLinenumber: 1555
    functionLinenumberEnd: 1577
    functionName: rnp::Key::latest_binding
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - rnp::Key::is_binding
    - auto::validity::valid
    - auto::sig::creation
    - get_sig
    linkageType: ''
    returnType: Signature
    signature: 'Signature *

      Key::latest_binding(bool validated)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/key.cpp:1585,1
    - Dst: rnp::Key::sig_count
      Src: /src/rnp/src/lib/key.cpp:1589,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1590,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1590,1
    - Dst: auto::validity::valid
      Src: /src/rnp/src/lib/key.cpp:1591,1
    - Dst: rnp::Key::is_self_cert
      Src: /src/rnp/src/lib/key.cpp:1594,1
    - Dst: auto::sig::creation
      Src: /src/rnp/src/lib/key.cpp:1598,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 1
    argNames:
    - uid
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1579
    functionDepth: 3
    functionLinenumber: 1579
    functionLinenumberEnd: 1605
    functionName: rnp::Key::latest_uid_selfcert
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - auto::validity::valid
    - rnp::Key::is_self_cert
    - auto::sig::creation
    - rnp::Key::sig_count
    - get_sig
    - size
    linkageType: ''
    returnType: Signature
    signature: 'Signature *

      Key::latest_uid_selfcert(uint32_t uid)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Signature::sig::has_keyfp
      Src: /src/rnp/src/lib/key.cpp:1611,1
    - Dst: Signature::sig::keyfp
      Src: /src/rnp/src/lib/key.cpp:1612,1
    - Dst: fp
      Src: /src/rnp/src/lib/key.cpp:1612,1
    - Dst: Signature::sig::has_keyid
      Src: /src/rnp/src/lib/key.cpp:1614,1
    - Dst: keyid
      Src: /src/rnp/src/lib/key.cpp:1617,1
    - Dst: Signature::sig::keyid
      Src: /src/rnp/src/lib/key.cpp:1617,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - sig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1607
    functionDepth: 0
    functionLinenumber: 1607
    functionLinenumberEnd: 1618
    functionName: rnp::Key::is_signer
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 6
    functionsReached:
    - keyid
    - fp
    - Signature::sig::keyid
    - Signature::sig::keyfp
    - Signature::sig::has_keyid
    - Signature::sig::has_keyfp
    linkageType: ''
    returnType: bool
    signature: bool Key::is_signer(const Signature &sig) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Signature::sig::key_expiration
      Src: /src/rnp/src/lib/key.cpp:1624,1
    - Dst: rnp::Key::creation
      Src: /src/rnp/src/lib/key.cpp:1628,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - sig
    - at
    argTypes:
    - Signature
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1629
      start: 1620
    functionDepth: 1
    functionLinenumber: 1620
    functionLinenumberEnd: 1629
    functionName: rnp::Key::expired_with
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - rnp::Key::creation
    - Signature::sig::key_expiration
    linkageType: ''
    returnType: bool
    signature: bool Key::expired_with(const Signature &sig, uint64_t at) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:1634,1
    - Dst: Signature::is_cert
      Src: /src/rnp/src/lib/key.cpp:1634,1
    - Dst: rnp::Key::is_signer
      Src: /src/rnp/src/lib/key.cpp:1634,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1635
      start: 1631
    functionDepth: 2
    functionLinenumber: 1631
    functionLinenumberEnd: 1635
    functionName: rnp::Key::is_self_cert
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 5
    functionsReached:
    - rnp::Key::is_primary
    - rnp::Key::is_signer
    - Signature::is_cert
    linkageType: ''
    returnType: bool
    signature: bool Key::is_self_cert(const Signature &sig) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:1640,1
    - Dst: Signature::sig::type
      Src: /src/rnp/src/lib/key.cpp:1640,1
    - Dst: rnp::Key::is_signer
      Src: /src/rnp/src/lib/key.cpp:1640,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1641
      start: 1637
    functionDepth: 2
    functionLinenumber: 1637
    functionLinenumberEnd: 1641
    functionName: rnp::Key::is_direct_self
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 4
    functionsReached:
    - rnp::Key::is_primary
    - rnp::Key::is_signer
    - Signature::sig::type
    linkageType: ''
    returnType: bool
    signature: bool Key::is_direct_self(const Signature &sig) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:1646,1
    - Dst: Signature::sig::type
      Src: /src/rnp/src/lib/key.cpp:1646,1
    - Dst: Signature::sig::type
      Src: /src/rnp/src/lib/key.cpp:1647,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1648
      start: 1643
    functionDepth: 2
    functionLinenumber: 1643
    functionLinenumberEnd: 1648
    functionName: rnp::Key::is_revocation
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 7
    functionsReached:
    - rnp::Key::is_primary
    - Signature::sig::type
    linkageType: ''
    returnType: bool
    signature: bool Key::is_revocation(const Signature &sig) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:1653,1
    - Dst: Signature::sig::type
      Src: /src/rnp/src/lib/key.cpp:1653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1650
    functionDepth: 2
    functionLinenumber: 1650
    functionLinenumberEnd: 1654
    functionName: rnp::Key::is_uid_revocation
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - rnp::Key::is_primary
    - Signature::sig::type
    linkageType: ''
    returnType: bool
    signature: bool Key::is_uid_revocation(const Signature &sig) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_subkey
      Src: /src/rnp/src/lib/key.cpp:1659,1
    - Dst: Signature::sig::type
      Src: /src/rnp/src/lib/key.cpp:1659,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - sig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1660
      start: 1656
    functionDepth: 2
    functionLinenumber: 1656
    functionLinenumberEnd: 1660
    functionName: rnp::Key::is_binding
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 4
    functionsReached:
    - rnp::Key::is_subkey
    - Signature::sig::type
    linkageType: ''
    returnType: bool
    signature: bool Key::is_binding(const Signature &sig) const
  - BBCount: 20
    BranchProfiles: []
    Callsites:
    - Dst: Signature::validity::reset
      Src: /src/rnp/src/lib/key.cpp:1665,1
    - Dst: Key::is_self_cert
      Src: /src/rnp/src/lib/key.cpp:1670,1
    - Dst: Key::is_binding
      Src: /src/rnp/src/lib/key.cpp:1670,1
    - Dst: Signature::is_revocation
      Src: /src/rnp/src/lib/key.cpp:1671,1
    - Dst: Signature::sig::type
      Src: /src/rnp/src/lib/key.cpp:1673,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1680,1
    - Dst: SignatureInfo::validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1681,1
    - Dst: Key::uid_count
      Src: /src/rnp/src/lib/key.cpp:1688,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1689,1
    - Dst: SignatureInfo::validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1690,1
    - Dst: rnp::Key::validate_cert
      Src: /src/rnp/src/lib/key.cpp:1693,1
    - Dst: Key::pkt
      Src: /src/rnp/src/lib/key.cpp:1693,1
    - Dst: Key::get_uid
      Src: /src/rnp/src/lib/key.cpp:1693,1
    - Dst: rnp::Key::is_signer
      Src: /src/rnp/src/lib/key.cpp:1697,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1698,1
    - Dst: SignatureInfo::validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1699,1
    - Dst: rnp::Key::validate_binding
      Src: /src/rnp/src/lib/key.cpp:1702,1
    - Dst: rnp::Key::is_signer
      Src: /src/rnp/src/lib/key.cpp:1705,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1706,1
    - Dst: SignatureInfo::validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1707,1
    - Dst: rnp::Key::validate_direct
      Src: /src/rnp/src/lib/key.cpp:1710,1
    - Dst: rnp::Key::is_signer
      Src: /src/rnp/src/lib/key.cpp:1713,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1714,1
    - Dst: SignatureInfo::validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1715,1
    - Dst: rnp::Key::validate_key_rev
      Src: /src/rnp/src/lib/key.cpp:1718,1
    - Dst: Key::pkt
      Src: /src/rnp/src/lib/key.cpp:1718,1
    - Dst: rnp::Key::is_signer
      Src: /src/rnp/src/lib/key.cpp:1721,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1722,1
    - Dst: SignatureInfo::validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1723,1
    - Dst: rnp::Key::validate_sub_rev
      Src: /src/rnp/src/lib/key.cpp:1726,1
    - Dst: Key::pkt
      Src: /src/rnp/src/lib/key.cpp:1726,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1729,1
    - Dst: SignatureInfo::validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1730,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1734,1
    - Dst: what
      Src: /src/rnp/src/lib/key.cpp:1734,1
    - Dst: SignatureInfo::validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1735,1
    - Dst: SignatureInfo::validity::mark_validated
      Src: /src/rnp/src/lib/key.cpp:1738,1
    - Dst: std::move
      Src: /src/rnp/src/lib/key.cpp:1739,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 71
    argCount: 3
    argNames:
    - key
    - sig
    - ctx
    argTypes:
    - Key
    - Signature
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1740
      start: 1662
    functionDepth: 4
    functionLinenumber: 1662
    functionLinenumberEnd: 1740
    functionName: rnp::Key::validate_sig
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 6
    functionsReached:
    - Signature::sig::type
    - Key::is_binding
    - rnp::Key::validate_sub_rev
    - rnp::Key::validate_key_rev
    - rnp::Key::validate_cert
    - std::move
    - rnp::Key::validate_direct
    - rnp::Key::validate_binding
    - Key::uid_count
    - RNP_LOG
    - Signature::validity::reset
    - Key::pkt
    - Key::is_self_cert
    - Key::get_uid
    - what
    - rnp::Key::is_signer
    - SignatureInfo::validity::mark_validated
    - Signature::is_revocation
    - SignatureInfo::validity::add_error
    linkageType: ''
    returnType: void
    signature: void Key::validate_sig(const Key &key, Signature &sig, const SecurityContext
      &ctx) const noexcept
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: signature_validate
      Src: /src/rnp/src/lib/key.cpp:1749,1
    - Dst: rnp::Key::valid_at
      Src: /src/rnp/src/lib/key.cpp:1750,1
    - Dst: sig::creation
      Src: /src/rnp/src/lib/key.cpp:1750,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1751,1
    - Dst: auto::add_error
      Src: /src/rnp/src/lib/key.cpp:1752,1
    - Dst: time
      Src: /src/rnp/src/lib/key.cpp:1756,1
    - Dst: sig::creation
      Src: /src/rnp/src/lib/key.cpp:1757,1
    - Dst: sig::expiration
      Src: /src/rnp/src/lib/key.cpp:1758,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1761,1
    - Dst: auto::add_error
      Src: /src/rnp/src/lib/key.cpp:1763,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1768,1
    - Dst: auto::add_error
      Src: /src/rnp/src/lib/key.cpp:1770,1
    - Dst: rnp::Key::creation
      Src: /src/rnp/src/lib/key.cpp:1775,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1776,1
    - Dst: auto::add_error
      Src: /src/rnp/src/lib/key.cpp:1777,1
    - Dst: rnp::Key::expiration
      Src: /src/rnp/src/lib/key.cpp:1781,1
    - Dst: rnp::Key::creation
      Src: /src/rnp/src/lib/key.cpp:1781,1
    - Dst: rnp::Key::expiration
      Src: /src/rnp/src/lib/key.cpp:1781,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1782,1
    - Dst: auto::add_error
      Src: /src/rnp/src/lib/key.cpp:1783,1
    - Dst: sig::has_keyfp
      Src: /src/rnp/src/lib/key.cpp:1787,1
    - Dst: sig::keyfp
      Src: /src/rnp/src/lib/key.cpp:1787,1
    - Dst: fp
      Src: /src/rnp/src/lib/key.cpp:1787,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1788,1
    - Dst: auto::add_error
      Src: /src/rnp/src/lib/key.cpp:1789,1
    - Dst: critical
      Src: /src/rnp/src/lib/key.cpp:1794,1
    - Dst: rnp::Key::type
      Src: /src/rnp/src/lib/key.cpp:1794,1
    - Dst: dynamic_cast<pgp::pkt::sigsub::NotationData &>
      Src: /src/rnp/src/lib/key.cpp:1797,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1798,1
    - Dst: auto::name
      Src: /src/rnp/src/lib/key.cpp:1798,1
    - Dst: auto::add_error
      Src: /src/rnp/src/lib/key.cpp:1799,1
    - Dst: auto::errors
      Src: /src/rnp/src/lib/key.cpp:1802,1
    - Dst: validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1803,1
    - Dst: validity::mark_validated
      Src: /src/rnp/src/lib/key.cpp:1805,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 38
    argCount: 4
    argNames:
    - '          sinfo'
    - '                   hash'
    - '  ctx'
    - hdr
    argTypes:
    - SignatureInfo
    - Hash
    - SecurityContext
    - pgp_literal_hdr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1806
      start: 1742
    functionDepth: 2
    functionLinenumber: 1742
    functionLinenumberEnd: 1806
    functionName: rnp::Key::validate_sig
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 6
    functionsReached:
    - validity::add_error
    - rnp::Key::expiration
    - rnp::Key::creation
    - sig::creation
    - sig::has_keyfp
    - fp
    - auto::name
    - dynamic_cast<pgp::pkt::sigsub::NotationData &>
    - RNP_LOG
    - auto::errors
    - signature_validate
    - sig::keyfp
    - time
    - sig::expiration
    - critical
    - validity::mark_validated
    - auto::add_error
    - rnp::Key::valid_at
    - rnp::Key::type
    linkageType: ''
    returnType: void
    signature: "void Key::validate_sig(SignatureInfo &          sinfo,\n                  Hash
      &                   hash,\n                  const SecurityContext &  ctx,\n
      \                 const pgp_literal_hdr_t *hdr) const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signature_hash_certification
      Src: /src/rnp/src/lib/key.cpp:1814,1
    - Dst: rnp::Key::validate_sig
      Src: /src/rnp/src/lib/key.cpp:1815,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - '         sinfo'
    - '   key'
    - uid
    - ' ctx'
    argTypes:
    - SignatureInfo
    - pgp_key_pkt_t
    - pgp_userid_pkt_t
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1816
      start: 1808
    functionDepth: 3
    functionLinenumber: 1808
    functionLinenumberEnd: 1816
    functionName: rnp::Key::validate_cert
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 3
    functionsReached:
    - rnp::Key::validate_sig
    - signature_hash_certification
    linkageType: ''
    returnType: void
    signature: "void Key::validate_cert(SignatureInfo &         sinfo,\n                   const
      pgp_key_pkt_t &   key,\n                   const pgp_userid_pkt_t &uid,\n                   const
      SecurityContext & ctx) const"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:1823,1
    - Dst: rnp::Key::is_subkey
      Src: /src/rnp/src/lib/key.cpp:1823,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1824,1
    - Dst: validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1825,1
    - Dst: validity::mark_validated
      Src: /src/rnp/src/lib/key.cpp:1826,1
    - Dst: signature_hash_binding
      Src: /src/rnp/src/lib/key.cpp:1829,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:1829,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:1829,1
    - Dst: rnp::Key::validate_sig
      Src: /src/rnp/src/lib/key.cpp:1830,1
    - Dst: validity::valid
      Src: /src/rnp/src/lib/key.cpp:1832,1
    - Dst: sig::key_flags
      Src: /src/rnp/src/lib/key.cpp:1832,1
    - Dst: dynamic_cast<pgp::pkt::sigsub::EmbeddedSignature *>
      Src: /src/rnp/src/lib/key.cpp:1837,1
    - Dst: sig::get_subpkt
      Src: /src/rnp/src/lib/key.cpp:1838,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1840,1
    - Dst: validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1841,1
    - Dst: auto::signature
      Src: /src/rnp/src/lib/key.cpp:1844,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1845,1
    - Dst: validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1846,1
    - Dst: auto::signature
      Src: /src/rnp/src/lib/key.cpp:1849,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1850,1
    - Dst: validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1851,1
    - Dst: auto::signature
      Src: /src/rnp/src/lib/key.cpp:1854,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:1855,1
    - Dst: validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1856,1
    - Dst: signature_hash_binding
      Src: /src/rnp/src/lib/key.cpp:1860,1
    - Dst: auto::signature
      Src: /src/rnp/src/lib/key.cpp:1860,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:1860,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:1860,1
    - Dst: auto::signature
      Src: /src/rnp/src/lib/key.cpp:1862,1
    - Dst: rnp::Key::validate_sig
      Src: /src/rnp/src/lib/key.cpp:1865,1
    - Dst: SignatureInfo::validity::valid
      Src: /src/rnp/src/lib/key.cpp:1866,1
    - Dst: validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1867,1
    - Dst: SignatureInfo::validity::errors
      Src: /src/rnp/src/lib/key.cpp:1868,1
    - Dst: validity::add_error
      Src: /src/rnp/src/lib/key.cpp:1869,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 3
    argNames:
    - '        sinfo'
    - '            subkey'
    - ctx
    argTypes:
    - SignatureInfo
    - Key
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1872
      start: 1818
    functionDepth: 3
    functionLinenumber: 1818
    functionLinenumberEnd: 1872
    functionName: rnp::Key::validate_binding
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - pkt
    - dynamic_cast<pgp::pkt::sigsub::EmbeddedSignature *>
    - validity::add_error
    - rnp::Key::validate_sig
    - SignatureInfo::validity::valid
    - validity::valid
    - sig::get_subpkt
    - auto::signature
    - validity::mark_validated
    - sig::key_flags
    - SignatureInfo::validity::errors
    - rnp::Key::is_primary
    - signature_hash_binding
    - rnp::Key::is_subkey
    linkageType: ''
    returnType: void
    signature: "void Key::validate_binding(SignatureInfo &        sinfo,\n                      const
      Key &            subkey,\n                      const SecurityContext &ctx)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signature_hash_binding
      Src: /src/rnp/src/lib/key.cpp:1879,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:1879,1
    - Dst: rnp::Key::validate_sig
      Src: /src/rnp/src/lib/key.cpp:1880,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - '        sinfo'
    - '  subkey'
    - ctx
    argTypes:
    - SignatureInfo
    - pgp_key_pkt_t
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1881
      start: 1874
    functionDepth: 3
    functionLinenumber: 1874
    functionLinenumberEnd: 1881
    functionName: rnp::Key::validate_sub_rev
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - signature_hash_binding
    - rnp::Key::validate_sig
    - pkt
    linkageType: ''
    returnType: void
    signature: "void Key::validate_sub_rev(SignatureInfo &        sinfo,\n                      const
      pgp_key_pkt_t &  subkey,\n                      const SecurityContext &ctx)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signature_hash_direct
      Src: /src/rnp/src/lib/key.cpp:1886,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:1886,1
    - Dst: rnp::Key::validate_sig
      Src: /src/rnp/src/lib/key.cpp:1887,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sinfo
    - ctx
    argTypes:
    - SignatureInfo
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1888
      start: 1883
    functionDepth: 3
    functionLinenumber: 1883
    functionLinenumberEnd: 1888
    functionName: rnp::Key::validate_direct
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - signature_hash_direct
    - pkt
    - rnp::Key::validate_sig
    linkageType: ''
    returnType: void
    signature: void Key::validate_direct(SignatureInfo &sinfo, const SecurityContext
      &ctx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: signature_hash_direct
      Src: /src/rnp/src/lib/key.cpp:1895,1
    - Dst: rnp::Key::validate_sig
      Src: /src/rnp/src/lib/key.cpp:1896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - '        sinfo'
    - '  key'
    - ctx
    argTypes:
    - SignatureInfo
    - pgp_key_pkt_t
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1897
      start: 1890
    functionDepth: 3
    functionLinenumber: 1890
    functionLinenumberEnd: 1897
    functionName: rnp::Key::validate_key_rev
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - signature_hash_direct
    - rnp::Key::validate_sig
    linkageType: ''
    returnType: void
    signature: "void Key::validate_key_rev(SignatureInfo &        sinfo,\n                      const
      pgp_key_pkt_t &  key,\n                      const SecurityContext &ctx) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1903,1
    - Dst: auto::validity::validated
      Src: /src/rnp/src/lib/key.cpp:1904,1
    - Dst: rnp::Key::is_signer
      Src: /src/rnp/src/lib/key.cpp:1907,1
    - Dst: rnp::Key::is_direct_self
      Src: /src/rnp/src/lib/key.cpp:1911,1
    - Dst: rnp::Key::is_self_cert
      Src: /src/rnp/src/lib/key.cpp:1911,1
    - Dst: rnp::Key::is_uid_revocation
      Src: /src/rnp/src/lib/key.cpp:1911,1
    - Dst: rnp::Key::is_revocation
      Src: /src/rnp/src/lib/key.cpp:1912,1
    - Dst: rnp::Key::validate_sig
      Src: /src/rnp/src/lib/key.cpp:1913,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 11
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1916
      start: 1899
    functionDepth: 3
    functionLinenumber: 1899
    functionLinenumberEnd: 1916
    functionName: rnp::Key::validate_self_signatures
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 4
    functionsReached:
    - rnp::Key::is_self_cert
    - rnp::Key::is_signer
    - rnp::Key::validate_sig
    - rnp::Key::is_uid_revocation
    - rnp::Key::is_revocation
    - auto::validity::validated
    - get_sig
    - rnp::Key::is_direct_self
    linkageType: ''
    returnType: void
    signature: void Key::validate_self_signatures(const SecurityContext &ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1922,1
    - Dst: auto::validity::validated
      Src: /src/rnp/src/lib/key.cpp:1923,1
    - Dst: rnp::Key::is_binding
      Src: /src/rnp/src/lib/key.cpp:1927,1
    - Dst: rnp::Key::is_revocation
      Src: /src/rnp/src/lib/key.cpp:1927,1
    - Dst: Key::validate_sig
      Src: /src/rnp/src/lib/key.cpp:1928,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 2
    argNames:
    - primary
    - ctx
    argTypes:
    - Key
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1931
      start: 1918
    functionDepth: 3
    functionLinenumber: 1918
    functionLinenumberEnd: 1931
    functionName: rnp::Key::validate_self_signatures
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 4
    functionsReached:
    - rnp::Key::is_revocation
    - rnp::Key::is_binding
    - auto::validity::validated
    - get_sig
    - Key::validate_sig
    linkageType: ''
    returnType: void
    signature: void Key::validate_self_signatures(Key &primary, const SecurityContext
      &ctx)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/rnp/src/lib/key.cpp:1936,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1941,1
    - Dst: rnp::Key::is_revocation
      Src: /src/rnp/src/lib/key.cpp:1942,1
    - Dst: rnp::Key::is_signer
      Src: /src/rnp/src/lib/key.cpp:1942,1
    - Dst: auto::sig::has_keyfp
      Src: /src/rnp/src/lib/key.cpp:1946,1
    - Dst: rnp::Key::has_revoker
      Src: /src/rnp/src/lib/key.cpp:1946,1
    - Dst: auto::sig::keyfp
      Src: /src/rnp/src/lib/key.cpp:1946,1
    - Dst: auto::validity::valid
      Src: /src/rnp/src/lib/key.cpp:1950,1
    - Dst: KeyStore::get_signer
      Src: /src/rnp/src/lib/key.cpp:1954,1
    - Dst: auto::validate_sig
      Src: /src/rnp/src/lib/key.cpp:1959,1
    - Dst: auto::validity::valid
      Src: /src/rnp/src/lib/key.cpp:1960,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 22
    argCount: 1
    argNames:
    - keyring
    argTypes:
    - KeyStore
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1967
      start: 1933
    functionDepth: 3
    functionLinenumber: 1933
    functionLinenumberEnd: 1967
    functionName: rnp::Key::validate_desig_revokes
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - auto::sig::has_keyfp
    - auto::validity::valid
    - rnp::Key::is_signer
    - auto::sig::keyfp
    - rnp::Key::has_revoker
    - rnp::Key::is_revocation
    - KeyStore::get_signer
    - get_sig
    - empty
    - auto::validate_sig
    linkageType: ''
    returnType: bool
    signature: bool Key::validate_desig_revokes(KeyStore &keyring)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::validate_self_signatures
      Src: /src/rnp/src/lib/key.cpp:1973,1
    - Dst: reset
      Src: /src/rnp/src/lib/key.cpp:1977,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:1983,1
    - Dst: auto::validity::valid
      Src: /src/rnp/src/lib/key.cpp:1984,1
    - Dst: rnp::Key::is_revocation
      Src: /src/rnp/src/lib/key.cpp:1987,1
    - Dst: KeyStore::secctx::time
      Src: /src/rnp/src/lib/key.cpp:1992,1
    - Dst: rnp::Key::latest_selfsig
      Src: /src/rnp/src/lib/key.cpp:1993,1
    - Dst: rnp::Key::expired_with
      Src: /src/rnp/src/lib/key.cpp:1995,1
    - Dst: rnp::Key::latest_selfsig
      Src: /src/rnp/src/lib/key.cpp:2000,1
    - Dst: rnp::Key::expired_with
      Src: /src/rnp/src/lib/key.cpp:2001,1
    - Dst: rnp::Key::latest_selfsig
      Src: /src/rnp/src/lib/key.cpp:2006,1
    - Dst: rnp::Key::expired_with
      Src: /src/rnp/src/lib/key.cpp:2007,1
    - Dst: rnp::Key::subkey_count
      Src: /src/rnp/src/lib/key.cpp:2023,1
    - Dst: KeyStore::get_subkey
      Src: /src/rnp/src/lib/key.cpp:2024,1
    - Dst: Key*::validate_self_signatures
      Src: /src/rnp/src/lib/key.cpp:2028,1
    - Dst: Key*::latest_binding
      Src: /src/rnp/src/lib/key.cpp:2029,1
    - Dst: Key*::expired_with
      Src: /src/rnp/src/lib/key.cpp:2034,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 45
    argCount: 1
    argNames:
    - keyring
    argTypes:
    - KeyStore
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 1969
    functionDepth: 4
    functionLinenumber: 1969
    functionLinenumberEnd: 2040
    functionName: rnp::Key::validate_primary
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - Key*::expired_with
    - auto::validity::valid
    - rnp::Key::validate_self_signatures
    - rnp::Key::subkey_count
    - rnp::Key::is_revocation
    - rnp::Key::expired_with
    - KeyStore::get_subkey
    - Key*::latest_binding
    - get_sig
    - KeyStore::secctx::time
    - reset
    - rnp::Key::latest_selfsig
    - Key*::validate_self_signatures
    linkageType: ''
    returnType: void
    signature: void Key::validate_primary(KeyStore &keyring)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/rnp/src/lib/key.cpp:2047,1
    - Dst: Key*::valid
      Src: /src/rnp/src/lib/key.cpp:2049,1
    - Dst: Key*::expired
      Src: /src/rnp/src/lib/key.cpp:2049,1
    - Dst: rnp::Key::validate_self_signatures
      Src: /src/rnp/src/lib/key.cpp:2053,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:2058,1
    - Dst: auto::validity::valid
      Src: /src/rnp/src/lib/key.cpp:2059,1
    - Dst: rnp::Key::is_binding
      Src: /src/rnp/src/lib/key.cpp:2063,1
    - Dst: rnp::Key::expired_with
      Src: /src/rnp/src/lib/key.cpp:2065,1
    - Dst: SecurityContext::time
      Src: /src/rnp/src/lib/key.cpp:2065,1
    - Dst: rnp::Key::is_revocation
      Src: /src/rnp/src/lib/key.cpp:2070,1
    - Dst: Key*::valid
      Src: /src/rnp/src/lib/key.cpp:2074,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 25
    argCount: 2
    argNames:
    - primary
    - ctx
    argTypes:
    - Key*
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2078
      start: 2042
    functionDepth: 4
    functionLinenumber: 2042
    functionLinenumberEnd: 2078
    functionName: rnp::Key::validate_subkey
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - auto::validity::valid
    - rnp::Key::validate_self_signatures
    - Key*::expired
    - rnp::Key::expired_with
    - rnp::Key::is_binding
    - rnp::Key::is_revocation
    - SecurityContext::time
    - get_sig
    - reset
    - Key*::valid
    linkageType: ''
    returnType: void
    signature: void Key::validate_subkey(Key *primary, const SecurityContext &ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/rnp/src/lib/key.cpp:2083,1
    - Dst: rnp::Key::is_subkey
      Src: /src/rnp/src/lib/key.cpp:2084,1
    - Dst: rnp::Key::validate_primary
      Src: /src/rnp/src/lib/key.cpp:2085,1
    - Dst: rnp::Key::has_primary_fp
      Src: /src/rnp/src/lib/key.cpp:2089,1
    - Dst: KeyStore::get_key
      Src: /src/rnp/src/lib/key.cpp:2090,1
    - Dst: primary_fp
      Src: /src/rnp/src/lib/key.cpp:2090,1
    - Dst: rnp::Key::validate_subkey
      Src: /src/rnp/src/lib/key.cpp:2092,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - keyring
    argTypes:
    - KeyStore
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2093
      start: 2080
    functionDepth: 5
    functionLinenumber: 2080
    functionLinenumberEnd: 2093
    functionName: rnp::Key::validate
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - rnp::Key::validate_primary
    - primary_fp
    - rnp::Key::has_primary_fp
    - rnp::Key::validate_subkey
    - KeyStore::get_key
    - reset
    - rnp::Key::is_subkey
    linkageType: ''
    returnType: void
    signature: void Key::validate(KeyStore &keyring)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_subkey
      Src: /src/rnp/src/lib/key.cpp:2098,1
    - Dst: KeyStore::primary_key
      Src: /src/rnp/src/lib/key.cpp:2099,1
    - Dst: Key*::revalidate
      Src: /src/rnp/src/lib/key.cpp:2101,1
    - Dst: rnp::Key::validate_subkey
      Src: /src/rnp/src/lib/key.cpp:2103,1
    - Dst: rnp::Key::validate_desig_revokes
      Src: /src/rnp/src/lib/key.cpp:2108,1
    - Dst: rnp::Key::validate
      Src: /src/rnp/src/lib/key.cpp:2109,1
    - Dst: rnp::Key::refresh_data
      Src: /src/rnp/src/lib/key.cpp:2110,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2111,1
    - Dst: KeyStore::get_key
      Src: /src/rnp/src/lib/key.cpp:2115,1
    - Dst: Key*::validate_subkey
      Src: /src/rnp/src/lib/key.cpp:2117,1
    - Dst: Key*::refresh_data
      Src: /src/rnp/src/lib/key.cpp:2118,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2119,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 1
    argNames:
    - keyring
    argTypes:
    - KeyStore
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2123
      start: 2095
    functionDepth: 6
    functionLinenumber: 2095
    functionLinenumberEnd: 2123
    functionName: rnp::Key::revalidate
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - Key*::revalidate
    - Key*::refresh_data
    - rnp::Key::refresh_data
    - rnp::Key::validate_desig_revokes
    - rnp::Key::validate
    - rnp::Key::validate_subkey
    - KeyStore::get_key
    - KeyStore::primary_key
    - rnp::Key::is_subkey
    - Key*::validate_subkey
    linkageType: ''
    returnType: void
    signature: void Key::revalidate(KeyStore &keyring)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::mark_valid
      Src: /src/rnp/src/lib/key.cpp:2128,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:2130,1
    - Dst: reset
      Src: /src/rnp/src/lib/key.cpp:2130,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2132
      start: 2125
    functionDepth: 1
    functionLinenumber: 2125
    functionLinenumberEnd: 2132
    functionName: rnp::Key::mark_valid
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - reset
    - rnp::Key::mark_valid
    - get_sig
    linkageType: ''
    returnType: void
    signature: void Key::mark_valid()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: material::adjust_hash
      Src: /src/rnp/src/lib/key.cpp:2142,1
    - Dst: rnp::Key::alg
      Src: /src/rnp/src/lib/key.cpp:2143,1
    - Dst: pgp::pkt::Signature::set_keyfp
      Src: /src/rnp/src/lib/key.cpp:2144,1
    - Dst: fp
      Src: /src/rnp/src/lib/key.cpp:2144,1
    - Dst: pgp::pkt::Signature::set_creation
      Src: /src/rnp/src/lib/key.cpp:2145,1
    - Dst: pgp::pkt::Signature::set_keyid
      Src: /src/rnp/src/lib/key.cpp:2148,1
    - Dst: keyid
      Src: /src/rnp/src/lib/key.cpp:2148,1
    - Dst: pgp::pkt::Signature::salt::empty
      Src: /src/rnp/src/lib/key.cpp:2151,1
    - Dst: pgp::pkt::Signature::v6_salt_size
      Src: /src/rnp/src/lib/key.cpp:2154,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:2156,1
    - Dst: pgp::pkt::Signature::salt::resize
      Src: /src/rnp/src/lib/key.cpp:2158,1
    - Dst: get
      Src: /src/rnp/src/lib/key.cpp:2159,1
    - Dst: pgp::pkt::Signature::salt::data
      Src: /src/rnp/src/lib/key.cpp:2159,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 5
    argNames:
    - '                rng'
    - sig
    - hash
    - creation
    - version
    argTypes:
    - RNG
    - pgp::pkt::Signature
    - pgp_hash_alg_t
    - uint64_t
    - pgp_version_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2162
      start: 2134
    functionDepth: 2
    functionLinenumber: 2134
    functionLinenumberEnd: 2162
    functionName: rnp::Key::sign_init
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 5
    functionsReached:
    - pgp::pkt::Signature::set_creation
    - pgp::pkt::Signature::salt::data
    - keyid
    - rnp::Key::alg
    - material::adjust_hash
    - fp
    - pgp::pkt::Signature::set_keyfp
    - pgp::pkt::Signature::set_keyid
    - get
    - rnp_exception
    - pgp::pkt::Signature::salt::empty
    - pgp::pkt::Signature::salt::resize
    - pgp::pkt::Signature::v6_salt_size
    linkageType: ''
    returnType: void
    signature: "void Key::sign_init(RNG &                rng,\n               pgp::pkt::Signature
      &sig,\n               pgp_hash_alg_t       hash,\n               uint64_t             creation,\n
      \              pgp_version_t        version) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: fill_hashed_data
      Src: /src/rnp/src/lib/key.cpp:2170,1
    - Dst: signature_hash_certification
      Src: /src/rnp/src/lib/key.cpp:2171,1
    - Dst: signature_calculate
      Src: /src/rnp/src/lib/key.cpp:2172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - '   key'
    - uid
    - '   sig'
    - '       ctx'
    argTypes:
    - pgp_key_pkt_t
    - pgp_userid_pkt_t
    - pgp::pkt::Signature
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2173
      start: 2164
    functionDepth: 3
    functionLinenumber: 2164
    functionLinenumberEnd: 2173
    functionName: rnp::Key::sign_cert
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - signature_calculate
    - signature_hash_certification
    - fill_hashed_data
    linkageType: ''
    returnType: void
    signature: "void Key::sign_cert(const pgp_key_pkt_t &   key,\n               const
      pgp_userid_pkt_t &uid,\n               pgp::pkt::Signature &   sig,\n               SecurityContext
      &       ctx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::fill_hashed_data
      Src: /src/rnp/src/lib/key.cpp:2178,1
    - Dst: signature_hash_direct
      Src: /src/rnp/src/lib/key.cpp:2179,1
    - Dst: signature_calculate
      Src: /src/rnp/src/lib/key.cpp:2180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - sig
    - ctx
    argTypes:
    - pgp_key_pkt_t
    - pgp::pkt::Signature
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2181
      start: 2175
    functionDepth: 3
    functionLinenumber: 2175
    functionLinenumberEnd: 2181
    functionName: rnp::Key::sign_direct
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - signature_hash_direct
    - pgp::pkt::Signature::fill_hashed_data
    - signature_calculate
    linkageType: ''
    returnType: void
    signature: void Key::sign_direct(const pgp_key_pkt_t &key, pgp::pkt::Signature
      &sig, SecurityContext &ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::fill_hashed_data
      Src: /src/rnp/src/lib/key.cpp:2186,1
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:2187,1
    - Dst: signature_hash_binding
      Src: /src/rnp/src/lib/key.cpp:2187,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:2187,1
    - Dst: signature_hash_binding
      Src: /src/rnp/src/lib/key.cpp:2188,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:2188,1
    - Dst: signature_calculate
      Src: /src/rnp/src/lib/key.cpp:2189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - key
    - sig
    - ctx
    argTypes:
    - pgp_key_pkt_t
    - pgp::pkt::Signature
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2190
      start: 2183
    functionDepth: 3
    functionLinenumber: 2183
    functionLinenumberEnd: 2190
    functionName: rnp::Key::sign_binding
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached:
    - pkt
    - signature_calculate
    - rnp::Key::is_primary
    - signature_hash_binding
    - pgp::pkt::Signature::fill_hashed_data
    linkageType: ''
    returnType: void
    signature: void Key::sign_binding(const pgp_key_pkt_t &key, pgp::pkt::Signature
      &sig, SecurityContext &ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::sign_init
      Src: /src/rnp/src/lib/key.cpp:2199,1
    - Dst: time
      Src: /src/rnp/src/lib/key.cpp:2199,1
    - Dst: pgp::pkt::Signature::set_type
      Src: /src/rnp/src/lib/key.cpp:2200,1
    - Dst: is_primary_key_pkt
      Src: /src/rnp/src/lib/key.cpp:2200,1
    - Dst: pgp::pkt::Signature::set_revocation_reason
      Src: /src/rnp/src/lib/key.cpp:2201,1
    - Dst: is_primary_key_pkt
      Src: /src/rnp/src/lib/key.cpp:2203,1
    - Dst: rnp::Key::sign_direct
      Src: /src/rnp/src/lib/key.cpp:2204,1
    - Dst: rnp::Key::sign_binding
      Src: /src/rnp/src/lib/key.cpp:2206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 5
    argNames:
    - '   rev'
    - hash
    - key
    - sig
    - '    ctx'
    argTypes:
    - Revocation
    - pgp_hash_alg_t
    - pgp_key_pkt_t
    - pgp::pkt::Signature
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2208
      start: 2192
    functionDepth: 4
    functionLinenumber: 2192
    functionLinenumberEnd: 2208
    functionName: rnp::Key::gen_revocation
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::set_revocation_reason
    - rnp::Key::sign_binding
    - is_primary_key_pkt
    - rnp::Key::sign_init
    - rnp::Key::sign_direct
    - time
    - pgp::pkt::Signature::set_type
    linkageType: ''
    returnType: void
    signature: "void Key::gen_revocation(const Revocation &   rev,\n                    pgp_hash_alg_t
      \      hash,\n                    const pgp_key_pkt_t &key,\n                    pgp::pkt::Signature
      &sig,\n                    SecurityContext &    ctx)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:2216,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:2217,1
    - Dst: rnp::Key::sign_binding
      Src: /src/rnp/src/lib/key.cpp:2219,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:2219,1
    - Dst: pgp::pkt::Signature::Signature
      Src: /src/rnp/src/lib/key.cpp:2222,1
    - Dst: rnp::Key::sign_init
      Src: /src/rnp/src/lib/key.cpp:2223,1
    - Dst: time
      Src: /src/rnp/src/lib/key.cpp:2223,1
    - Dst: rnp::Key::version
      Src: /src/rnp/src/lib/key.cpp:2223,1
    - Dst: pgp::pkt::Signature::set_type
      Src: /src/rnp/src/lib/key.cpp:2224,1
    - Dst: rnp::Key::sign_binding
      Src: /src/rnp/src/lib/key.cpp:2225,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:2225,1
    - Dst: pgp::pkt::Signature::set_embedded_sig
      Src: /src/rnp/src/lib/key.cpp:2226,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 4
    argNames:
    - '                sub'
    - sig
    - '    ctx'
    - subsign
    argTypes:
    - Key
    - pgp::pkt::Signature
    - SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2210
    functionDepth: 4
    functionLinenumber: 2210
    functionLinenumberEnd: 2228
    functionName: rnp::Key::sign_subkey_binding
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - pkt
    - pgp::pkt::Signature::Signature
    - rnp::Key::version
    - rnp::Key::sign_binding
    - pgp::pkt::Signature::set_embedded_sig
    - rnp::Key::is_primary
    - rnp::Key::sign_init
    - time
    - rnp_exception
    - pgp::pkt::Signature::set_type
    linkageType: ''
    returnType: void
    signature: "void Key::sign_subkey_binding(Key &                sub,\n                         pgp::pkt::Signature
      &sig,\n                         SecurityContext &    ctx,\n                         bool
      \                subsign)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:2235,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2236,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:2237,1
    - Dst: pgp::pkt::Signature::Signature
      Src: /src/rnp/src/lib/key.cpp:2240,1
    - Dst: rnp::Key::sign_init
      Src: /src/rnp/src/lib/key.cpp:2241,1
    - Dst: SecurityContext::time
      Src: /src/rnp/src/lib/key.cpp:2241,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:2241,1
    - Dst: pgp::pkt::Signature::set_type
      Src: /src/rnp/src/lib/key.cpp:2242,1
    - Dst: CertParams::populate
      Src: /src/rnp/src/lib/key.cpp:2243,1
    - Dst: rnp::Key::sign_direct
      Src: /src/rnp/src/lib/key.cpp:2244,1
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:2246,1
    - Dst: rnp::Key::refresh_data
      Src: /src/rnp/src/lib/key.cpp:2247,1
    - Dst: Key*::add_sig
      Src: /src/rnp/src/lib/key.cpp:2251,1
    - Dst: Key*::refresh_data
      Src: /src/rnp/src/lib/key.cpp:2252,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 4
    argNames:
    - cert
    - hash
    - ctx
    - pubkey
    argTypes:
    - CertParams
    - pgp_hash_alg_t
    - SecurityContext
    - Key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2253
      start: 2231
    functionDepth: 5
    functionLinenumber: 2231
    functionLinenumberEnd: 2253
    functionName: rnp::Key::add_direct_sig
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pkt
    - pgp::pkt::Signature::Signature
    - Key*::refresh_data
    - rnp::Key::refresh_data
    - CertParams::populate
    - add_sig
    - SecurityContext::time
    - rnp::Key::sign_init
    - rnp::Key::sign_direct
    - Key*::add_sig
    - rnp_exception
    - pgp::pkt::Signature::set_type
    linkageType: ''
    returnType: void
    signature: void Key::add_direct_sig(CertParams &cert, pgp_hash_alg_t hash, SecurityContext
      &ctx, Key *pubkey)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: CertParams::userid::empty
      Src: /src/rnp/src/lib/key.cpp:2259,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2261,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:2262,1
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:2265,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2266,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:2267,1
    - Dst: rnp::Key::has_uid
      Src: /src/rnp/src/lib/key.cpp:2270,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2271,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:2272,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2276,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:2277,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:2280,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2281,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:2282,1
    - Dst: rnp::Key::has_primary_uid
      Src: /src/rnp/src/lib/key.cpp:2285,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2286,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:2287,1
    - Dst: pgp::pkt::Signature::Signature
      Src: /src/rnp/src/lib/key.cpp:2292,1
    - Dst: rnp::Key::sign_init
      Src: /src/rnp/src/lib/key.cpp:2293,1
    - Dst: SecurityContext::time
      Src: /src/rnp/src/lib/key.cpp:2293,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:2293,1
    - Dst: CertParams::populate
      Src: /src/rnp/src/lib/key.cpp:2294,1
    - Dst: rnp::Key::sign_cert
      Src: /src/rnp/src/lib/key.cpp:2296,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2298,1
    - Dst: what
      Src: /src/rnp/src/lib/key.cpp:2298,1
    - Dst: emplace_back
      Src: /src/rnp/src/lib/key.cpp:2302,1
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:2303,1
    - Dst: rnp::Key::uid_count
      Src: /src/rnp/src/lib/key.cpp:2303,1
    - Dst: rnp::Key::refresh_data
      Src: /src/rnp/src/lib/key.cpp:2304,1
    - Dst: Key*::uids_::emplace_back
      Src: /src/rnp/src/lib/key.cpp:2308,1
    - Dst: Key*::add_sig
      Src: /src/rnp/src/lib/key.cpp:2309,1
    - Dst: Key*::uid_count
      Src: /src/rnp/src/lib/key.cpp:2309,1
    - Dst: Key*::refresh_data
      Src: /src/rnp/src/lib/key.cpp:2310,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 42
    argCount: 4
    argNames:
    - cert
    - hash
    - ctx
    - pubkey
    argTypes:
    - CertParams
    - pgp_hash_alg_t
    - SecurityContext
    - Key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2311
      start: 2256
    functionDepth: 5
    functionLinenumber: 2256
    functionLinenumberEnd: 2311
    functionName: rnp::Key::add_uid_cert
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::Signature
    - Key*::refresh_data
    - emplace_back
    - rnp::Key::refresh_data
    - CertParams::populate
    - add_sig
    - Key*::uid_count
    - rnp::Key::is_primary
    - Key*::add_sig
    - pkt
    - rnp::Key::sign_cert
    - Key*::uids_::emplace_back
    - CertParams::userid::empty
    - RNP_LOG
    - rnp::Key::has_primary_uid
    - rnp::Key::uid_count
    - rnp::Key::sign_init
    - rnp_exception
    - what
    - SecurityContext::time
    - rnp::Key::has_uid
    linkageType: ''
    returnType: void
    signature: void Key::add_uid_cert(CertParams &cert, pgp_hash_alg_t hash, SecurityContext
      &ctx, Key *pubkey)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:2320,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2321,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/key.cpp:2322,1
    - Dst: pgp::pkt::Signature::Signature
      Src: /src/rnp/src/lib/key.cpp:2326,1
    - Dst: rnp::Key::sign_init
      Src: /src/rnp/src/lib/key.cpp:2327,1
    - Dst: time
      Src: /src/rnp/src/lib/key.cpp:2327,1
    - Dst: rnp::Key::version
      Src: /src/rnp/src/lib/key.cpp:2327,1
    - Dst: pgp::pkt::Signature::set_type
      Src: /src/rnp/src/lib/key.cpp:2328,1
    - Dst: pgp::pkt::Signature::set_key_expiration
      Src: /src/rnp/src/lib/key.cpp:2330,1
    - Dst: pgp::pkt::Signature::set_key_flags
      Src: /src/rnp/src/lib/key.cpp:2333,1
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/lib/key.cpp:2338,1
    - Dst: rnp::Key::alg
      Src: /src/rnp/src/lib/key.cpp:2338,1
    - Dst: rnp::Key::sign_subkey_binding
      Src: /src/rnp/src/lib/key.cpp:2340,1
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:2342,1
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:2343,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 5
    argNames:
    - '                subsec'
    - '                subpub'
    - binding
    - hash
    - '    ctx'
    argTypes:
    - Key
    - Key
    - BindingParams
    - pgp_hash_alg_t
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2344
      start: 2313
    functionDepth: 5
    functionLinenumber: 2313
    functionLinenumberEnd: 2344
    functionName: rnp::Key::add_sub_binding
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::pkt::Signature::Signature
    - rnp::Key::alg
    - rnp::Key::version
    - pgp::pkt::Signature::set_key_flags
    - pgp::pkt::Signature::set_key_expiration
    - add_sig
    - pgp_pk_alg_capabilities
    - rnp::Key::is_primary
    - rnp::Key::sign_init
    - time
    - rnp::Key::sign_subkey_binding
    - rnp_exception
    - pgp::pkt::Signature::set_type
    linkageType: ''
    returnType: void
    signature: "void Key::add_sub_binding(Key &                subsec,\n                     Key
      &                subpub,\n                     const BindingParams &binding,\n
      \                    pgp_hash_alg_t       hash,\n                     SecurityContext
      &    ctx)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::clear_revokes
      Src: /src/rnp/src/lib/key.cpp:2349,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:2351,1
    - Dst: auto::validity::valid
      Src: /src/rnp/src/lib/key.cpp:2352,1
    - Dst: rnp::Key::is_revocation
      Src: /src/rnp/src/lib/key.cpp:2355,1
    - Dst: Revocation
      Src: /src/rnp/src/lib/key.cpp:2360,1
    - Dst: rnp::Key::is_uid_revocation
      Src: /src/rnp/src/lib/key.cpp:2363,1
    - Dst: rnp::Key::uid_count
      Src: /src/rnp/src/lib/key.cpp:2364,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2365,1
    - Dst: get_uid
      Src: /src/rnp/src/lib/key.cpp:2368,1
    - Dst: Revocation
      Src: /src/rnp/src/lib/key.cpp:2373,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2376
      start: 2346
    functionDepth: 3
    functionLinenumber: 2346
    functionLinenumberEnd: 2376
    functionName: rnp::Key::refresh_revocations
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - auto::validity::valid
    - rnp::Key::uid_count
    - rnp::Key::is_uid_revocation
    - Revocation
    - get_uid
    - rnp::Key::is_revocation
    - rnp::Key::clear_revokes
    - get_sig
    linkageType: ''
    returnType: void
    signature: void Key::refresh_revocations()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/key.cpp:2381,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2382,1
    - Dst: rnp::Key::validate_self_signatures
      Src: /src/rnp/src/lib/key.cpp:2386,1
    - Dst: rnp::Key::latest_selfsig
      Src: /src/rnp/src/lib/key.cpp:2390,1
    - Dst: auto::sig::key_expiration
      Src: /src/rnp/src/lib/key.cpp:2392,1
    - Dst: rnp::Key::latest_selfsig
      Src: /src/rnp/src/lib/key.cpp:2395,1
    - Dst: auto::sig::key_expiration
      Src: /src/rnp/src/lib/key.cpp:2396,1
    - Dst: auto::sig::key_expiration
      Src: /src/rnp/src/lib/key.cpp:2397,1
    - Dst: auto::sig::key_expiration
      Src: /src/rnp/src/lib/key.cpp:2398,1
    - Dst: rnp::Key::latest_selfsig
      Src: /src/rnp/src/lib/key.cpp:2401,1
    - Dst: auto::sig::key_expiration
      Src: /src/rnp/src/lib/key.cpp:2403,1
    - Dst: auto::sig::has_subpkt
      Src: /src/rnp/src/lib/key.cpp:2406,1
    - Dst: auto::sig::key_flags
      Src: /src/rnp/src/lib/key.cpp:2407,1
    - Dst: auto::sig::has_subpkt
      Src: /src/rnp/src/lib/key.cpp:2408,1
    - Dst: auto::sig::key_flags
      Src: /src/rnp/src/lib/key.cpp:2409,1
    - Dst: auto::sig::has_subpkt
      Src: /src/rnp/src/lib/key.cpp:2410,1
    - Dst: auto::sig::key_flags
      Src: /src/rnp/src/lib/key.cpp:2411,1
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/lib/key.cpp:2413,1
    - Dst: rnp::Key::alg
      Src: /src/rnp/src/lib/key.cpp:2413,1
    - Dst: clear
      Src: /src/rnp/src/lib/key.cpp:2416,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:2418,1
    - Dst: auto::validity::valid
      Src: /src/rnp/src/lib/key.cpp:2420,1
    - Dst: rnp::Key::is_direct_self
      Src: /src/rnp/src/lib/key.cpp:2420,1
    - Dst: auto::sig::has_revoker
      Src: /src/rnp/src/lib/key.cpp:2423,1
    - Dst: rnp::Key::add_revoker
      Src: /src/rnp/src/lib/key.cpp:2426,1
    - Dst: auto::sig::revoker
      Src: /src/rnp/src/lib/key.cpp:2426,1
    - Dst: rnp::Key::refresh_revocations
      Src: /src/rnp/src/lib/key.cpp:2429,1
    - Dst: rnp::Key::valid_till_common
      Src: /src/rnp/src/lib/key.cpp:2431,1
    - Dst: rnp::Key::expired
      Src: /src/rnp/src/lib/key.cpp:2431,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:2437,1
    - Dst: auto::validity::valid
      Src: /src/rnp/src/lib/key.cpp:2439,1
    - Dst: auto::is_cert
      Src: /src/rnp/src/lib/key.cpp:2439,1
    - Dst: rnp::Key::is_signer
      Src: /src/rnp/src/lib/key.cpp:2439,1
    - Dst: auto::expired
      Src: /src/rnp/src/lib/key.cpp:2440,1
    - Dst: SecurityContext::time
      Src: /src/rnp/src/lib/key.cpp:2440,1
    - Dst: rnp::Key::uid_count
      Src: /src/rnp/src/lib/key.cpp:2443,1
    - Dst: get_uid
      Src: /src/rnp/src/lib/key.cpp:2446,1
    - Dst: get_uid
      Src: /src/rnp/src/lib/key.cpp:2456,1
    CyclomaticComplexity: 34
    EdgeCount: 34
    ICount: 58
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2461
      start: 2378
    functionDepth: 4
    functionLinenumber: 2378
    functionLinenumberEnd: 2461
    functionName: rnp::Key::refresh_data
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 6
    functionsReached:
    - rnp::Key::alg
    - pgp_pk_alg_capabilities
    - rnp::Key::is_primary
    - auto::sig::key_flags
    - get_sig
    - auto::sig::revoker
    - rnp::Key::is_direct_self
    - rnp::Key::validate_self_signatures
    - auto::sig::has_subpkt
    - rnp::Key::refresh_revocations
    - auto::expired
    - clear
    - rnp::Key::add_revoker
    - RNP_LOG
    - rnp::Key::uid_count
    - auto::sig::has_revoker
    - auto::sig::key_expiration
    - auto::validity::valid
    - rnp::Key::is_signer
    - get_uid
    - auto::is_cert
    - SecurityContext::time
    - rnp::Key::expired
    - rnp::Key::valid_till_common
    - rnp::Key::latest_selfsig
    linkageType: ''
    returnType: bool
    signature: bool Key::refresh_data(const SecurityContext &ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::validate_self_signatures
      Src: /src/rnp/src/lib/key.cpp:2468,1
    - Dst: rnp::Key::latest_binding
      Src: /src/rnp/src/lib/key.cpp:2470,1
    - Dst: auto::sig::key_expiration
      Src: /src/rnp/src/lib/key.cpp:2472,1
    - Dst: auto::sig::has_subpkt
      Src: /src/rnp/src/lib/key.cpp:2474,1
    - Dst: auto::sig::key_flags
      Src: /src/rnp/src/lib/key.cpp:2475,1
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/lib/key.cpp:2477,1
    - Dst: rnp::Key::alg
      Src: /src/rnp/src/lib/key.cpp:2477,1
    - Dst: rnp::Key::clear_revokes
      Src: /src/rnp/src/lib/key.cpp:2480,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:2482,1
    - Dst: auto::validity::valid
      Src: /src/rnp/src/lib/key.cpp:2483,1
    - Dst: rnp::Key::is_revocation
      Src: /src/rnp/src/lib/key.cpp:2483,1
    - Dst: Revocation
      Src: /src/rnp/src/lib/key.cpp:2488,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2490,1
    - Dst: what
      Src: /src/rnp/src/lib/key.cpp:2490,1
    - Dst: std::min
      Src: /src/rnp/src/lib/key.cpp:2498,1
    - Dst: Key*::valid_till
      Src: /src/rnp/src/lib/key.cpp:2498,1
    - Dst: rnp::Key::valid_till_common
      Src: /src/rnp/src/lib/key.cpp:2498,1
    - Dst: rnp::Key::expired
      Src: /src/rnp/src/lib/key.cpp:2498,1
    - Dst: Key*::expired
      Src: /src/rnp/src/lib/key.cpp:2498,1
    - Dst: rnp::Key::valid_till_common
      Src: /src/rnp/src/lib/key.cpp:2500,1
    - Dst: rnp::Key::expired
      Src: /src/rnp/src/lib/key.cpp:2500,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - primary
    - ctx
    argTypes:
    - Key*
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2503
      start: 2463
    functionDepth: 4
    functionLinenumber: 2463
    functionLinenumberEnd: 2503
    functionName: rnp::Key::refresh_data
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 6
    functionsReached:
    - rnp::Key::alg
    - Key*::expired
    - pgp_pk_alg_capabilities
    - auto::sig::key_flags
    - get_sig
    - rnp::Key::validate_self_signatures
    - rnp::Key::clear_revokes
    - rnp::Key::is_revocation
    - auto::sig::has_subpkt
    - RNP_LOG
    - std::min
    - auto::sig::key_expiration
    - Key*::valid_till
    - auto::validity::valid
    - what
    - Revocation
    - rnp::Key::latest_binding
    - rnp::Key::expired
    - rnp::Key::valid_till_common
    linkageType: ''
    returnType: bool
    signature: bool Key::refresh_data(Key *primary, const SecurityContext &ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_validity_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2515
      start: 2505
    functionDepth: 0
    functionLinenumber: 2505
    functionLinenumberEnd: 2515
    functionName: rnp::Key::merge_validity
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key::merge_validity(const pgp_validity_t &src)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/key.cpp:2520,1
    - Dst: rnp::Key::is_subkey
      Src: /src/rnp/src/lib/key.cpp:2520,1
    - Dst: assert
      Src: /src/rnp/src/lib/key.cpp:2521,1
    - Dst: Key::is_subkey
      Src: /src/rnp/src/lib/key.cpp:2521,1
    - Dst: Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:2524,1
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:2524,1
    - Dst: Key::pkt
      Src: /src/rnp/src/lib/key.cpp:2525,1
    - Dst: Key::rawpkt
      Src: /src/rnp/src/lib/key.cpp:2526,1
    - Dst: rnp::Key::has_sig
      Src: /src/rnp/src/lib/key.cpp:2532,1
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:2535,1
    - Dst: Key::get_sig
      Src: /src/rnp/src/lib/key.cpp:2535,1
    - Dst: rnp::Key::uid_idx
      Src: /src/rnp/src/lib/key.cpp:2541,1
    - Dst: rnp::Key::uid_count
      Src: /src/rnp/src/lib/key.cpp:2543,1
    - Dst: emplace_back
      Src: /src/rnp/src/lib/key.cpp:2544,1
    - Dst: rnp::Key::sig_count
      Src: /src/rnp/src/lib/key.cpp:2547,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/key.cpp:2548,1
    - Dst: rnp::Key::has_sig
      Src: /src/rnp/src/lib/key.cpp:2549,1
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:2552,1
    - Dst: Key::get_sig
      Src: /src/rnp/src/lib/key.cpp:2552,1
    - Dst: Key::subkey_fps
      Src: /src/rnp/src/lib/key.cpp:2557,1
    - Dst: rnp::Key::add_subkey_fp
      Src: /src/rnp/src/lib/key.cpp:2558,1
    - Dst: Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:2562,1
    - Dst: Key::is_locked
      Src: /src/rnp/src/lib/key.cpp:2562,1
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:2562,1
    - Dst: rnp::Key::is_locked
      Src: /src/rnp/src/lib/key.cpp:2562,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:2563,1
    - Dst: Key::pkt
      Src: /src/rnp/src/lib/key.cpp:2563,1
    - Dst: clone
      Src: /src/rnp/src/lib/key.cpp:2563,1
    - Dst: rnp::Key::merge_validity
      Src: /src/rnp/src/lib/key.cpp:2566,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 30
    argCount: 1
    argNames:
    - src
    argTypes:
    - Key
    assertStmts:
    - condition: (!is_subkey())
      pos:
        line_end: 2519
        line_start: 2519
        source_file: /src/rnp/src/lib/key.cpp
    - condition: (!src.is_subkey())
      pos:
        line_end: 2520
        line_start: 2520
        source_file: /src/rnp/src/lib/key.cpp
    constantsTouched: []
    func_position:
      end: 2568
      start: 2517
    functionDepth: 4
    functionLinenumber: 2517
    functionLinenumberEnd: 2568
    functionName: rnp::Key::merge
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - Key::get_sig
    - emplace_back
    - add_sig
    - rnp::Key::sig_count
    - get_sig
    - pkt
    - Key::is_secret
    - Key::is_locked
    - Key::is_subkey
    - rnp::Key::is_locked
    - clone
    - rnp::Key::is_secret
    - rnp::Key::uid_count
    - rnp::Key::merge_validity
    - assert
    - Key::pkt
    - rnp::Key::is_subkey
    - Key::rawpkt
    - rnp::Key::add_subkey_fp
    - rnp::Key::uid_idx
    - rnp::Key::has_sig
    - Key::subkey_fps
    linkageType: ''
    returnType: bool
    signature: bool Key::merge(const Key &src)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/key.cpp:2573,1
    - Dst: rnp::Key::is_subkey
      Src: /src/rnp/src/lib/key.cpp:2573,1
    - Dst: assert
      Src: /src/rnp/src/lib/key.cpp:2574,1
    - Dst: Key::is_subkey
      Src: /src/rnp/src/lib/key.cpp:2574,1
    - Dst: Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:2577,1
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:2577,1
    - Dst: Key::pkt
      Src: /src/rnp/src/lib/key.cpp:2578,1
    - Dst: Key::rawpkt
      Src: /src/rnp/src/lib/key.cpp:2579,1
    - Dst: rnp::Key::has_sig
      Src: /src/rnp/src/lib/key.cpp:2584,1
    - Dst: add_sig
      Src: /src/rnp/src/lib/key.cpp:2587,1
    - Dst: Key::get_sig
      Src: /src/rnp/src/lib/key.cpp:2587,1
    - Dst: Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:2591,1
    - Dst: Key::is_locked
      Src: /src/rnp/src/lib/key.cpp:2591,1
    - Dst: rnp::Key::is_secret
      Src: /src/rnp/src/lib/key.cpp:2591,1
    - Dst: rnp::Key::is_locked
      Src: /src/rnp/src/lib/key.cpp:2591,1
    - Dst: pkt
      Src: /src/rnp/src/lib/key.cpp:2592,1
    - Dst: Key::pkt
      Src: /src/rnp/src/lib/key.cpp:2592,1
    - Dst: clone
      Src: /src/rnp/src/lib/key.cpp:2592,1
    - Dst: rnp::Key::merge_validity
      Src: /src/rnp/src/lib/key.cpp:2595,1
    - Dst: Key*::link_subkey_fp
      Src: /src/rnp/src/lib/key.cpp:2598,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 20
    argCount: 2
    argNames:
    - src
    - primary
    argTypes:
    - Key
    - Key*
    assertStmts:
    - condition: (src.is_subkey())
      pos:
        line_end: 2573
        line_start: 2573
        source_file: /src/rnp/src/lib/key.cpp
    - condition: (is_subkey())
      pos:
        line_end: 2572
        line_start: 2572
        source_file: /src/rnp/src/lib/key.cpp
    constantsTouched: []
    func_position:
      end: 2601
      start: 2570
    functionDepth: 4
    functionLinenumber: 2570
    functionLinenumberEnd: 2601
    functionName: rnp::Key::merge
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 0
    functionsReached:
    - Key::get_sig
    - pkt
    - Key::rawpkt
    - rnp::Key::merge_validity
    - Key::is_secret
    - Key::is_locked
    - Key*::link_subkey_fp
    - Key::is_subkey
    - add_sig
    - assert
    - rnp::Key::is_locked
    - Key::pkt
    - clone
    - rnp::Key::is_subkey
    - rnp::Key::is_secret
    - rnp::Key::has_sig
    linkageType: ''
    returnType: bool
    signature: bool Key::merge(const Key &src, Key *primary)
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_flags_t
      Src: /src/rnp/src/lib/key.cpp:2609,1
    - Dst: pgp_key_flags_t
      Src: /src/rnp/src/lib/key.cpp:2626,1
    - Dst: pgp_key_flags_t
      Src: /src/rnp/src/lib/key.cpp:2631,1
    - Dst: pgp_key_flags_t
      Src: /src/rnp/src/lib/key.cpp:2638,1
    - Dst: pgp_key_flags_t
      Src: /src/rnp/src/lib/key.cpp:2679,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key.cpp:2683,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 59
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2686
      start: 2604
    functionDepth: 1
    functionLinenumber: 2604
    functionLinenumberEnd: 2686
    functionName: pgp_pk_alg_capabilities
    functionSourceFile: /src/rnp/src/lib/key.cpp
    functionUses: 10
    functionsReached:
    - RNP_LOG
    - pgp_key_flags_t
    linkageType: ''
    returnType: pgp_key_flags_t
    signature: pgp_key_flags_t pgp_pk_alg_capabilities(pgp_pubkey_alg_t alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_log_stop
      Src: /src/rnp/src/lib/logging.h:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: rnp::LogStop::LogStop
    functionSourceFile: /src/rnp/src/lib/logging.h
    functionUses: 1
    functionsReached:
    - rnp_log_stop
    linkageType: ''
    returnType: void
    signature: void LogStop(bool stop = true)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_log_continue
      Src: /src/rnp/src/lib/logging.h:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: ~LogStop()
    functionSourceFile: /src/rnp/src/lib/logging.h
    functionUses: 0
    functionsReached:
    - rnp_log_continue
    linkageType: ''
    returnType: void
    signature: void ~LogStop()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_log_stop
      Src: /src/rnp/src/lib/logging.h:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 52
    functionName: rnp::LogStop::LogStop
    functionSourceFile: /src/rnp/src/lib/logging.h
    functionUses: 1
    functionsReached:
    - rnp_log_stop
    linkageType: ''
    returnType: void
    signature: void LogStop(bool stop = true)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_log_continue
      Src: /src/rnp/src/lib/logging.h:56,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 58
    functionName: ~LogStop()
    functionSourceFile: /src/rnp/src/lib/logging.h
    functionUses: 0
    functionsReached:
    - rnp_log_continue
    linkageType: ''
    returnType: void
    signature: void ~LogStop()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 76
    functionName: RNP_LOG_FD
    functionSourceFile: /src/rnp/src/lib/logging.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RNP_LOG_FD(fd, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 78
    functionName: RNP_LOG
    functionSourceFile: /src/rnp/src/lib/logging.h
    functionUses: 373
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RNP_LOG(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - msg
    - ','
    - key
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 89
    functionName: RNP_LOG_KEY
    functionSourceFile: /src/rnp/src/lib/logging.h
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RNP_LOG_KEY(msg, key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - fd
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 92
    functionDepth: 0
    functionLinenumber: 92
    functionLinenumberEnd: 100
    functionName: RNP_LOG_FD_NO_POS_INFO
    functionSourceFile: /src/rnp/src/lib/logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RNP_LOG_FD_NO_POS_INFO(fd, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 102
    functionName: RNP_LOG_NO_POS_INFO
    functionSourceFile: /src/rnp/src/lib/logging.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RNP_LOG_NO_POS_INFO(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - msg
    - ','
    - vec
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 117
    functionName: RNP_LOG_U8VEC
    functionSourceFile: /src/rnp/src/lib/logging.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: RNP_LOG_U8VEC(msg, vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: rnp::KeygenParams::alg
    functionSourceFile: /src/rnp/src/lib/keygen.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: pgp_pubkey_alg_t
    signature: pgp_pubkey_alg_t alg() const noexcept
  - 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: rnp::KeygenParams::hash
    functionSourceFile: /src/rnp/src/lib/keygen.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t hash() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: rnp::KeygenParams::set_hash
    functionSourceFile: /src/rnp/src/lib/keygen.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_hash(pgp_hash_alg_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: rnp::KeygenParams::version
    functionSourceFile: /src/rnp/src/lib/keygen.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_version_t
    signature: pgp_version_t version() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - pgp_version_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: rnp::KeygenParams::set_version
    functionSourceFile: /src/rnp/src/lib/keygen.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_version(pgp_version_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: "&\n    ctx() noexcept"
    functionSourceFile: /src/rnp/src/lib/keygen.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SecurityContext
    signature: "SecurityContext &\n    ctx() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: "&\n    key_params() const noexcept"
    functionSourceFile: /src/rnp/src/lib/keygen.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp::KeyParams
    signature: "pgp::KeyParams &\n    key_params() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: "&\n    key_params() noexcept"
    functionSourceFile: /src/rnp/src/lib/keygen.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp::KeyParams
    signature: "pgp::KeyParams &\n    key_params() 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: rnp::UserPrefs::UserPrefs
    functionSourceFile: /src/rnp/src/lib/keygen.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UserPrefs()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: rnp::KeygenParams::alg
    functionSourceFile: /src/rnp/src/lib/keygen.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: pgp_pubkey_alg_t
    signature: pgp_pubkey_alg_t alg() const noexcept
  - 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: rnp::KeygenParams::hash
    functionSourceFile: /src/rnp/src/lib/keygen.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t hash() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: rnp::KeygenParams::set_hash
    functionSourceFile: /src/rnp/src/lib/keygen.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_hash(pgp_hash_alg_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: rnp::KeygenParams::version
    functionSourceFile: /src/rnp/src/lib/keygen.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_version_t
    signature: pgp_version_t version() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - pgp_version_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: rnp::KeygenParams::set_version
    functionSourceFile: /src/rnp/src/lib/keygen.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_version(pgp_version_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: "&\n    ctx() noexcept"
    functionSourceFile: /src/rnp/src/lib/keygen.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SecurityContext
    signature: "SecurityContext &\n    ctx() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: "&\n    key_params() const noexcept"
    functionSourceFile: /src/rnp/src/lib/keygen.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp::KeyParams
    signature: "pgp::KeyParams &\n    key_params() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 0
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: "&\n    key_params() noexcept"
    functionSourceFile: /src/rnp/src/lib/keygen.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp::KeyParams
    signature: "pgp::KeyParams &\n    key_params() 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: rnp::UserPrefs::UserPrefs
    functionSourceFile: /src/rnp/src/lib/keygen.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void UserPrefs()
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/key_material.cpp:38,1
    - Dst: snprintf
      Src: /src/rnp/src/lib/key_material.cpp:50,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/key_material.cpp:51,1
    - Dst: strlen
      Src: /src/rnp/src/lib/key_material.cpp:51,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/key_material.cpp:58,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/key_material.cpp:60,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/key_material.cpp:60,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/key_material.cpp:63,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 3
    argNames:
    - hash
    - val
    - name
    argTypes:
    - rnp::Hash
    - pgp::mpi
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 65
    functionName: grip_hash_mpi
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp::mpi::data
    - strlen
    - pgp::mpi::size
    - rnp::Hash::add
    - snprintf
    linkageType: ''
    returnType: void
    signature: void grip_hash_mpi(rnp::Hash &hash, const pgp::mpi &val, const char
      name, bool lzero = true)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::hex_to_bin
      Src: /src/rnp/src/lib/key_material.cpp:70,1
    - Dst: auto::empty
      Src: /src/rnp/src/lib/key_material.cpp:71,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:72,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/key_material.cpp:73,1
    - Dst: pgp::mpi::assign
      Src: /src/rnp/src/lib/key_material.cpp:77,1
    - Dst: auto::data
      Src: /src/rnp/src/lib/key_material.cpp:77,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/key_material.cpp:77,1
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - hash
    - hex
    - name
    argTypes:
    - rnp::Hash
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: grip_hash_ecc_hex
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::mpi::assign
    - auto::size
    - auto::data
    - rnp::rnp_exception::rnp_exception
    - rnp::hex_to_bin
    - grip_hash_mpi
    - auto::empty
    linkageType: ''
    returnType: void
    signature: void grip_hash_ecc_hex(rnp::Hash &hash, const char *hex, char name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:86,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:88,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/key_material.cpp:89,1
    - Dst: rnp::hex_to_bin
      Src: /src/rnp/src/lib/key_material.cpp:93,1
    - Dst: rnp::hex_to_bin
      Src: /src/rnp/src/lib/key_material.cpp:94,1
    - Dst: assert
      Src: /src/rnp/src/lib/key_material.cpp:95,1
    - Dst: auto::empty
      Src: /src/rnp/src/lib/key_material.cpp:95,1
    - Dst: assert
      Src: /src/rnp/src/lib/key_material.cpp:96,1
    - Dst: auto::empty
      Src: /src/rnp/src/lib/key_material.cpp:96,1
    - Dst: pgp::mpi::resize
      Src: /src/rnp/src/lib/key_material.cpp:98,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/key_material.cpp:98,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/key_material.cpp:98,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/key_material.cpp:100,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/key_material.cpp:100,1
    - Dst: auto::data
      Src: /src/rnp/src/lib/key_material.cpp:100,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/key_material.cpp:100,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/key_material.cpp:101,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/key_material.cpp:101,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/key_material.cpp:101,1
    - Dst: auto::data
      Src: /src/rnp/src/lib/key_material.cpp:101,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/key_material.cpp:101,1
    - Dst: grip_hash_ecc_hex
      Src: /src/rnp/src/lib/key_material.cpp:104,1
    - Dst: grip_hash_ecc_hex
      Src: /src/rnp/src/lib/key_material.cpp:105,1
    - Dst: grip_hash_ecc_hex
      Src: /src/rnp/src/lib/key_material.cpp:106,1
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:107,1
    - Dst: grip_hash_ecc_hex
      Src: /src/rnp/src/lib/key_material.cpp:108,1
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/key_material.cpp:111,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:112,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/key_material.cpp:113,1
    - Dst: pgp::mpi::resize
      Src: /src/rnp/src/lib/key_material.cpp:115,1
    - Dst: pgp::ec::Key::p::size
      Src: /src/rnp/src/lib/key_material.cpp:115,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/key_material.cpp:116,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/key_material.cpp:116,1
    - Dst: pgp::ec::Key::p::data
      Src: /src/rnp/src/lib/key_material.cpp:116,1
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/key_material.cpp:116,1
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:117,1
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:119,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - hash
    - key
    argTypes:
    - rnp::Hash
    - pgp::ec::Key
    assertStmts:
    - condition: (!gxbin.empty())
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/rnp/src/lib/key_material.cpp
    - condition: (!gybin.empty())
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/rnp/src/lib/key_material.cpp
    constantsTouched: []
    func_position:
      end: 121
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 121
    functionName: grip_hash_ec
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::mpi::resize
    - pgp::mpi::size
    - memcpy
    - pgp::mpi::data
    - auto::size
    - auto::data
    - pgp::ec::Key::p::size
    - grip_hash_ecc_hex
    - pgp::ec::Curve::get
    - assert
    - pgp::ec::Key::p::data
    - rnp::rnp_exception::rnp_exception
    - rnp::hex_to_bin
    - grip_hash_mpi
    - auto::empty
    linkageType: ''
    returnType: void
    signature: void grip_hash_ec(rnp::Hash &hash, const pgp::ec::Key &key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/key_material.cpp:38,1
    - Dst: snprintf
      Src: /src/rnp/src/lib/key_material.cpp:50,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/key_material.cpp:51,1
    - Dst: strlen
      Src: /src/rnp/src/lib/key_material.cpp:51,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/key_material.cpp:58,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/key_material.cpp:60,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/key_material.cpp:60,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/key_material.cpp:63,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 3
    argNames:
    - hash
    - val
    - name
    argTypes:
    - rnp::Hash
    - pgp::mpi
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 65
    functionName: grip_hash_mpi
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - pgp::mpi::data
    - strlen
    - pgp::mpi::size
    - rnp::Hash::add
    - snprintf
    linkageType: ''
    returnType: void
    signature: void grip_hash_mpi(rnp::Hash &hash, const pgp::mpi &val, const char
      name, bool lzero = true)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::hex_to_bin
      Src: /src/rnp/src/lib/key_material.cpp:70,1
    - Dst: auto::empty
      Src: /src/rnp/src/lib/key_material.cpp:71,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:72,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/key_material.cpp:73,1
    - Dst: pgp::mpi::assign
      Src: /src/rnp/src/lib/key_material.cpp:77,1
    - Dst: auto::data
      Src: /src/rnp/src/lib/key_material.cpp:77,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/key_material.cpp:77,1
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:80,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - hash
    - hex
    - name
    argTypes:
    - rnp::Hash
    - char*
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 81
    functionName: grip_hash_ecc_hex
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - pgp::mpi::assign
    - auto::size
    - auto::data
    - rnp::rnp_exception::rnp_exception
    - rnp::hex_to_bin
    - grip_hash_mpi
    - auto::empty
    linkageType: ''
    returnType: void
    signature: void grip_hash_ecc_hex(rnp::Hash &hash, const char *hex, char name)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:86,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:88,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/key_material.cpp:89,1
    - Dst: rnp::hex_to_bin
      Src: /src/rnp/src/lib/key_material.cpp:93,1
    - Dst: rnp::hex_to_bin
      Src: /src/rnp/src/lib/key_material.cpp:94,1
    - Dst: assert
      Src: /src/rnp/src/lib/key_material.cpp:95,1
    - Dst: auto::empty
      Src: /src/rnp/src/lib/key_material.cpp:95,1
    - Dst: assert
      Src: /src/rnp/src/lib/key_material.cpp:96,1
    - Dst: auto::empty
      Src: /src/rnp/src/lib/key_material.cpp:96,1
    - Dst: pgp::mpi::resize
      Src: /src/rnp/src/lib/key_material.cpp:98,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/key_material.cpp:98,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/key_material.cpp:98,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/key_material.cpp:100,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/key_material.cpp:100,1
    - Dst: auto::data
      Src: /src/rnp/src/lib/key_material.cpp:100,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/key_material.cpp:100,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/key_material.cpp:101,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/key_material.cpp:101,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/key_material.cpp:101,1
    - Dst: auto::data
      Src: /src/rnp/src/lib/key_material.cpp:101,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/key_material.cpp:101,1
    - Dst: grip_hash_ecc_hex
      Src: /src/rnp/src/lib/key_material.cpp:104,1
    - Dst: grip_hash_ecc_hex
      Src: /src/rnp/src/lib/key_material.cpp:105,1
    - Dst: grip_hash_ecc_hex
      Src: /src/rnp/src/lib/key_material.cpp:106,1
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:107,1
    - Dst: grip_hash_ecc_hex
      Src: /src/rnp/src/lib/key_material.cpp:108,1
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/key_material.cpp:111,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:112,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/key_material.cpp:113,1
    - Dst: pgp::mpi::resize
      Src: /src/rnp/src/lib/key_material.cpp:115,1
    - Dst: pgp::ec::Key::p::size
      Src: /src/rnp/src/lib/key_material.cpp:115,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/key_material.cpp:116,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/key_material.cpp:116,1
    - Dst: pgp::ec::Key::p::data
      Src: /src/rnp/src/lib/key_material.cpp:116,1
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/key_material.cpp:116,1
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:117,1
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:119,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 2
    argNames:
    - hash
    - key
    argTypes:
    - rnp::Hash
    - pgp::ec::Key
    assertStmts:
    - condition: (!gxbin.empty())
      pos:
        line_end: 94
        line_start: 94
        source_file: /src/rnp/src/lib/key_material.cpp
    - condition: (!gybin.empty())
      pos:
        line_end: 95
        line_start: 95
        source_file: /src/rnp/src/lib/key_material.cpp
    constantsTouched: []
    func_position:
      end: 121
      start: 83
    functionDepth: 2
    functionLinenumber: 83
    functionLinenumberEnd: 121
    functionName: grip_hash_ec
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::mpi::resize
    - pgp::mpi::size
    - memcpy
    - pgp::mpi::data
    - auto::size
    - auto::data
    - pgp::ec::Key::p::size
    - grip_hash_ecc_hex
    - pgp::ec::Curve::get
    - assert
    - pgp::ec::Key::p::data
    - rnp::rnp_exception::rnp_exception
    - rnp::hex_to_bin
    - grip_hash_mpi
    - auto::empty
    linkageType: ''
    returnType: void
    signature: void grip_hash_ec(rnp::Hash &hash, const pgp::ec::Key &key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: KeyParams::~KeyParams()
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyParams::~KeyParams()
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:137,1
    - Dst: RSAKeyParams::RSAKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:137,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:139,1
    - Dst: ECDSAKeyParams::ECDSAKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:139,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:141,1
    - Dst: ECCKeyParams::ECCKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:141,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:143,1
    - Dst: ECCKeyParams::ECCKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:143,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:145,1
    - Dst: ECCKeyParams::ECCKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:145,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:148,1
    - Dst: ECCKeyParams::ECCKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:148,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:150,1
    - Dst: ECCKeyParams::ECCKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:150,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:152,1
    - Dst: ECCKeyParams::ECCKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:152,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:154,1
    - Dst: ECCKeyParams::ECCKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:154,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:157,1
    - Dst: DSAKeyParams::DSAKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:157,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:160,1
    - Dst: EGKeyParams::EGKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:160,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:175,1
    - Dst: MlkemEcdhKeyParams::MlkemEcdhKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:175,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:189,1
    - Dst: DilithiumEccKeyParams::DilithiumEccKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:189,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:195,1
    - Dst: SlhdsaKeyParams::SlhdsaKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:195,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/key_material.cpp:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 60
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 200
    functionName: pgp::KeyParams::create
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - DilithiumEccKeyParams::DilithiumEccKeyParams
    - MlkemEcdhKeyParams::MlkemEcdhKeyParams
    - ECCKeyParams::ECCKeyParams
    - EGKeyParams::EGKeyParams
    - DSAKeyParams::DSAKeyParams
    - rnp::rnp_exception::rnp_exception
    - std::unique_ptr<KeyParams>
    - ECDSAKeyParams::ECDSAKeyParams
    - RSAKeyParams::RSAKeyParams
    - SlhdsaKeyParams::SlhdsaKeyParams
    linkageType: ''
    returnType: std::unique_ptr<KeyParams>
    signature: std::unique_ptr<KeyParams> KeyParams::create(pgp_pubkey_alg_t alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::dsa::Key::choose_qsize
      Src: /src/rnp/src/lib/key_material.cpp:206,1
    - Dst: bits
      Src: /src/rnp/src/lib/key_material.cpp:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: pgp::DSAKeyParams::check_defaults
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - bits
    - pgp::dsa::Key::choose_qsize
    linkageType: ''
    returnType: void
    signature: void DSAKeyParams::check_defaults() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::dsa::Key::get_min_hash
      Src: /src/rnp/src/lib/key_material.cpp:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: pgp::DSAKeyParams::min_hash
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp::dsa::Key::get_min_hash
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t DSAKeyParams::min_hash() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: pgp::ECCKeyParams::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp::ec::Curve::get
    linkageType: ''
    returnType: size_t
    signature: size_t ECCKeyParams::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ecdsa::get_min_hash
      Src: /src/rnp/src/lib/key_material.cpp:226,1
    - Dst: curve
      Src: /src/rnp/src/lib/key_material.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: pgp::ECDSAKeyParams::min_hash
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - curve
    - pgp::ecdsa::get_min_hash
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t ECDSAKeyParams::min_hash() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_kyber_ecdh_composite_public_key_t::encoded_size
      Src: /src/rnp/src/lib/key_material.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: pgp::MlkemEcdhKeyParams::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_kyber_ecdh_composite_public_key_t::encoded_size
    linkageType: ''
    returnType: size_t
    signature: size_t MlkemEcdhKeyParams::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_dilithium_exdsa_composite_public_key_t::encoded_size
      Src: /src/rnp/src/lib/key_material.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: pgp::DilithiumEccKeyParams::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_dilithium_exdsa_composite_public_key_t::encoded_size
    linkageType: ''
    returnType: size_t
    signature: size_t DilithiumEccKeyParams::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sphincsplus_pubkey_size
      Src: /src/rnp/src/lib/key_material.cpp:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: pgp::SlhdsaKeyParams::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - sphincsplus_pubkey_size
    linkageType: ''
    returnType: size_t
    signature: size_t SlhdsaKeyParams::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: KeyMaterial::~KeyMaterial()
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyMaterial::~KeyMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: pgp::KeyMaterial::alg
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_pubkey_alg_t
    signature: pgp_pubkey_alg_t KeyMaterial::alg() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: pgp::KeyMaterial::secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool KeyMaterial::secret() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: pgp::KeyMaterial::valid
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool KeyMaterial::valid() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/rnp/src/lib/key_material.cpp:279,1
    - Dst: validate_material
      Src: /src/rnp/src/lib/key_material.cpp:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 287
    functionName: pgp::KeyMaterial::validate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - reset
    - validate_material
    linkageType: ''
    returnType: void
    signature: void KeyMaterial::validate(rnp::SecurityContext &ctx, bool reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 293
    functionName: '&

      KeyMaterial::validity() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_validity_t
    signature: 'pgp_validity_t &

      KeyMaterial::validity() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - pgp_validity_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: pgp::KeyMaterial::set_validity
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyMaterial::set_validity(const pgp_validity_t &val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/rnp/src/lib/key_material.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: pgp::KeyMaterial::reset_validity
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void KeyMaterial::reset_validity()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 311
    functionName: pgp::KeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyMaterial::clear_secret() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mark_valid
      Src: /src/rnp/src/lib/key_material.cpp:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: pgp::KeyMaterial::finish_generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - mark_valid
    linkageType: ''
    returnType: bool
    signature: bool KeyMaterial::finish_generate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 326
    functionName: pgp::KeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: bool
    signature: bool KeyMaterial::generate(rnp::SecurityContext &ctx, const KeyParams
      &params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - '   ctx'
    - '            out'
    - data
    argTypes:
    - rnp::SecurityContext
    - EncMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 334
    functionName: pgp::KeyMaterial::encrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t KeyMaterial::encrypt(rnp::SecurityContext &   ctx,\n
      \                    EncMaterial &            out,\n                     const
      rnp::secure_bytes &data) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - '   out'
    - '   in'
    argTypes:
    - rnp::SecurityContext
    - rnp::secure_bytes
    - EncMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 342
    functionName: pgp::KeyMaterial::decrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t KeyMaterial::decrypt(rnp::SecurityContext &ctx,\n                     rnp::secure_bytes
      &   out,\n                     const EncMaterial &   in) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - '         sig'
    - '   hash'
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 350
    functionName: pgp::KeyMaterial::verify
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t KeyMaterial::verify(const rnp::SecurityContext &ctx,\n
      \                   const SigMaterial &         sig,\n                    const
      rnp::secure_bytes &   hash) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - '   ctx'
    - '            sig'
    - hash
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 358
    functionName: pgp::KeyMaterial::sign
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t KeyMaterial::sign(rnp::SecurityContext &   ctx,\n                  SigMaterial
      &            sig,\n                  const rnp::secure_bytes &hash) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 364
    functionName: pgp::KeyMaterial::adjust_hash
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t KeyMaterial::adjust_hash(pgp_hash_alg_t hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: pgp::KeyMaterial::sig_hash_allowed
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool KeyMaterial::sig_hash_allowed(pgp_hash_alg_t hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 376
    functionName: pgp::KeyMaterial::curve
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t KeyMaterial::curve() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/lib/key_material.cpp:381,1
    - Dst: grip_update
      Src: /src/rnp/src/lib/key_material.cpp:382,1
    - Dst: auto::finish
      Src: /src/rnp/src/lib/key_material.cpp:384,1
    - Dst: KeyGrip::data
      Src: /src/rnp/src/lib/key_material.cpp:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 386
    functionName: pgp::KeyMaterial::grip
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - rnp::Hash::create
    - KeyGrip::data
    - grip_update
    - auto::finish
    linkageType: ''
    returnType: KeyGrip
    signature: KeyGrip KeyMaterial::grip() const
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:395,1
    - Dst: RSAKeyMaterial::RSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:395,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:398,1
    - Dst: EGKeyMaterial::EGKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:398,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:400,1
    - Dst: DSAKeyMaterial::DSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:400,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:402,1
    - Dst: ECDHKeyMaterial::ECDHKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:402,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:404,1
    - Dst: ECDSAKeyMaterial::ECDSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:404,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:406,1
    - Dst: EDDSAKeyMaterial::EDDSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:406,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:409,1
    - Dst: Ed25519KeyMaterial::Ed25519KeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:409,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:411,1
    - Dst: X25519KeyMaterial::X25519KeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:411,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:413,1
    - Dst: Ed448KeyMaterial::Ed448KeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:413,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:415,1
    - Dst: X448KeyMaterial::X448KeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:415,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:418,1
    - Dst: SM2KeyMaterial::SM2KeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:418,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:433,1
    - Dst: MlkemEcdhKeyMaterial::MlkemEcdhKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:433,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:447,1
    - Dst: DilithiumEccKeyMaterial::DilithiumEccKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:447,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:453,1
    - Dst: SlhdsaKeyMaterial::SlhdsaKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 60
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 458
    functionName: pgp::KeyMaterial::create
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - SM2KeyMaterial::SM2KeyMaterial
    - Ed448KeyMaterial::Ed448KeyMaterial
    - EGKeyMaterial::EGKeyMaterial
    - RSAKeyMaterial::RSAKeyMaterial
    - std::unique_ptr<KeyMaterial>
    - MlkemEcdhKeyMaterial::MlkemEcdhKeyMaterial
    - ECDHKeyMaterial::ECDHKeyMaterial
    - DilithiumEccKeyMaterial::DilithiumEccKeyMaterial
    - Ed25519KeyMaterial::Ed25519KeyMaterial
    - DSAKeyMaterial::DSAKeyMaterial
    - SlhdsaKeyMaterial::SlhdsaKeyMaterial
    - ECDSAKeyMaterial::ECDSAKeyMaterial
    - X448KeyMaterial::X448KeyMaterial
    - EDDSAKeyMaterial::EDDSAKeyMaterial
    - X25519KeyMaterial::X25519KeyMaterial
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> KeyMaterial::create(pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:463,1
    - Dst: RSAKeyMaterial::RSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - alg
    - key
    argTypes:
    - pgp_pubkey_alg_t
    - rsa::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 464
    functionName: pgp::KeyMaterial::create
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - RSAKeyMaterial::RSAKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> KeyMaterial::create(pgp_pubkey_alg_t alg,
      const rsa::Key &key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:469,1
    - Dst: DSAKeyMaterial::DSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - dsa::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 470
    functionName: pgp::KeyMaterial::create
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - DSAKeyMaterial::DSAKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> KeyMaterial::create(const dsa::Key &key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:475,1
    - Dst: EGKeyMaterial::EGKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - alg
    - key
    argTypes:
    - pgp_pubkey_alg_t
    - eg::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 476
    functionName: pgp::KeyMaterial::create
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - EGKeyMaterial::EGKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> KeyMaterial::create(pgp_pubkey_alg_t alg,
      const eg::Key &key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:483,1
    - Dst: ECDSAKeyMaterial::ECDSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:483,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:485,1
    - Dst: ECDHKeyMaterial::ECDHKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:485,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:487,1
    - Dst: EDDSAKeyMaterial::EDDSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:487,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:489,1
    - Dst: SM2KeyMaterial::SM2KeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:489,1
    - Dst: std::invalid_argument
      Src: /src/rnp/src/lib/key_material.cpp:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - alg
    - key
    argTypes:
    - pgp_pubkey_alg_t
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 493
    functionName: pgp::KeyMaterial::create
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - SM2KeyMaterial::SM2KeyMaterial
    - std::unique_ptr<KeyMaterial>
    - ECDHKeyMaterial::ECDHKeyMaterial
    - std::invalid_argument
    - ECDSAKeyMaterial::ECDSAKeyMaterial
    - EDDSAKeyMaterial::EDDSAKeyMaterial
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> KeyMaterial::create(pgp_pubkey_alg_t alg,
      const ec::Key &key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:498,1
    - Dst: RSAKeyMaterial::RSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 499
    functionName: pgp::RSAKeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RSAKeyMaterial::RSAKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> RSAKeyMaterial::clone()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 506
    functionName: pgp::RSAKeyMaterial::grip_update
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - grip_hash_mpi
    linkageType: ''
    returnType: void
    signature: void RSAKeyMaterial::grip_update(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate
      Src: /src/rnp/src/lib/key_material.cpp:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: pgp::RSAKeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - validate
    linkageType: ''
    returnType: bool
    signature: bool RSAKeyMaterial::validate_material(rnp::SecurityContext &ctx, bool
      reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::RSAKeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:517,1
    - Dst: pgp::KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 519
    functionName: pgp::RSAKeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 1
    functionsReached:
    - pgp::RSAKeyMaterial::clear_secret
    - pgp::KeyMaterial::clear_secret
    linkageType: ''
    returnType: void
    signature: void RSAKeyMaterial::clear_secret() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:525,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 526
    functionName: pgp::RSAKeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool RSAKeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:531,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:531,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:531,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:531,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:532,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 537
    functionName: pgp::RSAKeyMaterial::parse_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool RSAKeyMaterial::parse_secret(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:542,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 544
    functionName: pgp::RSAKeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void RSAKeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:549,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:550,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:551,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 553
    functionName: pgp::RSAKeyMaterial::write_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void RSAKeyMaterial::write_secret(pgp_packet_body_t &pkt) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:560,1
    - Dst: pgp::RSAKeyMaterial::generate
      Src: /src/rnp/src/lib/key_material.cpp:563,1
    - Dst: KeyParams::bits
      Src: /src/rnp/src/lib/key_material.cpp:563,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:564,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:567,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 568
    functionName: pgp::RSAKeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - KeyParams::bits
    - pgp::RSAKeyMaterial::generate
    - finish_generate
    linkageType: ''
    returnType: bool
    signature: bool RSAKeyMaterial::generate(rnp::SecurityContext &ctx, const KeyParams
      &params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<RSAEncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:575,1
    - Dst: encrypt_pkcs1
      Src: /src/rnp/src/lib/key_material.cpp:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            out'
    - data
    argTypes:
    - rnp::SecurityContext
    - EncMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 580
    functionName: pgp::RSAKeyMaterial::encrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<RSAEncMaterial *>
    - encrypt_pkcs1
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t RSAKeyMaterial::encrypt(rnp::SecurityContext &   ctx,\n
      \                       EncMaterial &            out,\n                        const
      rnp::secure_bytes &data) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const RSAEncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:587,1
    - Dst: decrypt_pkcs1
      Src: /src/rnp/src/lib/key_material.cpp:591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - '   out'
    - '   in'
    argTypes:
    - rnp::SecurityContext
    - rnp::secure_bytes
    - EncMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 592
    functionName: pgp::RSAKeyMaterial::decrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - decrypt_pkcs1
    - dynamic_cast<const RSAEncMaterial *>
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t RSAKeyMaterial::decrypt(rnp::SecurityContext &ctx,\n
      \                       rnp::secure_bytes &   out,\n                        const
      EncMaterial &   in) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alg
      Src: /src/rnp/src/lib/key_material.cpp:599,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:600,1
    - Dst: dynamic_cast<const RSASigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:603,1
    - Dst: verify_pkcs1
      Src: /src/rnp/src/lib/key_material.cpp:607,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - '         sig'
    - '   hash'
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 608
    functionName: pgp::RSAKeyMaterial::verify
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - alg
    - dynamic_cast<const RSASigMaterial *>
    - verify_pkcs1
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t RSAKeyMaterial::verify(const rnp::SecurityContext &ctx,\n
      \                      const SigMaterial &         sig,\n                       const
      rnp::secure_bytes &   hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<RSASigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:615,1
    - Dst: sign_pkcs1
      Src: /src/rnp/src/lib/key_material.cpp:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            sig'
    - hash
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 620
    functionName: pgp::RSAKeyMaterial::sign
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - sign_pkcs1
    - dynamic_cast<RSASigMaterial *>
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t RSAKeyMaterial::sign(rnp::SecurityContext &   ctx,\n
      \                    SigMaterial &            sig,\n                     const
      rnp::secure_bytes &hash) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - d
    - p
    - q
    - u
    argTypes:
    - mpi
    - mpi
    - mpi
    - mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 630
    functionName: pgp::RSAKeyMaterial::set_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSAKeyMaterial::set_secret(const mpi &d, const mpi &p, const mpi
      &q, const mpi &u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: n::size
      Src: /src/rnp/src/lib/key_material.cpp:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 636
    functionName: pgp::RSAKeyMaterial::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - n::size
    linkageType: ''
    returnType: size_t
    signature: size_t RSAKeyMaterial::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 642
    functionName: '&

      RSAKeyMaterial::n() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      RSAKeyMaterial::n() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 648
    functionName: '&

      RSAKeyMaterial::e() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      RSAKeyMaterial::e() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 654
    functionName: '&

      RSAKeyMaterial::d() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      RSAKeyMaterial::d() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 660
    functionName: '&

      RSAKeyMaterial::p() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      RSAKeyMaterial::p() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 666
    functionName: '&

      RSAKeyMaterial::q() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      RSAKeyMaterial::q() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 672
    functionName: '&

      RSAKeyMaterial::u() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      RSAKeyMaterial::u() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:677,1
    - Dst: DSAKeyMaterial::DSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 678
    functionName: pgp::DSAKeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - DSAKeyMaterial::DSAKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> DSAKeyMaterial::clone()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:683,1
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:684,1
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:685,1
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 687
    functionName: pgp::DSAKeyMaterial::grip_update
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - grip_hash_mpi
    linkageType: ''
    returnType: void
    signature: void DSAKeyMaterial::grip_update(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate
      Src: /src/rnp/src/lib/key_material.cpp:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 693
    functionName: pgp::DSAKeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - validate
    linkageType: ''
    returnType: bool
    signature: bool DSAKeyMaterial::validate_material(rnp::SecurityContext &ctx, bool
      reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::DSAKeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:698,1
    - Dst: pgp::KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 700
    functionName: pgp::DSAKeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 1
    functionsReached:
    - pgp::KeyMaterial::clear_secret
    - pgp::DSAKeyMaterial::clear_secret
    linkageType: ''
    returnType: void
    signature: void DSAKeyMaterial::clear_secret() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:706,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:706,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:706,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:706,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 707
    functionName: pgp::DSAKeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool DSAKeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:712,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 718
    functionName: pgp::DSAKeyMaterial::parse_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool DSAKeyMaterial::parse_secret(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:723,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:724,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:725,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 727
    functionName: pgp::DSAKeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void DSAKeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 733
    functionName: pgp::DSAKeyMaterial::write_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void DSAKeyMaterial::write_secret(pgp_packet_body_t &pkt) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const DSAKeyParams &>
      Src: /src/rnp/src/lib/key_material.cpp:738,1
    - Dst: pgp::DSAKeyMaterial::generate
      Src: /src/rnp/src/lib/key_material.cpp:739,1
    - Dst: auto::bits
      Src: /src/rnp/src/lib/key_material.cpp:739,1
    - Dst: auto::qbits
      Src: /src/rnp/src/lib/key_material.cpp:739,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:740,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 744
    functionName: pgp::DSAKeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - auto::bits
    - dynamic_cast<const DSAKeyParams &>
    - auto::qbits
    - finish_generate
    - pgp::DSAKeyMaterial::generate
    linkageType: ''
    returnType: bool
    signature: bool DSAKeyMaterial::generate(rnp::SecurityContext &ctx, const KeyParams
      &params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const DSASigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:751,1
    - Dst: pgp::DSAKeyMaterial::verify
      Src: /src/rnp/src/lib/key_material.cpp:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - '         sig'
    - '   hash'
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 756
    functionName: pgp::DSAKeyMaterial::verify
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 1
    functionsReached:
    - pgp::DSAKeyMaterial::verify
    - dynamic_cast<const DSASigMaterial *>
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t DSAKeyMaterial::verify(const rnp::SecurityContext &ctx,\n
      \                      const SigMaterial &         sig,\n                       const
      rnp::secure_bytes &   hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<DSASigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:763,1
    - Dst: pgp::DSAKeyMaterial::sign
      Src: /src/rnp/src/lib/key_material.cpp:767,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            sig'
    - hash
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 768
    functionName: pgp::DSAKeyMaterial::sign
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 1
    functionsReached:
    - dynamic_cast<DSASigMaterial *>
    - pgp::DSAKeyMaterial::sign
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t DSAKeyMaterial::sign(rnp::SecurityContext &   ctx,\n
      \                    SigMaterial &            sig,\n                     const
      rnp::secure_bytes &hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::dsa::Key::get_min_hash
      Src: /src/rnp/src/lib/key_material.cpp:773,1
    - Dst: q::bits
      Src: /src/rnp/src/lib/key_material.cpp:773,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/key_material.cpp:774,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/key_material.cpp:774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 778
    functionName: pgp::DSAKeyMaterial::adjust_hash
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - rnp::Hash::size
    - q::bits
    - pgp::dsa::Key::get_min_hash
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t DSAKeyMaterial::adjust_hash(pgp_hash_alg_t hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 785
    functionName: pgp::DSAKeyMaterial::set_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSAKeyMaterial::set_secret(const mpi &x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p::size
      Src: /src/rnp/src/lib/key_material.cpp:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 791
    functionName: pgp::DSAKeyMaterial::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - p::size
    linkageType: ''
    returnType: size_t
    signature: size_t DSAKeyMaterial::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: q::size
      Src: /src/rnp/src/lib/key_material.cpp:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 797
    functionName: pgp::DSAKeyMaterial::qbits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - q::size
    linkageType: ''
    returnType: size_t
    signature: size_t DSAKeyMaterial::qbits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 803
    functionName: '&

      DSAKeyMaterial::p() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      DSAKeyMaterial::p() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 809
    functionName: '&

      DSAKeyMaterial::q() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      DSAKeyMaterial::q() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 815
    functionName: '&

      DSAKeyMaterial::g() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      DSAKeyMaterial::g() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 821
    functionName: '&

      DSAKeyMaterial::y() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      DSAKeyMaterial::y() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 827
    functionName: '&

      DSAKeyMaterial::x() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      DSAKeyMaterial::x() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:832,1
    - Dst: EGKeyMaterial::EGKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 833
    functionName: pgp::EGKeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - EGKeyMaterial::EGKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> EGKeyMaterial::clone()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:838,1
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:839,1
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 841
    functionName: pgp::EGKeyMaterial::grip_update
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - grip_hash_mpi
    linkageType: ''
    returnType: void
    signature: void EGKeyMaterial::grip_update(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate
      Src: /src/rnp/src/lib/key_material.cpp:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 847
    functionName: pgp::EGKeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - validate
    linkageType: ''
    returnType: bool
    signature: bool EGKeyMaterial::validate_material(rnp::SecurityContext &ctx, bool
      reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::EGKeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:852,1
    - Dst: pgp::KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 854
    functionName: pgp::EGKeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 1
    functionsReached:
    - pgp::EGKeyMaterial::clear_secret
    - pgp::KeyMaterial::clear_secret
    linkageType: ''
    returnType: void
    signature: void EGKeyMaterial::clear_secret() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:860,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:860,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:860,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 861
    functionName: pgp::EGKeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool EGKeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:866,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 872
    functionName: pgp::EGKeyMaterial::parse_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool EGKeyMaterial::parse_secret(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:877,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:878,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 874
    functionDepth: 0
    functionLinenumber: 874
    functionLinenumberEnd: 880
    functionName: pgp::EGKeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void EGKeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 886
    functionName: pgp::EGKeyMaterial::write_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void EGKeyMaterial::write_secret(pgp_packet_body_t &pkt) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:893,1
    - Dst: pgp::EGKeyMaterial::generate
      Src: /src/rnp/src/lib/key_material.cpp:896,1
    - Dst: KeyParams::bits
      Src: /src/rnp/src/lib/key_material.cpp:896,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:897,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:900,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 901
    functionName: pgp::EGKeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - pgp::EGKeyMaterial::generate
    - KeyParams::bits
    - finish_generate
    linkageType: ''
    returnType: bool
    signature: bool EGKeyMaterial::generate(rnp::SecurityContext &ctx, const KeyParams
      &params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<EGEncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:908,1
    - Dst: encrypt_pkcs1
      Src: /src/rnp/src/lib/key_material.cpp:912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            out'
    - data
    argTypes:
    - rnp::SecurityContext
    - EncMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 913
    functionName: pgp::EGKeyMaterial::encrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<EGEncMaterial *>
    - encrypt_pkcs1
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t EGKeyMaterial::encrypt(rnp::SecurityContext &   ctx,\n
      \                      EncMaterial &            out,\n                       const
      rnp::secure_bytes &data) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const EGEncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:920,1
    - Dst: decrypt_pkcs1
      Src: /src/rnp/src/lib/key_material.cpp:924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - '   out'
    - '   in'
    argTypes:
    - rnp::SecurityContext
    - rnp::secure_bytes
    - EncMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 925
    functionName: pgp::EGKeyMaterial::decrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const EGEncMaterial *>
    - decrypt_pkcs1
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t EGKeyMaterial::decrypt(rnp::SecurityContext &ctx,\n                       rnp::secure_bytes
      &   out,\n                       const EncMaterial &   in) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - '         sig'
    - '   hash'
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 927
    functionDepth: 1
    functionLinenumber: 927
    functionLinenumberEnd: 934
    functionName: pgp::EGKeyMaterial::verify
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t EGKeyMaterial::verify(const rnp::SecurityContext &ctx,\n
      \                     const SigMaterial &         sig,\n                      const
      rnp::secure_bytes &   hash) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 941
    functionName: pgp::EGKeyMaterial::set_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EGKeyMaterial::set_secret(const mpi &x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: y::size
      Src: /src/rnp/src/lib/key_material.cpp:946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 943
    functionDepth: 1
    functionLinenumber: 943
    functionLinenumberEnd: 947
    functionName: pgp::EGKeyMaterial::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - y::size
    linkageType: ''
    returnType: size_t
    signature: size_t EGKeyMaterial::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 953
    functionName: '&

      EGKeyMaterial::p() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      EGKeyMaterial::p() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 959
    functionName: '&

      EGKeyMaterial::g() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      EGKeyMaterial::g() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 965
    functionName: '&

      EGKeyMaterial::y() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      EGKeyMaterial::y() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 971
    functionName: '&

      EGKeyMaterial::x() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      EGKeyMaterial::x() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grip_hash_ec
      Src: /src/rnp/src/lib/key_material.cpp:976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 973
    functionDepth: 3
    functionLinenumber: 973
    functionLinenumberEnd: 977
    functionName: pgp::ECKeyMaterial::grip_update
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - grip_hash_ec
    linkageType: ''
    returnType: void
    signature: void ECKeyMaterial::grip_update(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ECKeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:982,1
    - Dst: pgp::KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 984
    functionName: pgp::ECKeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 1
    functionsReached:
    - pgp::KeyMaterial::clear_secret
    - pgp::ECKeyMaterial::clear_secret
    linkageType: ''
    returnType: void
    signature: void ECKeyMaterial::clear_secret() noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:989,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:991,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:995,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/key_material.cpp:999,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1000,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - hash_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 986
    functionDepth: 1
    functionLinenumber: 986
    functionLinenumberEnd: 1004
    functionName: pgp::ECKeyMaterial::check_curve
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - auto::bytes
    - pgp::ec::Curve::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t ECKeyMaterial::check_curve(size_t hash_len) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1010,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1010,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1014
    functionName: pgp::ECKeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool ECKeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1019,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1020,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1025
    functionName: pgp::ECKeyMaterial::parse_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool ECKeyMaterial::parse_secret(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:1030,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1027
    functionDepth: 0
    functionLinenumber: 1027
    functionLinenumberEnd: 1032
    functionName: pgp::ECKeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void ECKeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:1037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1038
    functionName: pgp::ECKeyMaterial::write_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void ECKeyMaterial::write_secret(pgp_packet_body_t &pkt) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const ECCKeyParams &>
      Src: /src/rnp/src/lib/key_material.cpp:1043,1
    - Dst: pgp::ec::Curve::is_supported
      Src: /src/rnp/src/lib/key_material.cpp:1044,1
    - Dst: auto::curve
      Src: /src/rnp/src/lib/key_material.cpp:1044,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1045,1
    - Dst: auto::curve
      Src: /src/rnp/src/lib/key_material.cpp:1045,1
    - Dst: pgp::ECKeyMaterial::generate
      Src: /src/rnp/src/lib/key_material.cpp:1048,1
    - Dst: auto::curve
      Src: /src/rnp/src/lib/key_material.cpp:1048,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1049,1
    - Dst: auto::curve
      Src: /src/rnp/src/lib/key_material.cpp:1052,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:1053,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1040
    functionDepth: 1
    functionLinenumber: 1040
    functionLinenumberEnd: 1054
    functionName: pgp::ECKeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - pgp::ECKeyMaterial::generate
    - dynamic_cast<const ECCKeyParams &>
    - pgp::ec::Curve::is_supported
    - auto::curve
    - finish_generate
    linkageType: ''
    returnType: bool
    signature: bool ECKeyMaterial::generate(rnp::SecurityContext &ctx, const KeyParams
      &params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1056
    functionDepth: 0
    functionLinenumber: 1056
    functionLinenumberEnd: 1061
    functionName: pgp::ECKeyMaterial::set_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECKeyMaterial::set_secret(const mpi &x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1063
    functionDepth: 0
    functionLinenumber: 1063
    functionLinenumberEnd: 1068
    functionName: pgp::ECKeyMaterial::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp::ec::Curve::get
    linkageType: ''
    returnType: size_t
    signature: size_t ECKeyMaterial::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1070
    functionDepth: 0
    functionLinenumber: 1070
    functionLinenumberEnd: 1074
    functionName: pgp::ECKeyMaterial::curve
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t ECKeyMaterial::curve() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1076
    functionDepth: 0
    functionLinenumber: 1076
    functionLinenumberEnd: 1080
    functionName: '&

      ECKeyMaterial::p() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      ECKeyMaterial::p() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1086
    functionName: '&

      ECKeyMaterial::x() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      ECKeyMaterial::x() const noexcept'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::is_supported
      Src: /src/rnp/src/lib/key_material.cpp:1091,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1093,1
    - Dst: pgp::ecdsa::validate_key
      Src: /src/rnp/src/lib/key_material.cpp:1096,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1088
    functionDepth: 1
    functionLinenumber: 1088
    functionLinenumberEnd: 1097
    functionName: pgp::ECDSAKeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::ecdsa::validate_key
    - pgp::ec::Curve::is_supported
    linkageType: ''
    returnType: bool
    signature: bool ECDSAKeyMaterial::validate_material(rnp::SecurityContext &ctx,
      bool reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:1102,1
    - Dst: ECDSAKeyMaterial::ECDSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:1102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1099
    functionDepth: 0
    functionLinenumber: 1099
    functionLinenumberEnd: 1103
    functionName: pgp::ECDSAKeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - ECDSAKeyMaterial::ECDSAKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> ECDSAKeyMaterial::clone()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::is_supported
      Src: /src/rnp/src/lib/key_material.cpp:1110,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1111,1
    - Dst: dynamic_cast<const ECSigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1114,1
    - Dst: pgp::ecdsa::verify
      Src: /src/rnp/src/lib/key_material.cpp:1118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - '         sig'
    - '   hash'
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1105
    functionDepth: 1
    functionLinenumber: 1105
    functionLinenumberEnd: 1119
    functionName: pgp::ECDSAKeyMaterial::verify
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - dynamic_cast<const ECSigMaterial *>
    - pgp::ecdsa::verify
    - pgp::ec::Curve::is_supported
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ECDSAKeyMaterial::verify(const rnp::SecurityContext &ctx,\n
      \                        const SigMaterial &         sig,\n                         const
      rnp::secure_bytes &   hash) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_curve
      Src: /src/rnp/src/lib/key_material.cpp:1126,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/key_material.cpp:1126,1
    - Dst: dynamic_cast<ECSigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1130,1
    - Dst: pgp::ecdsa::sign
      Src: /src/rnp/src/lib/key_material.cpp:1134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - '   ctx'
    - '            sig'
    - hash
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1121
    functionDepth: 1
    functionLinenumber: 1121
    functionLinenumberEnd: 1135
    functionName: pgp::ECDSAKeyMaterial::sign
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<ECSigMaterial *>
    - check_curve
    - rnp::secure_bytes::size
    - pgp::ecdsa::sign
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ECDSAKeyMaterial::sign(rnp::SecurityContext &   ctx,\n
      \                      SigMaterial &            sig,\n                       const
      rnp::secure_bytes &hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ecdsa::get_min_hash
      Src: /src/rnp/src/lib/key_material.cpp:1140,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/key_material.cpp:1141,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/key_material.cpp:1141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1137
    functionDepth: 1
    functionLinenumber: 1137
    functionLinenumberEnd: 1145
    functionName: pgp::ECDSAKeyMaterial::adjust_hash
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - rnp::Hash::size
    - pgp::ecdsa::get_min_hash
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t ECDSAKeyMaterial::adjust_hash(pgp_hash_alg_t hash) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::is_supported
      Src: /src/rnp/src/lib/key_material.cpp:1150,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1152,1
    - Dst: pgp::ecdh::validate_key
      Src: /src/rnp/src/lib/key_material.cpp:1155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1147
    functionDepth: 1
    functionLinenumber: 1147
    functionLinenumberEnd: 1156
    functionName: pgp::ECDHKeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::ec::Curve::is_supported
    - pgp::ecdh::validate_key
    linkageType: ''
    returnType: bool
    signature: bool ECDHKeyMaterial::validate_material(rnp::SecurityContext &ctx,
      bool reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:1161,1
    - Dst: ECDHKeyMaterial::ECDHKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:1161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1158
    functionDepth: 0
    functionLinenumber: 1158
    functionLinenumberEnd: 1162
    functionName: pgp::ECDHKeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - ECDHKeyMaterial::ECDHKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> ECDHKeyMaterial::clone()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ECKeyMaterial::parse
      Src: /src/rnp/src/lib/key_material.cpp:1167,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1173,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1176,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1179,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1179,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1185
    functionName: pgp::ECDHKeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::get
    - pgp::ECKeyMaterial::parse
    linkageType: ''
    returnType: bool
    signature: bool ECDHKeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ECKeyMaterial::write
      Src: /src/rnp/src/lib/key_material.cpp:1190,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/lib/key_material.cpp:1191,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/lib/key_material.cpp:1192,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/lib/key_material.cpp:1193,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/lib/key_material.cpp:1194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1187
    functionDepth: 2
    functionLinenumber: 1187
    functionLinenumberEnd: 1195
    functionName: pgp::ECDHKeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add_byte
    - pgp::ECKeyMaterial::write
    linkageType: ''
    returnType: void
    signature: void ECDHKeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const ECCKeyParams &>
      Src: /src/rnp/src/lib/key_material.cpp:1200,1
    - Dst: pgp::ecdh::set_params
      Src: /src/rnp/src/lib/key_material.cpp:1201,1
    - Dst: auto::curve
      Src: /src/rnp/src/lib/key_material.cpp:1201,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1202,1
    - Dst: auto::curve
      Src: /src/rnp/src/lib/key_material.cpp:1202,1
    - Dst: auto::curve
      Src: /src/rnp/src/lib/key_material.cpp:1206,1
    - Dst: generate_x25519
      Src: /src/rnp/src/lib/key_material.cpp:1207,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1208,1
    - Dst: auto::curve
      Src: /src/rnp/src/lib/key_material.cpp:1211,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:1212,1
    - Dst: pgp::ECKeyMaterial::generate
      Src: /src/rnp/src/lib/key_material.cpp:1215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1197
    functionDepth: 2
    functionLinenumber: 1197
    functionLinenumberEnd: 1216
    functionName: pgp::ECDHKeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::ecdh::set_params
    - pgp::ECKeyMaterial::generate
    - dynamic_cast<const ECCKeyParams &>
    - finish_generate
    - auto::curve
    - generate_x25519
    linkageType: ''
    returnType: bool
    signature: bool ECDHKeyMaterial::generate(rnp::SecurityContext &ctx, const KeyParams
      &params)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::is_supported
      Src: /src/rnp/src/lib/key_material.cpp:1223,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1224,1
    - Dst: dynamic_cast<ECDHEncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1227,1
    - Dst: pgp::ecdh::encrypt_pkcs5
      Src: /src/rnp/src/lib/key_material.cpp:1231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - '   ctx'
    - '            out'
    - data
    argTypes:
    - rnp::SecurityContext
    - EncMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1218
    functionDepth: 1
    functionLinenumber: 1218
    functionLinenumberEnd: 1232
    functionName: pgp::ECDHKeyMaterial::encrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - dynamic_cast<ECDHEncMaterial *>
    - pgp::ec::Curve::is_supported
    - pgp::ecdh::encrypt_pkcs5
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ECDHKeyMaterial::encrypt(rnp::SecurityContext &   ctx,\n
      \                        EncMaterial &            out,\n                         const
      rnp::secure_bytes &data) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::is_supported
      Src: /src/rnp/src/lib/key_material.cpp:1239,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1240,1
    - Dst: pgp::ECDHKeyMaterial::x25519_bits_tweaked
      Src: /src/rnp/src/lib/key_material.cpp:1243,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1244,1
    - Dst: dynamic_cast<const ECDHEncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1246,1
    - Dst: pgp::ecdh::decrypt_pkcs5
      Src: /src/rnp/src/lib/key_material.cpp:1250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - '   out'
    - '   in'
    argTypes:
    - rnp::SecurityContext
    - rnp::secure_bytes
    - EncMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1234
    functionDepth: 1
    functionLinenumber: 1234
    functionLinenumberEnd: 1251
    functionName: pgp::ECDHKeyMaterial::decrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::ECDHKeyMaterial::x25519_bits_tweaked
    - pgp::ec::Curve::is_supported
    - pgp::ecdh::decrypt_pkcs5
    - dynamic_cast<const ECDHEncMaterial *>
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ECDHKeyMaterial::decrypt(rnp::SecurityContext &ctx,\n
      \                        rnp::secure_bytes &   out,\n                         const
      EncMaterial &   in) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1253
    functionDepth: 0
    functionLinenumber: 1253
    functionLinenumberEnd: 1257
    functionName: pgp::ECDHKeyMaterial::kdf_hash_alg
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t ECDHKeyMaterial::kdf_hash_alg() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1259
    functionDepth: 0
    functionLinenumber: 1259
    functionLinenumberEnd: 1263
    functionName: pgp::ECDHKeyMaterial::key_wrap_alg
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_symm_alg_t
    signature: pgp_symm_alg_t ECDHKeyMaterial::key_wrap_alg() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ECDHKeyMaterial::x25519_bits_tweaked
      Src: /src/rnp/src/lib/key_material.cpp:1268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1265
    functionDepth: 0
    functionLinenumber: 1265
    functionLinenumberEnd: 1269
    functionName: pgp::ECDHKeyMaterial::x25519_bits_tweaked
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - pgp::ECDHKeyMaterial::x25519_bits_tweaked
    linkageType: ''
    returnType: bool
    signature: bool ECDHKeyMaterial::x25519_bits_tweaked() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ECDHKeyMaterial::x25519_tweak_bits
      Src: /src/rnp/src/lib/key_material.cpp:1274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1271
    functionDepth: 0
    functionLinenumber: 1271
    functionLinenumberEnd: 1275
    functionName: pgp::ECDHKeyMaterial::x25519_tweak_bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 1
    functionsReached:
    - pgp::ECDHKeyMaterial::x25519_tweak_bits
    linkageType: ''
    returnType: bool
    signature: bool ECDHKeyMaterial::x25519_tweak_bits() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::eddsa::validate_key
      Src: /src/rnp/src/lib/key_material.cpp:1280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1277
    functionDepth: 0
    functionLinenumber: 1277
    functionLinenumberEnd: 1281
    functionName: pgp::EDDSAKeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp::eddsa::validate_key
    linkageType: ''
    returnType: bool
    signature: bool EDDSAKeyMaterial::validate_material(rnp::SecurityContext &ctx,
      bool reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:1286,1
    - Dst: EDDSAKeyMaterial::EDDSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:1286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1283
    functionDepth: 0
    functionLinenumber: 1283
    functionLinenumberEnd: 1287
    functionName: pgp::EDDSAKeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - EDDSAKeyMaterial::EDDSAKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> EDDSAKeyMaterial::clone()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::eddsa::generate
      Src: /src/rnp/src/lib/key_material.cpp:1292,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1293,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:1296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1289
    functionDepth: 1
    functionLinenumber: 1289
    functionLinenumberEnd: 1297
    functionName: pgp::EDDSAKeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::eddsa::generate
    - finish_generate
    linkageType: ''
    returnType: bool
    signature: bool EDDSAKeyMaterial::generate(rnp::SecurityContext &ctx, const KeyParams
      &params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const ECSigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1304,1
    - Dst: pgp::eddsa::verify
      Src: /src/rnp/src/lib/key_material.cpp:1308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - '         sig'
    - '   hash'
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1299
    functionDepth: 0
    functionLinenumber: 1299
    functionLinenumberEnd: 1309
    functionName: pgp::EDDSAKeyMaterial::verify
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const ECSigMaterial *>
    - pgp::eddsa::verify
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t EDDSAKeyMaterial::verify(const rnp::SecurityContext &ctx,\n
      \                        const SigMaterial &         sig,\n                         const
      rnp::secure_bytes &   hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<ECSigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1316,1
    - Dst: pgp::eddsa::sign
      Src: /src/rnp/src/lib/key_material.cpp:1320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            sig'
    - hash
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1311
    functionDepth: 0
    functionLinenumber: 1311
    functionLinenumberEnd: 1321
    functionName: pgp::EDDSAKeyMaterial::sign
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp::eddsa::sign
    - dynamic_cast<ECSigMaterial *>
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t EDDSAKeyMaterial::sign(rnp::SecurityContext &   ctx,\n
      \                      SigMaterial &            sig,\n                       const
      rnp::secure_bytes &hash) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::sm2::validate_key
      Src: /src/rnp/src/lib/key_material.cpp:1327,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1323
    functionDepth: 1
    functionLinenumber: 1323
    functionLinenumberEnd: 1332
    functionName: pgp::SM2KeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::sm2::validate_key
    linkageType: ''
    returnType: bool
    signature: bool SM2KeyMaterial::validate_material(rnp::SecurityContext &ctx, bool
      reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:1337,1
    - Dst: SM2KeyMaterial::SM2KeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:1337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1334
    functionDepth: 0
    functionLinenumber: 1334
    functionLinenumberEnd: 1338
    functionName: pgp::SM2KeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - SM2KeyMaterial::SM2KeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> SM2KeyMaterial::clone()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<SM2EncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1346,1
    - Dst: pgp::sm2::encrypt
      Src: /src/rnp/src/lib/key_material.cpp:1350,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - '   ctx'
    - '            out'
    - data
    argTypes:
    - rnp::SecurityContext
    - EncMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1340
    functionDepth: 1
    functionLinenumber: 1340
    functionLinenumberEnd: 1355
    functionName: pgp::SM2KeyMaterial::encrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - dynamic_cast<SM2EncMaterial *>
    - pgp::sm2::encrypt
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t SM2KeyMaterial::encrypt(rnp::SecurityContext &   ctx,\n
      \                       EncMaterial &            out,\n                        const
      rnp::secure_bytes &data) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const SM2EncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1363,1
    - Dst: pgp::sm2::decrypt
      Src: /src/rnp/src/lib/key_material.cpp:1367,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - '   out'
    - '   in'
    argTypes:
    - rnp::SecurityContext
    - rnp::secure_bytes
    - EncMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1357
    functionDepth: 1
    functionLinenumber: 1357
    functionLinenumberEnd: 1372
    functionName: pgp::SM2KeyMaterial::decrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::sm2::decrypt
    - dynamic_cast<const SM2EncMaterial *>
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t SM2KeyMaterial::decrypt(rnp::SecurityContext &ctx,\n
      \                       rnp::secure_bytes &   out,\n                        const
      EncMaterial &   in) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const ECSigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1380,1
    - Dst: pgp::sm2::verify
      Src: /src/rnp/src/lib/key_material.cpp:1384,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - '         sig'
    - '   hash'
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1374
    functionDepth: 1
    functionLinenumber: 1374
    functionLinenumberEnd: 1389
    functionName: pgp::SM2KeyMaterial::verify
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const ECSigMaterial *>
    - pgp::sm2::verify
    - RNP_LOG
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t SM2KeyMaterial::verify(const rnp::SecurityContext &ctx,\n
      \                      const SigMaterial &         sig,\n                       const
      rnp::secure_bytes &   hash) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_curve
      Src: /src/rnp/src/lib/key_material.cpp:1397,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/key_material.cpp:1397,1
    - Dst: dynamic_cast<ECSigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1401,1
    - Dst: pgp::sm2::sign
      Src: /src/rnp/src/lib/key_material.cpp:1405,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - '   ctx'
    - '            sig'
    - hash
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1391
    functionDepth: 1
    functionLinenumber: 1391
    functionLinenumberEnd: 1410
    functionName: pgp::SM2KeyMaterial::sign
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::sm2::sign
    - dynamic_cast<ECSigMaterial *>
    - rnp::secure_bytes::size
    - check_curve
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t SM2KeyMaterial::sign(rnp::SecurityContext &   ctx,\n
      \                    SigMaterial &            sig,\n                     const
      rnp::secure_bytes &hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::sm2::compute_za
      Src: /src/rnp/src/lib/key_material.cpp:1416,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1418,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/key_material.cpp:1419,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1422,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/key_material.cpp:1423,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1412
    functionDepth: 1
    functionLinenumber: 1412
    functionLinenumberEnd: 1425
    functionName: pgp::SM2KeyMaterial::compute_za
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp::sm2::compute_za
    - rnp::rnp_exception::rnp_exception
    - RNP_LOG
    linkageType: ''
    returnType: void
    signature: void SM2KeyMaterial::compute_za(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:1431,1
    - Dst: Ed25519KeyMaterial::Ed25519KeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:1431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1428
    functionDepth: 0
    functionLinenumber: 1428
    functionLinenumberEnd: 1432
    functionName: pgp::Ed25519KeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - Ed25519KeyMaterial::Ed25519KeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> Ed25519KeyMaterial::clone()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/key_material.cpp:1438,1
    - Dst: pub
      Src: /src/rnp/src/lib/key_material.cpp:1438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1434
    functionDepth: 0
    functionLinenumber: 1434
    functionLinenumberEnd: 1439
    functionName: pgp::Ed25519KeyMaterial::grip_update
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub
    - rnp::Hash::add
    linkageType: ''
    returnType: void
    signature: void Ed25519KeyMaterial::grip_update(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ed25519_validate_key_native
      Src: /src/rnp/src/lib/key_material.cpp:1444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1441
    functionDepth: 0
    functionLinenumber: 1441
    functionLinenumberEnd: 1445
    functionName: pgp::Ed25519KeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - ed25519_validate_key_native
    linkageType: ''
    returnType: bool
    signature: bool Ed25519KeyMaterial::validate_material(rnp::SecurityContext &ctx,
      bool reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::Ed25519KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:1450,1
    - Dst: pgp::KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:1451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1447
    functionDepth: 0
    functionLinenumber: 1447
    functionLinenumberEnd: 1452
    functionName: pgp::Ed25519KeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 1
    functionsReached:
    - pgp::Ed25519KeyMaterial::clear_secret
    - pgp::KeyMaterial::clear_secret
    linkageType: ''
    returnType: void
    signature: void Ed25519KeyMaterial::clear_secret() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:1458,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/key_material.cpp:1459,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1460,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:1460,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:1460,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1454
    functionDepth: 1
    functionLinenumber: 1454
    functionLinenumberEnd: 1466
    functionName: pgp::Ed25519KeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::ec::Curve::get
    - pgp_packet_body_t::get
    - std::vector::size
    - auto::bytes
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool Ed25519KeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:1471,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/key_material.cpp:1472,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1473,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:1473,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:1473,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1468
    functionDepth: 1
    functionLinenumber: 1468
    functionLinenumberEnd: 1480
    functionName: pgp::Ed25519KeyMaterial::parse_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::ec::Curve::get
    - pgp_packet_body_t::get
    - std::vector::size
    - auto::bytes
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool Ed25519KeyMaterial::parse_secret(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:1485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1482
    functionDepth: 0
    functionLinenumber: 1482
    functionLinenumberEnd: 1486
    functionName: pgp::Ed25519KeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void Ed25519KeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:1491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1488
    functionDepth: 0
    functionLinenumber: 1488
    functionLinenumberEnd: 1492
    functionName: pgp::Ed25519KeyMaterial::write_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void Ed25519KeyMaterial::write_secret(pgp_packet_body_t &pkt) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_ed25519_native
      Src: /src/rnp/src/lib/key_material.cpp:1497,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1498,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:1501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1494
    functionDepth: 1
    functionLinenumber: 1494
    functionLinenumberEnd: 1502
    functionName: pgp::Ed25519KeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - finish_generate
    - generate_ed25519_native
    linkageType: ''
    returnType: bool
    signature: bool Ed25519KeyMaterial::generate(rnp::SecurityContext &ctx, const
      KeyParams &params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const Ed25519SigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1509,1
    - Dst: ed25519_verify_native
      Src: /src/rnp/src/lib/key_material.cpp:1513,1
    - Dst: data
      Src: /src/rnp/src/lib/key_material.cpp:1513,1
    - Dst: size
      Src: /src/rnp/src/lib/key_material.cpp:1513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - '         sig'
    - '   hash'
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1504
    functionDepth: 1
    functionLinenumber: 1504
    functionLinenumberEnd: 1514
    functionName: pgp::Ed25519KeyMaterial::verify
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const Ed25519SigMaterial *>
    - data
    - size
    - ed25519_verify_native
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Ed25519KeyMaterial::verify(const rnp::SecurityContext
      &ctx,\n                           const SigMaterial &         sig,\n                           const
      rnp::secure_bytes &   hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<Ed25519SigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1521,1
    - Dst: ed25519_sign_native
      Src: /src/rnp/src/lib/key_material.cpp:1525,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/key_material.cpp:1526,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/key_material.cpp:1526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            sig'
    - hash
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1516
    functionDepth: 1
    functionLinenumber: 1516
    functionLinenumberEnd: 1527
    functionName: pgp::Ed25519KeyMaterial::sign
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<Ed25519SigMaterial *>
    - rnp::secure_bytes::data
    - rnp::secure_bytes::size
    - ed25519_sign_native
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Ed25519KeyMaterial::sign(rnp::SecurityContext &   ctx,\n
      \                        SigMaterial &            sig,\n                         const
      rnp::secure_bytes &hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::Ed25519KeyMaterial::sig_hash_allowed
      Src: /src/rnp/src/lib/key_material.cpp:1532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1529
    functionDepth: 1
    functionLinenumber: 1529
    functionLinenumberEnd: 1536
    functionName: pgp::Ed25519KeyMaterial::adjust_hash
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp::Ed25519KeyMaterial::sig_hash_allowed
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t Ed25519KeyMaterial::adjust_hash(pgp_hash_alg_t hash)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/key_material.cpp:1541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1538
    functionDepth: 0
    functionLinenumber: 1538
    functionLinenumberEnd: 1542
    functionName: pgp::Ed25519KeyMaterial::sig_hash_allowed
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 1
    functionsReached:
    - rnp::Hash::size
    linkageType: ''
    returnType: bool
    signature: bool Ed25519KeyMaterial::sig_hash_allowed(pgp_hash_alg_t hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1544
    functionDepth: 0
    functionLinenumber: 1544
    functionLinenumberEnd: 1548
    functionName: pgp::Ed25519KeyMaterial::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Ed25519KeyMaterial::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1550
    functionDepth: 0
    functionLinenumber: 1550
    functionLinenumberEnd: 1554
    functionName: pgp::Ed25519KeyMaterial::curve
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t Ed25519KeyMaterial::curve() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1556
    functionDepth: 0
    functionLinenumber: 1556
    functionLinenumberEnd: 1560
    functionName: '&

      Ed25519KeyMaterial::pub() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      Ed25519KeyMaterial::pub() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1562
    functionDepth: 0
    functionLinenumber: 1562
    functionLinenumberEnd: 1566
    functionName: '&

      Ed25519KeyMaterial::priv() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      Ed25519KeyMaterial::priv() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:1571,1
    - Dst: X25519KeyMaterial::X25519KeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:1571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1568
    functionDepth: 0
    functionLinenumber: 1568
    functionLinenumberEnd: 1572
    functionName: pgp::X25519KeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - X25519KeyMaterial::X25519KeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> X25519KeyMaterial::clone()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/key_material.cpp:1578,1
    - Dst: pub
      Src: /src/rnp/src/lib/key_material.cpp:1578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1574
    functionDepth: 0
    functionLinenumber: 1574
    functionLinenumberEnd: 1579
    functionName: pgp::X25519KeyMaterial::grip_update
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub
    - rnp::Hash::add
    linkageType: ''
    returnType: void
    signature: void X25519KeyMaterial::grip_update(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x25519_validate_key_native
      Src: /src/rnp/src/lib/key_material.cpp:1584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1581
    functionDepth: 0
    functionLinenumber: 1581
    functionLinenumberEnd: 1585
    functionName: pgp::X25519KeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - x25519_validate_key_native
    linkageType: ''
    returnType: bool
    signature: bool X25519KeyMaterial::validate_material(rnp::SecurityContext &ctx,
      bool reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::X25519KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:1590,1
    - Dst: pgp::KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:1591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1587
    functionDepth: 0
    functionLinenumber: 1587
    functionLinenumberEnd: 1592
    functionName: pgp::X25519KeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 1
    functionsReached:
    - pgp::X25519KeyMaterial::clear_secret
    - pgp::KeyMaterial::clear_secret
    linkageType: ''
    returnType: void
    signature: void X25519KeyMaterial::clear_secret() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:1598,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/key_material.cpp:1599,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1600,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:1600,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:1600,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1594
    functionDepth: 1
    functionLinenumber: 1594
    functionLinenumberEnd: 1606
    functionName: pgp::X25519KeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::ec::Curve::get
    - pgp_packet_body_t::get
    - std::vector::size
    - auto::bytes
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool X25519KeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:1611,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/key_material.cpp:1612,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1613,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:1613,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:1613,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1608
    functionDepth: 1
    functionLinenumber: 1608
    functionLinenumberEnd: 1620
    functionName: pgp::X25519KeyMaterial::parse_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::ec::Curve::get
    - pgp_packet_body_t::get
    - std::vector::size
    - auto::bytes
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool X25519KeyMaterial::parse_secret(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:1625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1622
    functionDepth: 0
    functionLinenumber: 1622
    functionLinenumberEnd: 1626
    functionName: pgp::X25519KeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void X25519KeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:1631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1628
    functionDepth: 0
    functionLinenumber: 1628
    functionLinenumberEnd: 1632
    functionName: pgp::X25519KeyMaterial::write_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void X25519KeyMaterial::write_secret(pgp_packet_body_t &pkt) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_x25519_native
      Src: /src/rnp/src/lib/key_material.cpp:1637,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1638,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:1641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1634
    functionDepth: 1
    functionLinenumber: 1634
    functionLinenumberEnd: 1642
    functionName: pgp::X25519KeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - finish_generate
    - generate_x25519_native
    linkageType: ''
    returnType: bool
    signature: bool X25519KeyMaterial::generate(rnp::SecurityContext &ctx, const KeyParams
      &params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<X25519EncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1649,1
    - Dst: x25519_native_encrypt
      Src: /src/rnp/src/lib/key_material.cpp:1653,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/key_material.cpp:1653,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/key_material.cpp:1653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            out'
    - data
    argTypes:
    - rnp::SecurityContext
    - EncMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1644
    functionDepth: 1
    functionLinenumber: 1644
    functionLinenumberEnd: 1654
    functionName: pgp::X25519KeyMaterial::encrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - rnp::secure_bytes::data
    - rnp::secure_bytes::size
    - dynamic_cast<X25519EncMaterial *>
    - x25519_native_encrypt
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t X25519KeyMaterial::encrypt(rnp::SecurityContext &   ctx,\n
      \                          EncMaterial &            out,\n                           const
      rnp::secure_bytes &data) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const X25519EncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1661,1
    - Dst: resize
      Src: /src/rnp/src/lib/key_material.cpp:1665,1
    - Dst: size
      Src: /src/rnp/src/lib/key_material.cpp:1666,1
    - Dst: x25519_native_decrypt
      Src: /src/rnp/src/lib/key_material.cpp:1667,1
    - Dst: data
      Src: /src/rnp/src/lib/key_material.cpp:1667,1
    - Dst: resize
      Src: /src/rnp/src/lib/key_material.cpp:1669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - '   out'
    - '   in'
    argTypes:
    - rnp::SecurityContext
    - rnp::secure_bytes
    - EncMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1656
    functionDepth: 1
    functionLinenumber: 1656
    functionLinenumberEnd: 1672
    functionName: pgp::X25519KeyMaterial::decrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - data
    - x25519_native_decrypt
    - resize
    - dynamic_cast<const X25519EncMaterial *>
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t X25519KeyMaterial::decrypt(rnp::SecurityContext &ctx,\n
      \                          rnp::secure_bytes &   out,\n                           const
      EncMaterial &   in) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1674
    functionDepth: 0
    functionLinenumber: 1674
    functionLinenumberEnd: 1678
    functionName: pgp::X25519KeyMaterial::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t X25519KeyMaterial::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1680
    functionDepth: 0
    functionLinenumber: 1680
    functionLinenumberEnd: 1684
    functionName: pgp::X25519KeyMaterial::curve
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t X25519KeyMaterial::curve() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1686
    functionDepth: 0
    functionLinenumber: 1686
    functionLinenumberEnd: 1690
    functionName: '&

      X25519KeyMaterial::pub() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      X25519KeyMaterial::pub() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1692
    functionDepth: 0
    functionLinenumber: 1692
    functionLinenumberEnd: 1696
    functionName: '&

      X25519KeyMaterial::priv() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      X25519KeyMaterial::priv() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:1701,1
    - Dst: Ed448KeyMaterial::Ed448KeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:1701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1698
    functionDepth: 0
    functionLinenumber: 1698
    functionLinenumberEnd: 1702
    functionName: pgp::Ed448KeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - Ed448KeyMaterial::Ed448KeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> Ed448KeyMaterial::clone()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/key_material.cpp:1708,1
    - Dst: pub
      Src: /src/rnp/src/lib/key_material.cpp:1708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1704
    functionDepth: 0
    functionLinenumber: 1704
    functionLinenumberEnd: 1709
    functionName: pgp::Ed448KeyMaterial::grip_update
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub
    - rnp::Hash::add
    linkageType: ''
    returnType: void
    signature: void Ed448KeyMaterial::grip_update(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ed448_validate_key_native
      Src: /src/rnp/src/lib/key_material.cpp:1714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1711
    functionDepth: 0
    functionLinenumber: 1711
    functionLinenumberEnd: 1715
    functionName: pgp::Ed448KeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - ed448_validate_key_native
    linkageType: ''
    returnType: bool
    signature: bool Ed448KeyMaterial::validate_material(rnp::SecurityContext &ctx,
      bool reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::Ed448KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:1720,1
    - Dst: pgp::KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:1721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1717
    functionDepth: 0
    functionLinenumber: 1717
    functionLinenumberEnd: 1722
    functionName: pgp::Ed448KeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 1
    functionsReached:
    - pgp::Ed448KeyMaterial::clear_secret
    - pgp::KeyMaterial::clear_secret
    linkageType: ''
    returnType: void
    signature: void Ed448KeyMaterial::clear_secret() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:1728,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/key_material.cpp:1729,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1730,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:1730,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:1730,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1724
    functionDepth: 1
    functionLinenumber: 1724
    functionLinenumberEnd: 1736
    functionName: pgp::Ed448KeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - BITS_TO_BYTES
    - pgp::ec::Curve::get
    - pgp_packet_body_t::get
    - std::vector::size
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool Ed448KeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:1741,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/key_material.cpp:1742,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1743,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:1743,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:1743,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 1738
    functionDepth: 1
    functionLinenumber: 1738
    functionLinenumberEnd: 1750
    functionName: pgp::Ed448KeyMaterial::parse_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - BITS_TO_BYTES
    - pgp::ec::Curve::get
    - pgp_packet_body_t::get
    - std::vector::size
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool Ed448KeyMaterial::parse_secret(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:1755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1752
    functionDepth: 0
    functionLinenumber: 1752
    functionLinenumberEnd: 1756
    functionName: pgp::Ed448KeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void Ed448KeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:1761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1758
    functionDepth: 0
    functionLinenumber: 1758
    functionLinenumberEnd: 1762
    functionName: pgp::Ed448KeyMaterial::write_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void Ed448KeyMaterial::write_secret(pgp_packet_body_t &pkt) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_ed448_native
      Src: /src/rnp/src/lib/key_material.cpp:1767,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1768,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:1771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1764
    functionDepth: 1
    functionLinenumber: 1764
    functionLinenumberEnd: 1772
    functionName: pgp::Ed448KeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - finish_generate
    - generate_ed448_native
    linkageType: ''
    returnType: bool
    signature: bool Ed448KeyMaterial::generate(rnp::SecurityContext &ctx, const KeyParams
      &params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const Ed448SigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1779,1
    - Dst: ed448_verify_native
      Src: /src/rnp/src/lib/key_material.cpp:1783,1
    - Dst: data
      Src: /src/rnp/src/lib/key_material.cpp:1783,1
    - Dst: size
      Src: /src/rnp/src/lib/key_material.cpp:1783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - '         sig'
    - '   hash'
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1774
    functionDepth: 1
    functionLinenumber: 1774
    functionLinenumberEnd: 1784
    functionName: pgp::Ed448KeyMaterial::verify
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - data
    - ed448_verify_native
    - dynamic_cast<const Ed448SigMaterial *>
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Ed448KeyMaterial::verify(const rnp::SecurityContext &ctx,\n
      \                        const SigMaterial &         sig,\n                         const
      rnp::secure_bytes &   hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<Ed448SigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1791,1
    - Dst: ed448_sign_native
      Src: /src/rnp/src/lib/key_material.cpp:1795,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/key_material.cpp:1795,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/key_material.cpp:1795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            sig'
    - hash
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1786
    functionDepth: 1
    functionLinenumber: 1786
    functionLinenumberEnd: 1796
    functionName: pgp::Ed448KeyMaterial::sign
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - ed448_sign_native
    - dynamic_cast<Ed448SigMaterial *>
    - rnp::secure_bytes::data
    - rnp::secure_bytes::size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Ed448KeyMaterial::sign(rnp::SecurityContext &   ctx,\n
      \                      SigMaterial &            sig,\n                       const
      rnp::secure_bytes &hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::Ed448KeyMaterial::sig_hash_allowed
      Src: /src/rnp/src/lib/key_material.cpp:1801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1798
    functionDepth: 1
    functionLinenumber: 1798
    functionLinenumberEnd: 1805
    functionName: pgp::Ed448KeyMaterial::adjust_hash
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp::Ed448KeyMaterial::sig_hash_allowed
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t Ed448KeyMaterial::adjust_hash(pgp_hash_alg_t hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/key_material.cpp:1810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1807
    functionDepth: 0
    functionLinenumber: 1807
    functionLinenumberEnd: 1811
    functionName: pgp::Ed448KeyMaterial::sig_hash_allowed
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 1
    functionsReached:
    - rnp::Hash::size
    linkageType: ''
    returnType: bool
    signature: bool Ed448KeyMaterial::sig_hash_allowed(pgp_hash_alg_t hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1813
    functionDepth: 0
    functionLinenumber: 1813
    functionLinenumberEnd: 1817
    functionName: pgp::Ed448KeyMaterial::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Ed448KeyMaterial::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1819
    functionDepth: 0
    functionLinenumber: 1819
    functionLinenumberEnd: 1823
    functionName: pgp::Ed448KeyMaterial::curve
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t Ed448KeyMaterial::curve() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1825
    functionDepth: 0
    functionLinenumber: 1825
    functionLinenumberEnd: 1829
    functionName: '&

      Ed448KeyMaterial::pub() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      Ed448KeyMaterial::pub() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1831
    functionDepth: 0
    functionLinenumber: 1831
    functionLinenumberEnd: 1835
    functionName: '&

      Ed448KeyMaterial::priv() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      Ed448KeyMaterial::priv() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:1840,1
    - Dst: X448KeyMaterial::X448KeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:1840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1841
      start: 1837
    functionDepth: 0
    functionLinenumber: 1837
    functionLinenumberEnd: 1841
    functionName: pgp::X448KeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - X448KeyMaterial::X448KeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> X448KeyMaterial::clone()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/key_material.cpp:1847,1
    - Dst: pub
      Src: /src/rnp/src/lib/key_material.cpp:1847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1843
    functionDepth: 0
    functionLinenumber: 1843
    functionLinenumberEnd: 1848
    functionName: pgp::X448KeyMaterial::grip_update
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub
    - rnp::Hash::add
    linkageType: ''
    returnType: void
    signature: void X448KeyMaterial::grip_update(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x448_validate_key_native
      Src: /src/rnp/src/lib/key_material.cpp:1853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1854
      start: 1850
    functionDepth: 0
    functionLinenumber: 1850
    functionLinenumberEnd: 1854
    functionName: pgp::X448KeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - x448_validate_key_native
    linkageType: ''
    returnType: bool
    signature: bool X448KeyMaterial::validate_material(rnp::SecurityContext &ctx,
      bool reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::X448KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:1859,1
    - Dst: pgp::KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:1860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1856
    functionDepth: 0
    functionLinenumber: 1856
    functionLinenumberEnd: 1861
    functionName: pgp::X448KeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 1
    functionsReached:
    - pgp::X448KeyMaterial::clear_secret
    - pgp::KeyMaterial::clear_secret
    linkageType: ''
    returnType: void
    signature: void X448KeyMaterial::clear_secret() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:1867,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/key_material.cpp:1868,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1869,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:1869,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:1869,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1870,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1863
    functionDepth: 1
    functionLinenumber: 1863
    functionLinenumberEnd: 1875
    functionName: pgp::X448KeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - BITS_TO_BYTES
    - pgp::ec::Curve::get
    - pgp_packet_body_t::get
    - std::vector::size
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool X448KeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:1880,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/key_material.cpp:1881,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1882,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:1882,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:1882,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1877
    functionDepth: 1
    functionLinenumber: 1877
    functionLinenumberEnd: 1889
    functionName: pgp::X448KeyMaterial::parse_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - BITS_TO_BYTES
    - pgp::ec::Curve::get
    - pgp_packet_body_t::get
    - std::vector::size
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool X448KeyMaterial::parse_secret(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:1894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1891
    functionDepth: 0
    functionLinenumber: 1891
    functionLinenumberEnd: 1895
    functionName: pgp::X448KeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void X448KeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:1900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1897
    functionDepth: 0
    functionLinenumber: 1897
    functionLinenumberEnd: 1901
    functionName: pgp::X448KeyMaterial::write_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void X448KeyMaterial::write_secret(pgp_packet_body_t &pkt) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_x448_native
      Src: /src/rnp/src/lib/key_material.cpp:1906,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1907,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:1910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1903
    functionDepth: 1
    functionLinenumber: 1903
    functionLinenumberEnd: 1911
    functionName: pgp::X448KeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - finish_generate
    - generate_x448_native
    linkageType: ''
    returnType: bool
    signature: bool X448KeyMaterial::generate(rnp::SecurityContext &ctx, const KeyParams
      &params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<X448EncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1918,1
    - Dst: x25519_native_encrypt
      Src: /src/rnp/src/lib/key_material.cpp:1922,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/key_material.cpp:1922,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/key_material.cpp:1922,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            out'
    - data
    argTypes:
    - rnp::SecurityContext
    - EncMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 1913
    functionDepth: 1
    functionLinenumber: 1913
    functionLinenumberEnd: 1923
    functionName: pgp::X448KeyMaterial::encrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<X448EncMaterial *>
    - rnp::secure_bytes::data
    - rnp::secure_bytes::size
    - x25519_native_encrypt
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t X448KeyMaterial::encrypt(rnp::SecurityContext &   ctx,\n
      \                        EncMaterial &            out,\n                         const
      rnp::secure_bytes &data) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const X448EncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1930,1
    - Dst: resize
      Src: /src/rnp/src/lib/key_material.cpp:1934,1
    - Dst: size
      Src: /src/rnp/src/lib/key_material.cpp:1935,1
    - Dst: x448_native_decrypt
      Src: /src/rnp/src/lib/key_material.cpp:1936,1
    - Dst: data
      Src: /src/rnp/src/lib/key_material.cpp:1936,1
    - Dst: resize
      Src: /src/rnp/src/lib/key_material.cpp:1938,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - '   out'
    - '   in'
    argTypes:
    - rnp::SecurityContext
    - rnp::secure_bytes
    - EncMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1941
      start: 1925
    functionDepth: 1
    functionLinenumber: 1925
    functionLinenumberEnd: 1941
    functionName: pgp::X448KeyMaterial::decrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - data
    - x448_native_decrypt
    - resize
    - dynamic_cast<const X448EncMaterial *>
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t X448KeyMaterial::decrypt(rnp::SecurityContext &ctx,\n
      \                        rnp::secure_bytes &   out,\n                         const
      EncMaterial &   in) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1943
    functionDepth: 0
    functionLinenumber: 1943
    functionLinenumberEnd: 1947
    functionName: pgp::X448KeyMaterial::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t X448KeyMaterial::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1949
    functionDepth: 0
    functionLinenumber: 1949
    functionLinenumberEnd: 1953
    functionName: pgp::X448KeyMaterial::curve
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t X448KeyMaterial::curve() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1955
    functionDepth: 0
    functionLinenumber: 1955
    functionLinenumberEnd: 1959
    functionName: '&

      X448KeyMaterial::pub() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      X448KeyMaterial::pub() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1965
      start: 1961
    functionDepth: 0
    functionLinenumber: 1961
    functionLinenumberEnd: 1965
    functionName: '&

      X448KeyMaterial::priv() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      X448KeyMaterial::priv() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:1972,1
    - Dst: MlkemEcdhKeyMaterial::MlkemEcdhKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:1972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1969
    functionDepth: 0
    functionLinenumber: 1969
    functionLinenumberEnd: 1973
    functionName: pgp::MlkemEcdhKeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - MlkemEcdhKeyMaterial::MlkemEcdhKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> MlkemEcdhKeyMaterial::clone()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/key_material.cpp:1978,1
    - Dst: pub
      Src: /src/rnp/src/lib/key_material.cpp:1978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1975
    functionDepth: 0
    functionLinenumber: 1975
    functionLinenumberEnd: 1979
    functionName: pgp::MlkemEcdhKeyMaterial::grip_update
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub
    - rnp::Hash::add
    linkageType: ''
    returnType: void
    signature: void MlkemEcdhKeyMaterial::grip_update(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kyber_ecdh_validate_key
      Src: /src/rnp/src/lib/key_material.cpp:1984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1981
    functionDepth: 1
    functionLinenumber: 1981
    functionLinenumberEnd: 1985
    functionName: pgp::MlkemEcdhKeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - kyber_ecdh_validate_key
    linkageType: ''
    returnType: bool
    signature: bool MlkemEcdhKeyMaterial::validate_material(rnp::SecurityContext &ctx,
      bool reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: priv::secure_clear
      Src: /src/rnp/src/lib/key_material.cpp:1990,1
    - Dst: pgp::KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:1991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1992
      start: 1987
    functionDepth: 0
    functionLinenumber: 1987
    functionLinenumberEnd: 1992
    functionName: pgp::MlkemEcdhKeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - priv::secure_clear
    - pgp::KeyMaterial::clear_secret
    linkageType: ''
    returnType: void
    signature: void MlkemEcdhKeyMaterial::clear_secret() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1999,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:1999,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:1999,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:2000,1
    - Dst: pgp_kyber_ecdh_composite_public_key_t
      Src: /src/rnp/src/lib/key_material.cpp:2003,1
    - Dst: alg
      Src: /src/rnp/src/lib/key_material.cpp:2003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2005
      start: 1994
    functionDepth: 1
    functionLinenumber: 1994
    functionLinenumberEnd: 2005
    functionName: pgp::MlkemEcdhKeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_kyber_ecdh_composite_public_key_t
    - pgp_packet_body_t::get
    - std::vector::size
    - alg
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool MlkemEcdhKeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:2011,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:2011,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:2011,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:2012,1
    - Dst: pgp_kyber_ecdh_composite_private_key_t
      Src: /src/rnp/src/lib/key_material.cpp:2015,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:2015,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:2015,1
    - Dst: alg
      Src: /src/rnp/src/lib/key_material.cpp:2015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 2007
    functionDepth: 1
    functionLinenumber: 2007
    functionLinenumberEnd: 2018
    functionName: pgp::MlkemEcdhKeyMaterial::parse_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_kyber_ecdh_composite_private_key_t
    - pgp_packet_body_t::get
    - std::vector::size
    - alg
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool MlkemEcdhKeyMaterial::parse_secret(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:2023,1
    - Dst: pub::get_encoded
      Src: /src/rnp/src/lib/key_material.cpp:2023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2024
      start: 2020
    functionDepth: 0
    functionLinenumber: 2020
    functionLinenumberEnd: 2024
    functionName: pgp::MlkemEcdhKeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    - pub::get_encoded
    linkageType: ''
    returnType: void
    signature: void MlkemEcdhKeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:2029,1
    - Dst: priv::get_encoded
      Src: /src/rnp/src/lib/key_material.cpp:2029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2026
    functionDepth: 0
    functionLinenumber: 2026
    functionLinenumberEnd: 2030
    functionName: pgp::MlkemEcdhKeyMaterial::write_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    - priv::get_encoded
    linkageType: ''
    returnType: void
    signature: void MlkemEcdhKeyMaterial::write_secret(pgp_packet_body_t &pkt) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_kyber_ecdh_composite_key_t::gen_keypair
      Src: /src/rnp/src/lib/key_material.cpp:2035,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:2036,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:2039,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 2032
    functionDepth: 1
    functionLinenumber: 2032
    functionLinenumberEnd: 2040
    functionName: pgp::MlkemEcdhKeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_kyber_ecdh_composite_key_t::gen_keypair
    - finish_generate
    linkageType: ''
    returnType: bool
    signature: bool MlkemEcdhKeyMaterial::generate(rnp::SecurityContext &ctx, const
      KeyParams &params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<MlkemEcdhEncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:2047,1
    - Dst: pub::encrypt
      Src: /src/rnp/src/lib/key_material.cpp:2051,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/key_material.cpp:2051,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/key_material.cpp:2051,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            out'
    - data
    argTypes:
    - rnp::SecurityContext
    - EncMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2052
      start: 2042
    functionDepth: 1
    functionLinenumber: 2042
    functionLinenumberEnd: 2052
    functionName: pgp::MlkemEcdhKeyMaterial::encrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - rnp::secure_bytes::data
    - rnp::secure_bytes::size
    - pub::encrypt
    - dynamic_cast<MlkemEcdhEncMaterial *>
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t MlkemEcdhKeyMaterial::encrypt(rnp::SecurityContext &
      \  ctx,\n                              EncMaterial &            out,\n                              const
      rnp::secure_bytes &data) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const MlkemEcdhEncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:2059,1
    - Dst: resize
      Src: /src/rnp/src/lib/key_material.cpp:2063,1
    - Dst: size
      Src: /src/rnp/src/lib/key_material.cpp:2064,1
    - Dst: priv::decrypt
      Src: /src/rnp/src/lib/key_material.cpp:2065,1
    - Dst: data
      Src: /src/rnp/src/lib/key_material.cpp:2065,1
    - Dst: pub
      Src: /src/rnp/src/lib/key_material.cpp:2065,1
    - Dst: resize
      Src: /src/rnp/src/lib/key_material.cpp:2067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - '   out'
    - '   in'
    argTypes:
    - rnp::SecurityContext
    - rnp::secure_bytes
    - EncMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2070
      start: 2054
    functionDepth: 1
    functionLinenumber: 2054
    functionLinenumberEnd: 2070
    functionName: pgp::MlkemEcdhKeyMaterial::decrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const MlkemEcdhEncMaterial *>
    - data
    - resize
    - priv::decrypt
    - pub
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t MlkemEcdhKeyMaterial::decrypt(rnp::SecurityContext &ctx,\n
      \                             rnp::secure_bytes &   out,\n                              const
      EncMaterial &   in) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pub
      Src: /src/rnp/src/lib/key_material.cpp:2075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2076
      start: 2072
    functionDepth: 0
    functionLinenumber: 2072
    functionLinenumberEnd: 2076
    functionName: pgp::MlkemEcdhKeyMaterial::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub
    linkageType: ''
    returnType: size_t
    signature: size_t MlkemEcdhKeyMaterial::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2082
      start: 2078
    functionDepth: 0
    functionLinenumber: 2078
    functionLinenumberEnd: 2082
    functionName: '&

      MlkemEcdhKeyMaterial::pub() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_kyber_ecdh_composite_public_key_t
    signature: 'pgp_kyber_ecdh_composite_public_key_t &

      MlkemEcdhKeyMaterial::pub() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 2084
    functionDepth: 0
    functionLinenumber: 2084
    functionLinenumberEnd: 2088
    functionName: '&

      MlkemEcdhKeyMaterial::priv() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_kyber_ecdh_composite_private_key_t
    signature: 'pgp_kyber_ecdh_composite_private_key_t &

      MlkemEcdhKeyMaterial::priv() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:2095,1
    - Dst: DilithiumEccKeyMaterial::DilithiumEccKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:2095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2096
      start: 2092
    functionDepth: 0
    functionLinenumber: 2092
    functionLinenumberEnd: 2096
    functionName: pgp::DilithiumEccKeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - DilithiumEccKeyMaterial::DilithiumEccKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> DilithiumEccKeyMaterial::clone()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/key_material.cpp:2101,1
    - Dst: pub
      Src: /src/rnp/src/lib/key_material.cpp:2101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2098
    functionDepth: 0
    functionLinenumber: 2098
    functionLinenumberEnd: 2102
    functionName: pgp::DilithiumEccKeyMaterial::grip_update
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub
    - rnp::Hash::add
    linkageType: ''
    returnType: void
    signature: void DilithiumEccKeyMaterial::grip_update(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dilithium_exdsa_validate_key
      Src: /src/rnp/src/lib/key_material.cpp:2107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2108
      start: 2104
    functionDepth: 1
    functionLinenumber: 2104
    functionLinenumberEnd: 2108
    functionName: pgp::DilithiumEccKeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dilithium_exdsa_validate_key
    linkageType: ''
    returnType: bool
    signature: bool DilithiumEccKeyMaterial::validate_material(rnp::SecurityContext
      &ctx, bool reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: priv::secure_clear
      Src: /src/rnp/src/lib/key_material.cpp:2113,1
    - Dst: pgp::KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:2114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2115
      start: 2110
    functionDepth: 0
    functionLinenumber: 2110
    functionLinenumberEnd: 2115
    functionName: pgp::DilithiumEccKeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - priv::secure_clear
    - pgp::KeyMaterial::clear_secret
    linkageType: ''
    returnType: void
    signature: void DilithiumEccKeyMaterial::clear_secret() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:2122,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:2122,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:2122,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:2123,1
    - Dst: pgp_dilithium_exdsa_composite_public_key_t
      Src: /src/rnp/src/lib/key_material.cpp:2126,1
    - Dst: alg
      Src: /src/rnp/src/lib/key_material.cpp:2126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2128
      start: 2117
    functionDepth: 1
    functionLinenumber: 2117
    functionLinenumberEnd: 2128
    functionName: pgp::DilithiumEccKeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_dilithium_exdsa_composite_public_key_t
    - pgp_packet_body_t::get
    - std::vector::size
    - alg
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool DilithiumEccKeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:2134,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:2134,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:2134,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:2135,1
    - Dst: pgp_dilithium_exdsa_composite_private_key_t
      Src: /src/rnp/src/lib/key_material.cpp:2138,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:2138,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:2138,1
    - Dst: alg
      Src: /src/rnp/src/lib/key_material.cpp:2138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2141
      start: 2130
    functionDepth: 1
    functionLinenumber: 2130
    functionLinenumberEnd: 2141
    functionName: pgp::DilithiumEccKeyMaterial::parse_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    - pgp_dilithium_exdsa_composite_private_key_t
    - std::vector::size
    - alg
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool DilithiumEccKeyMaterial::parse_secret(pgp_packet_body_t &pkt)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:2146,1
    - Dst: pub::get_encoded
      Src: /src/rnp/src/lib/key_material.cpp:2146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2143
    functionDepth: 0
    functionLinenumber: 2143
    functionLinenumberEnd: 2147
    functionName: pgp::DilithiumEccKeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    - pub::get_encoded
    linkageType: ''
    returnType: void
    signature: void DilithiumEccKeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:2152,1
    - Dst: priv::get_encoded
      Src: /src/rnp/src/lib/key_material.cpp:2152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2153
      start: 2149
    functionDepth: 0
    functionLinenumber: 2149
    functionLinenumberEnd: 2153
    functionName: pgp::DilithiumEccKeyMaterial::write_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    - priv::get_encoded
    linkageType: ''
    returnType: void
    signature: void DilithiumEccKeyMaterial::write_secret(pgp_packet_body_t &pkt)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_dilithium_exdsa_composite_key_t::gen_keypair
      Src: /src/rnp/src/lib/key_material.cpp:2158,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:2159,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:2162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2163
      start: 2155
    functionDepth: 1
    functionLinenumber: 2155
    functionLinenumberEnd: 2163
    functionName: pgp::DilithiumEccKeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - finish_generate
    - pgp_dilithium_exdsa_composite_key_t::gen_keypair
    linkageType: ''
    returnType: bool
    signature: bool DilithiumEccKeyMaterial::generate(rnp::SecurityContext &ctx, const
      KeyParams &params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const DilithiumSigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:2170,1
    - Dst: pub::verify
      Src: /src/rnp/src/lib/key_material.cpp:2174,1
    - Dst: data
      Src: /src/rnp/src/lib/key_material.cpp:2174,1
    - Dst: size
      Src: /src/rnp/src/lib/key_material.cpp:2174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - '         sig'
    - '   hash'
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2175
      start: 2165
    functionDepth: 1
    functionLinenumber: 2165
    functionLinenumberEnd: 2175
    functionName: pgp::DilithiumEccKeyMaterial::verify
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub::verify
    - data
    - dynamic_cast<const DilithiumSigMaterial *>
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t DilithiumEccKeyMaterial::verify(const rnp::SecurityContext
      &ctx,\n                                const SigMaterial &         sig,\n                                const
      rnp::secure_bytes &   hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<DilithiumSigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:2182,1
    - Dst: priv::sign
      Src: /src/rnp/src/lib/key_material.cpp:2186,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/key_material.cpp:2187,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/key_material.cpp:2187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            sig'
    - hash
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2177
    functionDepth: 1
    functionLinenumber: 2177
    functionLinenumberEnd: 2188
    functionName: pgp::DilithiumEccKeyMaterial::sign
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - rnp::secure_bytes::data
    - priv::sign
    - dynamic_cast<DilithiumSigMaterial *>
    - rnp::secure_bytes::size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t DilithiumEccKeyMaterial::sign(rnp::SecurityContext &
      \  ctx,\n                              SigMaterial &            sig,\n                              const
      rnp::secure_bytes &hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::DilithiumEccKeyMaterial::sig_hash_allowed
      Src: /src/rnp/src/lib/key_material.cpp:2193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2197
      start: 2190
    functionDepth: 1
    functionLinenumber: 2190
    functionLinenumberEnd: 2197
    functionName: pgp::DilithiumEccKeyMaterial::adjust_hash
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp::DilithiumEccKeyMaterial::sig_hash_allowed
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t DilithiumEccKeyMaterial::adjust_hash(pgp_hash_alg_t
      hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/key_material.cpp:2202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2203
      start: 2199
    functionDepth: 0
    functionLinenumber: 2199
    functionLinenumberEnd: 2203
    functionName: pgp::DilithiumEccKeyMaterial::sig_hash_allowed
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 1
    functionsReached:
    - rnp::Hash::size
    linkageType: ''
    returnType: bool
    signature: bool DilithiumEccKeyMaterial::sig_hash_allowed(pgp_hash_alg_t hash)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pub
      Src: /src/rnp/src/lib/key_material.cpp:2208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2205
    functionDepth: 0
    functionLinenumber: 2205
    functionLinenumberEnd: 2209
    functionName: pgp::DilithiumEccKeyMaterial::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub
    linkageType: ''
    returnType: size_t
    signature: size_t DilithiumEccKeyMaterial::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2215
      start: 2211
    functionDepth: 0
    functionLinenumber: 2211
    functionLinenumberEnd: 2215
    functionName: '&

      DilithiumEccKeyMaterial::pub() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_dilithium_exdsa_composite_public_key_t
    signature: 'pgp_dilithium_exdsa_composite_public_key_t &

      DilithiumEccKeyMaterial::pub() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2221
      start: 2217
    functionDepth: 0
    functionLinenumber: 2217
    functionLinenumberEnd: 2221
    functionName: '&

      DilithiumEccKeyMaterial::priv() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_dilithium_exdsa_composite_private_key_t
    signature: 'pgp_dilithium_exdsa_composite_private_key_t &

      DilithiumEccKeyMaterial::priv() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:2226,1
    - Dst: SlhdsaKeyMaterial::SlhdsaKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:2226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2227
      start: 2223
    functionDepth: 0
    functionLinenumber: 2223
    functionLinenumberEnd: 2227
    functionName: pgp::SlhdsaKeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - SlhdsaKeyMaterial::SlhdsaKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> SlhdsaKeyMaterial::clone()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/key_material.cpp:2232,1
    - Dst: pub
      Src: /src/rnp/src/lib/key_material.cpp:2232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2229
    functionDepth: 0
    functionLinenumber: 2229
    functionLinenumberEnd: 2233
    functionName: pgp::SlhdsaKeyMaterial::grip_update
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub
    - rnp::Hash::add
    linkageType: ''
    returnType: void
    signature: void SlhdsaKeyMaterial::grip_update(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sphincsplus_validate_key
      Src: /src/rnp/src/lib/key_material.cpp:2238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2239
      start: 2235
    functionDepth: 0
    functionLinenumber: 2235
    functionLinenumberEnd: 2239
    functionName: pgp::SlhdsaKeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - sphincsplus_validate_key
    linkageType: ''
    returnType: bool
    signature: bool SlhdsaKeyMaterial::validate_material(rnp::SecurityContext &ctx,
      bool reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: priv::secure_clear
      Src: /src/rnp/src/lib/key_material.cpp:2244,1
    - Dst: pgp::KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:2245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2241
    functionDepth: 0
    functionLinenumber: 2241
    functionLinenumberEnd: 2246
    functionName: pgp::SlhdsaKeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - priv::secure_clear
    - pgp::KeyMaterial::clear_secret
    linkageType: ''
    returnType: void
    signature: void SlhdsaKeyMaterial::clear_secret() noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sphincsplus_pubkey_size
      Src: /src/rnp/src/lib/key_material.cpp:2252,1
    - Dst: alg
      Src: /src/rnp/src/lib/key_material.cpp:2252,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:2254,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:2258,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:2258,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:2258,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:2259,1
    - Dst: pgp_sphincsplus_public_key_t
      Src: /src/rnp/src/lib/key_material.cpp:2262,1
    - Dst: alg
      Src: /src/rnp/src/lib/key_material.cpp:2262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2264
      start: 2248
    functionDepth: 1
    functionLinenumber: 2248
    functionLinenumberEnd: 2264
    functionName: pgp::SlhdsaKeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - sphincsplus_pubkey_size
    - pgp_sphincsplus_public_key_t
    - pgp_packet_body_t::get
    - std::vector::size
    - alg
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool SlhdsaKeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:2270,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:2270,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:2270,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:2271,1
    - Dst: pgp_sphincsplus_private_key_t
      Src: /src/rnp/src/lib/key_material.cpp:2274,1
    - Dst: alg
      Src: /src/rnp/src/lib/key_material.cpp:2274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2277
      start: 2266
    functionDepth: 1
    functionLinenumber: 2266
    functionLinenumberEnd: 2277
    functionName: pgp::SlhdsaKeyMaterial::parse_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    - std::vector::size
    - pgp_sphincsplus_private_key_t
    - alg
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool SlhdsaKeyMaterial::parse_secret(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:2282,1
    - Dst: pub::get_encoded
      Src: /src/rnp/src/lib/key_material.cpp:2282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2283
      start: 2279
    functionDepth: 0
    functionLinenumber: 2279
    functionLinenumberEnd: 2283
    functionName: pgp::SlhdsaKeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    - pub::get_encoded
    linkageType: ''
    returnType: void
    signature: void SlhdsaKeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:2288,1
    - Dst: priv::get_encoded
      Src: /src/rnp/src/lib/key_material.cpp:2288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2289
      start: 2285
    functionDepth: 0
    functionLinenumber: 2285
    functionLinenumberEnd: 2289
    functionName: pgp::SlhdsaKeyMaterial::write_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    - priv::get_encoded
    linkageType: ''
    returnType: void
    signature: void SlhdsaKeyMaterial::write_secret(pgp_packet_body_t &pkt) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_sphincsplus_generate
      Src: /src/rnp/src/lib/key_material.cpp:2294,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:2295,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:2298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2299
      start: 2291
    functionDepth: 1
    functionLinenumber: 2291
    functionLinenumberEnd: 2299
    functionName: pgp::SlhdsaKeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - finish_generate
    - pgp_sphincsplus_generate
    linkageType: ''
    returnType: bool
    signature: bool SlhdsaKeyMaterial::generate(rnp::SecurityContext &ctx, const KeyParams
      &params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const SlhdsaSigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:2306,1
    - Dst: pub::verify
      Src: /src/rnp/src/lib/key_material.cpp:2310,1
    - Dst: data
      Src: /src/rnp/src/lib/key_material.cpp:2310,1
    - Dst: size
      Src: /src/rnp/src/lib/key_material.cpp:2310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - '         sig'
    - '   hash'
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2311
      start: 2301
    functionDepth: 1
    functionLinenumber: 2301
    functionLinenumberEnd: 2311
    functionName: pgp::SlhdsaKeyMaterial::verify
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub::verify
    - data
    - dynamic_cast<const SlhdsaSigMaterial *>
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t SlhdsaKeyMaterial::verify(const rnp::SecurityContext
      &ctx,\n                          const SigMaterial &         sig,\n                          const
      rnp::secure_bytes &   hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<SlhdsaSigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:2318,1
    - Dst: priv::sign
      Src: /src/rnp/src/lib/key_material.cpp:2322,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/key_material.cpp:2322,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/key_material.cpp:2322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            sig'
    - hash
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2323
      start: 2313
    functionDepth: 1
    functionLinenumber: 2313
    functionLinenumberEnd: 2323
    functionName: pgp::SlhdsaKeyMaterial::sign
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<SlhdsaSigMaterial *>
    - rnp::secure_bytes::data
    - rnp::secure_bytes::size
    - priv::sign
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t SlhdsaKeyMaterial::sign(rnp::SecurityContext &   ctx,\n
      \                       SigMaterial &            sig,\n                        const
      rnp::secure_bytes &hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::SlhdsaKeyMaterial::sig_hash_allowed
      Src: /src/rnp/src/lib/key_material.cpp:2328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2325
    functionDepth: 1
    functionLinenumber: 2325
    functionLinenumberEnd: 2332
    functionName: pgp::SlhdsaKeyMaterial::adjust_hash
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp::SlhdsaKeyMaterial::sig_hash_allowed
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t SlhdsaKeyMaterial::adjust_hash(pgp_hash_alg_t hash)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/key_material.cpp:2337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2338
    functionName: pgp::SlhdsaKeyMaterial::sig_hash_allowed
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 1
    functionsReached:
    - rnp::Hash::size
    linkageType: ''
    returnType: bool
    signature: bool SlhdsaKeyMaterial::sig_hash_allowed(pgp_hash_alg_t hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pub
      Src: /src/rnp/src/lib/key_material.cpp:2343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2344
      start: 2340
    functionDepth: 0
    functionLinenumber: 2340
    functionLinenumberEnd: 2344
    functionName: pgp::SlhdsaKeyMaterial::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub
    linkageType: ''
    returnType: size_t
    signature: size_t SlhdsaKeyMaterial::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 2346
    functionDepth: 0
    functionLinenumber: 2346
    functionLinenumberEnd: 2350
    functionName: '&

      SlhdsaKeyMaterial::pub() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_sphincsplus_public_key_t
    signature: 'pgp_sphincsplus_public_key_t &

      SlhdsaKeyMaterial::pub() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2356
      start: 2352
    functionDepth: 0
    functionLinenumber: 2352
    functionLinenumberEnd: 2356
    functionName: '&

      SlhdsaKeyMaterial::priv() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_sphincsplus_private_key_t
    signature: 'pgp_sphincsplus_private_key_t &

      SlhdsaKeyMaterial::priv() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 126
    functionDepth: 0
    functionLinenumber: 126
    functionLinenumberEnd: 128
    functionName: KeyParams::~KeyParams()
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyParams::~KeyParams()
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:137,1
    - Dst: RSAKeyParams::RSAKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:137,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:139,1
    - Dst: ECDSAKeyParams::ECDSAKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:139,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:141,1
    - Dst: ECCKeyParams::ECCKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:141,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:143,1
    - Dst: ECCKeyParams::ECCKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:143,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:145,1
    - Dst: ECCKeyParams::ECCKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:145,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:148,1
    - Dst: ECCKeyParams::ECCKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:148,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:150,1
    - Dst: ECCKeyParams::ECCKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:150,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:152,1
    - Dst: ECCKeyParams::ECCKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:152,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:154,1
    - Dst: ECCKeyParams::ECCKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:154,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:157,1
    - Dst: DSAKeyParams::DSAKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:157,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:160,1
    - Dst: EGKeyParams::EGKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:160,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:175,1
    - Dst: MlkemEcdhKeyParams::MlkemEcdhKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:175,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:189,1
    - Dst: DilithiumEccKeyParams::DilithiumEccKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:189,1
    - Dst: std::unique_ptr<KeyParams>
      Src: /src/rnp/src/lib/key_material.cpp:195,1
    - Dst: SlhdsaKeyParams::SlhdsaKeyParams
      Src: /src/rnp/src/lib/key_material.cpp:195,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/key_material.cpp:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 60
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 200
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 200
    functionName: pgp::KeyParams::create
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - DilithiumEccKeyParams::DilithiumEccKeyParams
    - MlkemEcdhKeyParams::MlkemEcdhKeyParams
    - ECCKeyParams::ECCKeyParams
    - EGKeyParams::EGKeyParams
    - DSAKeyParams::DSAKeyParams
    - rnp::rnp_exception::rnp_exception
    - std::unique_ptr<KeyParams>
    - ECDSAKeyParams::ECDSAKeyParams
    - RSAKeyParams::RSAKeyParams
    - SlhdsaKeyParams::SlhdsaKeyParams
    linkageType: ''
    returnType: std::unique_ptr<KeyParams>
    signature: std::unique_ptr<KeyParams> KeyParams::create(pgp_pubkey_alg_t alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::dsa::Key::choose_qsize
      Src: /src/rnp/src/lib/key_material.cpp:206,1
    - Dst: bits
      Src: /src/rnp/src/lib/key_material.cpp:206,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 202
    functionDepth: 1
    functionLinenumber: 202
    functionLinenumberEnd: 208
    functionName: pgp::DSAKeyParams::check_defaults
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - bits
    - pgp::dsa::Key::choose_qsize
    linkageType: ''
    returnType: void
    signature: void DSAKeyParams::check_defaults() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::dsa::Key::get_min_hash
      Src: /src/rnp/src/lib/key_material.cpp:213,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: pgp::DSAKeyParams::min_hash
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp::dsa::Key::get_min_hash
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t DSAKeyParams::min_hash() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:219,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 216
    functionDepth: 0
    functionLinenumber: 216
    functionLinenumberEnd: 221
    functionName: pgp::ECCKeyParams::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp::ec::Curve::get
    linkageType: ''
    returnType: size_t
    signature: size_t ECCKeyParams::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ecdsa::get_min_hash
      Src: /src/rnp/src/lib/key_material.cpp:226,1
    - Dst: curve
      Src: /src/rnp/src/lib/key_material.cpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: pgp::ECDSAKeyParams::min_hash
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - curve
    - pgp::ecdsa::get_min_hash
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t ECDSAKeyParams::min_hash() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_kyber_ecdh_composite_public_key_t::encoded_size
      Src: /src/rnp/src/lib/key_material.cpp:233,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 230
    functionDepth: 1
    functionLinenumber: 230
    functionLinenumberEnd: 234
    functionName: pgp::MlkemEcdhKeyParams::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_kyber_ecdh_composite_public_key_t::encoded_size
    linkageType: ''
    returnType: size_t
    signature: size_t MlkemEcdhKeyParams::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_dilithium_exdsa_composite_public_key_t::encoded_size
      Src: /src/rnp/src/lib/key_material.cpp:241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 242
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 242
    functionName: pgp::DilithiumEccKeyParams::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_dilithium_exdsa_composite_public_key_t::encoded_size
    linkageType: ''
    returnType: size_t
    signature: size_t DilithiumEccKeyParams::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sphincsplus_pubkey_size
      Src: /src/rnp/src/lib/key_material.cpp:247,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 248
    functionName: pgp::SlhdsaKeyParams::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - sphincsplus_pubkey_size
    linkageType: ''
    returnType: size_t
    signature: size_t SlhdsaKeyParams::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 251
    functionDepth: 0
    functionLinenumber: 251
    functionLinenumberEnd: 253
    functionName: KeyMaterial::~KeyMaterial()
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyMaterial::~KeyMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 0
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: pgp::KeyMaterial::alg
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_pubkey_alg_t
    signature: pgp_pubkey_alg_t KeyMaterial::alg() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 261
    functionDepth: 0
    functionLinenumber: 261
    functionLinenumberEnd: 265
    functionName: pgp::KeyMaterial::secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool KeyMaterial::secret() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 267
    functionDepth: 0
    functionLinenumber: 267
    functionLinenumberEnd: 271
    functionName: pgp::KeyMaterial::valid
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool KeyMaterial::valid() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/rnp/src/lib/key_material.cpp:279,1
    - Dst: validate_material
      Src: /src/rnp/src/lib/key_material.cpp:284,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 287
      start: 273
    functionDepth: 1
    functionLinenumber: 273
    functionLinenumberEnd: 287
    functionName: pgp::KeyMaterial::validate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - reset
    - validate_material
    linkageType: ''
    returnType: void
    signature: void KeyMaterial::validate(rnp::SecurityContext &ctx, bool reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 289
    functionDepth: 0
    functionLinenumber: 289
    functionLinenumberEnd: 293
    functionName: '&

      KeyMaterial::validity() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_validity_t
    signature: 'pgp_validity_t &

      KeyMaterial::validity() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - pgp_validity_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: pgp::KeyMaterial::set_validity
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyMaterial::set_validity(const pgp_validity_t &val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/rnp/src/lib/key_material.cpp:304,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 1
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: pgp::KeyMaterial::reset_validity
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void KeyMaterial::reset_validity()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 307
    functionDepth: 0
    functionLinenumber: 307
    functionLinenumberEnd: 311
    functionName: pgp::KeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyMaterial::clear_secret() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: mark_valid
      Src: /src/rnp/src/lib/key_material.cpp:316,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 319
    functionName: pgp::KeyMaterial::finish_generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - mark_valid
    linkageType: ''
    returnType: bool
    signature: bool KeyMaterial::finish_generate()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 321
    functionDepth: 1
    functionLinenumber: 321
    functionLinenumberEnd: 326
    functionName: pgp::KeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: bool
    signature: bool KeyMaterial::generate(rnp::SecurityContext &ctx, const KeyParams
      &params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - '   ctx'
    - '            out'
    - data
    argTypes:
    - rnp::SecurityContext
    - EncMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 334
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 334
    functionName: pgp::KeyMaterial::encrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t KeyMaterial::encrypt(rnp::SecurityContext &   ctx,\n
      \                    EncMaterial &            out,\n                     const
      rnp::secure_bytes &data) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - '   out'
    - '   in'
    argTypes:
    - rnp::SecurityContext
    - rnp::secure_bytes
    - EncMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 336
    functionDepth: 0
    functionLinenumber: 336
    functionLinenumberEnd: 342
    functionName: pgp::KeyMaterial::decrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t KeyMaterial::decrypt(rnp::SecurityContext &ctx,\n                     rnp::secure_bytes
      &   out,\n                     const EncMaterial &   in) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ctx
    - '         sig'
    - '   hash'
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 350
    functionName: pgp::KeyMaterial::verify
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t KeyMaterial::verify(const rnp::SecurityContext &ctx,\n
      \                   const SigMaterial &         sig,\n                    const
      rnp::secure_bytes &   hash) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - '   ctx'
    - '            sig'
    - hash
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 358
      start: 352
    functionDepth: 0
    functionLinenumber: 352
    functionLinenumberEnd: 358
    functionName: pgp::KeyMaterial::sign
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t KeyMaterial::sign(rnp::SecurityContext &   ctx,\n                  SigMaterial
      &            sig,\n                  const rnp::secure_bytes &hash) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 364
    functionName: pgp::KeyMaterial::adjust_hash
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t KeyMaterial::adjust_hash(pgp_hash_alg_t hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: pgp::KeyMaterial::sig_hash_allowed
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool KeyMaterial::sig_hash_allowed(pgp_hash_alg_t hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 372
    functionDepth: 0
    functionLinenumber: 372
    functionLinenumberEnd: 376
    functionName: pgp::KeyMaterial::curve
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t KeyMaterial::curve() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/lib/key_material.cpp:381,1
    - Dst: grip_update
      Src: /src/rnp/src/lib/key_material.cpp:382,1
    - Dst: auto::finish
      Src: /src/rnp/src/lib/key_material.cpp:384,1
    - Dst: KeyGrip::data
      Src: /src/rnp/src/lib/key_material.cpp:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 386
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 386
    functionName: pgp::KeyMaterial::grip
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - rnp::Hash::create
    - KeyGrip::data
    - grip_update
    - auto::finish
    linkageType: ''
    returnType: KeyGrip
    signature: KeyGrip KeyMaterial::grip() const
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:395,1
    - Dst: RSAKeyMaterial::RSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:395,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:398,1
    - Dst: EGKeyMaterial::EGKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:398,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:400,1
    - Dst: DSAKeyMaterial::DSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:400,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:402,1
    - Dst: ECDHKeyMaterial::ECDHKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:402,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:404,1
    - Dst: ECDSAKeyMaterial::ECDSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:404,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:406,1
    - Dst: EDDSAKeyMaterial::EDDSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:406,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:409,1
    - Dst: Ed25519KeyMaterial::Ed25519KeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:409,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:411,1
    - Dst: X25519KeyMaterial::X25519KeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:411,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:413,1
    - Dst: Ed448KeyMaterial::Ed448KeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:413,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:415,1
    - Dst: X448KeyMaterial::X448KeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:415,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:418,1
    - Dst: SM2KeyMaterial::SM2KeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:418,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:433,1
    - Dst: MlkemEcdhKeyMaterial::MlkemEcdhKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:433,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:447,1
    - Dst: DilithiumEccKeyMaterial::DilithiumEccKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:447,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:453,1
    - Dst: SlhdsaKeyMaterial::SlhdsaKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:453,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 60
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 458
    functionName: pgp::KeyMaterial::create
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - SM2KeyMaterial::SM2KeyMaterial
    - Ed448KeyMaterial::Ed448KeyMaterial
    - EGKeyMaterial::EGKeyMaterial
    - RSAKeyMaterial::RSAKeyMaterial
    - std::unique_ptr<KeyMaterial>
    - MlkemEcdhKeyMaterial::MlkemEcdhKeyMaterial
    - ECDHKeyMaterial::ECDHKeyMaterial
    - DilithiumEccKeyMaterial::DilithiumEccKeyMaterial
    - Ed25519KeyMaterial::Ed25519KeyMaterial
    - DSAKeyMaterial::DSAKeyMaterial
    - SlhdsaKeyMaterial::SlhdsaKeyMaterial
    - ECDSAKeyMaterial::ECDSAKeyMaterial
    - X448KeyMaterial::X448KeyMaterial
    - EDDSAKeyMaterial::EDDSAKeyMaterial
    - X25519KeyMaterial::X25519KeyMaterial
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> KeyMaterial::create(pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:463,1
    - Dst: RSAKeyMaterial::RSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - alg
    - key
    argTypes:
    - pgp_pubkey_alg_t
    - rsa::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 460
    functionDepth: 0
    functionLinenumber: 460
    functionLinenumberEnd: 464
    functionName: pgp::KeyMaterial::create
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - RSAKeyMaterial::RSAKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> KeyMaterial::create(pgp_pubkey_alg_t alg,
      const rsa::Key &key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:469,1
    - Dst: DSAKeyMaterial::DSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - dsa::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 470
    functionName: pgp::KeyMaterial::create
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - DSAKeyMaterial::DSAKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> KeyMaterial::create(const dsa::Key &key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:475,1
    - Dst: EGKeyMaterial::EGKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - alg
    - key
    argTypes:
    - pgp_pubkey_alg_t
    - eg::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 472
    functionDepth: 0
    functionLinenumber: 472
    functionLinenumberEnd: 476
    functionName: pgp::KeyMaterial::create
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - EGKeyMaterial::EGKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> KeyMaterial::create(pgp_pubkey_alg_t alg,
      const eg::Key &key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:483,1
    - Dst: ECDSAKeyMaterial::ECDSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:483,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:485,1
    - Dst: ECDHKeyMaterial::ECDHKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:485,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:487,1
    - Dst: EDDSAKeyMaterial::EDDSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:487,1
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:489,1
    - Dst: SM2KeyMaterial::SM2KeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:489,1
    - Dst: std::invalid_argument
      Src: /src/rnp/src/lib/key_material.cpp:491,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - alg
    - key
    argTypes:
    - pgp_pubkey_alg_t
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 493
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 493
    functionName: pgp::KeyMaterial::create
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - SM2KeyMaterial::SM2KeyMaterial
    - std::unique_ptr<KeyMaterial>
    - ECDHKeyMaterial::ECDHKeyMaterial
    - std::invalid_argument
    - ECDSAKeyMaterial::ECDSAKeyMaterial
    - EDDSAKeyMaterial::EDDSAKeyMaterial
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> KeyMaterial::create(pgp_pubkey_alg_t alg,
      const ec::Key &key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:498,1
    - Dst: RSAKeyMaterial::RSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 495
    functionDepth: 0
    functionLinenumber: 495
    functionLinenumberEnd: 499
    functionName: pgp::RSAKeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RSAKeyMaterial::RSAKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> RSAKeyMaterial::clone()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:505,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 506
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 506
    functionName: pgp::RSAKeyMaterial::grip_update
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - grip_hash_mpi
    linkageType: ''
    returnType: void
    signature: void RSAKeyMaterial::grip_update(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate
      Src: /src/rnp/src/lib/key_material.cpp:511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 508
    functionDepth: 0
    functionLinenumber: 508
    functionLinenumberEnd: 512
    functionName: pgp::RSAKeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - validate
    linkageType: ''
    returnType: bool
    signature: bool RSAKeyMaterial::validate_material(rnp::SecurityContext &ctx, bool
      reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::RSAKeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:517,1
    - Dst: pgp::KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 519
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 519
    functionName: pgp::RSAKeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - pgp::RSAKeyMaterial::clear_secret
    - pgp::KeyMaterial::clear_secret
    linkageType: ''
    returnType: void
    signature: void RSAKeyMaterial::clear_secret() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:525,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 521
    functionDepth: 0
    functionLinenumber: 521
    functionLinenumberEnd: 526
    functionName: pgp::RSAKeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool RSAKeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:531,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:531,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:531,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:531,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:532,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 7
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 537
      start: 528
    functionDepth: 1
    functionLinenumber: 528
    functionLinenumberEnd: 537
    functionName: pgp::RSAKeyMaterial::parse_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool RSAKeyMaterial::parse_secret(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:542,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:543,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 539
    functionDepth: 0
    functionLinenumber: 539
    functionLinenumberEnd: 544
    functionName: pgp::RSAKeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void RSAKeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:549,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:550,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:551,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:552,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 553
      start: 546
    functionDepth: 0
    functionLinenumber: 546
    functionLinenumberEnd: 553
    functionName: pgp::RSAKeyMaterial::write_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void RSAKeyMaterial::write_secret(pgp_packet_body_t &pkt) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:560,1
    - Dst: pgp::RSAKeyMaterial::generate
      Src: /src/rnp/src/lib/key_material.cpp:563,1
    - Dst: KeyParams::bits
      Src: /src/rnp/src/lib/key_material.cpp:563,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:564,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:567,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 555
    functionDepth: 1
    functionLinenumber: 555
    functionLinenumberEnd: 568
    functionName: pgp::RSAKeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - KeyParams::bits
    - pgp::RSAKeyMaterial::generate
    - finish_generate
    linkageType: ''
    returnType: bool
    signature: bool RSAKeyMaterial::generate(rnp::SecurityContext &ctx, const KeyParams
      &params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<RSAEncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:575,1
    - Dst: encrypt_pkcs1
      Src: /src/rnp/src/lib/key_material.cpp:579,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            out'
    - data
    argTypes:
    - rnp::SecurityContext
    - EncMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 580
    functionName: pgp::RSAKeyMaterial::encrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<RSAEncMaterial *>
    - encrypt_pkcs1
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t RSAKeyMaterial::encrypt(rnp::SecurityContext &   ctx,\n
      \                       EncMaterial &            out,\n                        const
      rnp::secure_bytes &data) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const RSAEncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:587,1
    - Dst: decrypt_pkcs1
      Src: /src/rnp/src/lib/key_material.cpp:591,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - '   out'
    - '   in'
    argTypes:
    - rnp::SecurityContext
    - rnp::secure_bytes
    - EncMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 592
      start: 582
    functionDepth: 0
    functionLinenumber: 582
    functionLinenumberEnd: 592
    functionName: pgp::RSAKeyMaterial::decrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - decrypt_pkcs1
    - dynamic_cast<const RSAEncMaterial *>
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t RSAKeyMaterial::decrypt(rnp::SecurityContext &ctx,\n
      \                       rnp::secure_bytes &   out,\n                        const
      EncMaterial &   in) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: alg
      Src: /src/rnp/src/lib/key_material.cpp:599,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:600,1
    - Dst: dynamic_cast<const RSASigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:603,1
    - Dst: verify_pkcs1
      Src: /src/rnp/src/lib/key_material.cpp:607,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - '         sig'
    - '   hash'
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 608
      start: 594
    functionDepth: 1
    functionLinenumber: 594
    functionLinenumberEnd: 608
    functionName: pgp::RSAKeyMaterial::verify
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - alg
    - dynamic_cast<const RSASigMaterial *>
    - verify_pkcs1
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t RSAKeyMaterial::verify(const rnp::SecurityContext &ctx,\n
      \                      const SigMaterial &         sig,\n                       const
      rnp::secure_bytes &   hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<RSASigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:615,1
    - Dst: sign_pkcs1
      Src: /src/rnp/src/lib/key_material.cpp:619,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            sig'
    - hash
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 620
      start: 610
    functionDepth: 0
    functionLinenumber: 610
    functionLinenumberEnd: 620
    functionName: pgp::RSAKeyMaterial::sign
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - sign_pkcs1
    - dynamic_cast<RSASigMaterial *>
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t RSAKeyMaterial::sign(rnp::SecurityContext &   ctx,\n
      \                    SigMaterial &            sig,\n                     const
      rnp::secure_bytes &hash) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 4
    argNames:
    - d
    - p
    - q
    - u
    argTypes:
    - mpi
    - mpi
    - mpi
    - mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 630
      start: 622
    functionDepth: 0
    functionLinenumber: 622
    functionLinenumberEnd: 630
    functionName: pgp::RSAKeyMaterial::set_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSAKeyMaterial::set_secret(const mpi &d, const mpi &p, const mpi
      &q, const mpi &u)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: n::size
      Src: /src/rnp/src/lib/key_material.cpp:635,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 636
      start: 632
    functionDepth: 1
    functionLinenumber: 632
    functionLinenumberEnd: 636
    functionName: pgp::RSAKeyMaterial::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - n::size
    linkageType: ''
    returnType: size_t
    signature: size_t RSAKeyMaterial::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 638
    functionDepth: 0
    functionLinenumber: 638
    functionLinenumberEnd: 642
    functionName: '&

      RSAKeyMaterial::n() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      RSAKeyMaterial::n() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 648
      start: 644
    functionDepth: 0
    functionLinenumber: 644
    functionLinenumberEnd: 648
    functionName: '&

      RSAKeyMaterial::e() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      RSAKeyMaterial::e() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 654
      start: 650
    functionDepth: 0
    functionLinenumber: 650
    functionLinenumberEnd: 654
    functionName: '&

      RSAKeyMaterial::d() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      RSAKeyMaterial::d() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 656
    functionDepth: 0
    functionLinenumber: 656
    functionLinenumberEnd: 660
    functionName: '&

      RSAKeyMaterial::p() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      RSAKeyMaterial::p() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 666
      start: 662
    functionDepth: 0
    functionLinenumber: 662
    functionLinenumberEnd: 666
    functionName: '&

      RSAKeyMaterial::q() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      RSAKeyMaterial::q() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 672
      start: 668
    functionDepth: 0
    functionLinenumber: 668
    functionLinenumberEnd: 672
    functionName: '&

      RSAKeyMaterial::u() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      RSAKeyMaterial::u() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:677,1
    - Dst: DSAKeyMaterial::DSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 678
      start: 674
    functionDepth: 0
    functionLinenumber: 674
    functionLinenumberEnd: 678
    functionName: pgp::DSAKeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - DSAKeyMaterial::DSAKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> DSAKeyMaterial::clone()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:683,1
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:684,1
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:685,1
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:686,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 687
      start: 680
    functionDepth: 1
    functionLinenumber: 680
    functionLinenumberEnd: 687
    functionName: pgp::DSAKeyMaterial::grip_update
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - grip_hash_mpi
    linkageType: ''
    returnType: void
    signature: void DSAKeyMaterial::grip_update(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate
      Src: /src/rnp/src/lib/key_material.cpp:692,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 693
      start: 689
    functionDepth: 0
    functionLinenumber: 689
    functionLinenumberEnd: 693
    functionName: pgp::DSAKeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - validate
    linkageType: ''
    returnType: bool
    signature: bool DSAKeyMaterial::validate_material(rnp::SecurityContext &ctx, bool
      reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::DSAKeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:698,1
    - Dst: pgp::KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 700
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 700
    functionName: pgp::DSAKeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - pgp::KeyMaterial::clear_secret
    - pgp::DSAKeyMaterial::clear_secret
    linkageType: ''
    returnType: void
    signature: void DSAKeyMaterial::clear_secret() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:706,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:706,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:706,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:706,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 707
      start: 702
    functionDepth: 0
    functionLinenumber: 702
    functionLinenumberEnd: 707
    functionName: pgp::DSAKeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool DSAKeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:712,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:713,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 718
      start: 709
    functionDepth: 1
    functionLinenumber: 709
    functionLinenumberEnd: 718
    functionName: pgp::DSAKeyMaterial::parse_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool DSAKeyMaterial::parse_secret(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:723,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:724,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:725,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 727
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 727
    functionName: pgp::DSAKeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void DSAKeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 733
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 733
    functionName: pgp::DSAKeyMaterial::write_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void DSAKeyMaterial::write_secret(pgp_packet_body_t &pkt) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const DSAKeyParams &>
      Src: /src/rnp/src/lib/key_material.cpp:738,1
    - Dst: pgp::DSAKeyMaterial::generate
      Src: /src/rnp/src/lib/key_material.cpp:739,1
    - Dst: auto::bits
      Src: /src/rnp/src/lib/key_material.cpp:739,1
    - Dst: auto::qbits
      Src: /src/rnp/src/lib/key_material.cpp:739,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:740,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:743,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 744
      start: 735
    functionDepth: 1
    functionLinenumber: 735
    functionLinenumberEnd: 744
    functionName: pgp::DSAKeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - auto::bits
    - dynamic_cast<const DSAKeyParams &>
    - auto::qbits
    - finish_generate
    - pgp::DSAKeyMaterial::generate
    linkageType: ''
    returnType: bool
    signature: bool DSAKeyMaterial::generate(rnp::SecurityContext &ctx, const KeyParams
      &params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const DSASigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:751,1
    - Dst: pgp::DSAKeyMaterial::verify
      Src: /src/rnp/src/lib/key_material.cpp:755,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - '         sig'
    - '   hash'
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 756
      start: 746
    functionDepth: 1
    functionLinenumber: 746
    functionLinenumberEnd: 756
    functionName: pgp::DSAKeyMaterial::verify
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - pgp::DSAKeyMaterial::verify
    - dynamic_cast<const DSASigMaterial *>
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t DSAKeyMaterial::verify(const rnp::SecurityContext &ctx,\n
      \                      const SigMaterial &         sig,\n                       const
      rnp::secure_bytes &   hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<DSASigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:763,1
    - Dst: pgp::DSAKeyMaterial::sign
      Src: /src/rnp/src/lib/key_material.cpp:767,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            sig'
    - hash
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 768
      start: 758
    functionDepth: 1
    functionLinenumber: 758
    functionLinenumberEnd: 768
    functionName: pgp::DSAKeyMaterial::sign
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - dynamic_cast<DSASigMaterial *>
    - pgp::DSAKeyMaterial::sign
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t DSAKeyMaterial::sign(rnp::SecurityContext &   ctx,\n
      \                    SigMaterial &            sig,\n                     const
      rnp::secure_bytes &hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::dsa::Key::get_min_hash
      Src: /src/rnp/src/lib/key_material.cpp:773,1
    - Dst: q::bits
      Src: /src/rnp/src/lib/key_material.cpp:773,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/key_material.cpp:774,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/key_material.cpp:774,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 770
    functionDepth: 1
    functionLinenumber: 770
    functionLinenumberEnd: 778
    functionName: pgp::DSAKeyMaterial::adjust_hash
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - rnp::Hash::size
    - q::bits
    - pgp::dsa::Key::get_min_hash
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t DSAKeyMaterial::adjust_hash(pgp_hash_alg_t hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 785
      start: 780
    functionDepth: 0
    functionLinenumber: 780
    functionLinenumberEnd: 785
    functionName: pgp::DSAKeyMaterial::set_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSAKeyMaterial::set_secret(const mpi &x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: p::size
      Src: /src/rnp/src/lib/key_material.cpp:790,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 791
      start: 787
    functionDepth: 1
    functionLinenumber: 787
    functionLinenumberEnd: 791
    functionName: pgp::DSAKeyMaterial::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - p::size
    linkageType: ''
    returnType: size_t
    signature: size_t DSAKeyMaterial::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: q::size
      Src: /src/rnp/src/lib/key_material.cpp:796,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 797
      start: 793
    functionDepth: 1
    functionLinenumber: 793
    functionLinenumberEnd: 797
    functionName: pgp::DSAKeyMaterial::qbits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - q::size
    linkageType: ''
    returnType: size_t
    signature: size_t DSAKeyMaterial::qbits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 803
      start: 799
    functionDepth: 0
    functionLinenumber: 799
    functionLinenumberEnd: 803
    functionName: '&

      DSAKeyMaterial::p() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      DSAKeyMaterial::p() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 809
      start: 805
    functionDepth: 0
    functionLinenumber: 805
    functionLinenumberEnd: 809
    functionName: '&

      DSAKeyMaterial::q() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      DSAKeyMaterial::q() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 815
      start: 811
    functionDepth: 0
    functionLinenumber: 811
    functionLinenumberEnd: 815
    functionName: '&

      DSAKeyMaterial::g() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      DSAKeyMaterial::g() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 821
      start: 817
    functionDepth: 0
    functionLinenumber: 817
    functionLinenumberEnd: 821
    functionName: '&

      DSAKeyMaterial::y() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      DSAKeyMaterial::y() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 823
    functionDepth: 0
    functionLinenumber: 823
    functionLinenumberEnd: 827
    functionName: '&

      DSAKeyMaterial::x() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      DSAKeyMaterial::x() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:832,1
    - Dst: EGKeyMaterial::EGKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 833
      start: 829
    functionDepth: 0
    functionLinenumber: 829
    functionLinenumberEnd: 833
    functionName: pgp::EGKeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - EGKeyMaterial::EGKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> EGKeyMaterial::clone()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:838,1
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:839,1
    - Dst: grip_hash_mpi
      Src: /src/rnp/src/lib/key_material.cpp:840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 841
      start: 835
    functionDepth: 1
    functionLinenumber: 835
    functionLinenumberEnd: 841
    functionName: pgp::EGKeyMaterial::grip_update
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - grip_hash_mpi
    linkageType: ''
    returnType: void
    signature: void EGKeyMaterial::grip_update(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: validate
      Src: /src/rnp/src/lib/key_material.cpp:846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 843
    functionDepth: 0
    functionLinenumber: 843
    functionLinenumberEnd: 847
    functionName: pgp::EGKeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - validate
    linkageType: ''
    returnType: bool
    signature: bool EGKeyMaterial::validate_material(rnp::SecurityContext &ctx, bool
      reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::EGKeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:852,1
    - Dst: pgp::KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 854
      start: 849
    functionDepth: 0
    functionLinenumber: 849
    functionLinenumberEnd: 854
    functionName: pgp::EGKeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - pgp::EGKeyMaterial::clear_secret
    - pgp::KeyMaterial::clear_secret
    linkageType: ''
    returnType: void
    signature: void EGKeyMaterial::clear_secret() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:860,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:860,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:860,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 861
      start: 856
    functionDepth: 0
    functionLinenumber: 856
    functionLinenumberEnd: 861
    functionName: pgp::EGKeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool EGKeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:866,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 872
      start: 863
    functionDepth: 1
    functionLinenumber: 863
    functionLinenumberEnd: 872
    functionName: pgp::EGKeyMaterial::parse_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool EGKeyMaterial::parse_secret(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:877,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:878,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 880
      start: 874
    functionDepth: 0
    functionLinenumber: 874
    functionLinenumberEnd: 880
    functionName: pgp::EGKeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void EGKeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 886
    functionName: pgp::EGKeyMaterial::write_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void EGKeyMaterial::write_secret(pgp_packet_body_t &pkt) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:893,1
    - Dst: pgp::EGKeyMaterial::generate
      Src: /src/rnp/src/lib/key_material.cpp:896,1
    - Dst: KeyParams::bits
      Src: /src/rnp/src/lib/key_material.cpp:896,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:897,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:900,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 888
    functionDepth: 1
    functionLinenumber: 888
    functionLinenumberEnd: 901
    functionName: pgp::EGKeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - pgp::EGKeyMaterial::generate
    - KeyParams::bits
    - finish_generate
    linkageType: ''
    returnType: bool
    signature: bool EGKeyMaterial::generate(rnp::SecurityContext &ctx, const KeyParams
      &params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<EGEncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:908,1
    - Dst: encrypt_pkcs1
      Src: /src/rnp/src/lib/key_material.cpp:912,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            out'
    - data
    argTypes:
    - rnp::SecurityContext
    - EncMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 913
      start: 903
    functionDepth: 0
    functionLinenumber: 903
    functionLinenumberEnd: 913
    functionName: pgp::EGKeyMaterial::encrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<EGEncMaterial *>
    - encrypt_pkcs1
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t EGKeyMaterial::encrypt(rnp::SecurityContext &   ctx,\n
      \                      EncMaterial &            out,\n                       const
      rnp::secure_bytes &data) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const EGEncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:920,1
    - Dst: decrypt_pkcs1
      Src: /src/rnp/src/lib/key_material.cpp:924,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - '   out'
    - '   in'
    argTypes:
    - rnp::SecurityContext
    - rnp::secure_bytes
    - EncMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 925
      start: 915
    functionDepth: 0
    functionLinenumber: 915
    functionLinenumberEnd: 925
    functionName: pgp::EGKeyMaterial::decrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const EGEncMaterial *>
    - decrypt_pkcs1
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t EGKeyMaterial::decrypt(rnp::SecurityContext &ctx,\n                       rnp::secure_bytes
      &   out,\n                       const EncMaterial &   in) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - ctx
    - '         sig'
    - '   hash'
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 934
      start: 927
    functionDepth: 1
    functionLinenumber: 927
    functionLinenumberEnd: 934
    functionName: pgp::EGKeyMaterial::verify
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t EGKeyMaterial::verify(const rnp::SecurityContext &ctx,\n
      \                     const SigMaterial &         sig,\n                      const
      rnp::secure_bytes &   hash) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 941
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 941
    functionName: pgp::EGKeyMaterial::set_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EGKeyMaterial::set_secret(const mpi &x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: y::size
      Src: /src/rnp/src/lib/key_material.cpp:946,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 947
      start: 943
    functionDepth: 1
    functionLinenumber: 943
    functionLinenumberEnd: 947
    functionName: pgp::EGKeyMaterial::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - y::size
    linkageType: ''
    returnType: size_t
    signature: size_t EGKeyMaterial::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 953
      start: 949
    functionDepth: 0
    functionLinenumber: 949
    functionLinenumberEnd: 953
    functionName: '&

      EGKeyMaterial::p() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      EGKeyMaterial::p() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 959
      start: 955
    functionDepth: 0
    functionLinenumber: 955
    functionLinenumberEnd: 959
    functionName: '&

      EGKeyMaterial::g() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      EGKeyMaterial::g() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 965
      start: 961
    functionDepth: 0
    functionLinenumber: 961
    functionLinenumberEnd: 965
    functionName: '&

      EGKeyMaterial::y() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      EGKeyMaterial::y() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 971
      start: 967
    functionDepth: 0
    functionLinenumber: 967
    functionLinenumberEnd: 971
    functionName: '&

      EGKeyMaterial::x() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      EGKeyMaterial::x() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: grip_hash_ec
      Src: /src/rnp/src/lib/key_material.cpp:976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 977
      start: 973
    functionDepth: 3
    functionLinenumber: 973
    functionLinenumberEnd: 977
    functionName: pgp::ECKeyMaterial::grip_update
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - grip_hash_ec
    linkageType: ''
    returnType: void
    signature: void ECKeyMaterial::grip_update(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ECKeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:982,1
    - Dst: pgp::KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 979
    functionDepth: 0
    functionLinenumber: 979
    functionLinenumberEnd: 984
    functionName: pgp::ECKeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - pgp::KeyMaterial::clear_secret
    - pgp::ECKeyMaterial::clear_secret
    linkageType: ''
    returnType: void
    signature: void ECKeyMaterial::clear_secret() noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:989,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:991,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:995,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/key_material.cpp:999,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1000,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 1
    argNames:
    - hash_len
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1004
      start: 986
    functionDepth: 1
    functionLinenumber: 986
    functionLinenumberEnd: 1004
    functionName: pgp::ECKeyMaterial::check_curve
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - auto::bytes
    - pgp::ec::Curve::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t ECKeyMaterial::check_curve(size_t hash_len) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1010,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1010,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1014
      start: 1006
    functionDepth: 0
    functionLinenumber: 1006
    functionLinenumberEnd: 1014
    functionName: pgp::ECKeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 1
    functionsReached:
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool ECKeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1019,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1020,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1025
      start: 1016
    functionDepth: 1
    functionLinenumber: 1016
    functionLinenumberEnd: 1025
    functionName: pgp::ECKeyMaterial::parse_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool ECKeyMaterial::parse_secret(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:1030,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:1031,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1032
      start: 1027
    functionDepth: 0
    functionLinenumber: 1027
    functionLinenumberEnd: 1032
    functionName: pgp::ECKeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 1
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void ECKeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:1037,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1034
    functionDepth: 0
    functionLinenumber: 1034
    functionLinenumberEnd: 1038
    functionName: pgp::ECKeyMaterial::write_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void ECKeyMaterial::write_secret(pgp_packet_body_t &pkt) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const ECCKeyParams &>
      Src: /src/rnp/src/lib/key_material.cpp:1043,1
    - Dst: pgp::ec::Curve::is_supported
      Src: /src/rnp/src/lib/key_material.cpp:1044,1
    - Dst: auto::curve
      Src: /src/rnp/src/lib/key_material.cpp:1044,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1045,1
    - Dst: auto::curve
      Src: /src/rnp/src/lib/key_material.cpp:1045,1
    - Dst: pgp::ECKeyMaterial::generate
      Src: /src/rnp/src/lib/key_material.cpp:1048,1
    - Dst: auto::curve
      Src: /src/rnp/src/lib/key_material.cpp:1048,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1049,1
    - Dst: auto::curve
      Src: /src/rnp/src/lib/key_material.cpp:1052,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:1053,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1054
      start: 1040
    functionDepth: 1
    functionLinenumber: 1040
    functionLinenumberEnd: 1054
    functionName: pgp::ECKeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - pgp::ECKeyMaterial::generate
    - dynamic_cast<const ECCKeyParams &>
    - pgp::ec::Curve::is_supported
    - auto::curve
    - finish_generate
    linkageType: ''
    returnType: bool
    signature: bool ECKeyMaterial::generate(rnp::SecurityContext &ctx, const KeyParams
      &params)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1061
      start: 1056
    functionDepth: 0
    functionLinenumber: 1056
    functionLinenumberEnd: 1061
    functionName: pgp::ECKeyMaterial::set_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECKeyMaterial::set_secret(const mpi &x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:1066,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1068
      start: 1063
    functionDepth: 0
    functionLinenumber: 1063
    functionLinenumberEnd: 1068
    functionName: pgp::ECKeyMaterial::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp::ec::Curve::get
    linkageType: ''
    returnType: size_t
    signature: size_t ECKeyMaterial::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1074
      start: 1070
    functionDepth: 0
    functionLinenumber: 1070
    functionLinenumberEnd: 1074
    functionName: pgp::ECKeyMaterial::curve
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t ECKeyMaterial::curve() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1080
      start: 1076
    functionDepth: 0
    functionLinenumber: 1076
    functionLinenumberEnd: 1080
    functionName: '&

      ECKeyMaterial::p() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      ECKeyMaterial::p() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1086
      start: 1082
    functionDepth: 0
    functionLinenumber: 1082
    functionLinenumberEnd: 1086
    functionName: '&

      ECKeyMaterial::x() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: mpi
    signature: 'mpi &

      ECKeyMaterial::x() const noexcept'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::is_supported
      Src: /src/rnp/src/lib/key_material.cpp:1091,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1093,1
    - Dst: pgp::ecdsa::validate_key
      Src: /src/rnp/src/lib/key_material.cpp:1096,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1097
      start: 1088
    functionDepth: 1
    functionLinenumber: 1088
    functionLinenumberEnd: 1097
    functionName: pgp::ECDSAKeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::ecdsa::validate_key
    - pgp::ec::Curve::is_supported
    linkageType: ''
    returnType: bool
    signature: bool ECDSAKeyMaterial::validate_material(rnp::SecurityContext &ctx,
      bool reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:1102,1
    - Dst: ECDSAKeyMaterial::ECDSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:1102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1103
      start: 1099
    functionDepth: 0
    functionLinenumber: 1099
    functionLinenumberEnd: 1103
    functionName: pgp::ECDSAKeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - ECDSAKeyMaterial::ECDSAKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> ECDSAKeyMaterial::clone()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::is_supported
      Src: /src/rnp/src/lib/key_material.cpp:1110,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1111,1
    - Dst: dynamic_cast<const ECSigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1114,1
    - Dst: pgp::ecdsa::verify
      Src: /src/rnp/src/lib/key_material.cpp:1118,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - '         sig'
    - '   hash'
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1119
      start: 1105
    functionDepth: 1
    functionLinenumber: 1105
    functionLinenumberEnd: 1119
    functionName: pgp::ECDSAKeyMaterial::verify
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - dynamic_cast<const ECSigMaterial *>
    - pgp::ecdsa::verify
    - pgp::ec::Curve::is_supported
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ECDSAKeyMaterial::verify(const rnp::SecurityContext &ctx,\n
      \                        const SigMaterial &         sig,\n                         const
      rnp::secure_bytes &   hash) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_curve
      Src: /src/rnp/src/lib/key_material.cpp:1126,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/key_material.cpp:1126,1
    - Dst: dynamic_cast<ECSigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1130,1
    - Dst: pgp::ecdsa::sign
      Src: /src/rnp/src/lib/key_material.cpp:1134,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - '   ctx'
    - '            sig'
    - hash
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1135
      start: 1121
    functionDepth: 1
    functionLinenumber: 1121
    functionLinenumberEnd: 1135
    functionName: pgp::ECDSAKeyMaterial::sign
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<ECSigMaterial *>
    - check_curve
    - rnp::secure_bytes::size
    - pgp::ecdsa::sign
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ECDSAKeyMaterial::sign(rnp::SecurityContext &   ctx,\n
      \                      SigMaterial &            sig,\n                       const
      rnp::secure_bytes &hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ecdsa::get_min_hash
      Src: /src/rnp/src/lib/key_material.cpp:1140,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/key_material.cpp:1141,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/key_material.cpp:1141,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1145
      start: 1137
    functionDepth: 1
    functionLinenumber: 1137
    functionLinenumberEnd: 1145
    functionName: pgp::ECDSAKeyMaterial::adjust_hash
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - rnp::Hash::size
    - pgp::ecdsa::get_min_hash
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t ECDSAKeyMaterial::adjust_hash(pgp_hash_alg_t hash) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::is_supported
      Src: /src/rnp/src/lib/key_material.cpp:1150,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1152,1
    - Dst: pgp::ecdh::validate_key
      Src: /src/rnp/src/lib/key_material.cpp:1155,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1156
      start: 1147
    functionDepth: 1
    functionLinenumber: 1147
    functionLinenumberEnd: 1156
    functionName: pgp::ECDHKeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::ec::Curve::is_supported
    - pgp::ecdh::validate_key
    linkageType: ''
    returnType: bool
    signature: bool ECDHKeyMaterial::validate_material(rnp::SecurityContext &ctx,
      bool reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:1161,1
    - Dst: ECDHKeyMaterial::ECDHKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:1161,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1162
      start: 1158
    functionDepth: 0
    functionLinenumber: 1158
    functionLinenumberEnd: 1162
    functionName: pgp::ECDHKeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - ECDHKeyMaterial::ECDHKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> ECDHKeyMaterial::clone()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ECKeyMaterial::parse
      Src: /src/rnp/src/lib/key_material.cpp:1167,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1173,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1176,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1179,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1179,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 16
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1185
      start: 1164
    functionDepth: 0
    functionLinenumber: 1164
    functionLinenumberEnd: 1185
    functionName: pgp::ECDHKeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::get
    - pgp::ECKeyMaterial::parse
    linkageType: ''
    returnType: bool
    signature: bool ECDHKeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ECKeyMaterial::write
      Src: /src/rnp/src/lib/key_material.cpp:1190,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/lib/key_material.cpp:1191,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/lib/key_material.cpp:1192,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/lib/key_material.cpp:1193,1
    - Dst: pgp_packet_body_t::add_byte
      Src: /src/rnp/src/lib/key_material.cpp:1194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1187
    functionDepth: 2
    functionLinenumber: 1187
    functionLinenumberEnd: 1195
    functionName: pgp::ECDHKeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add_byte
    - pgp::ECKeyMaterial::write
    linkageType: ''
    returnType: void
    signature: void ECDHKeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const ECCKeyParams &>
      Src: /src/rnp/src/lib/key_material.cpp:1200,1
    - Dst: pgp::ecdh::set_params
      Src: /src/rnp/src/lib/key_material.cpp:1201,1
    - Dst: auto::curve
      Src: /src/rnp/src/lib/key_material.cpp:1201,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1202,1
    - Dst: auto::curve
      Src: /src/rnp/src/lib/key_material.cpp:1202,1
    - Dst: auto::curve
      Src: /src/rnp/src/lib/key_material.cpp:1206,1
    - Dst: generate_x25519
      Src: /src/rnp/src/lib/key_material.cpp:1207,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1208,1
    - Dst: auto::curve
      Src: /src/rnp/src/lib/key_material.cpp:1211,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:1212,1
    - Dst: pgp::ECKeyMaterial::generate
      Src: /src/rnp/src/lib/key_material.cpp:1215,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1216
      start: 1197
    functionDepth: 2
    functionLinenumber: 1197
    functionLinenumberEnd: 1216
    functionName: pgp::ECDHKeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::ecdh::set_params
    - pgp::ECKeyMaterial::generate
    - dynamic_cast<const ECCKeyParams &>
    - finish_generate
    - auto::curve
    - generate_x25519
    linkageType: ''
    returnType: bool
    signature: bool ECDHKeyMaterial::generate(rnp::SecurityContext &ctx, const KeyParams
      &params)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::is_supported
      Src: /src/rnp/src/lib/key_material.cpp:1223,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1224,1
    - Dst: dynamic_cast<ECDHEncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1227,1
    - Dst: pgp::ecdh::encrypt_pkcs5
      Src: /src/rnp/src/lib/key_material.cpp:1231,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - '   ctx'
    - '            out'
    - data
    argTypes:
    - rnp::SecurityContext
    - EncMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1232
      start: 1218
    functionDepth: 1
    functionLinenumber: 1218
    functionLinenumberEnd: 1232
    functionName: pgp::ECDHKeyMaterial::encrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - dynamic_cast<ECDHEncMaterial *>
    - pgp::ec::Curve::is_supported
    - pgp::ecdh::encrypt_pkcs5
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ECDHKeyMaterial::encrypt(rnp::SecurityContext &   ctx,\n
      \                        EncMaterial &            out,\n                         const
      rnp::secure_bytes &data) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::is_supported
      Src: /src/rnp/src/lib/key_material.cpp:1239,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1240,1
    - Dst: pgp::ECDHKeyMaterial::x25519_bits_tweaked
      Src: /src/rnp/src/lib/key_material.cpp:1243,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1244,1
    - Dst: dynamic_cast<const ECDHEncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1246,1
    - Dst: pgp::ecdh::decrypt_pkcs5
      Src: /src/rnp/src/lib/key_material.cpp:1250,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - ctx
    - '   out'
    - '   in'
    argTypes:
    - rnp::SecurityContext
    - rnp::secure_bytes
    - EncMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1251
      start: 1234
    functionDepth: 1
    functionLinenumber: 1234
    functionLinenumberEnd: 1251
    functionName: pgp::ECDHKeyMaterial::decrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::ECDHKeyMaterial::x25519_bits_tweaked
    - pgp::ec::Curve::is_supported
    - pgp::ecdh::decrypt_pkcs5
    - dynamic_cast<const ECDHEncMaterial *>
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ECDHKeyMaterial::decrypt(rnp::SecurityContext &ctx,\n
      \                        rnp::secure_bytes &   out,\n                         const
      EncMaterial &   in) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1257
      start: 1253
    functionDepth: 0
    functionLinenumber: 1253
    functionLinenumberEnd: 1257
    functionName: pgp::ECDHKeyMaterial::kdf_hash_alg
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t ECDHKeyMaterial::kdf_hash_alg() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1263
      start: 1259
    functionDepth: 0
    functionLinenumber: 1259
    functionLinenumberEnd: 1263
    functionName: pgp::ECDHKeyMaterial::key_wrap_alg
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_symm_alg_t
    signature: pgp_symm_alg_t ECDHKeyMaterial::key_wrap_alg() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ECDHKeyMaterial::x25519_bits_tweaked
      Src: /src/rnp/src/lib/key_material.cpp:1268,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1269
      start: 1265
    functionDepth: 0
    functionLinenumber: 1265
    functionLinenumberEnd: 1269
    functionName: pgp::ECDHKeyMaterial::x25519_bits_tweaked
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 4
    functionsReached:
    - pgp::ECDHKeyMaterial::x25519_bits_tweaked
    linkageType: ''
    returnType: bool
    signature: bool ECDHKeyMaterial::x25519_bits_tweaked() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ECDHKeyMaterial::x25519_tweak_bits
      Src: /src/rnp/src/lib/key_material.cpp:1274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1271
    functionDepth: 0
    functionLinenumber: 1271
    functionLinenumberEnd: 1275
    functionName: pgp::ECDHKeyMaterial::x25519_tweak_bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - pgp::ECDHKeyMaterial::x25519_tweak_bits
    linkageType: ''
    returnType: bool
    signature: bool ECDHKeyMaterial::x25519_tweak_bits() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::eddsa::validate_key
      Src: /src/rnp/src/lib/key_material.cpp:1280,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1281
      start: 1277
    functionDepth: 0
    functionLinenumber: 1277
    functionLinenumberEnd: 1281
    functionName: pgp::EDDSAKeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp::eddsa::validate_key
    linkageType: ''
    returnType: bool
    signature: bool EDDSAKeyMaterial::validate_material(rnp::SecurityContext &ctx,
      bool reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:1286,1
    - Dst: EDDSAKeyMaterial::EDDSAKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:1286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1287
      start: 1283
    functionDepth: 0
    functionLinenumber: 1283
    functionLinenumberEnd: 1287
    functionName: pgp::EDDSAKeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - EDDSAKeyMaterial::EDDSAKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> EDDSAKeyMaterial::clone()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::eddsa::generate
      Src: /src/rnp/src/lib/key_material.cpp:1292,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1293,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:1296,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1297
      start: 1289
    functionDepth: 1
    functionLinenumber: 1289
    functionLinenumberEnd: 1297
    functionName: pgp::EDDSAKeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::eddsa::generate
    - finish_generate
    linkageType: ''
    returnType: bool
    signature: bool EDDSAKeyMaterial::generate(rnp::SecurityContext &ctx, const KeyParams
      &params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const ECSigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1304,1
    - Dst: pgp::eddsa::verify
      Src: /src/rnp/src/lib/key_material.cpp:1308,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - '         sig'
    - '   hash'
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1309
      start: 1299
    functionDepth: 0
    functionLinenumber: 1299
    functionLinenumberEnd: 1309
    functionName: pgp::EDDSAKeyMaterial::verify
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const ECSigMaterial *>
    - pgp::eddsa::verify
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t EDDSAKeyMaterial::verify(const rnp::SecurityContext &ctx,\n
      \                        const SigMaterial &         sig,\n                         const
      rnp::secure_bytes &   hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<ECSigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1316,1
    - Dst: pgp::eddsa::sign
      Src: /src/rnp/src/lib/key_material.cpp:1320,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            sig'
    - hash
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1321
      start: 1311
    functionDepth: 0
    functionLinenumber: 1311
    functionLinenumberEnd: 1321
    functionName: pgp::EDDSAKeyMaterial::sign
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp::eddsa::sign
    - dynamic_cast<ECSigMaterial *>
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t EDDSAKeyMaterial::sign(rnp::SecurityContext &   ctx,\n
      \                      SigMaterial &            sig,\n                       const
      rnp::secure_bytes &hash) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::sm2::validate_key
      Src: /src/rnp/src/lib/key_material.cpp:1327,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1329,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1332
      start: 1323
    functionDepth: 1
    functionLinenumber: 1323
    functionLinenumberEnd: 1332
    functionName: pgp::SM2KeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::sm2::validate_key
    linkageType: ''
    returnType: bool
    signature: bool SM2KeyMaterial::validate_material(rnp::SecurityContext &ctx, bool
      reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:1337,1
    - Dst: SM2KeyMaterial::SM2KeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:1337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1338
      start: 1334
    functionDepth: 0
    functionLinenumber: 1334
    functionLinenumberEnd: 1338
    functionName: pgp::SM2KeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - SM2KeyMaterial::SM2KeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> SM2KeyMaterial::clone()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<SM2EncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1346,1
    - Dst: pgp::sm2::encrypt
      Src: /src/rnp/src/lib/key_material.cpp:1350,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1352,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - '   ctx'
    - '            out'
    - data
    argTypes:
    - rnp::SecurityContext
    - EncMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1355
      start: 1340
    functionDepth: 1
    functionLinenumber: 1340
    functionLinenumberEnd: 1355
    functionName: pgp::SM2KeyMaterial::encrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - dynamic_cast<SM2EncMaterial *>
    - pgp::sm2::encrypt
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t SM2KeyMaterial::encrypt(rnp::SecurityContext &   ctx,\n
      \                       EncMaterial &            out,\n                        const
      rnp::secure_bytes &data) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const SM2EncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1363,1
    - Dst: pgp::sm2::decrypt
      Src: /src/rnp/src/lib/key_material.cpp:1367,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1369,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - '   out'
    - '   in'
    argTypes:
    - rnp::SecurityContext
    - rnp::secure_bytes
    - EncMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1372
      start: 1357
    functionDepth: 1
    functionLinenumber: 1357
    functionLinenumberEnd: 1372
    functionName: pgp::SM2KeyMaterial::decrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::sm2::decrypt
    - dynamic_cast<const SM2EncMaterial *>
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t SM2KeyMaterial::decrypt(rnp::SecurityContext &ctx,\n
      \                       rnp::secure_bytes &   out,\n                        const
      EncMaterial &   in) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const ECSigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1380,1
    - Dst: pgp::sm2::verify
      Src: /src/rnp/src/lib/key_material.cpp:1384,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1386,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ctx
    - '         sig'
    - '   hash'
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1389
      start: 1374
    functionDepth: 1
    functionLinenumber: 1374
    functionLinenumberEnd: 1389
    functionName: pgp::SM2KeyMaterial::verify
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const ECSigMaterial *>
    - pgp::sm2::verify
    - RNP_LOG
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t SM2KeyMaterial::verify(const rnp::SecurityContext &ctx,\n
      \                      const SigMaterial &         sig,\n                       const
      rnp::secure_bytes &   hash) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: check_curve
      Src: /src/rnp/src/lib/key_material.cpp:1397,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/key_material.cpp:1397,1
    - Dst: dynamic_cast<ECSigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1401,1
    - Dst: pgp::sm2::sign
      Src: /src/rnp/src/lib/key_material.cpp:1405,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1407,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 3
    argNames:
    - '   ctx'
    - '            sig'
    - hash
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1410
      start: 1391
    functionDepth: 1
    functionLinenumber: 1391
    functionLinenumberEnd: 1410
    functionName: pgp::SM2KeyMaterial::sign
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::sm2::sign
    - dynamic_cast<ECSigMaterial *>
    - rnp::secure_bytes::size
    - check_curve
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t SM2KeyMaterial::sign(rnp::SecurityContext &   ctx,\n
      \                    SigMaterial &            sig,\n                     const
      rnp::secure_bytes &hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::sm2::compute_za
      Src: /src/rnp/src/lib/key_material.cpp:1416,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1418,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/key_material.cpp:1419,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1422,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/key_material.cpp:1423,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1425
      start: 1412
    functionDepth: 1
    functionLinenumber: 1412
    functionLinenumberEnd: 1425
    functionName: pgp::SM2KeyMaterial::compute_za
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp::sm2::compute_za
    - rnp::rnp_exception::rnp_exception
    - RNP_LOG
    linkageType: ''
    returnType: void
    signature: void SM2KeyMaterial::compute_za(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:1431,1
    - Dst: Ed25519KeyMaterial::Ed25519KeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:1431,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1432
      start: 1428
    functionDepth: 0
    functionLinenumber: 1428
    functionLinenumberEnd: 1432
    functionName: pgp::Ed25519KeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - Ed25519KeyMaterial::Ed25519KeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> Ed25519KeyMaterial::clone()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/key_material.cpp:1438,1
    - Dst: pub
      Src: /src/rnp/src/lib/key_material.cpp:1438,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1439
      start: 1434
    functionDepth: 0
    functionLinenumber: 1434
    functionLinenumberEnd: 1439
    functionName: pgp::Ed25519KeyMaterial::grip_update
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub
    - rnp::Hash::add
    linkageType: ''
    returnType: void
    signature: void Ed25519KeyMaterial::grip_update(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ed25519_validate_key_native
      Src: /src/rnp/src/lib/key_material.cpp:1444,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1445
      start: 1441
    functionDepth: 0
    functionLinenumber: 1441
    functionLinenumberEnd: 1445
    functionName: pgp::Ed25519KeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - ed25519_validate_key_native
    linkageType: ''
    returnType: bool
    signature: bool Ed25519KeyMaterial::validate_material(rnp::SecurityContext &ctx,
      bool reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::Ed25519KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:1450,1
    - Dst: pgp::KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:1451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1452
      start: 1447
    functionDepth: 0
    functionLinenumber: 1447
    functionLinenumberEnd: 1452
    functionName: pgp::Ed25519KeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - pgp::Ed25519KeyMaterial::clear_secret
    - pgp::KeyMaterial::clear_secret
    linkageType: ''
    returnType: void
    signature: void Ed25519KeyMaterial::clear_secret() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:1458,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/key_material.cpp:1459,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1460,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:1460,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:1460,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1461,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1466
      start: 1454
    functionDepth: 1
    functionLinenumber: 1454
    functionLinenumberEnd: 1466
    functionName: pgp::Ed25519KeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::ec::Curve::get
    - pgp_packet_body_t::get
    - std::vector::size
    - auto::bytes
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool Ed25519KeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:1471,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/key_material.cpp:1472,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1473,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:1473,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:1473,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1474,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1480
      start: 1468
    functionDepth: 1
    functionLinenumber: 1468
    functionLinenumberEnd: 1480
    functionName: pgp::Ed25519KeyMaterial::parse_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::ec::Curve::get
    - pgp_packet_body_t::get
    - std::vector::size
    - auto::bytes
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool Ed25519KeyMaterial::parse_secret(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:1485,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1486
      start: 1482
    functionDepth: 0
    functionLinenumber: 1482
    functionLinenumberEnd: 1486
    functionName: pgp::Ed25519KeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void Ed25519KeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:1491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1492
      start: 1488
    functionDepth: 0
    functionLinenumber: 1488
    functionLinenumberEnd: 1492
    functionName: pgp::Ed25519KeyMaterial::write_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void Ed25519KeyMaterial::write_secret(pgp_packet_body_t &pkt) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_ed25519_native
      Src: /src/rnp/src/lib/key_material.cpp:1497,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1498,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:1501,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1502
      start: 1494
    functionDepth: 1
    functionLinenumber: 1494
    functionLinenumberEnd: 1502
    functionName: pgp::Ed25519KeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - finish_generate
    - generate_ed25519_native
    linkageType: ''
    returnType: bool
    signature: bool Ed25519KeyMaterial::generate(rnp::SecurityContext &ctx, const
      KeyParams &params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const Ed25519SigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1509,1
    - Dst: ed25519_verify_native
      Src: /src/rnp/src/lib/key_material.cpp:1513,1
    - Dst: data
      Src: /src/rnp/src/lib/key_material.cpp:1513,1
    - Dst: size
      Src: /src/rnp/src/lib/key_material.cpp:1513,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - '         sig'
    - '   hash'
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1514
      start: 1504
    functionDepth: 1
    functionLinenumber: 1504
    functionLinenumberEnd: 1514
    functionName: pgp::Ed25519KeyMaterial::verify
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const Ed25519SigMaterial *>
    - data
    - size
    - ed25519_verify_native
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Ed25519KeyMaterial::verify(const rnp::SecurityContext
      &ctx,\n                           const SigMaterial &         sig,\n                           const
      rnp::secure_bytes &   hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<Ed25519SigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1521,1
    - Dst: ed25519_sign_native
      Src: /src/rnp/src/lib/key_material.cpp:1525,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/key_material.cpp:1526,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/key_material.cpp:1526,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            sig'
    - hash
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1527
      start: 1516
    functionDepth: 1
    functionLinenumber: 1516
    functionLinenumberEnd: 1527
    functionName: pgp::Ed25519KeyMaterial::sign
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<Ed25519SigMaterial *>
    - rnp::secure_bytes::data
    - rnp::secure_bytes::size
    - ed25519_sign_native
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Ed25519KeyMaterial::sign(rnp::SecurityContext &   ctx,\n
      \                        SigMaterial &            sig,\n                         const
      rnp::secure_bytes &hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::Ed25519KeyMaterial::sig_hash_allowed
      Src: /src/rnp/src/lib/key_material.cpp:1532,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1536
      start: 1529
    functionDepth: 1
    functionLinenumber: 1529
    functionLinenumberEnd: 1536
    functionName: pgp::Ed25519KeyMaterial::adjust_hash
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp::Ed25519KeyMaterial::sig_hash_allowed
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t Ed25519KeyMaterial::adjust_hash(pgp_hash_alg_t hash)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/key_material.cpp:1541,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1542
      start: 1538
    functionDepth: 0
    functionLinenumber: 1538
    functionLinenumberEnd: 1542
    functionName: pgp::Ed25519KeyMaterial::sig_hash_allowed
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - rnp::Hash::size
    linkageType: ''
    returnType: bool
    signature: bool Ed25519KeyMaterial::sig_hash_allowed(pgp_hash_alg_t hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1548
      start: 1544
    functionDepth: 0
    functionLinenumber: 1544
    functionLinenumberEnd: 1548
    functionName: pgp::Ed25519KeyMaterial::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Ed25519KeyMaterial::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1554
      start: 1550
    functionDepth: 0
    functionLinenumber: 1550
    functionLinenumberEnd: 1554
    functionName: pgp::Ed25519KeyMaterial::curve
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t Ed25519KeyMaterial::curve() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1560
      start: 1556
    functionDepth: 0
    functionLinenumber: 1556
    functionLinenumberEnd: 1560
    functionName: '&

      Ed25519KeyMaterial::pub() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      Ed25519KeyMaterial::pub() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1566
      start: 1562
    functionDepth: 0
    functionLinenumber: 1562
    functionLinenumberEnd: 1566
    functionName: '&

      Ed25519KeyMaterial::priv() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      Ed25519KeyMaterial::priv() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:1571,1
    - Dst: X25519KeyMaterial::X25519KeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:1571,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1568
    functionDepth: 0
    functionLinenumber: 1568
    functionLinenumberEnd: 1572
    functionName: pgp::X25519KeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - X25519KeyMaterial::X25519KeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> X25519KeyMaterial::clone()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/key_material.cpp:1578,1
    - Dst: pub
      Src: /src/rnp/src/lib/key_material.cpp:1578,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1579
      start: 1574
    functionDepth: 0
    functionLinenumber: 1574
    functionLinenumberEnd: 1579
    functionName: pgp::X25519KeyMaterial::grip_update
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub
    - rnp::Hash::add
    linkageType: ''
    returnType: void
    signature: void X25519KeyMaterial::grip_update(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x25519_validate_key_native
      Src: /src/rnp/src/lib/key_material.cpp:1584,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1585
      start: 1581
    functionDepth: 0
    functionLinenumber: 1581
    functionLinenumberEnd: 1585
    functionName: pgp::X25519KeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - x25519_validate_key_native
    linkageType: ''
    returnType: bool
    signature: bool X25519KeyMaterial::validate_material(rnp::SecurityContext &ctx,
      bool reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::X25519KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:1590,1
    - Dst: pgp::KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:1591,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1592
      start: 1587
    functionDepth: 0
    functionLinenumber: 1587
    functionLinenumberEnd: 1592
    functionName: pgp::X25519KeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - pgp::X25519KeyMaterial::clear_secret
    - pgp::KeyMaterial::clear_secret
    linkageType: ''
    returnType: void
    signature: void X25519KeyMaterial::clear_secret() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:1598,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/key_material.cpp:1599,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1600,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:1600,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:1600,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1601,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1606
      start: 1594
    functionDepth: 1
    functionLinenumber: 1594
    functionLinenumberEnd: 1606
    functionName: pgp::X25519KeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::ec::Curve::get
    - pgp_packet_body_t::get
    - std::vector::size
    - auto::bytes
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool X25519KeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:1611,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/key_material.cpp:1612,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1613,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:1613,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:1613,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1614,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1620
      start: 1608
    functionDepth: 1
    functionLinenumber: 1608
    functionLinenumberEnd: 1620
    functionName: pgp::X25519KeyMaterial::parse_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::ec::Curve::get
    - pgp_packet_body_t::get
    - std::vector::size
    - auto::bytes
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool X25519KeyMaterial::parse_secret(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:1625,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1626
      start: 1622
    functionDepth: 0
    functionLinenumber: 1622
    functionLinenumberEnd: 1626
    functionName: pgp::X25519KeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void X25519KeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:1631,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1632
      start: 1628
    functionDepth: 0
    functionLinenumber: 1628
    functionLinenumberEnd: 1632
    functionName: pgp::X25519KeyMaterial::write_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void X25519KeyMaterial::write_secret(pgp_packet_body_t &pkt) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_x25519_native
      Src: /src/rnp/src/lib/key_material.cpp:1637,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1638,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:1641,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1642
      start: 1634
    functionDepth: 1
    functionLinenumber: 1634
    functionLinenumberEnd: 1642
    functionName: pgp::X25519KeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - finish_generate
    - generate_x25519_native
    linkageType: ''
    returnType: bool
    signature: bool X25519KeyMaterial::generate(rnp::SecurityContext &ctx, const KeyParams
      &params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<X25519EncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1649,1
    - Dst: x25519_native_encrypt
      Src: /src/rnp/src/lib/key_material.cpp:1653,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/key_material.cpp:1653,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/key_material.cpp:1653,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            out'
    - data
    argTypes:
    - rnp::SecurityContext
    - EncMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1654
      start: 1644
    functionDepth: 1
    functionLinenumber: 1644
    functionLinenumberEnd: 1654
    functionName: pgp::X25519KeyMaterial::encrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - rnp::secure_bytes::data
    - rnp::secure_bytes::size
    - dynamic_cast<X25519EncMaterial *>
    - x25519_native_encrypt
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t X25519KeyMaterial::encrypt(rnp::SecurityContext &   ctx,\n
      \                          EncMaterial &            out,\n                           const
      rnp::secure_bytes &data) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const X25519EncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1661,1
    - Dst: resize
      Src: /src/rnp/src/lib/key_material.cpp:1665,1
    - Dst: size
      Src: /src/rnp/src/lib/key_material.cpp:1666,1
    - Dst: x25519_native_decrypt
      Src: /src/rnp/src/lib/key_material.cpp:1667,1
    - Dst: data
      Src: /src/rnp/src/lib/key_material.cpp:1667,1
    - Dst: resize
      Src: /src/rnp/src/lib/key_material.cpp:1669,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - '   out'
    - '   in'
    argTypes:
    - rnp::SecurityContext
    - rnp::secure_bytes
    - EncMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1672
      start: 1656
    functionDepth: 1
    functionLinenumber: 1656
    functionLinenumberEnd: 1672
    functionName: pgp::X25519KeyMaterial::decrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - data
    - x25519_native_decrypt
    - resize
    - dynamic_cast<const X25519EncMaterial *>
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t X25519KeyMaterial::decrypt(rnp::SecurityContext &ctx,\n
      \                          rnp::secure_bytes &   out,\n                           const
      EncMaterial &   in) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1674
    functionDepth: 0
    functionLinenumber: 1674
    functionLinenumberEnd: 1678
    functionName: pgp::X25519KeyMaterial::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t X25519KeyMaterial::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1684
      start: 1680
    functionDepth: 0
    functionLinenumber: 1680
    functionLinenumberEnd: 1684
    functionName: pgp::X25519KeyMaterial::curve
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t X25519KeyMaterial::curve() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1690
      start: 1686
    functionDepth: 0
    functionLinenumber: 1686
    functionLinenumberEnd: 1690
    functionName: '&

      X25519KeyMaterial::pub() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      X25519KeyMaterial::pub() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1696
      start: 1692
    functionDepth: 0
    functionLinenumber: 1692
    functionLinenumberEnd: 1696
    functionName: '&

      X25519KeyMaterial::priv() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      X25519KeyMaterial::priv() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:1701,1
    - Dst: Ed448KeyMaterial::Ed448KeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:1701,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1698
    functionDepth: 0
    functionLinenumber: 1698
    functionLinenumberEnd: 1702
    functionName: pgp::Ed448KeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - Ed448KeyMaterial::Ed448KeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> Ed448KeyMaterial::clone()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/key_material.cpp:1708,1
    - Dst: pub
      Src: /src/rnp/src/lib/key_material.cpp:1708,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1704
    functionDepth: 0
    functionLinenumber: 1704
    functionLinenumberEnd: 1709
    functionName: pgp::Ed448KeyMaterial::grip_update
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub
    - rnp::Hash::add
    linkageType: ''
    returnType: void
    signature: void Ed448KeyMaterial::grip_update(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ed448_validate_key_native
      Src: /src/rnp/src/lib/key_material.cpp:1714,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1711
    functionDepth: 0
    functionLinenumber: 1711
    functionLinenumberEnd: 1715
    functionName: pgp::Ed448KeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - ed448_validate_key_native
    linkageType: ''
    returnType: bool
    signature: bool Ed448KeyMaterial::validate_material(rnp::SecurityContext &ctx,
      bool reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::Ed448KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:1720,1
    - Dst: pgp::KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:1721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1722
      start: 1717
    functionDepth: 0
    functionLinenumber: 1717
    functionLinenumberEnd: 1722
    functionName: pgp::Ed448KeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - pgp::Ed448KeyMaterial::clear_secret
    - pgp::KeyMaterial::clear_secret
    linkageType: ''
    returnType: void
    signature: void Ed448KeyMaterial::clear_secret() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:1728,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/key_material.cpp:1729,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1730,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:1730,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:1730,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1731,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1736
      start: 1724
    functionDepth: 1
    functionLinenumber: 1724
    functionLinenumberEnd: 1736
    functionName: pgp::Ed448KeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - BITS_TO_BYTES
    - pgp::ec::Curve::get
    - pgp_packet_body_t::get
    - std::vector::size
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool Ed448KeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:1741,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/key_material.cpp:1742,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1743,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:1743,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:1743,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1750
      start: 1738
    functionDepth: 1
    functionLinenumber: 1738
    functionLinenumberEnd: 1750
    functionName: pgp::Ed448KeyMaterial::parse_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - BITS_TO_BYTES
    - pgp::ec::Curve::get
    - pgp_packet_body_t::get
    - std::vector::size
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool Ed448KeyMaterial::parse_secret(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:1755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1756
      start: 1752
    functionDepth: 0
    functionLinenumber: 1752
    functionLinenumberEnd: 1756
    functionName: pgp::Ed448KeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void Ed448KeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:1761,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1762
      start: 1758
    functionDepth: 0
    functionLinenumber: 1758
    functionLinenumberEnd: 1762
    functionName: pgp::Ed448KeyMaterial::write_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void Ed448KeyMaterial::write_secret(pgp_packet_body_t &pkt) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_ed448_native
      Src: /src/rnp/src/lib/key_material.cpp:1767,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1768,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:1771,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1772
      start: 1764
    functionDepth: 1
    functionLinenumber: 1764
    functionLinenumberEnd: 1772
    functionName: pgp::Ed448KeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - finish_generate
    - generate_ed448_native
    linkageType: ''
    returnType: bool
    signature: bool Ed448KeyMaterial::generate(rnp::SecurityContext &ctx, const KeyParams
      &params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const Ed448SigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1779,1
    - Dst: ed448_verify_native
      Src: /src/rnp/src/lib/key_material.cpp:1783,1
    - Dst: data
      Src: /src/rnp/src/lib/key_material.cpp:1783,1
    - Dst: size
      Src: /src/rnp/src/lib/key_material.cpp:1783,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - '         sig'
    - '   hash'
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1784
      start: 1774
    functionDepth: 1
    functionLinenumber: 1774
    functionLinenumberEnd: 1784
    functionName: pgp::Ed448KeyMaterial::verify
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - data
    - ed448_verify_native
    - dynamic_cast<const Ed448SigMaterial *>
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Ed448KeyMaterial::verify(const rnp::SecurityContext &ctx,\n
      \                        const SigMaterial &         sig,\n                         const
      rnp::secure_bytes &   hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<Ed448SigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1791,1
    - Dst: ed448_sign_native
      Src: /src/rnp/src/lib/key_material.cpp:1795,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/key_material.cpp:1795,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/key_material.cpp:1795,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            sig'
    - hash
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1796
      start: 1786
    functionDepth: 1
    functionLinenumber: 1786
    functionLinenumberEnd: 1796
    functionName: pgp::Ed448KeyMaterial::sign
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - ed448_sign_native
    - dynamic_cast<Ed448SigMaterial *>
    - rnp::secure_bytes::data
    - rnp::secure_bytes::size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Ed448KeyMaterial::sign(rnp::SecurityContext &   ctx,\n
      \                      SigMaterial &            sig,\n                       const
      rnp::secure_bytes &hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::Ed448KeyMaterial::sig_hash_allowed
      Src: /src/rnp/src/lib/key_material.cpp:1801,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1805
      start: 1798
    functionDepth: 1
    functionLinenumber: 1798
    functionLinenumberEnd: 1805
    functionName: pgp::Ed448KeyMaterial::adjust_hash
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp::Ed448KeyMaterial::sig_hash_allowed
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t Ed448KeyMaterial::adjust_hash(pgp_hash_alg_t hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/key_material.cpp:1810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1811
      start: 1807
    functionDepth: 0
    functionLinenumber: 1807
    functionLinenumberEnd: 1811
    functionName: pgp::Ed448KeyMaterial::sig_hash_allowed
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - rnp::Hash::size
    linkageType: ''
    returnType: bool
    signature: bool Ed448KeyMaterial::sig_hash_allowed(pgp_hash_alg_t hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1817
      start: 1813
    functionDepth: 0
    functionLinenumber: 1813
    functionLinenumberEnd: 1817
    functionName: pgp::Ed448KeyMaterial::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Ed448KeyMaterial::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1823
      start: 1819
    functionDepth: 0
    functionLinenumber: 1819
    functionLinenumberEnd: 1823
    functionName: pgp::Ed448KeyMaterial::curve
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t Ed448KeyMaterial::curve() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1829
      start: 1825
    functionDepth: 0
    functionLinenumber: 1825
    functionLinenumberEnd: 1829
    functionName: '&

      Ed448KeyMaterial::pub() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      Ed448KeyMaterial::pub() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1835
      start: 1831
    functionDepth: 0
    functionLinenumber: 1831
    functionLinenumberEnd: 1835
    functionName: '&

      Ed448KeyMaterial::priv() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      Ed448KeyMaterial::priv() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:1840,1
    - Dst: X448KeyMaterial::X448KeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:1840,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1841
      start: 1837
    functionDepth: 0
    functionLinenumber: 1837
    functionLinenumberEnd: 1841
    functionName: pgp::X448KeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - X448KeyMaterial::X448KeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> X448KeyMaterial::clone()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/key_material.cpp:1847,1
    - Dst: pub
      Src: /src/rnp/src/lib/key_material.cpp:1847,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1848
      start: 1843
    functionDepth: 0
    functionLinenumber: 1843
    functionLinenumberEnd: 1848
    functionName: pgp::X448KeyMaterial::grip_update
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub
    - rnp::Hash::add
    linkageType: ''
    returnType: void
    signature: void X448KeyMaterial::grip_update(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: x448_validate_key_native
      Src: /src/rnp/src/lib/key_material.cpp:1853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1854
      start: 1850
    functionDepth: 0
    functionLinenumber: 1850
    functionLinenumberEnd: 1854
    functionName: pgp::X448KeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - x448_validate_key_native
    linkageType: ''
    returnType: bool
    signature: bool X448KeyMaterial::validate_material(rnp::SecurityContext &ctx,
      bool reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::X448KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:1859,1
    - Dst: pgp::KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:1860,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1861
      start: 1856
    functionDepth: 0
    functionLinenumber: 1856
    functionLinenumberEnd: 1861
    functionName: pgp::X448KeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - pgp::X448KeyMaterial::clear_secret
    - pgp::KeyMaterial::clear_secret
    linkageType: ''
    returnType: void
    signature: void X448KeyMaterial::clear_secret() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:1867,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/key_material.cpp:1868,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1869,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:1869,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:1869,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1870,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1875
      start: 1863
    functionDepth: 1
    functionLinenumber: 1863
    functionLinenumberEnd: 1875
    functionName: pgp::X448KeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - BITS_TO_BYTES
    - pgp::ec::Curve::get
    - pgp_packet_body_t::get
    - std::vector::size
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool X448KeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/key_material.cpp:1880,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/key_material.cpp:1881,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1882,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:1882,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:1882,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1883,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1889
      start: 1877
    functionDepth: 1
    functionLinenumber: 1877
    functionLinenumberEnd: 1889
    functionName: pgp::X448KeyMaterial::parse_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - BITS_TO_BYTES
    - pgp::ec::Curve::get
    - pgp_packet_body_t::get
    - std::vector::size
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool X448KeyMaterial::parse_secret(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:1894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1895
      start: 1891
    functionDepth: 0
    functionLinenumber: 1891
    functionLinenumberEnd: 1895
    functionName: pgp::X448KeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void X448KeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:1900,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1901
      start: 1897
    functionDepth: 0
    functionLinenumber: 1897
    functionLinenumberEnd: 1901
    functionName: pgp::X448KeyMaterial::write_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void X448KeyMaterial::write_secret(pgp_packet_body_t &pkt) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: generate_x448_native
      Src: /src/rnp/src/lib/key_material.cpp:1906,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:1907,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:1910,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1911
      start: 1903
    functionDepth: 1
    functionLinenumber: 1903
    functionLinenumberEnd: 1911
    functionName: pgp::X448KeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - finish_generate
    - generate_x448_native
    linkageType: ''
    returnType: bool
    signature: bool X448KeyMaterial::generate(rnp::SecurityContext &ctx, const KeyParams
      &params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<X448EncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1918,1
    - Dst: x25519_native_encrypt
      Src: /src/rnp/src/lib/key_material.cpp:1922,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/key_material.cpp:1922,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/key_material.cpp:1922,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            out'
    - data
    argTypes:
    - rnp::SecurityContext
    - EncMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1923
      start: 1913
    functionDepth: 1
    functionLinenumber: 1913
    functionLinenumberEnd: 1923
    functionName: pgp::X448KeyMaterial::encrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<X448EncMaterial *>
    - rnp::secure_bytes::data
    - rnp::secure_bytes::size
    - x25519_native_encrypt
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t X448KeyMaterial::encrypt(rnp::SecurityContext &   ctx,\n
      \                        EncMaterial &            out,\n                         const
      rnp::secure_bytes &data) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const X448EncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:1930,1
    - Dst: resize
      Src: /src/rnp/src/lib/key_material.cpp:1934,1
    - Dst: size
      Src: /src/rnp/src/lib/key_material.cpp:1935,1
    - Dst: x448_native_decrypt
      Src: /src/rnp/src/lib/key_material.cpp:1936,1
    - Dst: data
      Src: /src/rnp/src/lib/key_material.cpp:1936,1
    - Dst: resize
      Src: /src/rnp/src/lib/key_material.cpp:1938,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - '   out'
    - '   in'
    argTypes:
    - rnp::SecurityContext
    - rnp::secure_bytes
    - EncMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1941
      start: 1925
    functionDepth: 1
    functionLinenumber: 1925
    functionLinenumberEnd: 1941
    functionName: pgp::X448KeyMaterial::decrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - data
    - x448_native_decrypt
    - resize
    - dynamic_cast<const X448EncMaterial *>
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t X448KeyMaterial::decrypt(rnp::SecurityContext &ctx,\n
      \                        rnp::secure_bytes &   out,\n                         const
      EncMaterial &   in) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1947
      start: 1943
    functionDepth: 0
    functionLinenumber: 1943
    functionLinenumberEnd: 1947
    functionName: pgp::X448KeyMaterial::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t X448KeyMaterial::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1953
      start: 1949
    functionDepth: 0
    functionLinenumber: 1949
    functionLinenumberEnd: 1953
    functionName: pgp::X448KeyMaterial::curve
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t X448KeyMaterial::curve() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1955
    functionDepth: 0
    functionLinenumber: 1955
    functionLinenumberEnd: 1959
    functionName: '&

      X448KeyMaterial::pub() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      X448KeyMaterial::pub() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1965
      start: 1961
    functionDepth: 0
    functionLinenumber: 1961
    functionLinenumberEnd: 1965
    functionName: '&

      X448KeyMaterial::priv() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: 'std::vector<uint8_t> &

      X448KeyMaterial::priv() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:1972,1
    - Dst: MlkemEcdhKeyMaterial::MlkemEcdhKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:1972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1973
      start: 1969
    functionDepth: 0
    functionLinenumber: 1969
    functionLinenumberEnd: 1973
    functionName: pgp::MlkemEcdhKeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - MlkemEcdhKeyMaterial::MlkemEcdhKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> MlkemEcdhKeyMaterial::clone()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/key_material.cpp:1978,1
    - Dst: pub
      Src: /src/rnp/src/lib/key_material.cpp:1978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1979
      start: 1975
    functionDepth: 0
    functionLinenumber: 1975
    functionLinenumberEnd: 1979
    functionName: pgp::MlkemEcdhKeyMaterial::grip_update
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub
    - rnp::Hash::add
    linkageType: ''
    returnType: void
    signature: void MlkemEcdhKeyMaterial::grip_update(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kyber_ecdh_validate_key
      Src: /src/rnp/src/lib/key_material.cpp:1984,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1985
      start: 1981
    functionDepth: 1
    functionLinenumber: 1981
    functionLinenumberEnd: 1985
    functionName: pgp::MlkemEcdhKeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - kyber_ecdh_validate_key
    linkageType: ''
    returnType: bool
    signature: bool MlkemEcdhKeyMaterial::validate_material(rnp::SecurityContext &ctx,
      bool reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: priv::secure_clear
      Src: /src/rnp/src/lib/key_material.cpp:1990,1
    - Dst: pgp::KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:1991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1992
      start: 1987
    functionDepth: 0
    functionLinenumber: 1987
    functionLinenumberEnd: 1992
    functionName: pgp::MlkemEcdhKeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - priv::secure_clear
    - pgp::KeyMaterial::clear_secret
    linkageType: ''
    returnType: void
    signature: void MlkemEcdhKeyMaterial::clear_secret() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:1999,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:1999,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:1999,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:2000,1
    - Dst: pgp_kyber_ecdh_composite_public_key_t
      Src: /src/rnp/src/lib/key_material.cpp:2003,1
    - Dst: alg
      Src: /src/rnp/src/lib/key_material.cpp:2003,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2005
      start: 1994
    functionDepth: 1
    functionLinenumber: 1994
    functionLinenumberEnd: 2005
    functionName: pgp::MlkemEcdhKeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_kyber_ecdh_composite_public_key_t
    - pgp_packet_body_t::get
    - std::vector::size
    - alg
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool MlkemEcdhKeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:2011,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:2011,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:2011,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:2012,1
    - Dst: pgp_kyber_ecdh_composite_private_key_t
      Src: /src/rnp/src/lib/key_material.cpp:2015,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:2015,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:2015,1
    - Dst: alg
      Src: /src/rnp/src/lib/key_material.cpp:2015,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2018
      start: 2007
    functionDepth: 1
    functionLinenumber: 2007
    functionLinenumberEnd: 2018
    functionName: pgp::MlkemEcdhKeyMaterial::parse_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_kyber_ecdh_composite_private_key_t
    - pgp_packet_body_t::get
    - std::vector::size
    - alg
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool MlkemEcdhKeyMaterial::parse_secret(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:2023,1
    - Dst: pub::get_encoded
      Src: /src/rnp/src/lib/key_material.cpp:2023,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2024
      start: 2020
    functionDepth: 0
    functionLinenumber: 2020
    functionLinenumberEnd: 2024
    functionName: pgp::MlkemEcdhKeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    - pub::get_encoded
    linkageType: ''
    returnType: void
    signature: void MlkemEcdhKeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:2029,1
    - Dst: priv::get_encoded
      Src: /src/rnp/src/lib/key_material.cpp:2029,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2030
      start: 2026
    functionDepth: 0
    functionLinenumber: 2026
    functionLinenumberEnd: 2030
    functionName: pgp::MlkemEcdhKeyMaterial::write_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    - priv::get_encoded
    linkageType: ''
    returnType: void
    signature: void MlkemEcdhKeyMaterial::write_secret(pgp_packet_body_t &pkt) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_kyber_ecdh_composite_key_t::gen_keypair
      Src: /src/rnp/src/lib/key_material.cpp:2035,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:2036,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:2039,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2040
      start: 2032
    functionDepth: 1
    functionLinenumber: 2032
    functionLinenumberEnd: 2040
    functionName: pgp::MlkemEcdhKeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_kyber_ecdh_composite_key_t::gen_keypair
    - finish_generate
    linkageType: ''
    returnType: bool
    signature: bool MlkemEcdhKeyMaterial::generate(rnp::SecurityContext &ctx, const
      KeyParams &params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<MlkemEcdhEncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:2047,1
    - Dst: pub::encrypt
      Src: /src/rnp/src/lib/key_material.cpp:2051,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/key_material.cpp:2051,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/key_material.cpp:2051,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            out'
    - data
    argTypes:
    - rnp::SecurityContext
    - EncMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2052
      start: 2042
    functionDepth: 1
    functionLinenumber: 2042
    functionLinenumberEnd: 2052
    functionName: pgp::MlkemEcdhKeyMaterial::encrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - rnp::secure_bytes::data
    - rnp::secure_bytes::size
    - pub::encrypt
    - dynamic_cast<MlkemEcdhEncMaterial *>
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t MlkemEcdhKeyMaterial::encrypt(rnp::SecurityContext &
      \  ctx,\n                              EncMaterial &            out,\n                              const
      rnp::secure_bytes &data) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const MlkemEcdhEncMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:2059,1
    - Dst: resize
      Src: /src/rnp/src/lib/key_material.cpp:2063,1
    - Dst: size
      Src: /src/rnp/src/lib/key_material.cpp:2064,1
    - Dst: priv::decrypt
      Src: /src/rnp/src/lib/key_material.cpp:2065,1
    - Dst: data
      Src: /src/rnp/src/lib/key_material.cpp:2065,1
    - Dst: pub
      Src: /src/rnp/src/lib/key_material.cpp:2065,1
    - Dst: resize
      Src: /src/rnp/src/lib/key_material.cpp:2067,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ctx
    - '   out'
    - '   in'
    argTypes:
    - rnp::SecurityContext
    - rnp::secure_bytes
    - EncMaterial
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2070
      start: 2054
    functionDepth: 1
    functionLinenumber: 2054
    functionLinenumberEnd: 2070
    functionName: pgp::MlkemEcdhKeyMaterial::decrypt
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<const MlkemEcdhEncMaterial *>
    - data
    - resize
    - priv::decrypt
    - pub
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t MlkemEcdhKeyMaterial::decrypt(rnp::SecurityContext &ctx,\n
      \                             rnp::secure_bytes &   out,\n                              const
      EncMaterial &   in) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pub
      Src: /src/rnp/src/lib/key_material.cpp:2075,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2076
      start: 2072
    functionDepth: 0
    functionLinenumber: 2072
    functionLinenumberEnd: 2076
    functionName: pgp::MlkemEcdhKeyMaterial::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub
    linkageType: ''
    returnType: size_t
    signature: size_t MlkemEcdhKeyMaterial::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2082
      start: 2078
    functionDepth: 0
    functionLinenumber: 2078
    functionLinenumberEnd: 2082
    functionName: '&

      MlkemEcdhKeyMaterial::pub() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_kyber_ecdh_composite_public_key_t
    signature: 'pgp_kyber_ecdh_composite_public_key_t &

      MlkemEcdhKeyMaterial::pub() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2088
      start: 2084
    functionDepth: 0
    functionLinenumber: 2084
    functionLinenumberEnd: 2088
    functionName: '&

      MlkemEcdhKeyMaterial::priv() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_kyber_ecdh_composite_private_key_t
    signature: 'pgp_kyber_ecdh_composite_private_key_t &

      MlkemEcdhKeyMaterial::priv() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:2095,1
    - Dst: DilithiumEccKeyMaterial::DilithiumEccKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:2095,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2096
      start: 2092
    functionDepth: 0
    functionLinenumber: 2092
    functionLinenumberEnd: 2096
    functionName: pgp::DilithiumEccKeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - DilithiumEccKeyMaterial::DilithiumEccKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> DilithiumEccKeyMaterial::clone()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/key_material.cpp:2101,1
    - Dst: pub
      Src: /src/rnp/src/lib/key_material.cpp:2101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2098
    functionDepth: 0
    functionLinenumber: 2098
    functionLinenumberEnd: 2102
    functionName: pgp::DilithiumEccKeyMaterial::grip_update
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub
    - rnp::Hash::add
    linkageType: ''
    returnType: void
    signature: void DilithiumEccKeyMaterial::grip_update(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dilithium_exdsa_validate_key
      Src: /src/rnp/src/lib/key_material.cpp:2107,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2108
      start: 2104
    functionDepth: 1
    functionLinenumber: 2104
    functionLinenumberEnd: 2108
    functionName: pgp::DilithiumEccKeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dilithium_exdsa_validate_key
    linkageType: ''
    returnType: bool
    signature: bool DilithiumEccKeyMaterial::validate_material(rnp::SecurityContext
      &ctx, bool reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: priv::secure_clear
      Src: /src/rnp/src/lib/key_material.cpp:2113,1
    - Dst: pgp::KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:2114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2115
      start: 2110
    functionDepth: 0
    functionLinenumber: 2110
    functionLinenumberEnd: 2115
    functionName: pgp::DilithiumEccKeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - priv::secure_clear
    - pgp::KeyMaterial::clear_secret
    linkageType: ''
    returnType: void
    signature: void DilithiumEccKeyMaterial::clear_secret() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:2122,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:2122,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:2122,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:2123,1
    - Dst: pgp_dilithium_exdsa_composite_public_key_t
      Src: /src/rnp/src/lib/key_material.cpp:2126,1
    - Dst: alg
      Src: /src/rnp/src/lib/key_material.cpp:2126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2128
      start: 2117
    functionDepth: 1
    functionLinenumber: 2117
    functionLinenumberEnd: 2128
    functionName: pgp::DilithiumEccKeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_dilithium_exdsa_composite_public_key_t
    - pgp_packet_body_t::get
    - std::vector::size
    - alg
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool DilithiumEccKeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:2134,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:2134,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:2134,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:2135,1
    - Dst: pgp_dilithium_exdsa_composite_private_key_t
      Src: /src/rnp/src/lib/key_material.cpp:2138,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:2138,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:2138,1
    - Dst: alg
      Src: /src/rnp/src/lib/key_material.cpp:2138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2141
      start: 2130
    functionDepth: 1
    functionLinenumber: 2130
    functionLinenumberEnd: 2141
    functionName: pgp::DilithiumEccKeyMaterial::parse_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    - pgp_dilithium_exdsa_composite_private_key_t
    - std::vector::size
    - alg
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool DilithiumEccKeyMaterial::parse_secret(pgp_packet_body_t &pkt)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:2146,1
    - Dst: pub::get_encoded
      Src: /src/rnp/src/lib/key_material.cpp:2146,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2143
    functionDepth: 0
    functionLinenumber: 2143
    functionLinenumberEnd: 2147
    functionName: pgp::DilithiumEccKeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    - pub::get_encoded
    linkageType: ''
    returnType: void
    signature: void DilithiumEccKeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:2152,1
    - Dst: priv::get_encoded
      Src: /src/rnp/src/lib/key_material.cpp:2152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2153
      start: 2149
    functionDepth: 0
    functionLinenumber: 2149
    functionLinenumberEnd: 2153
    functionName: pgp::DilithiumEccKeyMaterial::write_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    - priv::get_encoded
    linkageType: ''
    returnType: void
    signature: void DilithiumEccKeyMaterial::write_secret(pgp_packet_body_t &pkt)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_dilithium_exdsa_composite_key_t::gen_keypair
      Src: /src/rnp/src/lib/key_material.cpp:2158,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:2159,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:2162,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2163
      start: 2155
    functionDepth: 1
    functionLinenumber: 2155
    functionLinenumberEnd: 2163
    functionName: pgp::DilithiumEccKeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - finish_generate
    - pgp_dilithium_exdsa_composite_key_t::gen_keypair
    linkageType: ''
    returnType: bool
    signature: bool DilithiumEccKeyMaterial::generate(rnp::SecurityContext &ctx, const
      KeyParams &params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const DilithiumSigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:2170,1
    - Dst: pub::verify
      Src: /src/rnp/src/lib/key_material.cpp:2174,1
    - Dst: data
      Src: /src/rnp/src/lib/key_material.cpp:2174,1
    - Dst: size
      Src: /src/rnp/src/lib/key_material.cpp:2174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - '         sig'
    - '   hash'
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2175
      start: 2165
    functionDepth: 1
    functionLinenumber: 2165
    functionLinenumberEnd: 2175
    functionName: pgp::DilithiumEccKeyMaterial::verify
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub::verify
    - data
    - dynamic_cast<const DilithiumSigMaterial *>
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t DilithiumEccKeyMaterial::verify(const rnp::SecurityContext
      &ctx,\n                                const SigMaterial &         sig,\n                                const
      rnp::secure_bytes &   hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<DilithiumSigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:2182,1
    - Dst: priv::sign
      Src: /src/rnp/src/lib/key_material.cpp:2186,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/key_material.cpp:2187,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/key_material.cpp:2187,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            sig'
    - hash
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2188
      start: 2177
    functionDepth: 1
    functionLinenumber: 2177
    functionLinenumberEnd: 2188
    functionName: pgp::DilithiumEccKeyMaterial::sign
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - rnp::secure_bytes::data
    - priv::sign
    - dynamic_cast<DilithiumSigMaterial *>
    - rnp::secure_bytes::size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t DilithiumEccKeyMaterial::sign(rnp::SecurityContext &
      \  ctx,\n                              SigMaterial &            sig,\n                              const
      rnp::secure_bytes &hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::DilithiumEccKeyMaterial::sig_hash_allowed
      Src: /src/rnp/src/lib/key_material.cpp:2193,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2197
      start: 2190
    functionDepth: 1
    functionLinenumber: 2190
    functionLinenumberEnd: 2197
    functionName: pgp::DilithiumEccKeyMaterial::adjust_hash
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp::DilithiumEccKeyMaterial::sig_hash_allowed
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t DilithiumEccKeyMaterial::adjust_hash(pgp_hash_alg_t
      hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/key_material.cpp:2202,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2203
      start: 2199
    functionDepth: 0
    functionLinenumber: 2199
    functionLinenumberEnd: 2203
    functionName: pgp::DilithiumEccKeyMaterial::sig_hash_allowed
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - rnp::Hash::size
    linkageType: ''
    returnType: bool
    signature: bool DilithiumEccKeyMaterial::sig_hash_allowed(pgp_hash_alg_t hash)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pub
      Src: /src/rnp/src/lib/key_material.cpp:2208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2209
      start: 2205
    functionDepth: 0
    functionLinenumber: 2205
    functionLinenumberEnd: 2209
    functionName: pgp::DilithiumEccKeyMaterial::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub
    linkageType: ''
    returnType: size_t
    signature: size_t DilithiumEccKeyMaterial::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2215
      start: 2211
    functionDepth: 0
    functionLinenumber: 2211
    functionLinenumberEnd: 2215
    functionName: '&

      DilithiumEccKeyMaterial::pub() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_dilithium_exdsa_composite_public_key_t
    signature: 'pgp_dilithium_exdsa_composite_public_key_t &

      DilithiumEccKeyMaterial::pub() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2221
      start: 2217
    functionDepth: 0
    functionLinenumber: 2217
    functionLinenumberEnd: 2221
    functionName: '&

      DilithiumEccKeyMaterial::priv() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_dilithium_exdsa_composite_private_key_t
    signature: 'pgp_dilithium_exdsa_composite_private_key_t &

      DilithiumEccKeyMaterial::priv() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<KeyMaterial>
      Src: /src/rnp/src/lib/key_material.cpp:2226,1
    - Dst: SlhdsaKeyMaterial::SlhdsaKeyMaterial
      Src: /src/rnp/src/lib/key_material.cpp:2226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2227
      start: 2223
    functionDepth: 0
    functionLinenumber: 2223
    functionLinenumberEnd: 2227
    functionName: pgp::SlhdsaKeyMaterial::clone
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - SlhdsaKeyMaterial::SlhdsaKeyMaterial
    - std::unique_ptr<KeyMaterial>
    linkageType: ''
    returnType: std::unique_ptr<KeyMaterial>
    signature: std::unique_ptr<KeyMaterial> SlhdsaKeyMaterial::clone()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/key_material.cpp:2232,1
    - Dst: pub
      Src: /src/rnp/src/lib/key_material.cpp:2232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - rnp::Hash
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2233
      start: 2229
    functionDepth: 0
    functionLinenumber: 2229
    functionLinenumberEnd: 2233
    functionName: pgp::SlhdsaKeyMaterial::grip_update
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub
    - rnp::Hash::add
    linkageType: ''
    returnType: void
    signature: void SlhdsaKeyMaterial::grip_update(rnp::Hash &hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sphincsplus_validate_key
      Src: /src/rnp/src/lib/key_material.cpp:2238,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - reset
    argTypes:
    - rnp::SecurityContext
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2239
      start: 2235
    functionDepth: 0
    functionLinenumber: 2235
    functionLinenumberEnd: 2239
    functionName: pgp::SlhdsaKeyMaterial::validate_material
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - sphincsplus_validate_key
    linkageType: ''
    returnType: bool
    signature: bool SlhdsaKeyMaterial::validate_material(rnp::SecurityContext &ctx,
      bool reset)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: priv::secure_clear
      Src: /src/rnp/src/lib/key_material.cpp:2244,1
    - Dst: pgp::KeyMaterial::clear_secret
      Src: /src/rnp/src/lib/key_material.cpp:2245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2246
      start: 2241
    functionDepth: 0
    functionLinenumber: 2241
    functionLinenumberEnd: 2246
    functionName: pgp::SlhdsaKeyMaterial::clear_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - priv::secure_clear
    - pgp::KeyMaterial::clear_secret
    linkageType: ''
    returnType: void
    signature: void SlhdsaKeyMaterial::clear_secret() noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sphincsplus_pubkey_size
      Src: /src/rnp/src/lib/key_material.cpp:2252,1
    - Dst: alg
      Src: /src/rnp/src/lib/key_material.cpp:2252,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:2254,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:2258,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:2258,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:2258,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:2259,1
    - Dst: pgp_sphincsplus_public_key_t
      Src: /src/rnp/src/lib/key_material.cpp:2262,1
    - Dst: alg
      Src: /src/rnp/src/lib/key_material.cpp:2262,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2264
      start: 2248
    functionDepth: 1
    functionLinenumber: 2248
    functionLinenumberEnd: 2264
    functionName: pgp::SlhdsaKeyMaterial::parse
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - sphincsplus_pubkey_size
    - pgp_sphincsplus_public_key_t
    - pgp_packet_body_t::get
    - std::vector::size
    - alg
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool SlhdsaKeyMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/key_material.cpp:2270,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/key_material.cpp:2270,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/key_material.cpp:2270,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:2271,1
    - Dst: pgp_sphincsplus_private_key_t
      Src: /src/rnp/src/lib/key_material.cpp:2274,1
    - Dst: alg
      Src: /src/rnp/src/lib/key_material.cpp:2274,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2277
      start: 2266
    functionDepth: 1
    functionLinenumber: 2266
    functionLinenumberEnd: 2277
    functionName: pgp::SlhdsaKeyMaterial::parse_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    - std::vector::size
    - pgp_sphincsplus_private_key_t
    - alg
    - std::vector::data
    linkageType: ''
    returnType: bool
    signature: bool SlhdsaKeyMaterial::parse_secret(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:2282,1
    - Dst: pub::get_encoded
      Src: /src/rnp/src/lib/key_material.cpp:2282,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2283
      start: 2279
    functionDepth: 0
    functionLinenumber: 2279
    functionLinenumberEnd: 2283
    functionName: pgp::SlhdsaKeyMaterial::write
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    - pub::get_encoded
    linkageType: ''
    returnType: void
    signature: void SlhdsaKeyMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/key_material.cpp:2288,1
    - Dst: priv::get_encoded
      Src: /src/rnp/src/lib/key_material.cpp:2288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2289
      start: 2285
    functionDepth: 0
    functionLinenumber: 2285
    functionLinenumberEnd: 2289
    functionName: pgp::SlhdsaKeyMaterial::write_secret
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    - priv::get_encoded
    linkageType: ''
    returnType: void
    signature: void SlhdsaKeyMaterial::write_secret(pgp_packet_body_t &pkt) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_sphincsplus_generate
      Src: /src/rnp/src/lib/key_material.cpp:2294,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/key_material.cpp:2295,1
    - Dst: finish_generate
      Src: /src/rnp/src/lib/key_material.cpp:2298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ctx
    - params
    argTypes:
    - rnp::SecurityContext
    - KeyParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2299
      start: 2291
    functionDepth: 1
    functionLinenumber: 2291
    functionLinenumberEnd: 2299
    functionName: pgp::SlhdsaKeyMaterial::generate
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - finish_generate
    - pgp_sphincsplus_generate
    linkageType: ''
    returnType: bool
    signature: bool SlhdsaKeyMaterial::generate(rnp::SecurityContext &ctx, const KeyParams
      &params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<const SlhdsaSigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:2306,1
    - Dst: pub::verify
      Src: /src/rnp/src/lib/key_material.cpp:2310,1
    - Dst: data
      Src: /src/rnp/src/lib/key_material.cpp:2310,1
    - Dst: size
      Src: /src/rnp/src/lib/key_material.cpp:2310,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - ctx
    - '         sig'
    - '   hash'
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2311
      start: 2301
    functionDepth: 1
    functionLinenumber: 2301
    functionLinenumberEnd: 2311
    functionName: pgp::SlhdsaKeyMaterial::verify
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub::verify
    - data
    - dynamic_cast<const SlhdsaSigMaterial *>
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t SlhdsaKeyMaterial::verify(const rnp::SecurityContext
      &ctx,\n                          const SigMaterial &         sig,\n                          const
      rnp::secure_bytes &   hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dynamic_cast<SlhdsaSigMaterial *>
      Src: /src/rnp/src/lib/key_material.cpp:2318,1
    - Dst: priv::sign
      Src: /src/rnp/src/lib/key_material.cpp:2322,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/key_material.cpp:2322,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/key_material.cpp:2322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - '   ctx'
    - '            sig'
    - hash
    argTypes:
    - rnp::SecurityContext
    - SigMaterial
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2323
      start: 2313
    functionDepth: 1
    functionLinenumber: 2313
    functionLinenumberEnd: 2323
    functionName: pgp::SlhdsaKeyMaterial::sign
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - dynamic_cast<SlhdsaSigMaterial *>
    - rnp::secure_bytes::data
    - rnp::secure_bytes::size
    - priv::sign
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t SlhdsaKeyMaterial::sign(rnp::SecurityContext &   ctx,\n
      \                       SigMaterial &            sig,\n                        const
      rnp::secure_bytes &hash) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::SlhdsaKeyMaterial::sig_hash_allowed
      Src: /src/rnp/src/lib/key_material.cpp:2328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2325
    functionDepth: 1
    functionLinenumber: 2325
    functionLinenumberEnd: 2332
    functionName: pgp::SlhdsaKeyMaterial::adjust_hash
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pgp::SlhdsaKeyMaterial::sig_hash_allowed
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t SlhdsaKeyMaterial::adjust_hash(pgp_hash_alg_t hash)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/key_material.cpp:2337,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2338
      start: 2334
    functionDepth: 0
    functionLinenumber: 2334
    functionLinenumberEnd: 2338
    functionName: pgp::SlhdsaKeyMaterial::sig_hash_allowed
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 2
    functionsReached:
    - rnp::Hash::size
    linkageType: ''
    returnType: bool
    signature: bool SlhdsaKeyMaterial::sig_hash_allowed(pgp_hash_alg_t hash) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pub
      Src: /src/rnp/src/lib/key_material.cpp:2343,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2344
      start: 2340
    functionDepth: 0
    functionLinenumber: 2340
    functionLinenumberEnd: 2344
    functionName: pgp::SlhdsaKeyMaterial::bits
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached:
    - pub
    linkageType: ''
    returnType: size_t
    signature: size_t SlhdsaKeyMaterial::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2350
      start: 2346
    functionDepth: 0
    functionLinenumber: 2346
    functionLinenumberEnd: 2350
    functionName: '&

      SlhdsaKeyMaterial::pub() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_sphincsplus_public_key_t
    signature: 'pgp_sphincsplus_public_key_t &

      SlhdsaKeyMaterial::pub() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2356
      start: 2352
    functionDepth: 0
    functionLinenumber: 2352
    functionLinenumberEnd: 2356
    functionName: '&

      SlhdsaKeyMaterial::priv() const noexcept'
    functionSourceFile: /src/rnp/src/lib/key_material.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_sphincsplus_private_key_t
    signature: 'pgp_sphincsplus_private_key_t &

      SlhdsaKeyMaterial::priv() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - a
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 35
    functionName: ARRAY_SIZE
    functionSourceFile: /src/rnp/src/lib/utils.h
    functionUses: 20
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_SIZE(a)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - array
    - ','
    - id_field
    - ','
    - ret_field
    - ','
    - lookup_value
    - ','
    - ret
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 53
    functionName: ARRAY_LOOKUP_BY_ID
    functionSourceFile: /src/rnp/src/lib/utils.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: ARRAY_LOOKUP_BY_ID(array, id_field, ret_field, lookup_value, ret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 57
    functionName: BITS_TO_BYTES
    functionSourceFile: /src/rnp/src/lib/utils.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BITS_TO_BYTES(b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: read_uint16
    functionSourceFile: /src/rnp/src/lib/utils.h
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: uint16_t
    signature: uint16_t read_uint16(const uint8_t *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - buf
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: read_uint32
    functionSourceFile: /src/rnp/src/lib/utils.h
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t read_uint32(const uint8_t *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - val
    argTypes:
    - uint8_t*
    - uint16_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 79
    functionName: write_uint16
    functionSourceFile: /src/rnp/src/lib/utils.h
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_uint16(uint8_t *buf, uint16_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - val
    argTypes:
    - uint8_t*
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 89
    functionName: write_uint32
    functionSourceFile: /src/rnp/src/lib/utils.h
    functionUses: 22
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_uint32(uint8_t *buf, uint32_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 2
    argNames:
    - buf
    - val
    argTypes:
    - uint8_t*
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 102
    functionName: write_uint64
    functionSourceFile: /src/rnp/src/lib/utils.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void write_uint64(uint8_t *buf, uint64_t val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/rnp/src/lib/utils.h:107,1
    - Dst: getenv
      Src: /src/rnp/src/lib/utils.h:109,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 112
    functionName: getenv_logname
    functionSourceFile: /src/rnp/src/lib/utils.h
    functionUses: 5
    functionsReached:
    - getenv
    linkageType: ''
    returnType: char
    signature: 'char *

      getenv_logname(void)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RawPacket
      Src: /src/rnp/src/lib/userid.cpp:37,1
    - Dst: assign
      Src: /src/rnp/src/lib/userid.cpp:40,1
    - Dst: pgp_userid_pkt_t::uid::data
      Src: /src/rnp/src/lib/userid.cpp:40,1
    - Dst: pgp_userid_pkt_t::uid::data
      Src: /src/rnp/src/lib/userid.cpp:40,1
    - Dst: pgp_userid_pkt_t::uid::size
      Src: /src/rnp/src/lib/userid.cpp:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - uidpkt
    argTypes:
    - pgp_userid_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: rnp::UserID::UserID
    functionSourceFile: /src/rnp/src/lib/userid.cpp
    functionUses: 0
    functionsReached:
    - assign
    - pgp_userid_pkt_t::uid::data
    - RawPacket
    - pgp_userid_pkt_t::uid::size
    linkageType: ''
    returnType: void
    signature: void UserID::UserID(const pgp_userid_pkt_t &uidpkt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/userid.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: rnp::UserID::sig_count
    functionSourceFile: /src/rnp/src/lib/userid.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t UserID::sig_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/rnp/src/lib/userid.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: '&

      UserID::get_sig(size_t idx) const'
    functionSourceFile: /src/rnp/src/lib/userid.cpp
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: pgp::SigID
    signature: 'pgp::SigID &

      UserID::get_sig(size_t idx) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/rnp/src/lib/userid.cpp:61,1
    - Dst: begin
      Src: /src/rnp/src/lib/userid.cpp:61,1
    - Dst: end
      Src: /src/rnp/src/lib/userid.cpp:61,1
    - Dst: end
      Src: /src/rnp/src/lib/userid.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - pgp::SigID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: rnp::UserID::has_sig
    functionSourceFile: /src/rnp/src/lib/userid.cpp
    functionUses: 0
    functionsReached:
    - std::find
    - end
    - begin
    linkageType: ''
    returnType: bool
    signature: bool UserID::has_sig(const pgp::SigID &id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/userid.cpp:67,1
    - Dst: insert
      Src: /src/rnp/src/lib/userid.cpp:68,1
    - Dst: begin
      Src: /src/rnp/src/lib/userid.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sig
    - begin
    argTypes:
    - pgp::SigID
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: rnp::UserID::add_sig
    functionSourceFile: /src/rnp/src/lib/userid.cpp
    functionUses: 0
    functionsReached:
    - insert
    - begin
    - size
    linkageType: ''
    returnType: void
    signature: void UserID::add_sig(const pgp::SigID &sig, bool begin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/rnp/src/lib/userid.cpp:74,1
    - Dst: begin
      Src: /src/rnp/src/lib/userid.cpp:74,1
    - Dst: end
      Src: /src/rnp/src/lib/userid.cpp:74,1
    - Dst: end
      Src: /src/rnp/src/lib/userid.cpp:75,1
    - Dst: std::invalid_argument
      Src: /src/rnp/src/lib/userid.cpp:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - id
    - newsig
    argTypes:
    - pgp::SigID
    - pgp::SigID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: rnp::UserID::replace_sig
    functionSourceFile: /src/rnp/src/lib/userid.cpp
    functionUses: 0
    functionsReached:
    - std::find
    - end
    - std::invalid_argument
    - begin
    linkageType: ''
    returnType: void
    signature: void UserID::replace_sig(const pgp::SigID &id, const pgp::SigID &newsig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/rnp/src/lib/userid.cpp:84,1
    - Dst: begin
      Src: /src/rnp/src/lib/userid.cpp:84,1
    - Dst: end
      Src: /src/rnp/src/lib/userid.cpp:84,1
    - Dst: end
      Src: /src/rnp/src/lib/userid.cpp:85,1
    - Dst: erase
      Src: /src/rnp/src/lib/userid.cpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - id
    argTypes:
    - pgp::SigID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: rnp::UserID::del_sig
    functionSourceFile: /src/rnp/src/lib/userid.cpp
    functionUses: 0
    functionsReached:
    - std::find
    - end
    - begin
    - erase
    linkageType: ''
    returnType: bool
    signature: bool UserID::del_sig(const pgp::SigID &id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/userid.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: rnp::UserID::clear_sigs
    functionSourceFile: /src/rnp/src/lib/userid.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void UserID::clear_sigs()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RawPacket
      Src: /src/rnp/src/lib/userid.cpp:37,1
    - Dst: assign
      Src: /src/rnp/src/lib/userid.cpp:40,1
    - Dst: pgp_userid_pkt_t::uid::data
      Src: /src/rnp/src/lib/userid.cpp:40,1
    - Dst: pgp_userid_pkt_t::uid::data
      Src: /src/rnp/src/lib/userid.cpp:40,1
    - Dst: pgp_userid_pkt_t::uid::size
      Src: /src/rnp/src/lib/userid.cpp:40,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - uidpkt
    argTypes:
    - pgp_userid_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: rnp::UserID::UserID
    functionSourceFile: /src/rnp/src/lib/userid.cpp
    functionUses: 0
    functionsReached:
    - assign
    - pgp_userid_pkt_t::uid::data
    - RawPacket
    - pgp_userid_pkt_t::uid::size
    linkageType: ''
    returnType: void
    signature: void UserID::UserID(const pgp_userid_pkt_t &uidpkt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/userid.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: rnp::UserID::sig_count
    functionSourceFile: /src/rnp/src/lib/userid.cpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: size_t
    signature: size_t UserID::sig_count() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/rnp/src/lib/userid.cpp:55,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 56
    functionName: '&

      UserID::get_sig(size_t idx) const'
    functionSourceFile: /src/rnp/src/lib/userid.cpp
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: pgp::SigID
    signature: 'pgp::SigID &

      UserID::get_sig(size_t idx) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/rnp/src/lib/userid.cpp:61,1
    - Dst: begin
      Src: /src/rnp/src/lib/userid.cpp:61,1
    - Dst: end
      Src: /src/rnp/src/lib/userid.cpp:61,1
    - Dst: end
      Src: /src/rnp/src/lib/userid.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - id
    argTypes:
    - pgp::SigID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: rnp::UserID::has_sig
    functionSourceFile: /src/rnp/src/lib/userid.cpp
    functionUses: 0
    functionsReached:
    - std::find
    - end
    - begin
    linkageType: ''
    returnType: bool
    signature: bool UserID::has_sig(const pgp::SigID &id) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/userid.cpp:67,1
    - Dst: insert
      Src: /src/rnp/src/lib/userid.cpp:68,1
    - Dst: begin
      Src: /src/rnp/src/lib/userid.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - sig
    - begin
    argTypes:
    - pgp::SigID
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 69
    functionName: rnp::UserID::add_sig
    functionSourceFile: /src/rnp/src/lib/userid.cpp
    functionUses: 0
    functionsReached:
    - insert
    - begin
    - size
    linkageType: ''
    returnType: void
    signature: void UserID::add_sig(const pgp::SigID &sig, bool begin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/rnp/src/lib/userid.cpp:74,1
    - Dst: begin
      Src: /src/rnp/src/lib/userid.cpp:74,1
    - Dst: end
      Src: /src/rnp/src/lib/userid.cpp:74,1
    - Dst: end
      Src: /src/rnp/src/lib/userid.cpp:75,1
    - Dst: std::invalid_argument
      Src: /src/rnp/src/lib/userid.cpp:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - id
    - newsig
    argTypes:
    - pgp::SigID
    - pgp::SigID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 79
    functionName: rnp::UserID::replace_sig
    functionSourceFile: /src/rnp/src/lib/userid.cpp
    functionUses: 0
    functionsReached:
    - std::find
    - end
    - std::invalid_argument
    - begin
    linkageType: ''
    returnType: void
    signature: void UserID::replace_sig(const pgp::SigID &id, const pgp::SigID &newsig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/rnp/src/lib/userid.cpp:84,1
    - Dst: begin
      Src: /src/rnp/src/lib/userid.cpp:84,1
    - Dst: end
      Src: /src/rnp/src/lib/userid.cpp:84,1
    - Dst: end
      Src: /src/rnp/src/lib/userid.cpp:85,1
    - Dst: erase
      Src: /src/rnp/src/lib/userid.cpp:88,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - id
    argTypes:
    - pgp::SigID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 90
    functionName: rnp::UserID::del_sig
    functionSourceFile: /src/rnp/src/lib/userid.cpp
    functionUses: 0
    functionsReached:
    - std::find
    - end
    - begin
    - erase
    linkageType: ''
    returnType: bool
    signature: bool UserID::del_sig(const pgp::SigID &id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/userid.cpp:95,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 96
    functionName: rnp::UserID::clear_sigs
    functionSourceFile: /src/rnp/src/lib/userid.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void UserID::clear_sigs()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: pgp::KeyParams::min_hash
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t min_hash() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: pgp::KeyParams::check_defaults
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void check_defaults() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: pgp::BitsKeyParams::BitsKeyParams
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitsKeyParams(size_t bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: pgp::BitsKeyParams::bits
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t bits() const noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: pgp::BitsKeyParams::set_bits
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_bits(size_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: pgp::RSAKeyParams::RSAKeyParams
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSAKeyParams()
  - 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: pgp::DSAKeyParams::DSAKeyParams
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSAKeyParams()
  - 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: pgp::DSAKeyParams::qbits
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t qbits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: pgp::DSAKeyParams::set_qbits
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_qbits(size_t value) noexcept
  - 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: pgp::EGKeyParams::EGKeyParams
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EGKeyParams()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: pgp::ECCKeyParams::ECCKeyParams
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECCKeyParams(pgp_curve_t curve = PGP_CURVE_UNKNOWN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: pgp::ECCKeyParams::curve
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t curve() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: pgp::ECCKeyParams::set_curve
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_curve(const pgp_curve_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: pgp::MlkemEcdhKeyParams::MlkemEcdhKeyParams
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MlkemEcdhKeyParams(pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: pgp::DilithiumEccKeyParams::DilithiumEccKeyParams
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DilithiumEccKeyParams(pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: pgp::SlhdsaKeyParams::SlhdsaKeyParams
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SlhdsaKeyParams(pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: pgp::KeyMaterial::KeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyMaterial(pgp_pubkey_alg_t kalg = PGP_PKA_NOTHING, bool secret
      = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kalg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 232
    functionName: pgp::RSAKeyMaterial::RSAKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSAKeyMaterial(pgp_pubkey_alg_t kalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - kalg
    - key
    argTypes:
    - pgp_pubkey_alg_t
    - rsa::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: pgp::RSAKeyMaterial::RSAKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSAKeyMaterial(pgp_pubkey_alg_t kalg, const rsa::Key &key, bool
      secret = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    functionName: pgp::DSAKeyMaterial::DSAKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSAKeyMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key
    argTypes:
    - dsa::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 277
    functionName: pgp::DSAKeyMaterial::DSAKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSAKeyMaterial(const dsa::Key &key, bool secret = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kalg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: pgp::EGKeyMaterial::EGKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EGKeyMaterial(pgp_pubkey_alg_t kalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - kalg
    - key
    argTypes:
    - pgp_pubkey_alg_t
    - eg::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: pgp::EGKeyMaterial::EGKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EGKeyMaterial(pgp_pubkey_alg_t kalg, const eg::Key &key, bool
      secret = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kalg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 350
    functionName: pgp::ECKeyMaterial::ECKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECKeyMaterial(pgp_pubkey_alg_t kalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - kalg
    - key
    argTypes:
    - pgp_pubkey_alg_t
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 352
    functionName: pgp::ECKeyMaterial::ECKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECKeyMaterial(pgp_pubkey_alg_t kalg, const ec::Key &key, bool
      secret = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 373
    functionName: pgp::ECDSAKeyMaterial::ECDSAKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSAKeyMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key
    argTypes:
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: pgp::ECDSAKeyMaterial::ECDSAKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSAKeyMaterial(const ec::Key &key, bool secret = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 392
    functionName: pgp::ECDHKeyMaterial::ECDHKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDHKeyMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key
    argTypes:
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 394
    functionName: pgp::ECDHKeyMaterial::ECDHKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDHKeyMaterial(const ec::Key &key, bool secret = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 418
    functionName: pgp::EDDSAKeyMaterial::EDDSAKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EDDSAKeyMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key
    argTypes:
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 420
    functionName: pgp::EDDSAKeyMaterial::EDDSAKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EDDSAKeyMaterial(const ec::Key &key, bool secret = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 437
    functionName: pgp::SM2KeyMaterial::SM2KeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SM2KeyMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key
    argTypes:
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 439
    functionName: pgp::SM2KeyMaterial::SM2KeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SM2KeyMaterial(const ec::Key &key, bool secret = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 466
    functionName: pgp::Ed25519KeyMaterial::Ed25519KeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed25519KeyMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 498
    functionName: pgp::X25519KeyMaterial::X25519KeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X25519KeyMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 528
    functionName: pgp::Ed448KeyMaterial::Ed448KeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448KeyMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 561
    functionName: pgp::X448KeyMaterial::X448KeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X448KeyMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kalg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 593
    functionName: pgp::MlkemEcdhKeyMaterial::MlkemEcdhKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MlkemEcdhKeyMaterial(pgp_pubkey_alg_t kalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kalg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 624
    functionName: pgp::DilithiumEccKeyMaterial::DilithiumEccKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DilithiumEccKeyMaterial(pgp_pubkey_alg_t kalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kalg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 657
    functionName: pgp::SlhdsaKeyMaterial::SlhdsaKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SlhdsaKeyMaterial(pgp_pubkey_alg_t kalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: pgp::KeyParams::min_hash
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t min_hash() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 53
    functionName: pgp::KeyParams::check_defaults
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void check_defaults() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - bits
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 63
    functionName: pgp::BitsKeyParams::BitsKeyParams
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void BitsKeyParams(size_t bits)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: pgp::BitsKeyParams::bits
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t bits() const noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 75
    functionName: pgp::BitsKeyParams::set_bits
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_bits(size_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: pgp::RSAKeyParams::RSAKeyParams
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSAKeyParams()
  - 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: pgp::DSAKeyParams::DSAKeyParams
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSAKeyParams()
  - 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: pgp::DSAKeyParams::qbits
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t qbits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: pgp::DSAKeyParams::set_qbits
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_qbits(size_t value) noexcept
  - 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: pgp::EGKeyParams::EGKeyParams
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EGKeyParams()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 117
    functionName: pgp::ECCKeyParams::ECCKeyParams
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECCKeyParams(pgp_curve_t curve = PGP_CURVE_UNKNOWN)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 123
    functionName: pgp::ECCKeyParams::curve
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t curve() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: pgp::ECCKeyParams::set_curve
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_curve(const pgp_curve_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: pgp::MlkemEcdhKeyParams::MlkemEcdhKeyParams
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MlkemEcdhKeyParams(pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 154
    functionDepth: 0
    functionLinenumber: 154
    functionLinenumberEnd: 154
    functionName: pgp::DilithiumEccKeyParams::DilithiumEccKeyParams
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DilithiumEccKeyParams(pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 163
    functionName: pgp::SlhdsaKeyParams::SlhdsaKeyParams
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SlhdsaKeyParams(pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 180
    functionName: pgp::KeyMaterial::KeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyMaterial(pgp_pubkey_alg_t kalg = PGP_PKA_NOTHING, bool secret
      = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kalg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 232
    functionDepth: 0
    functionLinenumber: 232
    functionLinenumberEnd: 232
    functionName: pgp::RSAKeyMaterial::RSAKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSAKeyMaterial(pgp_pubkey_alg_t kalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - kalg
    - key
    argTypes:
    - pgp_pubkey_alg_t
    - rsa::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 234
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 234
    functionName: pgp::RSAKeyMaterial::RSAKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSAKeyMaterial(pgp_pubkey_alg_t kalg, const rsa::Key &key, bool
      secret = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 275
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 275
    functionName: pgp::DSAKeyMaterial::DSAKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSAKeyMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key
    argTypes:
    - dsa::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 276
    functionDepth: 0
    functionLinenumber: 276
    functionLinenumberEnd: 277
    functionName: pgp::DSAKeyMaterial::DSAKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSAKeyMaterial(const dsa::Key &key, bool secret = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kalg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 312
    functionName: pgp::EGKeyMaterial::EGKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EGKeyMaterial(pgp_pubkey_alg_t kalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - kalg
    - key
    argTypes:
    - pgp_pubkey_alg_t
    - eg::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: pgp::EGKeyMaterial::EGKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EGKeyMaterial(pgp_pubkey_alg_t kalg, const eg::Key &key, bool
      secret = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kalg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 350
    functionDepth: 0
    functionLinenumber: 350
    functionLinenumberEnd: 350
    functionName: pgp::ECKeyMaterial::ECKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECKeyMaterial(pgp_pubkey_alg_t kalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - kalg
    - key
    argTypes:
    - pgp_pubkey_alg_t
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 351
    functionDepth: 0
    functionLinenumber: 351
    functionLinenumberEnd: 352
    functionName: pgp::ECKeyMaterial::ECKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECKeyMaterial(pgp_pubkey_alg_t kalg, const ec::Key &key, bool
      secret = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 373
    functionName: pgp::ECDSAKeyMaterial::ECDSAKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSAKeyMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key
    argTypes:
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 375
      start: 374
    functionDepth: 0
    functionLinenumber: 374
    functionLinenumberEnd: 375
    functionName: pgp::ECDSAKeyMaterial::ECDSAKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDSAKeyMaterial(const ec::Key &key, bool secret = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 392
      start: 392
    functionDepth: 0
    functionLinenumber: 392
    functionLinenumberEnd: 392
    functionName: pgp::ECDHKeyMaterial::ECDHKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDHKeyMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key
    argTypes:
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 394
    functionName: pgp::ECDHKeyMaterial::ECDHKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECDHKeyMaterial(const ec::Key &key, bool secret = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 418
      start: 418
    functionDepth: 0
    functionLinenumber: 418
    functionLinenumberEnd: 418
    functionName: pgp::EDDSAKeyMaterial::EDDSAKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EDDSAKeyMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key
    argTypes:
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 419
    functionDepth: 0
    functionLinenumber: 419
    functionLinenumberEnd: 420
    functionName: pgp::EDDSAKeyMaterial::EDDSAKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EDDSAKeyMaterial(const ec::Key &key, bool secret = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 437
      start: 437
    functionDepth: 0
    functionLinenumber: 437
    functionLinenumberEnd: 437
    functionName: pgp::SM2KeyMaterial::SM2KeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SM2KeyMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key
    argTypes:
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 438
    functionDepth: 0
    functionLinenumber: 438
    functionLinenumberEnd: 439
    functionName: pgp::SM2KeyMaterial::SM2KeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SM2KeyMaterial(const ec::Key &key, bool secret = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 466
      start: 466
    functionDepth: 0
    functionLinenumber: 466
    functionLinenumberEnd: 466
    functionName: pgp::Ed25519KeyMaterial::Ed25519KeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed25519KeyMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 498
      start: 498
    functionDepth: 0
    functionLinenumber: 498
    functionLinenumberEnd: 498
    functionName: pgp::X25519KeyMaterial::X25519KeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X25519KeyMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 528
      start: 528
    functionDepth: 0
    functionLinenumber: 528
    functionLinenumberEnd: 528
    functionName: pgp::Ed448KeyMaterial::Ed448KeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448KeyMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 561
      start: 561
    functionDepth: 0
    functionLinenumber: 561
    functionLinenumberEnd: 561
    functionName: pgp::X448KeyMaterial::X448KeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void X448KeyMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kalg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 593
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 593
    functionName: pgp::MlkemEcdhKeyMaterial::MlkemEcdhKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MlkemEcdhKeyMaterial(pgp_pubkey_alg_t kalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kalg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 624
      start: 624
    functionDepth: 0
    functionLinenumber: 624
    functionLinenumberEnd: 624
    functionName: pgp::DilithiumEccKeyMaterial::DilithiumEccKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DilithiumEccKeyMaterial(pgp_pubkey_alg_t kalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - kalg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 657
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 657
    functionName: pgp::SlhdsaKeyMaterial::SlhdsaKeyMaterial
    functionSourceFile: /src/rnp/src/lib/key_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SlhdsaKeyMaterial(pgp_pubkey_alg_t kalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::KeyParams::create
      Src: /src/rnp/src/lib/keygen.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - alg
    - ctx
    argTypes:
    - pgp_pubkey_alg_t
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: rnp::KeygenParams::KeygenParams
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 0
    functionsReached:
    - pgp::KeyParams::create
    linkageType: ''
    returnType: void
    signature: void KeygenParams::KeygenParams(pgp_pubkey_alg_t alg, SecurityContext
      &ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: min_hash
      Src: /src/rnp/src/lib/keygen.cpp:46,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/keygen.cpp:47,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/keygen.cpp:47,1
    - Dst: rnp::KeygenParams::check_defaults
      Src: /src/rnp/src/lib/keygen.cpp:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 51
    functionName: rnp::KeygenParams::check_defaults
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 1
    functionsReached:
    - rnp::Hash::size
    - rnp::KeygenParams::check_defaults
    - min_hash
    linkageType: ''
    returnType: void
    signature: void KeygenParams::check_defaults() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: rnp::KeygenParams::validate
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool KeygenParams::validate() const noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/lib/keygen.cpp:66,1
    - Dst: rnp::KeygenParams::alg
      Src: /src/rnp/src/lib/keygen.cpp:66,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:67,1
    - Dst: rnp::KeygenParams::alg
      Src: /src/rnp/src/lib/keygen.cpp:67,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:74,1
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/lib/keygen.cpp:77,1
    - Dst: rnp::KeygenParams::alg
      Src: /src/rnp/src/lib/keygen.cpp:77,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:79,1
    - Dst: CertParams::userid::empty
      Src: /src/rnp/src/lib/keygen.cpp:83,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:84,1
    - Dst: rnp::KeygenParams::validate
      Src: /src/rnp/src/lib/keygen.cpp:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CertParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 88
    functionName: rnp::KeygenParams::validate
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 1
    functionsReached:
    - CertParams::userid::empty
    - RNP_LOG
    - rnp::KeygenParams::validate
    - pgp_pk_alg_capabilities
    - rnp::KeygenParams::alg
    linkageType: ''
    returnType: bool
    signature: bool KeygenParams::validate(const CertParams &cert) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:94,1
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/lib/keygen.cpp:97,1
    - Dst: rnp::KeygenParams::alg
      Src: /src/rnp/src/lib/keygen.cpp:97,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:99,1
    - Dst: rnp::KeygenParams::validate
      Src: /src/rnp/src/lib/keygen.cpp:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - binding
    argTypes:
    - BindingParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 103
    functionName: rnp::KeygenParams::validate
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - rnp::KeygenParams::validate
    - pgp_pk_alg_capabilities
    - rnp::KeygenParams::alg
    linkageType: ''
    returnType: bool
    signature: bool KeygenParams::validate(const BindingParams &binding) const noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeygenParams::version
      Src: /src/rnp/src/lib/keygen.cpp:145,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:146,1
    - Dst: rnp::KeygenParams::alg
      Src: /src/rnp/src/lib/keygen.cpp:147,1
    - Dst: pgp::KeyMaterial::create
      Src: /src/rnp/src/lib/keygen.cpp:148,1
    - Dst: rnp::KeygenParams::alg
      Src: /src/rnp/src/lib/keygen.cpp:148,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:150,1
    - Dst: rnp::KeygenParams::alg
      Src: /src/rnp/src/lib/keygen.cpp:150,1
    - Dst: pgp_key_pkt_t::material::generate
      Src: /src/rnp/src/lib/keygen.cpp:155,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:155,1
    - Dst: key_params
      Src: /src/rnp/src/lib/keygen.cpp:155,1
    - Dst: encrypt_secret_key
      Src: /src/rnp/src/lib/keygen.cpp:161,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:161,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - seckey
    - primary
    argTypes:
    - pgp_key_pkt_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 166
    functionName: rnp::KeygenParams::generate
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 15
    functionsReached:
    - RNP_LOG
    - encrypt_secret_key
    - rnp::KeygenParams::version
    - key_params
    - rnp::KeygenParams::alg
    - ctx
    - pgp::KeyMaterial::create
    - pgp_key_pkt_t::material::generate
    linkageType: ''
    returnType: bool
    signature: bool KeygenParams::generate(pgp_key_pkt_t &seckey, bool primary)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/keygen.cpp:173,1
    - Dst: Key*::type
      Src: /src/rnp/src/lib/keygen.cpp:173,1
    - Dst: assert
      Src: /src/rnp/src/lib/keygen.cpp:175,1
    - Dst: Key*::is_primary
      Src: /src/rnp/src/lib/keygen.cpp:175,1
    - Dst: assert
      Src: /src/rnp/src/lib/keygen.cpp:177,1
    - Dst: Key*::is_public
      Src: /src/rnp/src/lib/keygen.cpp:177,1
    - Dst: assert
      Src: /src/rnp/src/lib/keygen.cpp:179,1
    - Dst: KeyStore::KeyStore
      Src: /src/rnp/src/lib/keygen.cpp:182,1
    - Dst: g10_write_seckey
      Src: /src/rnp/src/lib/keygen.cpp:188,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/lib/keygen.cpp:188,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:189,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/keygen.cpp:196,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/keygen.cpp:199,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/lib/keygen.cpp:201,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/lib/keygen.cpp:201,1
    - Dst: std::unique_ptr::get
      Src: /src/rnp/src/lib/keygen.cpp:203,1
    - Dst: MemorySource::src
      Src: /src/rnp/src/lib/keygen.cpp:203,1
    - Dst: std::unique_ptr::get
      Src: /src/rnp/src/lib/keygen.cpp:206,1
    - Dst: assert
      Src: /src/rnp/src/lib/keygen.cpp:210,1
    - Dst: Key*::is_secret
      Src: /src/rnp/src/lib/keygen.cpp:210,1
    - Dst: std::unique_ptr::keys::front
      Src: /src/rnp/src/lib/keygen.cpp:210,1
    - Dst: Key
      Src: /src/rnp/src/lib/keygen.cpp:211,1
    - Dst: std::unique_ptr::keys::front
      Src: /src/rnp/src/lib/keygen.cpp:211,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - dst
    - newkey
    - primary_key
    - pubkey
    - ctx
    argTypes:
    - Key*
    - pgp_key_pkt_t*
    - Key*
    - Key*
    - SecurityContext
    assertStmts:
    - condition: (!pubkey || pubkey->is_public())
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/rnp/src/lib/keygen.cpp
    - condition: (dst->type() == 0)
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/rnp/src/lib/keygen.cpp
    - condition: (pubkey)
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/rnp/src/lib/keygen.cpp
    - condition: (!primary_key || primary_key->is_primary())
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/rnp/src/lib/keygen.cpp
    - condition: (!primary_key || (primary_key->is_secret() == key_store->keys.front().is_secret()))
      pos:
        line_end: 209
        line_start: 209
        source_file: /src/rnp/src/lib/keygen.cpp
    constantsTouched: []
    func_position:
      end: 213
      start: 168
    functionDepth: 4
    functionLinenumber: 168
    functionLinenumberEnd: 213
    functionName: rnp::load_generated_g10_key
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 0
    functionsReached:
    - MemoryDest::dst
    - RNP_LOG
    - MemoryDest::memory
    - std::unique_ptr::keys::front
    - KeyStore::KeyStore
    - MemorySource::src
    - Key
    - MemoryDest::writeb
    - Key*::is_primary
    - assert
    - Key*::is_secret
    - Key*::type
    - std::unique_ptr::get
    - Key*::is_public
    - g10_write_seckey
    - std::vector::push_back
    linkageType: ''
    returnType: bool
    signature: "bool load_generated_g10_key(\n  Key *dst, pgp_key_pkt_t *newkey, Key
      *primary_key, Key *pubkey, SecurityContext &ctx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeygenParams::check_defaults
      Src: /src/rnp/src/lib/keygen.cpp:225,1
    - Dst: CertParams::check_defaults
      Src: /src/rnp/src/lib/keygen.cpp:226,1
    - Dst: rnp::KeygenParams::validate
      Src: /src/rnp/src/lib/keygen.cpp:228,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/lib/keygen.cpp:233,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/lib/keygen.cpp:234,1
    - Dst: Key::version
      Src: /src/rnp/src/lib/keygen.cpp:242,1
    - Dst: Key::add_direct_sig
      Src: /src/rnp/src/lib/keygen.cpp:243,1
    - Dst: rnp::KeygenParams::hash
      Src: /src/rnp/src/lib/keygen.cpp:243,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:243,1
    - Dst: Key::add_uid_cert
      Src: /src/rnp/src/lib/keygen.cpp:246,1
    - Dst: rnp::KeygenParams::hash
      Src: /src/rnp/src/lib/keygen.cpp:246,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:246,1
    - Dst: std::move
      Src: /src/rnp/src/lib/keygen.cpp:251,1
    - Dst: std::move
      Src: /src/rnp/src/lib/keygen.cpp:252,1
    - Dst: std::move
      Src: /src/rnp/src/lib/keygen.cpp:255,1
    - Dst: load_generated_g10_key
      Src: /src/rnp/src/lib/keygen.cpp:256,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:256,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:257,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:262,1
    - Dst: mark_valid
      Src: /src/rnp/src/lib/keygen.cpp:267,1
    - Dst: mark_valid
      Src: /src/rnp/src/lib/keygen.cpp:268,1
    - Dst: refresh_data
      Src: /src/rnp/src/lib/keygen.cpp:270,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:270,1
    - Dst: refresh_data
      Src: /src/rnp/src/lib/keygen.cpp:270,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:270,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - cert
    - '       primary_sec'
    - '       primary_pub'
    - secformat
    argTypes:
    - CertParams
    - Key
    - Key
    - KeyFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 215
    functionDepth: 5
    functionLinenumber: 215
    functionLinenumberEnd: 271
    functionName: rnp::KeygenParams::generate
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 16
    functionsReached:
    - RNP_LOG
    - refresh_data
    - Key::add_uid_cert
    - mark_valid
    - rnp::KeygenParams::validate
    - CertParams::check_defaults
    - Key::version
    - rnp::KeygenParams::generate
    - load_generated_g10_key
    - rnp::KeygenParams::check_defaults
    - Key::add_direct_sig
    - pgp_key_pkt_t::pgp_key_pkt_t
    - ctx
    - rnp::KeygenParams::hash
    - std::move
    linkageType: ''
    returnType: bool
    signature: "bool KeygenParams::generate(CertParams &cert,\n                       Key
      &       primary_sec,\n                       Key &       primary_pub,\n                       KeyFormat
      \  secformat)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_primary
      Src: /src/rnp/src/lib/keygen.cpp:283,1
    - Dst: is_primary
      Src: /src/rnp/src/lib/keygen.cpp:283,1
    - Dst: is_secret
      Src: /src/rnp/src/lib/keygen.cpp:283,1
    - Dst: is_public
      Src: /src/rnp/src/lib/keygen.cpp:284,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:285,1
    - Dst: rnp::KeygenParams::check_defaults
      Src: /src/rnp/src/lib/keygen.cpp:292,1
    - Dst: rnp::KeygenParams::check_defaults
      Src: /src/rnp/src/lib/keygen.cpp:293,1
    - Dst: rnp::KeygenParams::validate
      Src: /src/rnp/src/lib/keygen.cpp:296,1
    - Dst: encrypted
      Src: /src/rnp/src/lib/keygen.cpp:302,1
    - Dst: unlock
      Src: /src/rnp/src/lib/keygen.cpp:302,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:303,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/lib/keygen.cpp:307,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/lib/keygen.cpp:308,1
    - Dst: pgp_key_pkt_t
      Src: /src/rnp/src/lib/keygen.cpp:311,1
    - Dst: add_sub_binding
      Src: /src/rnp/src/lib/keygen.cpp:315,1
    - Dst: rnp::KeygenParams::hash
      Src: /src/rnp/src/lib/keygen.cpp:315,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:315,1
    - Dst: std::move
      Src: /src/rnp/src/lib/keygen.cpp:317,1
    - Dst: std::move
      Src: /src/rnp/src/lib/keygen.cpp:321,1
    - Dst: load_generated_g10_key
      Src: /src/rnp/src/lib/keygen.cpp:324,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:324,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:325,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:330,1
    - Dst: mark_valid
      Src: /src/rnp/src/lib/keygen.cpp:334,1
    - Dst: mark_valid
      Src: /src/rnp/src/lib/keygen.cpp:335,1
    - Dst: refresh_data
      Src: /src/rnp/src/lib/keygen.cpp:336,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:336,1
    - Dst: refresh_data
      Src: /src/rnp/src/lib/keygen.cpp:337,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:337,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 7
    argNames:
    - '                binding'
    - '                          primary_sec'
    - '                          primary_pub'
    - '                          subkey_sec'
    - '                          subkey_pub'
    - password_provider
    - secformat
    argTypes:
    - BindingParams
    - Key
    - Key
    - Key
    - Key
    - pgp_password_provider_t
    - KeyFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 273
    functionDepth: 5
    functionLinenumber: 273
    functionLinenumberEnd: 338
    functionName: rnp::KeygenParams::generate
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 17
    functionsReached:
    - is_secret
    - RNP_LOG
    - mark_valid
    - refresh_data
    - rnp::KeygenParams::validate
    - rnp::KeygenParams::generate
    - is_public
    - rnp::KeygenParams::check_defaults
    - load_generated_g10_key
    - pgp_key_pkt_t::pgp_key_pkt_t
    - add_sub_binding
    - pgp_key_pkt_t
    - unlock
    - std::move
    - ctx
    - rnp::KeygenParams::hash
    - encrypted
    - is_primary
    linkageType: ''
    returnType: bool
    signature: "bool KeygenParams::generate(BindingParams &                binding,\n
      \                      Key &                          primary_sec,\n                       Key
      &                          primary_pub,\n                       Key &                          subkey_sec,\n
      \                      Key &                          subkey_pub,\n                       const
      pgp_password_provider_t &password_provider,\n                       KeyFormat
      \                     secformat)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::preferred_symm_algs
      Src: /src/rnp/src/lib/keygen.cpp:342,1
    - Dst: pgp::pkt::Signature::preferred_hash_algs
      Src: /src/rnp/src/lib/keygen.cpp:343,1
    - Dst: pgp::pkt::Signature::preferred_z_algs
      Src: /src/rnp/src/lib/keygen.cpp:344,1
    - Dst: pgp::pkt::Signature::has_subpkt
      Src: /src/rnp/src/lib/keygen.cpp:346,1
    - Dst: pgp::pkt::Signature::key_server_prefs
      Src: /src/rnp/src/lib/keygen.cpp:347,1
    - Dst: pgp::pkt::Signature::has_subpkt
      Src: /src/rnp/src/lib/keygen.cpp:350,1
    - Dst: pgp::pkt::Signature::key_server
      Src: /src/rnp/src/lib/keygen.cpp:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - sig
    argTypes:
    - pgp::pkt::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 340
    functionDepth: 4
    functionLinenumber: 340
    functionLinenumberEnd: 353
    functionName: rnp::UserPrefs::UserPrefs
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 1
    functionsReached:
    - pgp::pkt::Signature::preferred_z_algs
    - pgp::pkt::Signature::has_subpkt
    - pgp::pkt::Signature::key_server_prefs
    - pgp::pkt::Signature::preferred_hash_algs
    - pgp::pkt::Signature::key_server
    - pgp::pkt::Signature::preferred_symm_algs
    linkageType: ''
    returnType: void
    signature: void UserPrefs::UserPrefs(const pgp::pkt::Signature &sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/rnp/src/lib/keygen.cpp:358,1
    - Dst: std::vector<uint8_t>::begin
      Src: /src/rnp/src/lib/keygen.cpp:358,1
    - Dst: std::vector<uint8_t>::end
      Src: /src/rnp/src/lib/keygen.cpp:358,1
    - Dst: std::vector<uint8_t>::end
      Src: /src/rnp/src/lib/keygen.cpp:358,1
    - Dst: std::vector<uint8_t>::push_back
      Src: /src/rnp/src/lib/keygen.cpp:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - vec
    - val
    argTypes:
    - std::vector<uint8_t>
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 361
    functionName: rnp::UserPrefs::add_uniq
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::push_back
    - std::find
    - std::vector<uint8_t>::end
    - std::vector<uint8_t>::begin
    linkageType: ''
    returnType: void
    signature: void UserPrefs::add_uniq(std::vector<uint8_t> &vec, uint8_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::UserPrefs::add_uniq
      Src: /src/rnp/src/lib/keygen.cpp:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_symm_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 367
    functionName: rnp::UserPrefs::add_symm_alg
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 1
    functionsReached:
    - rnp::UserPrefs::add_uniq
    linkageType: ''
    returnType: void
    signature: void UserPrefs::add_symm_alg(pgp_symm_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::UserPrefs::add_uniq
      Src: /src/rnp/src/lib/keygen.cpp:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 373
    functionName: rnp::UserPrefs::add_hash_alg
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 1
    functionsReached:
    - rnp::UserPrefs::add_uniq
    linkageType: ''
    returnType: void
    signature: void UserPrefs::add_hash_alg(pgp_hash_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::UserPrefs::add_uniq
      Src: /src/rnp/src/lib/keygen.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_compression_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 379
    functionName: rnp::UserPrefs::add_z_alg
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 1
    functionsReached:
    - rnp::UserPrefs::add_uniq
    linkageType: ''
    returnType: void
    signature: void UserPrefs::add_z_alg(pgp_compression_type_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::UserPrefs::add_uniq
      Src: /src/rnp/src/lib/keygen.cpp:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pref
    argTypes:
    - pgp_key_server_prefs_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 385
    functionName: rnp::UserPrefs::add_ks_pref
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 1
    functionsReached:
    - rnp::UserPrefs::add_uniq
    linkageType: ''
    returnType: void
    signature: void UserPrefs::add_ks_pref(pgp_key_server_prefs_t pref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/keygen.cpp:391,1
    - Dst: push_back
      Src: /src/rnp/src/lib/keygen.cpp:396,1
    - Dst: push_back
      Src: /src/rnp/src/lib/keygen.cpp:397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - sym_alg
    - aead_alg
    argTypes:
    - pgp_symm_alg_t
    - pgp_aead_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 398
    functionName: rnp::UserPrefs::add_aead_prefs
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 0
    functionsReached:
    - size
    - push_back
    linkageType: ''
    returnType: void
    signature: void UserPrefs::add_aead_prefs(pgp_symm_alg_t sym_alg, pgp_aead_alg_t
      aead_alg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/rnp/src/lib/keygen.cpp:404,1
    - Dst: empty
      Src: /src/rnp/src/lib/keygen.cpp:407,1
    - Dst: rnp::Key::is_pqc_alg
      Src: /src/rnp/src/lib/keygen.cpp:409,1
    - Dst: empty
      Src: /src/rnp/src/lib/keygen.cpp:421,1
    - Dst: empty
      Src: /src/rnp/src/lib/keygen.cpp:429,1
    - Dst: push_back
      Src: /src/rnp/src/lib/keygen.cpp:431,1
    - Dst: push_back
      Src: /src/rnp/src/lib/keygen.cpp:432,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - version
    - pk_alg
    argTypes:
    - pgp_version_t
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 436
    functionName: rnp::UserPrefs::check_defaults
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 0
    functionsReached:
    - empty
    - rnp::Key::is_pqc_alg
    - push_back
    linkageType: ''
    returnType: void
    signature: void UserPrefs::check_defaults(pgp_version_t version, pgp_pubkey_alg_t
      pk_alg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::CertParams::check_defaults
      Src: /src/rnp/src/lib/keygen.cpp:441,1
    - Dst: KeygenParams::version
      Src: /src/rnp/src/lib/keygen.cpp:441,1
    - Dst: KeygenParams::alg
      Src: /src/rnp/src/lib/keygen.cpp:441,1
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/lib/keygen.cpp:445,1
    - Dst: KeygenParams::alg
      Src: /src/rnp/src/lib/keygen.cpp:445,1
    - Dst: empty
      Src: /src/rnp/src/lib/keygen.cpp:447,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/keygen.cpp:448,1
    - Dst: KeygenParams::alg
      Src: /src/rnp/src/lib/keygen.cpp:448,1
    - Dst: to_string
      Src: /src/rnp/src/lib/keygen.cpp:449,1
    - Dst: KeygenParams::key_params
      Src: /src/rnp/src/lib/keygen.cpp:449,1
    - Dst: getenv_logname
      Src: /src/rnp/src/lib/keygen.cpp:450,1
    - Dst: getenv_logname
      Src: /src/rnp/src/lib/keygen.cpp:450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - params
    argTypes:
    - KeygenParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 454
    functionName: rnp::CertParams::check_defaults
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 1
    functionsReached:
    - rnp::CertParams::check_defaults
    - id_str_pair::lookup
    - to_string
    - pgp_pk_alg_capabilities
    - KeygenParams::key_params
    - getenv_logname
    - KeygenParams::alg
    - empty
    - KeygenParams::version
    linkageType: ''
    returnType: void
    signature: void CertParams::check_defaults(const KeygenParams &params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_userid_pkt_t::uid::assign
      Src: /src/rnp/src/lib/keygen.cpp:460,1
    - Dst: data
      Src: /src/rnp/src/lib/keygen.cpp:460,1
    - Dst: data
      Src: /src/rnp/src/lib/keygen.cpp:460,1
    - Dst: size
      Src: /src/rnp/src/lib/keygen.cpp:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uid
    argTypes:
    - pgp_userid_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 461
    functionName: rnp::CertParams::populate
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 0
    functionsReached:
    - size
    - data
    - pgp_userid_pkt_t::uid::assign
    linkageType: ''
    returnType: void
    signature: void CertParams::populate(pgp_userid_pkt_t &uid) const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::set_key_expiration
      Src: /src/rnp/src/lib/keygen.cpp:467,1
    - Dst: pgp::pkt::Signature::set_primary_uid
      Src: /src/rnp/src/lib/keygen.cpp:470,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/lib/keygen.cpp:473,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/lib/keygen.cpp:478,1
    - Dst: pgp::pkt::Signature::set_key_flags
      Src: /src/rnp/src/lib/keygen.cpp:480,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/lib/keygen.cpp:483,1
    - Dst: pgp::pkt::Signature::set_key_features
      Src: /src/rnp/src/lib/keygen.cpp:485,1
    - Dst: aead_prefs::empty
      Src: /src/rnp/src/lib/keygen.cpp:486,1
    - Dst: pgp::pkt::Signature::set_preferred_aead_algs
      Src: /src/rnp/src/lib/keygen.cpp:487,1
    - Dst: pgp::pkt::Signature::set_key_flags
      Src: /src/rnp/src/lib/keygen.cpp:492,1
    - Dst: symm_algs::empty
      Src: /src/rnp/src/lib/keygen.cpp:494,1
    - Dst: pgp::pkt::Signature::set_preferred_symm_algs
      Src: /src/rnp/src/lib/keygen.cpp:495,1
    - Dst: hash_algs::empty
      Src: /src/rnp/src/lib/keygen.cpp:497,1
    - Dst: pgp::pkt::Signature::set_preferred_hash_algs
      Src: /src/rnp/src/lib/keygen.cpp:498,1
    - Dst: z_algs::empty
      Src: /src/rnp/src/lib/keygen.cpp:500,1
    - Dst: pgp::pkt::Signature::set_preferred_z_algs
      Src: /src/rnp/src/lib/keygen.cpp:501,1
    - Dst: ks_prefs::empty
      Src: /src/rnp/src/lib/keygen.cpp:503,1
    - Dst: pgp::pkt::Signature::set_key_server_prefs
      Src: /src/rnp/src/lib/keygen.cpp:504,1
    - Dst: key_server::empty
      Src: /src/rnp/src/lib/keygen.cpp:506,1
    - Dst: pgp::pkt::Signature::set_key_server
      Src: /src/rnp/src/lib/keygen.cpp:507,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 1
    argNames:
    - sig
    argTypes:
    - pgp::pkt::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 509
    functionName: rnp::CertParams::populate
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::set_key_server_prefs
    - aead_prefs::empty
    - pgp::pkt::Signature::set_preferred_aead_algs
    - pgp::pkt::Signature::set_primary_uid
    - pgp::pkt::Signature::set_preferred_hash_algs
    - pgp::pkt::Signature::set_key_flags
    - hash_algs::empty
    - pgp::pkt::Signature::set_preferred_z_algs
    - pgp::pkt::Signature::set_key_expiration
    - symm_algs::empty
    - z_algs::empty
    - ks_prefs::empty
    - key_server::empty
    - pgp::pkt::Signature::set_key_features
    - pgp::pkt::Signature::set_preferred_symm_algs
    - pgp::pkt::Signature::set_key_server
    - pgp::pkt::Signature::type
    linkageType: ''
    returnType: void
    signature: void CertParams::populate(pgp::pkt::Signature &sig) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::set_type
      Src: /src/rnp/src/lib/keygen.cpp:514,1
    - Dst: rnp::CertParams::populate
      Src: /src/rnp/src/lib/keygen.cpp:515,1
    - Dst: rnp::CertParams::populate
      Src: /src/rnp/src/lib/keygen.cpp:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - uid
    - sig
    argTypes:
    - pgp_userid_pkt_t
    - pgp::pkt::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 517
    functionName: rnp::CertParams::populate
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 1
    functionsReached:
    - pgp::pkt::Signature::set_type
    - rnp::CertParams::populate
    linkageType: ''
    returnType: void
    signature: void CertParams::populate(pgp_userid_pkt_t &uid, pgp::pkt::Signature
      &sig) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/lib/keygen.cpp:524,1
    - Dst: KeygenParams::alg
      Src: /src/rnp/src/lib/keygen.cpp:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - params
    argTypes:
    - KeygenParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 519
    functionDepth: 2
    functionLinenumber: 519
    functionLinenumberEnd: 526
    functionName: rnp::BindingParams::check_defaults
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 0
    functionsReached:
    - pgp_pk_alg_capabilities
    - KeygenParams::alg
    linkageType: ''
    returnType: void
    signature: void BindingParams::check_defaults(const KeygenParams &params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::KeyParams::create
      Src: /src/rnp/src/lib/keygen.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - alg
    - ctx
    argTypes:
    - pgp_pubkey_alg_t
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: rnp::KeygenParams::KeygenParams
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 0
    functionsReached:
    - pgp::KeyParams::create
    linkageType: ''
    returnType: void
    signature: void KeygenParams::KeygenParams(pgp_pubkey_alg_t alg, SecurityContext
      &ctx)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: min_hash
      Src: /src/rnp/src/lib/keygen.cpp:46,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/keygen.cpp:47,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/keygen.cpp:47,1
    - Dst: rnp::KeygenParams::check_defaults
      Src: /src/rnp/src/lib/keygen.cpp:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 51
    functionName: rnp::KeygenParams::check_defaults
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 4
    functionsReached:
    - rnp::Hash::size
    - rnp::KeygenParams::check_defaults
    - min_hash
    linkageType: ''
    returnType: void
    signature: void KeygenParams::check_defaults() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: rnp::KeygenParams::validate
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool KeygenParams::validate() const noexcept
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/lib/keygen.cpp:66,1
    - Dst: rnp::KeygenParams::alg
      Src: /src/rnp/src/lib/keygen.cpp:66,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:67,1
    - Dst: rnp::KeygenParams::alg
      Src: /src/rnp/src/lib/keygen.cpp:67,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:74,1
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/lib/keygen.cpp:77,1
    - Dst: rnp::KeygenParams::alg
      Src: /src/rnp/src/lib/keygen.cpp:77,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:79,1
    - Dst: CertParams::userid::empty
      Src: /src/rnp/src/lib/keygen.cpp:83,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:84,1
    - Dst: rnp::KeygenParams::validate
      Src: /src/rnp/src/lib/keygen.cpp:87,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - cert
    argTypes:
    - CertParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 59
    functionDepth: 2
    functionLinenumber: 59
    functionLinenumberEnd: 88
    functionName: rnp::KeygenParams::validate
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 5
    functionsReached:
    - CertParams::userid::empty
    - RNP_LOG
    - rnp::KeygenParams::validate
    - pgp_pk_alg_capabilities
    - rnp::KeygenParams::alg
    linkageType: ''
    returnType: bool
    signature: bool KeygenParams::validate(const CertParams &cert) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:94,1
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/lib/keygen.cpp:97,1
    - Dst: rnp::KeygenParams::alg
      Src: /src/rnp/src/lib/keygen.cpp:97,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:99,1
    - Dst: rnp::KeygenParams::validate
      Src: /src/rnp/src/lib/keygen.cpp:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - binding
    argTypes:
    - BindingParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 90
    functionDepth: 2
    functionLinenumber: 90
    functionLinenumberEnd: 103
    functionName: rnp::KeygenParams::validate
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 6
    functionsReached:
    - RNP_LOG
    - rnp::KeygenParams::validate
    - pgp_pk_alg_capabilities
    - rnp::KeygenParams::alg
    linkageType: ''
    returnType: bool
    signature: bool KeygenParams::validate(const BindingParams &binding) const noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeygenParams::version
      Src: /src/rnp/src/lib/keygen.cpp:145,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:146,1
    - Dst: rnp::KeygenParams::alg
      Src: /src/rnp/src/lib/keygen.cpp:147,1
    - Dst: pgp::KeyMaterial::create
      Src: /src/rnp/src/lib/keygen.cpp:148,1
    - Dst: rnp::KeygenParams::alg
      Src: /src/rnp/src/lib/keygen.cpp:148,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:150,1
    - Dst: rnp::KeygenParams::alg
      Src: /src/rnp/src/lib/keygen.cpp:150,1
    - Dst: pgp_key_pkt_t::material::generate
      Src: /src/rnp/src/lib/keygen.cpp:155,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:155,1
    - Dst: key_params
      Src: /src/rnp/src/lib/keygen.cpp:155,1
    - Dst: encrypt_secret_key
      Src: /src/rnp/src/lib/keygen.cpp:161,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:161,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:162,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 20
    argCount: 2
    argNames:
    - seckey
    - primary
    argTypes:
    - pgp_key_pkt_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 140
    functionDepth: 3
    functionLinenumber: 140
    functionLinenumberEnd: 166
    functionName: rnp::KeygenParams::generate
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 17
    functionsReached:
    - RNP_LOG
    - encrypt_secret_key
    - rnp::KeygenParams::version
    - key_params
    - rnp::KeygenParams::alg
    - ctx
    - pgp::KeyMaterial::create
    - pgp_key_pkt_t::material::generate
    linkageType: ''
    returnType: bool
    signature: bool KeygenParams::generate(pgp_key_pkt_t &seckey, bool primary)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/keygen.cpp:173,1
    - Dst: Key*::type
      Src: /src/rnp/src/lib/keygen.cpp:173,1
    - Dst: assert
      Src: /src/rnp/src/lib/keygen.cpp:175,1
    - Dst: Key*::is_primary
      Src: /src/rnp/src/lib/keygen.cpp:175,1
    - Dst: assert
      Src: /src/rnp/src/lib/keygen.cpp:177,1
    - Dst: Key*::is_public
      Src: /src/rnp/src/lib/keygen.cpp:177,1
    - Dst: assert
      Src: /src/rnp/src/lib/keygen.cpp:179,1
    - Dst: KeyStore::KeyStore
      Src: /src/rnp/src/lib/keygen.cpp:182,1
    - Dst: g10_write_seckey
      Src: /src/rnp/src/lib/keygen.cpp:188,1
    - Dst: MemoryDest::dst
      Src: /src/rnp/src/lib/keygen.cpp:188,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:189,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/keygen.cpp:196,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/keygen.cpp:199,1
    - Dst: MemoryDest::memory
      Src: /src/rnp/src/lib/keygen.cpp:201,1
    - Dst: MemoryDest::writeb
      Src: /src/rnp/src/lib/keygen.cpp:201,1
    - Dst: std::unique_ptr::get
      Src: /src/rnp/src/lib/keygen.cpp:203,1
    - Dst: MemorySource::src
      Src: /src/rnp/src/lib/keygen.cpp:203,1
    - Dst: std::unique_ptr::get
      Src: /src/rnp/src/lib/keygen.cpp:206,1
    - Dst: assert
      Src: /src/rnp/src/lib/keygen.cpp:210,1
    - Dst: Key*::is_secret
      Src: /src/rnp/src/lib/keygen.cpp:210,1
    - Dst: std::unique_ptr::keys::front
      Src: /src/rnp/src/lib/keygen.cpp:210,1
    - Dst: Key
      Src: /src/rnp/src/lib/keygen.cpp:211,1
    - Dst: std::unique_ptr::keys::front
      Src: /src/rnp/src/lib/keygen.cpp:211,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 5
    argNames:
    - dst
    - newkey
    - primary_key
    - pubkey
    - ctx
    argTypes:
    - Key*
    - pgp_key_pkt_t*
    - Key*
    - Key*
    - SecurityContext
    assertStmts:
    - condition: (!pubkey || pubkey->is_public())
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/rnp/src/lib/keygen.cpp
    - condition: (dst->type() == 0)
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/rnp/src/lib/keygen.cpp
    - condition: (pubkey)
      pos:
        line_end: 178
        line_start: 178
        source_file: /src/rnp/src/lib/keygen.cpp
    - condition: (!primary_key || primary_key->is_primary())
      pos:
        line_end: 174
        line_start: 174
        source_file: /src/rnp/src/lib/keygen.cpp
    - condition: (!primary_key || (primary_key->is_secret() == key_store->keys.front().is_secret()))
      pos:
        line_end: 209
        line_start: 209
        source_file: /src/rnp/src/lib/keygen.cpp
    constantsTouched: []
    func_position:
      end: 213
      start: 168
    functionDepth: 4
    functionLinenumber: 168
    functionLinenumberEnd: 213
    functionName: rnp::load_generated_g10_key
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 0
    functionsReached:
    - MemoryDest::dst
    - RNP_LOG
    - MemoryDest::memory
    - std::unique_ptr::keys::front
    - KeyStore::KeyStore
    - MemorySource::src
    - Key
    - MemoryDest::writeb
    - Key*::is_primary
    - assert
    - Key*::is_secret
    - Key*::type
    - std::unique_ptr::get
    - Key*::is_public
    - g10_write_seckey
    - std::vector::push_back
    linkageType: ''
    returnType: bool
    signature: "bool load_generated_g10_key(\n  Key *dst, pgp_key_pkt_t *newkey, Key
      *primary_key, Key *pubkey, SecurityContext &ctx)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeygenParams::check_defaults
      Src: /src/rnp/src/lib/keygen.cpp:225,1
    - Dst: CertParams::check_defaults
      Src: /src/rnp/src/lib/keygen.cpp:226,1
    - Dst: rnp::KeygenParams::validate
      Src: /src/rnp/src/lib/keygen.cpp:228,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/lib/keygen.cpp:233,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/lib/keygen.cpp:234,1
    - Dst: Key::version
      Src: /src/rnp/src/lib/keygen.cpp:242,1
    - Dst: Key::add_direct_sig
      Src: /src/rnp/src/lib/keygen.cpp:243,1
    - Dst: rnp::KeygenParams::hash
      Src: /src/rnp/src/lib/keygen.cpp:243,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:243,1
    - Dst: Key::add_uid_cert
      Src: /src/rnp/src/lib/keygen.cpp:246,1
    - Dst: rnp::KeygenParams::hash
      Src: /src/rnp/src/lib/keygen.cpp:246,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:246,1
    - Dst: std::move
      Src: /src/rnp/src/lib/keygen.cpp:251,1
    - Dst: std::move
      Src: /src/rnp/src/lib/keygen.cpp:252,1
    - Dst: std::move
      Src: /src/rnp/src/lib/keygen.cpp:255,1
    - Dst: load_generated_g10_key
      Src: /src/rnp/src/lib/keygen.cpp:256,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:256,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:257,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:262,1
    - Dst: mark_valid
      Src: /src/rnp/src/lib/keygen.cpp:267,1
    - Dst: mark_valid
      Src: /src/rnp/src/lib/keygen.cpp:268,1
    - Dst: refresh_data
      Src: /src/rnp/src/lib/keygen.cpp:270,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:270,1
    - Dst: refresh_data
      Src: /src/rnp/src/lib/keygen.cpp:270,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:270,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 4
    argNames:
    - cert
    - '       primary_sec'
    - '       primary_pub'
    - secformat
    argTypes:
    - CertParams
    - Key
    - Key
    - KeyFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 215
    functionDepth: 5
    functionLinenumber: 215
    functionLinenumberEnd: 271
    functionName: rnp::KeygenParams::generate
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 18
    functionsReached:
    - RNP_LOG
    - refresh_data
    - Key::add_uid_cert
    - mark_valid
    - rnp::KeygenParams::validate
    - CertParams::check_defaults
    - Key::version
    - rnp::KeygenParams::generate
    - load_generated_g10_key
    - rnp::KeygenParams::check_defaults
    - Key::add_direct_sig
    - pgp_key_pkt_t::pgp_key_pkt_t
    - ctx
    - rnp::KeygenParams::hash
    - std::move
    linkageType: ''
    returnType: bool
    signature: "bool KeygenParams::generate(CertParams &cert,\n                       Key
      &       primary_sec,\n                       Key &       primary_pub,\n                       KeyFormat
      \  secformat)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: is_primary
      Src: /src/rnp/src/lib/keygen.cpp:283,1
    - Dst: is_primary
      Src: /src/rnp/src/lib/keygen.cpp:283,1
    - Dst: is_secret
      Src: /src/rnp/src/lib/keygen.cpp:283,1
    - Dst: is_public
      Src: /src/rnp/src/lib/keygen.cpp:284,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:285,1
    - Dst: rnp::KeygenParams::check_defaults
      Src: /src/rnp/src/lib/keygen.cpp:292,1
    - Dst: rnp::KeygenParams::check_defaults
      Src: /src/rnp/src/lib/keygen.cpp:293,1
    - Dst: rnp::KeygenParams::validate
      Src: /src/rnp/src/lib/keygen.cpp:296,1
    - Dst: encrypted
      Src: /src/rnp/src/lib/keygen.cpp:302,1
    - Dst: unlock
      Src: /src/rnp/src/lib/keygen.cpp:302,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:303,1
    - Dst: pgp_key_pkt_t::pgp_key_pkt_t
      Src: /src/rnp/src/lib/keygen.cpp:307,1
    - Dst: rnp::KeygenParams::generate
      Src: /src/rnp/src/lib/keygen.cpp:308,1
    - Dst: pgp_key_pkt_t
      Src: /src/rnp/src/lib/keygen.cpp:311,1
    - Dst: add_sub_binding
      Src: /src/rnp/src/lib/keygen.cpp:315,1
    - Dst: rnp::KeygenParams::hash
      Src: /src/rnp/src/lib/keygen.cpp:315,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:315,1
    - Dst: std::move
      Src: /src/rnp/src/lib/keygen.cpp:317,1
    - Dst: std::move
      Src: /src/rnp/src/lib/keygen.cpp:321,1
    - Dst: load_generated_g10_key
      Src: /src/rnp/src/lib/keygen.cpp:324,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:324,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:325,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/keygen.cpp:330,1
    - Dst: mark_valid
      Src: /src/rnp/src/lib/keygen.cpp:334,1
    - Dst: mark_valid
      Src: /src/rnp/src/lib/keygen.cpp:335,1
    - Dst: refresh_data
      Src: /src/rnp/src/lib/keygen.cpp:336,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:336,1
    - Dst: refresh_data
      Src: /src/rnp/src/lib/keygen.cpp:337,1
    - Dst: ctx
      Src: /src/rnp/src/lib/keygen.cpp:337,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 39
    argCount: 7
    argNames:
    - '                binding'
    - '                          primary_sec'
    - '                          primary_pub'
    - '                          subkey_sec'
    - '                          subkey_pub'
    - password_provider
    - secformat
    argTypes:
    - BindingParams
    - Key
    - Key
    - Key
    - Key
    - pgp_password_provider_t
    - KeyFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 273
    functionDepth: 5
    functionLinenumber: 273
    functionLinenumberEnd: 338
    functionName: rnp::KeygenParams::generate
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 19
    functionsReached:
    - is_secret
    - RNP_LOG
    - mark_valid
    - refresh_data
    - rnp::KeygenParams::validate
    - rnp::KeygenParams::generate
    - is_public
    - rnp::KeygenParams::check_defaults
    - load_generated_g10_key
    - pgp_key_pkt_t::pgp_key_pkt_t
    - add_sub_binding
    - pgp_key_pkt_t
    - unlock
    - std::move
    - ctx
    - rnp::KeygenParams::hash
    - encrypted
    - is_primary
    linkageType: ''
    returnType: bool
    signature: "bool KeygenParams::generate(BindingParams &                binding,\n
      \                      Key &                          primary_sec,\n                       Key
      &                          primary_pub,\n                       Key &                          subkey_sec,\n
      \                      Key &                          subkey_pub,\n                       const
      pgp_password_provider_t &password_provider,\n                       KeyFormat
      \                     secformat)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::preferred_symm_algs
      Src: /src/rnp/src/lib/keygen.cpp:342,1
    - Dst: pgp::pkt::Signature::preferred_hash_algs
      Src: /src/rnp/src/lib/keygen.cpp:343,1
    - Dst: pgp::pkt::Signature::preferred_z_algs
      Src: /src/rnp/src/lib/keygen.cpp:344,1
    - Dst: pgp::pkt::Signature::has_subpkt
      Src: /src/rnp/src/lib/keygen.cpp:346,1
    - Dst: pgp::pkt::Signature::key_server_prefs
      Src: /src/rnp/src/lib/keygen.cpp:347,1
    - Dst: pgp::pkt::Signature::has_subpkt
      Src: /src/rnp/src/lib/keygen.cpp:350,1
    - Dst: pgp::pkt::Signature::key_server
      Src: /src/rnp/src/lib/keygen.cpp:351,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - sig
    argTypes:
    - pgp::pkt::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 353
      start: 340
    functionDepth: 4
    functionLinenumber: 340
    functionLinenumberEnd: 353
    functionName: rnp::UserPrefs::UserPrefs
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 1
    functionsReached:
    - pgp::pkt::Signature::preferred_z_algs
    - pgp::pkt::Signature::has_subpkt
    - pgp::pkt::Signature::key_server_prefs
    - pgp::pkt::Signature::preferred_hash_algs
    - pgp::pkt::Signature::key_server
    - pgp::pkt::Signature::preferred_symm_algs
    linkageType: ''
    returnType: void
    signature: void UserPrefs::UserPrefs(const pgp::pkt::Signature &sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::find
      Src: /src/rnp/src/lib/keygen.cpp:358,1
    - Dst: std::vector<uint8_t>::begin
      Src: /src/rnp/src/lib/keygen.cpp:358,1
    - Dst: std::vector<uint8_t>::end
      Src: /src/rnp/src/lib/keygen.cpp:358,1
    - Dst: std::vector<uint8_t>::end
      Src: /src/rnp/src/lib/keygen.cpp:358,1
    - Dst: std::vector<uint8_t>::push_back
      Src: /src/rnp/src/lib/keygen.cpp:359,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - vec
    - val
    argTypes:
    - std::vector<uint8_t>
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 355
    functionDepth: 1
    functionLinenumber: 355
    functionLinenumberEnd: 361
    functionName: rnp::UserPrefs::add_uniq
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 4
    functionsReached:
    - std::vector<uint8_t>::push_back
    - std::find
    - std::vector<uint8_t>::end
    - std::vector<uint8_t>::begin
    linkageType: ''
    returnType: void
    signature: void UserPrefs::add_uniq(std::vector<uint8_t> &vec, uint8_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::UserPrefs::add_uniq
      Src: /src/rnp/src/lib/keygen.cpp:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_symm_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 367
      start: 363
    functionDepth: 2
    functionLinenumber: 363
    functionLinenumberEnd: 367
    functionName: rnp::UserPrefs::add_symm_alg
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 1
    functionsReached:
    - rnp::UserPrefs::add_uniq
    linkageType: ''
    returnType: void
    signature: void UserPrefs::add_symm_alg(pgp_symm_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::UserPrefs::add_uniq
      Src: /src/rnp/src/lib/keygen.cpp:372,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 369
    functionDepth: 2
    functionLinenumber: 369
    functionLinenumberEnd: 373
    functionName: rnp::UserPrefs::add_hash_alg
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 1
    functionsReached:
    - rnp::UserPrefs::add_uniq
    linkageType: ''
    returnType: void
    signature: void UserPrefs::add_hash_alg(pgp_hash_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::UserPrefs::add_uniq
      Src: /src/rnp/src/lib/keygen.cpp:378,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_compression_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 375
    functionDepth: 2
    functionLinenumber: 375
    functionLinenumberEnd: 379
    functionName: rnp::UserPrefs::add_z_alg
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 1
    functionsReached:
    - rnp::UserPrefs::add_uniq
    linkageType: ''
    returnType: void
    signature: void UserPrefs::add_z_alg(pgp_compression_type_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::UserPrefs::add_uniq
      Src: /src/rnp/src/lib/keygen.cpp:384,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pref
    argTypes:
    - pgp_key_server_prefs_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 385
      start: 381
    functionDepth: 2
    functionLinenumber: 381
    functionLinenumberEnd: 385
    functionName: rnp::UserPrefs::add_ks_pref
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 1
    functionsReached:
    - rnp::UserPrefs::add_uniq
    linkageType: ''
    returnType: void
    signature: void UserPrefs::add_ks_pref(pgp_key_server_prefs_t pref)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/keygen.cpp:391,1
    - Dst: push_back
      Src: /src/rnp/src/lib/keygen.cpp:396,1
    - Dst: push_back
      Src: /src/rnp/src/lib/keygen.cpp:397,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - sym_alg
    - aead_alg
    argTypes:
    - pgp_symm_alg_t
    - pgp_aead_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 398
      start: 388
    functionDepth: 1
    functionLinenumber: 388
    functionLinenumberEnd: 398
    functionName: rnp::UserPrefs::add_aead_prefs
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 0
    functionsReached:
    - size
    - push_back
    linkageType: ''
    returnType: void
    signature: void UserPrefs::add_aead_prefs(pgp_symm_alg_t sym_alg, pgp_aead_alg_t
      aead_alg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/rnp/src/lib/keygen.cpp:404,1
    - Dst: empty
      Src: /src/rnp/src/lib/keygen.cpp:407,1
    - Dst: rnp::Key::is_pqc_alg
      Src: /src/rnp/src/lib/keygen.cpp:409,1
    - Dst: empty
      Src: /src/rnp/src/lib/keygen.cpp:421,1
    - Dst: empty
      Src: /src/rnp/src/lib/keygen.cpp:429,1
    - Dst: push_back
      Src: /src/rnp/src/lib/keygen.cpp:431,1
    - Dst: push_back
      Src: /src/rnp/src/lib/keygen.cpp:432,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 2
    argNames:
    - version
    - pk_alg
    argTypes:
    - pgp_version_t
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 436
    functionName: rnp::UserPrefs::check_defaults
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 0
    functionsReached:
    - empty
    - rnp::Key::is_pqc_alg
    - push_back
    linkageType: ''
    returnType: void
    signature: void UserPrefs::check_defaults(pgp_version_t version, pgp_pubkey_alg_t
      pk_alg)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::CertParams::check_defaults
      Src: /src/rnp/src/lib/keygen.cpp:441,1
    - Dst: KeygenParams::version
      Src: /src/rnp/src/lib/keygen.cpp:441,1
    - Dst: KeygenParams::alg
      Src: /src/rnp/src/lib/keygen.cpp:441,1
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/lib/keygen.cpp:445,1
    - Dst: KeygenParams::alg
      Src: /src/rnp/src/lib/keygen.cpp:445,1
    - Dst: empty
      Src: /src/rnp/src/lib/keygen.cpp:447,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/keygen.cpp:448,1
    - Dst: KeygenParams::alg
      Src: /src/rnp/src/lib/keygen.cpp:448,1
    - Dst: to_string
      Src: /src/rnp/src/lib/keygen.cpp:449,1
    - Dst: KeygenParams::key_params
      Src: /src/rnp/src/lib/keygen.cpp:449,1
    - Dst: getenv_logname
      Src: /src/rnp/src/lib/keygen.cpp:450,1
    - Dst: getenv_logname
      Src: /src/rnp/src/lib/keygen.cpp:450,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - params
    argTypes:
    - KeygenParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 438
    functionDepth: 2
    functionLinenumber: 438
    functionLinenumberEnd: 454
    functionName: rnp::CertParams::check_defaults
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 2
    functionsReached:
    - rnp::CertParams::check_defaults
    - id_str_pair::lookup
    - to_string
    - pgp_pk_alg_capabilities
    - KeygenParams::key_params
    - getenv_logname
    - KeygenParams::alg
    - empty
    - KeygenParams::version
    linkageType: ''
    returnType: void
    signature: void CertParams::check_defaults(const KeygenParams &params)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_userid_pkt_t::uid::assign
      Src: /src/rnp/src/lib/keygen.cpp:460,1
    - Dst: data
      Src: /src/rnp/src/lib/keygen.cpp:460,1
    - Dst: data
      Src: /src/rnp/src/lib/keygen.cpp:460,1
    - Dst: size
      Src: /src/rnp/src/lib/keygen.cpp:460,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - uid
    argTypes:
    - pgp_userid_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 456
    functionDepth: 1
    functionLinenumber: 456
    functionLinenumberEnd: 461
    functionName: rnp::CertParams::populate
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 1
    functionsReached:
    - size
    - data
    - pgp_userid_pkt_t::uid::assign
    linkageType: ''
    returnType: void
    signature: void CertParams::populate(pgp_userid_pkt_t &uid) const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::set_key_expiration
      Src: /src/rnp/src/lib/keygen.cpp:467,1
    - Dst: pgp::pkt::Signature::set_primary_uid
      Src: /src/rnp/src/lib/keygen.cpp:470,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/lib/keygen.cpp:473,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/lib/keygen.cpp:478,1
    - Dst: pgp::pkt::Signature::set_key_flags
      Src: /src/rnp/src/lib/keygen.cpp:480,1
    - Dst: pgp::pkt::Signature::type
      Src: /src/rnp/src/lib/keygen.cpp:483,1
    - Dst: pgp::pkt::Signature::set_key_features
      Src: /src/rnp/src/lib/keygen.cpp:485,1
    - Dst: aead_prefs::empty
      Src: /src/rnp/src/lib/keygen.cpp:486,1
    - Dst: pgp::pkt::Signature::set_preferred_aead_algs
      Src: /src/rnp/src/lib/keygen.cpp:487,1
    - Dst: pgp::pkt::Signature::set_key_flags
      Src: /src/rnp/src/lib/keygen.cpp:492,1
    - Dst: symm_algs::empty
      Src: /src/rnp/src/lib/keygen.cpp:494,1
    - Dst: pgp::pkt::Signature::set_preferred_symm_algs
      Src: /src/rnp/src/lib/keygen.cpp:495,1
    - Dst: hash_algs::empty
      Src: /src/rnp/src/lib/keygen.cpp:497,1
    - Dst: pgp::pkt::Signature::set_preferred_hash_algs
      Src: /src/rnp/src/lib/keygen.cpp:498,1
    - Dst: z_algs::empty
      Src: /src/rnp/src/lib/keygen.cpp:500,1
    - Dst: pgp::pkt::Signature::set_preferred_z_algs
      Src: /src/rnp/src/lib/keygen.cpp:501,1
    - Dst: ks_prefs::empty
      Src: /src/rnp/src/lib/keygen.cpp:503,1
    - Dst: pgp::pkt::Signature::set_key_server_prefs
      Src: /src/rnp/src/lib/keygen.cpp:504,1
    - Dst: key_server::empty
      Src: /src/rnp/src/lib/keygen.cpp:506,1
    - Dst: pgp::pkt::Signature::set_key_server
      Src: /src/rnp/src/lib/keygen.cpp:507,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 37
    argCount: 1
    argNames:
    - sig
    argTypes:
    - pgp::pkt::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 509
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 509
    functionName: rnp::CertParams::populate
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 1
    functionsReached:
    - pgp::pkt::Signature::set_key_server_prefs
    - aead_prefs::empty
    - pgp::pkt::Signature::set_preferred_aead_algs
    - pgp::pkt::Signature::set_primary_uid
    - pgp::pkt::Signature::set_preferred_hash_algs
    - pgp::pkt::Signature::set_key_flags
    - hash_algs::empty
    - pgp::pkt::Signature::set_preferred_z_algs
    - pgp::pkt::Signature::set_key_expiration
    - symm_algs::empty
    - z_algs::empty
    - ks_prefs::empty
    - key_server::empty
    - pgp::pkt::Signature::set_key_features
    - pgp::pkt::Signature::set_preferred_symm_algs
    - pgp::pkt::Signature::set_key_server
    - pgp::pkt::Signature::type
    linkageType: ''
    returnType: void
    signature: void CertParams::populate(pgp::pkt::Signature &sig) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::set_type
      Src: /src/rnp/src/lib/keygen.cpp:514,1
    - Dst: rnp::CertParams::populate
      Src: /src/rnp/src/lib/keygen.cpp:515,1
    - Dst: rnp::CertParams::populate
      Src: /src/rnp/src/lib/keygen.cpp:516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - uid
    - sig
    argTypes:
    - pgp_userid_pkt_t
    - pgp::pkt::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 517
      start: 511
    functionDepth: 1
    functionLinenumber: 511
    functionLinenumberEnd: 517
    functionName: rnp::CertParams::populate
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 2
    functionsReached:
    - pgp::pkt::Signature::set_type
    - rnp::CertParams::populate
    linkageType: ''
    returnType: void
    signature: void CertParams::populate(pgp_userid_pkt_t &uid, pgp::pkt::Signature
      &sig) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/lib/keygen.cpp:524,1
    - Dst: KeygenParams::alg
      Src: /src/rnp/src/lib/keygen.cpp:524,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - params
    argTypes:
    - KeygenParams
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 526
      start: 519
    functionDepth: 2
    functionLinenumber: 519
    functionLinenumberEnd: 526
    functionName: rnp::BindingParams::check_defaults
    functionSourceFile: /src/rnp/src/lib/keygen.cpp
    functionUses: 0
    functionsReached:
    - pgp_pk_alg_capabilities
    - KeygenParams::alg
    linkageType: ''
    returnType: void
    signature: void BindingParams::check_defaults(const KeygenParams &params)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/rnp/src/lib/pass-provider.cpp:38,1
    - Dst: strncpy
      Src: /src/rnp/src/lib/pass-provider.cpp:42,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - ctx
    - password
    - password_size
    - userdata
    argTypes:
    - pgp_password_ctx_t*
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 30
    functionDepth: 0
    functionLinenumber: 30
    functionLinenumberEnd: 44
    functionName: rnp_password_provider_string
    functionSourceFile: /src/rnp/src/lib/pass-provider.cpp
    functionUses: 0
    functionsReached:
    - strncpy
    - strlen
    linkageType: ''
    returnType: bool
    signature: "bool rnp_password_provider_string(const pgp_password_ctx_t *ctx,\n
      \                            char *                    password,\n                             size_t
      \                   password_size,\n                             void *                    userdata)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_password_provider_t*::callback
      Src: /src/rnp/src/lib/pass-provider.cpp:55,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 4
    argNames:
    - provider
    - ctx
    - password
    - password_size
    argTypes:
    - pgp_password_provider_t*
    - pgp_password_ctx_t*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 56
    functionName: pgp_request_password
    functionSourceFile: /src/rnp/src/lib/pass-provider.cpp
    functionUses: 5
    functionsReached:
    - pgp_password_provider_t*::callback
    linkageType: ''
    returnType: bool
    signature: "bool pgp_request_password(const pgp_password_provider_t *provider,\n
      \                    const pgp_password_ctx_t *     ctx,\n                     char
      *                         password,\n                     size_t                         password_size)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - int8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 49
    functionName: set_rnp_log_switch
    functionSourceFile: /src/rnp/src/lib/logging.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_rnp_log_switch(int8_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: getenv
      Src: /src/rnp/src/lib/logging.cpp:55,1
    - Dst: strcmp
      Src: /src/rnp/src/lib/logging.cpp:56,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: rnp_log_switch
    functionSourceFile: /src/rnp/src/lib/logging.cpp
    functionUses: 1
    functionsReached:
    - strcmp
    - getenv
    linkageType: ''
    returnType: bool
    signature: bool rnp_log_switch()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 67
    functionName: rnp_log_stop
    functionSourceFile: /src/rnp/src/lib/logging.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_log_stop()
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: rnp_log_continue
    functionSourceFile: /src/rnp/src/lib/logging.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_log_continue()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - anop
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: pgp_password_ctx_t
    functionSourceFile: /src/rnp/src/lib/pass-provider.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_password_ctx_t(uint8_t anop, const rnp::Key *akey = NULL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 52
    functionName: pgp_password_provider_t
    functionSourceFile: /src/rnp/src/lib/pass-provider.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_password_provider_t(pgp_password_callback_t *cb = NULL, void
      *ud = NULL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ftype
    - fval
    - flevel
    argTypes:
    - FeatureType
    - int
    - SecurityLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: rnp::SecurityRule
    functionSourceFile: /src/rnp/src/lib/sec_profile.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SecurityRule(FeatureType    ftype,\n                 int            fval,\n
      \                SecurityLevel  flevel,\n                 uint64_t       ffrom
      = 0,\n                 SecurityAction faction = SecurityAction::Any)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - ftype
    - fval
    - flevel
    argTypes:
    - FeatureType
    - int
    - SecurityLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 55
    functionName: rnp::SecurityRule
    functionSourceFile: /src/rnp/src/lib/sec_profile.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void SecurityRule(FeatureType    ftype,\n                 int            fval,\n
      \                SecurityLevel  flevel,\n                 uint64_t       ffrom
      = 0,\n                 SecurityAction faction = SecurityAction::Any)"
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<SigMaterial>
      Src: /src/rnp/src/lib/sig_material.cpp:39,1
    - Dst: RSASigMaterial::RSASigMaterial
      Src: /src/rnp/src/lib/sig_material.cpp:39,1
    - Dst: std::unique_ptr<SigMaterial>
      Src: /src/rnp/src/lib/sig_material.cpp:41,1
    - Dst: DSASigMaterial::DSASigMaterial
      Src: /src/rnp/src/lib/sig_material.cpp:41,1
    - Dst: std::unique_ptr<SigMaterial>
      Src: /src/rnp/src/lib/sig_material.cpp:46,1
    - Dst: ECSigMaterial::ECSigMaterial
      Src: /src/rnp/src/lib/sig_material.cpp:46,1
    - Dst: std::unique_ptr<SigMaterial>
      Src: /src/rnp/src/lib/sig_material.cpp:49,1
    - Dst: EGSigMaterial::EGSigMaterial
      Src: /src/rnp/src/lib/sig_material.cpp:49,1
    - Dst: std::unique_ptr<SigMaterial>
      Src: /src/rnp/src/lib/sig_material.cpp:52,1
    - Dst: Ed25519SigMaterial::Ed25519SigMaterial
      Src: /src/rnp/src/lib/sig_material.cpp:52,1
    - Dst: std::unique_ptr<SigMaterial>
      Src: /src/rnp/src/lib/sig_material.cpp:55,1
    - Dst: Ed448SigMaterial::Ed448SigMaterial
      Src: /src/rnp/src/lib/sig_material.cpp:55,1
    - Dst: std::unique_ptr<SigMaterial>
      Src: /src/rnp/src/lib/sig_material.cpp:70,1
    - Dst: DilithiumSigMaterial::DilithiumSigMaterial
      Src: /src/rnp/src/lib/sig_material.cpp:70,1
    - Dst: std::unique_ptr<SigMaterial>
      Src: /src/rnp/src/lib/sig_material.cpp:76,1
    - Dst: SlhdsaSigMaterial::SlhdsaSigMaterial
      Src: /src/rnp/src/lib/sig_material.cpp:76,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_material.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 2
    argNames:
    - palg
    - halg
    argTypes:
    - pgp_pubkey_alg_t
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 82
    functionName: pgp::SigMaterial::create
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - EGSigMaterial::EGSigMaterial
    - RSASigMaterial::RSASigMaterial
    - ECSigMaterial::ECSigMaterial
    - Ed25519SigMaterial::Ed25519SigMaterial
    - Ed448SigMaterial::Ed448SigMaterial
    - std::unique_ptr<SigMaterial>
    - DilithiumSigMaterial::DilithiumSigMaterial
    - DSASigMaterial::DSASigMaterial
    - SlhdsaSigMaterial::SlhdsaSigMaterial
    linkageType: ''
    returnType: std::unique_ptr<SigMaterial>
    signature: std::unique_ptr<SigMaterial> SigMaterial::create(pgp_pubkey_alg_t palg,
      pgp_hash_alg_t halg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/sig_material.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: pgp::RSASigMaterial::parse
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool RSASigMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/sig_material.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: pgp::RSASigMaterial::write
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void RSASigMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/sig_material.cpp:99,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/sig_material.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: pgp::DSASigMaterial::parse
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool DSASigMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/sig_material.cpp:105,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/sig_material.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: pgp::DSASigMaterial::write
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void DSASigMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/sig_material.cpp:112,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/sig_material.cpp:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: pgp::EGSigMaterial::parse
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool EGSigMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/sig_material.cpp:119,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/sig_material.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: pgp::EGSigMaterial::write
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void EGSigMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/sig_material.cpp:126,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/sig_material.cpp:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: pgp::ECSigMaterial::parse
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool ECSigMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/sig_material.cpp:132,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/sig_material.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: pgp::ECSigMaterial::write
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void ECSigMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/sig_material.cpp:140,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/sig_material.cpp:141,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/sig_material.cpp:141,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_material.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: pgp::Ed25519SigMaterial::parse
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    - auto::bytes
    - pgp::ec::Curve::get
    linkageType: ''
    returnType: bool
    signature: bool Ed25519SigMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/sig_material.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: pgp::Ed25519SigMaterial::write
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void Ed25519SigMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/sig_material.cpp:157,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/sig_material.cpp:158,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/sig_material.cpp:158,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_material.cpp:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 163
    functionName: pgp::Ed448SigMaterial::parse
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    - auto::bytes
    - pgp::ec::Curve::get
    linkageType: ''
    returnType: bool
    signature: bool Ed448SigMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/sig_material.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: pgp::Ed448SigMaterial::write
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void Ed448SigMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/sig_material.cpp:176,1
    - Dst: composite_signature_size
      Src: /src/rnp/src/lib/sig_material.cpp:176,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_material.cpp:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 181
    functionName: pgp::DilithiumSigMaterial::parse
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - composite_signature_size
    - pgp_packet_body_t::get
    - RNP_LOG
    linkageType: ''
    returnType: bool
    signature: bool DilithiumSigMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/sig_material.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: pgp::DilithiumSigMaterial::write
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void DilithiumSigMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sphincsplus_signature_size
      Src: /src/rnp/src/lib/sig_material.cpp:192,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_material.cpp:194,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/sig_material.cpp:197,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_material.cpp:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 202
    functionName: pgp::SlhdsaSigMaterial::parse
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    - sphincsplus_signature_size
    linkageType: ''
    returnType: bool
    signature: bool SlhdsaSigMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/sig_material.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 208
    functionName: pgp::SlhdsaSigMaterial::write
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void SlhdsaSigMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<SigMaterial>
      Src: /src/rnp/src/lib/sig_material.cpp:39,1
    - Dst: RSASigMaterial::RSASigMaterial
      Src: /src/rnp/src/lib/sig_material.cpp:39,1
    - Dst: std::unique_ptr<SigMaterial>
      Src: /src/rnp/src/lib/sig_material.cpp:41,1
    - Dst: DSASigMaterial::DSASigMaterial
      Src: /src/rnp/src/lib/sig_material.cpp:41,1
    - Dst: std::unique_ptr<SigMaterial>
      Src: /src/rnp/src/lib/sig_material.cpp:46,1
    - Dst: ECSigMaterial::ECSigMaterial
      Src: /src/rnp/src/lib/sig_material.cpp:46,1
    - Dst: std::unique_ptr<SigMaterial>
      Src: /src/rnp/src/lib/sig_material.cpp:49,1
    - Dst: EGSigMaterial::EGSigMaterial
      Src: /src/rnp/src/lib/sig_material.cpp:49,1
    - Dst: std::unique_ptr<SigMaterial>
      Src: /src/rnp/src/lib/sig_material.cpp:52,1
    - Dst: Ed25519SigMaterial::Ed25519SigMaterial
      Src: /src/rnp/src/lib/sig_material.cpp:52,1
    - Dst: std::unique_ptr<SigMaterial>
      Src: /src/rnp/src/lib/sig_material.cpp:55,1
    - Dst: Ed448SigMaterial::Ed448SigMaterial
      Src: /src/rnp/src/lib/sig_material.cpp:55,1
    - Dst: std::unique_ptr<SigMaterial>
      Src: /src/rnp/src/lib/sig_material.cpp:70,1
    - Dst: DilithiumSigMaterial::DilithiumSigMaterial
      Src: /src/rnp/src/lib/sig_material.cpp:70,1
    - Dst: std::unique_ptr<SigMaterial>
      Src: /src/rnp/src/lib/sig_material.cpp:76,1
    - Dst: SlhdsaSigMaterial::SlhdsaSigMaterial
      Src: /src/rnp/src/lib/sig_material.cpp:76,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_material.cpp:79,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 43
    argCount: 2
    argNames:
    - palg
    - halg
    argTypes:
    - pgp_pubkey_alg_t
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 82
    functionName: pgp::SigMaterial::create
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - EGSigMaterial::EGSigMaterial
    - RSASigMaterial::RSASigMaterial
    - ECSigMaterial::ECSigMaterial
    - Ed25519SigMaterial::Ed25519SigMaterial
    - Ed448SigMaterial::Ed448SigMaterial
    - std::unique_ptr<SigMaterial>
    - DilithiumSigMaterial::DilithiumSigMaterial
    - DSASigMaterial::DSASigMaterial
    - SlhdsaSigMaterial::SlhdsaSigMaterial
    linkageType: ''
    returnType: std::unique_ptr<SigMaterial>
    signature: std::unique_ptr<SigMaterial> SigMaterial::create(pgp_pubkey_alg_t palg,
      pgp_hash_alg_t halg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/sig_material.cpp:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: pgp::RSASigMaterial::parse
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool RSASigMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/sig_material.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: pgp::RSASigMaterial::write
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void RSASigMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/sig_material.cpp:99,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/sig_material.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: pgp::DSASigMaterial::parse
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool DSASigMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/sig_material.cpp:105,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/sig_material.cpp:106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 107
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 107
    functionName: pgp::DSASigMaterial::write
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void DSASigMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/sig_material.cpp:112,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/sig_material.cpp:112,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 113
    functionName: pgp::EGSigMaterial::parse
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool EGSigMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/sig_material.cpp:119,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/sig_material.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 115
    functionDepth: 0
    functionLinenumber: 115
    functionLinenumberEnd: 121
    functionName: pgp::EGSigMaterial::write
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void EGSigMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/sig_material.cpp:126,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/sig_material.cpp:126,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: pgp::ECSigMaterial::parse
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::get
    linkageType: ''
    returnType: bool
    signature: bool ECSigMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/sig_material.cpp:132,1
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/sig_material.cpp:133,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 134
    functionName: pgp::ECSigMaterial::write
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void ECSigMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/sig_material.cpp:140,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/sig_material.cpp:141,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/sig_material.cpp:141,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_material.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 146
    functionName: pgp::Ed25519SigMaterial::parse
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    - auto::bytes
    - pgp::ec::Curve::get
    linkageType: ''
    returnType: bool
    signature: bool Ed25519SigMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/sig_material.cpp:151,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 148
    functionDepth: 0
    functionLinenumber: 148
    functionLinenumberEnd: 152
    functionName: pgp::Ed25519SigMaterial::write
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void Ed25519SigMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/sig_material.cpp:157,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/sig_material.cpp:158,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/sig_material.cpp:158,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_material.cpp:159,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 163
    functionName: pgp::Ed448SigMaterial::parse
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    - auto::bytes
    - pgp::ec::Curve::get
    linkageType: ''
    returnType: bool
    signature: bool Ed448SigMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/sig_material.cpp:168,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 169
    functionName: pgp::Ed448SigMaterial::write
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void Ed448SigMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/sig_material.cpp:176,1
    - Dst: composite_signature_size
      Src: /src/rnp/src/lib/sig_material.cpp:176,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_material.cpp:177,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 173
    functionDepth: 1
    functionLinenumber: 173
    functionLinenumberEnd: 181
    functionName: pgp::DilithiumSigMaterial::parse
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - composite_signature_size
    - pgp_packet_body_t::get
    - RNP_LOG
    linkageType: ''
    returnType: bool
    signature: bool DilithiumSigMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/sig_material.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: pgp::DilithiumSigMaterial::write
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void DilithiumSigMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: sphincsplus_signature_size
      Src: /src/rnp/src/lib/sig_material.cpp:192,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_material.cpp:194,1
    - Dst: pgp_packet_body_t::get
      Src: /src/rnp/src/lib/sig_material.cpp:197,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/sig_material.cpp:198,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 189
    functionDepth: 1
    functionLinenumber: 189
    functionLinenumberEnd: 202
    functionName: pgp::SlhdsaSigMaterial::parse
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_packet_body_t::get
    - sphincsplus_signature_size
    linkageType: ''
    returnType: bool
    signature: bool SlhdsaSigMaterial::parse(pgp_packet_body_t &pkt) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_packet_body_t::add
      Src: /src/rnp/src/lib/sig_material.cpp:207,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pkt
    argTypes:
    - pgp_packet_body_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 204
    functionDepth: 0
    functionLinenumber: 204
    functionLinenumberEnd: 208
    functionName: pgp::SlhdsaSigMaterial::write
    functionSourceFile: /src/rnp/src/lib/sig_material.cpp
    functionUses: 0
    functionsReached:
    - pgp_packet_body_t::add
    linkageType: ''
    returnType: void
    signature: void SlhdsaSigMaterial::write(pgp_packet_body_t &pkt) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: rnp::KeySearch::type
    functionSourceFile: /src/rnp/src/lib/key-provider.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Type
    signature: Type type() const
  - 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: ~KeySearch()
    functionSourceFile: /src/rnp/src/lib/key-provider.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~KeySearch()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: rnp::KeyProvider::KeyProvider
    functionSourceFile: /src/rnp/src/lib/key-provider.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyProvider(pgp_key_callback_t *cb = nullptr, void *ud = nullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 51
    functionName: rnp::KeySearch::type
    functionSourceFile: /src/rnp/src/lib/key-provider.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Type
    signature: Type type() const
  - 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: ~KeySearch()
    functionSourceFile: /src/rnp/src/lib/key-provider.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~KeySearch()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 120
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 120
    functionName: rnp::KeyProvider::KeyProvider
    functionSourceFile: /src/rnp/src/lib/key-provider.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyProvider(pgp_key_callback_t *cb = nullptr, void *ud = nullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - anop
    - sec
    - srch
    argTypes:
    - pgp_op_t
    - bool
    - rnp::KeySearch
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 142
    functionName: pgp_key_request_ctx_t
    functionSourceFile: /src/rnp/src/lib/key-provider.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_key_request_ctx_t(pgp_op_t anop, bool sec, const rnp::KeySearch
      &srch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/rnp/src/lib/fingerprint.hpp:91,1
    - Dst: pgp::Fingerprint::size
      Src: /src/rnp/src/lib/fingerprint.hpp:91,1
    - Dst: std::memcpy
      Src: /src/rnp/src/lib/fingerprint.hpp:92,1
    - Dst: pgp::Fingerprint::data
      Src: /src/rnp/src/lib/fingerprint.hpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fp
    argTypes:
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: operator()(pgp::Fingerprint const &fp) const noexcept
    functionSourceFile: /src/rnp/src/lib/fingerprint.hpp
    functionUses: 0
    functionsReached:
    - std::memcpy
    - std::min
    - pgp::Fingerprint::size
    - pgp::Fingerprint::data
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t operator()(pgp::Fingerprint const &fp) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::min
      Src: /src/rnp/src/lib/fingerprint.hpp:91,1
    - Dst: pgp::Fingerprint::size
      Src: /src/rnp/src/lib/fingerprint.hpp:91,1
    - Dst: std::memcpy
      Src: /src/rnp/src/lib/fingerprint.hpp:92,1
    - Dst: pgp::Fingerprint::data
      Src: /src/rnp/src/lib/fingerprint.hpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fp
    argTypes:
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 94
    functionName: operator()(pgp::Fingerprint const &fp) const noexcept
    functionSourceFile: /src/rnp/src/lib/fingerprint.hpp
    functionUses: 0
    functionsReached:
    - std::memcpy
    - std::min
    - pgp::Fingerprint::size
    - pgp::Fingerprint::data
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t operator()(pgp::Fingerprint const &fp) const noexcept
  - 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: rnp::SigValidity::SigValidity
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SigValidity()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: "&\n    errors() const noexcept"
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<int>
    signature: "std::vector<int> &\n    errors() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/lib/signature.hpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: rnp::SigValidity::add_error
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void add_error(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/rnp/src/lib/signature.hpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: rnp::SigValidity::valid
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool valid() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: rnp::SigValidity::validated
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool validated() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/lib/signature.hpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: rnp::SigValidity::mark_validated
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void mark_validated(rnp_result_t err = RNP_SUCCESS) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/signature.hpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: rnp::SigValidity::reset
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void reset(bool mark_valid = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/signature.hpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: rnp::SigValidity::unknown
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool unknown() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: rnp::SigValidity::expired
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool expired() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/signature.hpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: rnp::SigValidity::no_signer
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool no_signer() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: rnp::Signature::Signature
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Signature()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: rnp::Revocation::Revocation
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Revocation()
  - 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: rnp::SigValidity::SigValidity
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SigValidity()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: "&\n    errors() const noexcept"
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<int>
    signature: "std::vector<int> &\n    errors() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/lib/signature.hpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - err
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 53
    functionName: rnp::SigValidity::add_error
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void add_error(int err)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/rnp/src/lib/signature.hpp:59,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 1
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: rnp::SigValidity::valid
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool valid() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: rnp::SigValidity::validated
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool validated() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/lib/signature.hpp:72,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 75
    functionName: rnp::SigValidity::mark_validated
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void mark_validated(rnp_result_t err = RNP_SUCCESS) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/signature.hpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 82
    functionName: rnp::SigValidity::reset
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void reset(bool mark_valid = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/signature.hpp:87,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 84
    functionDepth: 1
    functionLinenumber: 84
    functionLinenumberEnd: 88
    functionName: rnp::SigValidity::unknown
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool unknown() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 102
    functionName: rnp::SigValidity::expired
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool expired() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/signature.hpp:107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 108
    functionName: rnp::SigValidity::no_signer
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: bool
    signature: bool no_signer() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 128
    functionName: rnp::Signature::Signature
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Signature()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 145
    functionName: rnp::Revocation::Revocation
    functionSourceFile: /src/rnp/src/lib/signature.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Revocation()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - SecurityRule
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: SecurityRule::operator==(const SecurityRule &src) const
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SecurityRule::operator==(const SecurityRule &src) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - SecurityRule
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: SecurityRule::operator!=(const SecurityRule &src) const
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SecurityRule::operator!=(const SecurityRule &src) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 4
    argNames:
    - ftype
    - fval
    - ftime
    - faction
    argTypes:
    - FeatureType
    - int
    - uint64_t
    - SecurityAction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: rnp::SecurityRule::matches
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool SecurityRule::matches(FeatureType    ftype,\n                      int
      \           fval,\n                      uint64_t       ftime,\n                      SecurityAction
      faction) const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecurityProfile::size
      Src: /src/rnp/src/lib/sec_profile.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: rnp::SecurityProfile::size
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 1
    functionsReached:
    - rnp::SecurityProfile::size
    linkageType: ''
    returnType: size_t
    signature: size_t SecurityProfile::size() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/lib/sec_profile.cpp:69,1
    - Dst: back
      Src: /src/rnp/src/lib/sec_profile.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rule
    argTypes:
    - SecurityRule
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: '&

      SecurityProfile::add_rule(const SecurityRule &rule)'
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached:
    - back
    - push_back
    linkageType: ''
    returnType: SecurityRule
    signature: 'SecurityRule &

      SecurityProfile::add_rule(const SecurityRule &rule)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/rnp/src/lib/sec_profile.cpp:76,1
    - Dst: back
      Src: /src/rnp/src/lib/sec_profile.cpp:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - rule
    argTypes:
    - SecurityRule
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: '&

      SecurityProfile::add_rule(SecurityRule &&rule)'
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached:
    - back
    - emplace_back
    linkageType: ''
    returnType: SecurityRule
    signature: 'SecurityRule &

      SecurityProfile::add_rule(SecurityRule &&rule)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecurityProfile::size
      Src: /src/rnp/src/lib/sec_profile.cpp:83,1
    - Dst: erase
      Src: /src/rnp/src/lib/sec_profile.cpp:84,1
    - Dst: std::remove_if
      Src: /src/rnp/src/lib/sec_profile.cpp:84,1
    - Dst: begin
      Src: /src/rnp/src/lib/sec_profile.cpp:84,1
    - Dst: end
      Src: /src/rnp/src/lib/sec_profile.cpp:85,1
    - Dst: end
      Src: /src/rnp/src/lib/sec_profile.cpp:87,1
    - Dst: rnp::SecurityProfile::size
      Src: /src/rnp/src/lib/sec_profile.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - rule
    argTypes:
    - SecurityRule
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 89
    functionName: rnp::SecurityProfile::del_rule
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached:
    - end
    - rnp::SecurityProfile::size
    - erase
    - begin
    - std::remove_if
    linkageType: ''
    returnType: bool
    signature: bool SecurityProfile::del_rule(const SecurityRule &rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/rnp/src/lib/sec_profile.cpp:94,1
    - Dst: std::remove_if
      Src: /src/rnp/src/lib/sec_profile.cpp:94,1
    - Dst: begin
      Src: /src/rnp/src/lib/sec_profile.cpp:94,1
    - Dst: end
      Src: /src/rnp/src/lib/sec_profile.cpp:95,1
    - Dst: end
      Src: /src/rnp/src/lib/sec_profile.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - type
    - feature
    argTypes:
    - FeatureType
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: rnp::SecurityProfile::clear_rules
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached:
    - end
    - begin
    - std::remove_if
    - erase
    linkageType: ''
    returnType: void
    signature: void SecurityProfile::clear_rules(FeatureType type, int feature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/rnp/src/lib/sec_profile.cpp:105,1
    - Dst: std::remove_if
      Src: /src/rnp/src/lib/sec_profile.cpp:106,1
    - Dst: begin
      Src: /src/rnp/src/lib/sec_profile.cpp:106,1
    - Dst: end
      Src: /src/rnp/src/lib/sec_profile.cpp:107,1
    - Dst: end
      Src: /src/rnp/src/lib/sec_profile.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - FeatureType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: rnp::SecurityProfile::clear_rules
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached:
    - end
    - begin
    - std::remove_if
    - erase
    linkageType: ''
    returnType: void
    signature: void SecurityProfile::clear_rules(FeatureType type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sec_profile.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: rnp::SecurityProfile::clear_rules
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void SecurityProfile::clear_rules()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: matches
      Src: /src/rnp/src/lib/sec_profile.cpp:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - type
    - value
    - time
    - action
    argTypes:
    - FeatureType
    - int
    - uint64_t
    - SecurityAction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: rnp::SecurityProfile::has_rule
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached:
    - matches
    linkageType: ''
    returnType: bool
    signature: "bool SecurityProfile::has_rule(FeatureType    type,\n                          int
      \           value,\n                          uint64_t       time,\n                          SecurityAction
      action) const noexcept"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: matches
      Src: /src/rnp/src/lib/sec_profile.cpp:140,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sec_profile.cpp:151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 4
    argNames:
    - type
    - value
    - time
    - action
    argTypes:
    - FeatureType
    - int
    - uint64_t
    - SecurityAction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 154
    functionName: "&\nSecurityProfile::get_rule(FeatureType    type,\n                          int
      \           value,\n                          uint64_t       time,\n                          SecurityAction
      action) const"
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached:
    - rnp::rnp_exception::rnp_exception
    - matches
    linkageType: ''
    returnType: SecurityRule
    signature: "SecurityRule &\nSecurityProfile::get_rule(FeatureType    type,\n                          int
      \           value,\n                          uint64_t       time,\n                          SecurityAction
      action) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecurityProfile::has_rule
      Src: /src/rnp/src/lib/sec_profile.cpp:161,1
    - Dst: rnp::SecurityProfile::def_level
      Src: /src/rnp/src/lib/sec_profile.cpp:162,1
    - Dst: get_rule
      Src: /src/rnp/src/lib/sec_profile.cpp:166,1
    - Dst: rnp::SecurityProfile::def_level
      Src: /src/rnp/src/lib/sec_profile.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - hash
    - time
    - action
    argTypes:
    - pgp_hash_alg_t
    - uint64_t
    - SecurityAction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 171
    functionName: rnp::SecurityProfile::hash_level
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached:
    - rnp::SecurityProfile::has_rule
    - get_rule
    - rnp::SecurityProfile::def_level
    linkageType: ''
    returnType: SecurityLevel
    signature: "SecurityLevel SecurityProfile::hash_level(pgp_hash_alg_t hash,\n                            uint64_t
      \      time,\n                            SecurityAction action) const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: rnp::SecurityProfile::def_level
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: SecurityLevel
    signature: SecurityLevel SecurityProfile::def_level() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::backend_init
      Src: /src/rnp/src/lib/sec_profile.cpp:182,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sec_profile.cpp:183,1
    - Dst: add_rule
      Src: /src/rnp/src/lib/sec_profile.cpp:186,1
    - Dst: add_rule
      Src: /src/rnp/src/lib/sec_profile.cpp:192,1
    - Dst: add_rule
      Src: /src/rnp/src/lib/sec_profile.cpp:198,1
    - Dst: add_rule
      Src: /src/rnp/src/lib/sec_profile.cpp:200,1
    - Dst: add_rule
      Src: /src/rnp/src/lib/sec_profile.cpp:201,1
    - Dst: add_rule
      Src: /src/rnp/src/lib/sec_profile.cpp:203,1
    - Dst: add_rule
      Src: /src/rnp/src/lib/sec_profile.cpp:204,1
    - Dst: add_rule
      Src: /src/rnp/src/lib/sec_profile.cpp:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 211
    functionName: rnp::SecurityContext::SecurityContext
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 3
    functionsReached:
    - rnp::backend_init
    - add_rule
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void SecurityContext::SecurityContext()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::backend_finish
      Src: /src/rnp/src/lib/sec_profile.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: SecurityContext::~SecurityContext()
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached:
    - rnp::backend_finish
    linkageType: ''
    returnType: void
    signature: void SecurityContext::~SecurityContext()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/rnp/src/lib/sec_profile.cpp:221,1
    - Dst: pgp_s2k_compute_iters
      Src: /src/rnp/src/lib/sec_profile.cpp:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - halg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 226
    functionName: rnp::SecurityContext::s2k_iterations
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached:
    - count
    - pgp_s2k_compute_iters
    linkageType: ''
    returnType: size_t
    signature: size_t SecurityContext::s2k_iterations(pgp_hash_alg_t halg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - time
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: rnp::SecurityContext::set_time
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SecurityContext::set_time(uint64_t time) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::time
      Src: /src/rnp/src/lib/sec_profile.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: rnp::SecurityContext::time
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 1
    functionsReached:
    - rnp_cfg::time
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t SecurityContext::time() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - SecurityRule
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 39
    functionName: SecurityRule::operator==(const SecurityRule &src) const
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SecurityRule::operator==(const SecurityRule &src) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - SecurityRule
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 45
    functionName: SecurityRule::operator!=(const SecurityRule &src) const
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool SecurityRule::operator!=(const SecurityRule &src) const
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 5
    argCount: 4
    argNames:
    - ftype
    - fval
    - ftime
    - faction
    argTypes:
    - FeatureType
    - int
    - uint64_t
    - SecurityAction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 58
    functionName: rnp::SecurityRule::matches
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool SecurityRule::matches(FeatureType    ftype,\n                      int
      \           fval,\n                      uint64_t       ftime,\n                      SecurityAction
      faction) const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecurityProfile::size
      Src: /src/rnp/src/lib/sec_profile.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: rnp::SecurityProfile::size
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 3
    functionsReached:
    - rnp::SecurityProfile::size
    linkageType: ''
    returnType: size_t
    signature: size_t SecurityProfile::size() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/lib/sec_profile.cpp:69,1
    - Dst: back
      Src: /src/rnp/src/lib/sec_profile.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - rule
    argTypes:
    - SecurityRule
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: '&

      SecurityProfile::add_rule(const SecurityRule &rule)'
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached:
    - back
    - push_back
    linkageType: ''
    returnType: SecurityRule
    signature: 'SecurityRule &

      SecurityProfile::add_rule(const SecurityRule &rule)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace_back
      Src: /src/rnp/src/lib/sec_profile.cpp:76,1
    - Dst: back
      Src: /src/rnp/src/lib/sec_profile.cpp:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - rule
    argTypes:
    - SecurityRule
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 78
    functionName: '&

      SecurityProfile::add_rule(SecurityRule &&rule)'
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached:
    - back
    - emplace_back
    linkageType: ''
    returnType: SecurityRule
    signature: 'SecurityRule &

      SecurityProfile::add_rule(SecurityRule &&rule)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecurityProfile::size
      Src: /src/rnp/src/lib/sec_profile.cpp:83,1
    - Dst: erase
      Src: /src/rnp/src/lib/sec_profile.cpp:84,1
    - Dst: std::remove_if
      Src: /src/rnp/src/lib/sec_profile.cpp:84,1
    - Dst: begin
      Src: /src/rnp/src/lib/sec_profile.cpp:84,1
    - Dst: end
      Src: /src/rnp/src/lib/sec_profile.cpp:85,1
    - Dst: end
      Src: /src/rnp/src/lib/sec_profile.cpp:87,1
    - Dst: rnp::SecurityProfile::size
      Src: /src/rnp/src/lib/sec_profile.cpp:88,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - rule
    argTypes:
    - SecurityRule
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 89
    functionName: rnp::SecurityProfile::del_rule
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached:
    - end
    - rnp::SecurityProfile::size
    - erase
    - begin
    - std::remove_if
    linkageType: ''
    returnType: bool
    signature: bool SecurityProfile::del_rule(const SecurityRule &rule)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/rnp/src/lib/sec_profile.cpp:94,1
    - Dst: std::remove_if
      Src: /src/rnp/src/lib/sec_profile.cpp:94,1
    - Dst: begin
      Src: /src/rnp/src/lib/sec_profile.cpp:94,1
    - Dst: end
      Src: /src/rnp/src/lib/sec_profile.cpp:95,1
    - Dst: end
      Src: /src/rnp/src/lib/sec_profile.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - type
    - feature
    argTypes:
    - FeatureType
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 100
    functionName: rnp::SecurityProfile::clear_rules
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached:
    - end
    - begin
    - std::remove_if
    - erase
    linkageType: ''
    returnType: void
    signature: void SecurityProfile::clear_rules(FeatureType type, int feature)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/rnp/src/lib/sec_profile.cpp:105,1
    - Dst: std::remove_if
      Src: /src/rnp/src/lib/sec_profile.cpp:106,1
    - Dst: begin
      Src: /src/rnp/src/lib/sec_profile.cpp:106,1
    - Dst: end
      Src: /src/rnp/src/lib/sec_profile.cpp:107,1
    - Dst: end
      Src: /src/rnp/src/lib/sec_profile.cpp:109,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - type
    argTypes:
    - FeatureType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 110
    functionName: rnp::SecurityProfile::clear_rules
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached:
    - end
    - begin
    - std::remove_if
    - erase
    linkageType: ''
    returnType: void
    signature: void SecurityProfile::clear_rules(FeatureType type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sec_profile.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: rnp::SecurityProfile::clear_rules
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void SecurityProfile::clear_rules()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: matches
      Src: /src/rnp/src/lib/sec_profile.cpp:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 4
    argNames:
    - type
    - value
    - time
    - action
    argTypes:
    - FeatureType
    - int
    - uint64_t
    - SecurityAction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 130
    functionName: rnp::SecurityProfile::has_rule
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 1
    functionsReached:
    - matches
    linkageType: ''
    returnType: bool
    signature: "bool SecurityProfile::has_rule(FeatureType    type,\n                          int
      \           value,\n                          uint64_t       time,\n                          SecurityAction
      action) const noexcept"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: matches
      Src: /src/rnp/src/lib/sec_profile.cpp:140,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sec_profile.cpp:151,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 15
    argCount: 4
    argNames:
    - type
    - value
    - time
    - action
    argTypes:
    - FeatureType
    - int
    - uint64_t
    - SecurityAction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 154
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 154
    functionName: "&\nSecurityProfile::get_rule(FeatureType    type,\n                          int
      \           value,\n                          uint64_t       time,\n                          SecurityAction
      action) const"
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached:
    - rnp::rnp_exception::rnp_exception
    - matches
    linkageType: ''
    returnType: SecurityRule
    signature: "SecurityRule &\nSecurityProfile::get_rule(FeatureType    type,\n                          int
      \           value,\n                          uint64_t       time,\n                          SecurityAction
      action) const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecurityProfile::has_rule
      Src: /src/rnp/src/lib/sec_profile.cpp:161,1
    - Dst: rnp::SecurityProfile::def_level
      Src: /src/rnp/src/lib/sec_profile.cpp:162,1
    - Dst: get_rule
      Src: /src/rnp/src/lib/sec_profile.cpp:166,1
    - Dst: rnp::SecurityProfile::def_level
      Src: /src/rnp/src/lib/sec_profile.cpp:169,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - hash
    - time
    - action
    argTypes:
    - pgp_hash_alg_t
    - uint64_t
    - SecurityAction
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 156
    functionDepth: 1
    functionLinenumber: 156
    functionLinenumberEnd: 171
    functionName: rnp::SecurityProfile::hash_level
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached:
    - rnp::SecurityProfile::has_rule
    - get_rule
    - rnp::SecurityProfile::def_level
    linkageType: ''
    returnType: SecurityLevel
    signature: "SecurityLevel SecurityProfile::hash_level(pgp_hash_alg_t hash,\n                            uint64_t
      \      time,\n                            SecurityAction action) const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 173
    functionDepth: 0
    functionLinenumber: 173
    functionLinenumberEnd: 177
    functionName: rnp::SecurityProfile::def_level
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: SecurityLevel
    signature: SecurityLevel SecurityProfile::def_level() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::backend_init
      Src: /src/rnp/src/lib/sec_profile.cpp:182,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/sec_profile.cpp:183,1
    - Dst: add_rule
      Src: /src/rnp/src/lib/sec_profile.cpp:186,1
    - Dst: add_rule
      Src: /src/rnp/src/lib/sec_profile.cpp:192,1
    - Dst: add_rule
      Src: /src/rnp/src/lib/sec_profile.cpp:198,1
    - Dst: add_rule
      Src: /src/rnp/src/lib/sec_profile.cpp:200,1
    - Dst: add_rule
      Src: /src/rnp/src/lib/sec_profile.cpp:201,1
    - Dst: add_rule
      Src: /src/rnp/src/lib/sec_profile.cpp:203,1
    - Dst: add_rule
      Src: /src/rnp/src/lib/sec_profile.cpp:204,1
    - Dst: add_rule
      Src: /src/rnp/src/lib/sec_profile.cpp:208,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 211
    functionName: rnp::SecurityContext::SecurityContext
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 3
    functionsReached:
    - rnp::backend_init
    - add_rule
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void SecurityContext::SecurityContext()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::backend_finish
      Src: /src/rnp/src/lib/sec_profile.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 216
    functionName: SecurityContext::~SecurityContext()
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached:
    - rnp::backend_finish
    linkageType: ''
    returnType: void
    signature: void SecurityContext::~SecurityContext()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: count
      Src: /src/rnp/src/lib/sec_profile.cpp:221,1
    - Dst: pgp_s2k_compute_iters
      Src: /src/rnp/src/lib/sec_profile.cpp:223,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - halg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 226
    functionName: rnp::SecurityContext::s2k_iterations
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached:
    - count
    - pgp_s2k_compute_iters
    linkageType: ''
    returnType: size_t
    signature: size_t SecurityContext::s2k_iterations(pgp_hash_alg_t halg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - time
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: rnp::SecurityContext::set_time
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SecurityContext::set_time(uint64_t time) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_cfg::time
      Src: /src/rnp/src/lib/sec_profile.cpp:237,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 234
    functionDepth: 3
    functionLinenumber: 234
    functionLinenumberEnd: 238
    functionName: rnp::SecurityContext::time
    functionSourceFile: /src/rnp/src/lib/sec_profile.cpp
    functionUses: 1
    functionsReached:
    - rnp_cfg::time
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t SecurityContext::time() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/rnp/src/lib/types.h:90,1
    - Dst: pgp::SigID::data
      Src: /src/rnp/src/lib/types.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sigid
    argTypes:
    - pgp::SigID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: operator()(pgp::SigID const &sigid) const noexcept
    functionSourceFile: /src/rnp/src/lib/types.h
    functionUses: 0
    functionsReached:
    - std::memcpy
    - pgp::SigID::data
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t operator()(pgp::SigID const &sigid) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/rnp/src/lib/types.h:90,1
    - Dst: pgp::SigID::data
      Src: /src/rnp/src/lib/types.h:90,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sigid
    argTypes:
    - pgp::SigID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 92
    functionName: operator()(pgp::SigID const &sigid) const noexcept
    functionSourceFile: /src/rnp/src/lib/types.h
    functionUses: 0
    functionsReached:
    - std::memcpy
    - pgp::SigID::data
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t operator()(pgp::SigID const &sigid) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: rnp::rnp_exception::rnp_exception
    functionSourceFile: /src/rnp/src/lib/types.h
    functionUses: 76
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_exception(rnp_result_t code = RNP_ERROR_GENERIC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: rnp::rnp_exception::what
    functionSourceFile: /src/rnp/src/lib/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *\n    what() const throw()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: rnp::rnp_exception::code
    functionSourceFile: /src/rnp/src/lib/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 101
    functionName: rnp::rnp_exception::rnp_exception
    functionSourceFile: /src/rnp/src/lib/types.h
    functionUses: 76
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_exception(rnp_result_t code = RNP_ERROR_GENERIC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: rnp::rnp_exception::what
    functionSourceFile: /src/rnp/src/lib/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: "char *\n    what() const throw()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: rnp::rnp_exception::code
    functionSourceFile: /src/rnp/src/lib/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t code() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 194
      start: 192
    functionDepth: 0
    functionLinenumber: 192
    functionLinenumberEnd: 194
    functionName: pgp_aead_hdr_t
    functionSourceFile: /src/rnp/src/lib/types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_aead_hdr_t()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/rawpacket.cpp:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - data
    - len
    - atag
    argTypes:
    - uint8_t*
    - size_t
    - pgp_pkt_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: rnp::RawPacket::RawPacket
    functionSourceFile: /src/rnp/src/lib/rawpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void RawPacket::RawPacket(const uint8_t *data, size_t len, pgp_pkt_type_t
      atag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::write
      Src: /src/rnp/src/lib/rawpacket.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - pgp::pkt::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: rnp::RawPacket::RawPacket
    functionSourceFile: /src/rnp/src/lib/rawpacket.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::write
    linkageType: ''
    returnType: void
    signature: void RawPacket::RawPacket(const pgp::pkt::Signature &sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::MemoryDest::MemoryDest
      Src: /src/rnp/src/lib/rawpacket.cpp:48,1
    - Dst: pgp_key_pkt_t::write
      Src: /src/rnp/src/lib/rawpacket.cpp:49,1
    - Dst: rnp::MemoryDest::dst
      Src: /src/rnp/src/lib/rawpacket.cpp:49,1
    - Dst: rnp::MemoryDest::to_vector
      Src: /src/rnp/src/lib/rawpacket.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - pgp_key_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: rnp::RawPacket::RawPacket
    functionSourceFile: /src/rnp/src/lib/rawpacket.cpp
    functionUses: 0
    functionsReached:
    - rnp::MemoryDest::to_vector
    - pgp_key_pkt_t::write
    - rnp::MemoryDest::MemoryDest
    - rnp::MemoryDest::dst
    linkageType: ''
    returnType: void
    signature: void RawPacket::RawPacket(pgp_key_pkt_t &key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::MemoryDest::MemoryDest
      Src: /src/rnp/src/lib/rawpacket.cpp:56,1
    - Dst: pgp_userid_pkt_t::write
      Src: /src/rnp/src/lib/rawpacket.cpp:57,1
    - Dst: rnp::MemoryDest::dst
      Src: /src/rnp/src/lib/rawpacket.cpp:57,1
    - Dst: rnp::MemoryDest::to_vector
      Src: /src/rnp/src/lib/rawpacket.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - uid
    argTypes:
    - pgp_userid_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 4
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: rnp::RawPacket::RawPacket
    functionSourceFile: /src/rnp/src/lib/rawpacket.cpp
    functionUses: 0
    functionsReached:
    - pgp_userid_pkt_t::write
    - rnp::MemoryDest::MemoryDest
    - rnp::MemoryDest::to_vector
    - rnp::MemoryDest::dst
    linkageType: ''
    returnType: void
    signature: void RawPacket::RawPacket(const pgp_userid_pkt_t &uid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dst_write
      Src: /src/rnp/src/lib/rawpacket.cpp:65,1
    - Dst: data
      Src: /src/rnp/src/lib/rawpacket.cpp:65,1
    - Dst: size
      Src: /src/rnp/src/lib/rawpacket.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: rnp::RawPacket::write
    functionSourceFile: /src/rnp/src/lib/rawpacket.cpp
    functionUses: 0
    functionsReached:
    - dst_write
    - data
    - size
    linkageType: ''
    returnType: void
    signature: void RawPacket::write(pgp_dest_t &dst) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/rawpacket.cpp:36,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 3
    argNames:
    - data
    - len
    - atag
    argTypes:
    - uint8_t*
    - size_t
    - pgp_pkt_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 38
    functionName: rnp::RawPacket::RawPacket
    functionSourceFile: /src/rnp/src/lib/rawpacket.cpp
    functionUses: 0
    functionsReached:
    - assign
    linkageType: ''
    returnType: void
    signature: void RawPacket::RawPacket(const uint8_t *data, size_t len, pgp_pkt_type_t
      atag)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::write
      Src: /src/rnp/src/lib/rawpacket.cpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - sig
    argTypes:
    - pgp::pkt::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 2
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: rnp::RawPacket::RawPacket
    functionSourceFile: /src/rnp/src/lib/rawpacket.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::write
    linkageType: ''
    returnType: void
    signature: void RawPacket::RawPacket(const pgp::pkt::Signature &sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::MemoryDest::MemoryDest
      Src: /src/rnp/src/lib/rawpacket.cpp:48,1
    - Dst: pgp_key_pkt_t::write
      Src: /src/rnp/src/lib/rawpacket.cpp:49,1
    - Dst: rnp::MemoryDest::dst
      Src: /src/rnp/src/lib/rawpacket.cpp:49,1
    - Dst: rnp::MemoryDest::to_vector
      Src: /src/rnp/src/lib/rawpacket.cpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - key
    argTypes:
    - pgp_key_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 4
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: rnp::RawPacket::RawPacket
    functionSourceFile: /src/rnp/src/lib/rawpacket.cpp
    functionUses: 0
    functionsReached:
    - rnp::MemoryDest::to_vector
    - pgp_key_pkt_t::write
    - rnp::MemoryDest::MemoryDest
    - rnp::MemoryDest::dst
    linkageType: ''
    returnType: void
    signature: void RawPacket::RawPacket(pgp_key_pkt_t &key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::MemoryDest::MemoryDest
      Src: /src/rnp/src/lib/rawpacket.cpp:56,1
    - Dst: pgp_userid_pkt_t::write
      Src: /src/rnp/src/lib/rawpacket.cpp:57,1
    - Dst: rnp::MemoryDest::dst
      Src: /src/rnp/src/lib/rawpacket.cpp:57,1
    - Dst: rnp::MemoryDest::to_vector
      Src: /src/rnp/src/lib/rawpacket.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - uid
    argTypes:
    - pgp_userid_pkt_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 54
    functionDepth: 4
    functionLinenumber: 54
    functionLinenumberEnd: 60
    functionName: rnp::RawPacket::RawPacket
    functionSourceFile: /src/rnp/src/lib/rawpacket.cpp
    functionUses: 0
    functionsReached:
    - pgp_userid_pkt_t::write
    - rnp::MemoryDest::MemoryDest
    - rnp::MemoryDest::to_vector
    - rnp::MemoryDest::dst
    linkageType: ''
    returnType: void
    signature: void RawPacket::RawPacket(const pgp_userid_pkt_t &uid)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dst_write
      Src: /src/rnp/src/lib/rawpacket.cpp:65,1
    - Dst: data
      Src: /src/rnp/src/lib/rawpacket.cpp:65,1
    - Dst: size
      Src: /src/rnp/src/lib/rawpacket.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 62
    functionDepth: 2
    functionLinenumber: 62
    functionLinenumberEnd: 66
    functionName: rnp::RawPacket::write
    functionSourceFile: /src/rnp/src/lib/rawpacket.cpp
    functionUses: 0
    functionsReached:
    - dst_write
    - data
    - size
    linkageType: ''
    returnType: void
    signature: void RawPacket::write(pgp_dest_t &dst) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ffi
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 73
    functionName: FFI_LOG
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFI_LOG(ffi, ...)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_ffi_t::getkeycb
      Src: /src/rnp/src/lib/rnp.cpp:98,1
    - Dst: rnp::KeySearch::name
      Src: /src/rnp/src/lib/rnp.cpp:99,1
    - Dst: rnp::KeySearch::value
      Src: /src/rnp/src/lib/rnp.cpp:99,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - ffi
    - search
    - secret
    argTypes:
    - rnp_ffi_t
    - rnp::KeySearch
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 101
    functionName: call_key_callback
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp_ffi_t::getkeycb
    - rnp::KeySearch::value
    - rnp::KeySearch::name
    linkageType: ''
    returnType: bool
    signature: bool call_key_callback(rnp_ffi_t ffi, const rnp::KeySearch &search,
      bool secret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: auto::search
      Src: /src/rnp/src/lib/rnp.cpp:111,1
    - Dst: call_key_callback
      Src: /src/rnp/src/lib/rnp.cpp:112,1
    - Dst: find_key
      Src: /src/rnp/src/lib/rnp.cpp:114,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 4
    argNames:
    - ffi
    - search
    - secret
    - try_key_provider
    argTypes:
    - rnp_ffi_t
    - rnp::KeySearch
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 117
    functionName: find_key
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 1
    functionsReached:
    - auto::search
    - call_key_callback
    - find_key
    linkageType: ''
    returnType: rnp::Key
    signature: "rnp::Key *\nfind_key(rnp_ffi_t             ffi,\n         const rnp::KeySearch
      &search,\n         bool                  secret,\n         bool                  try_key_provider,\n
      \        rnp::Key *            after = nullptr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: find_key
      Src: /src/rnp/src/lib/rnp.cpp:123,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - userdata
    argTypes:
    - pgp_key_request_ctx_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 124
      start: 119
    functionDepth: 3
    functionLinenumber: 119
    functionLinenumberEnd: 124
    functionName: ffi_key_provider
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - find_key
    linkageType: ''
    returnType: rnp::Key
    signature: 'rnp::Key *

      ffi_key_provider(const pgp_key_request_ctx_t *ctx, void *userdata)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_is_sa_supported
      Src: /src/rnp/src/lib/rnp.cpp:285,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 286
    functionName: symm_alg_supported
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - pgp_is_sa_supported
    linkageType: ''
    returnType: bool
    signature: bool symm_alg_supported(int alg)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 16
    argCount: 1
    argNames:
    - alg
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 310
      start: 288
    functionDepth: 0
    functionLinenumber: 288
    functionLinenumberEnd: 310
    functionName: hash_alg_supported
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hash_alg_supported(int alg)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - alg
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 312
    functionDepth: 0
    functionLinenumber: 312
    functionLinenumberEnd: 327
    functionName: aead_alg_supported
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool aead_alg_supported(int alg)
  - BBCount: 28
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 32
    argCount: 1
    argNames:
    - alg
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 371
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 371
    functionName: pub_alg_supported
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool pub_alg_supported(int alg)
  - BBCount: 6
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 11
    argCount: 1
    argNames:
    - alg
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 388
    functionName: z_alg_supported
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool z_alg_supported(int alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::by_name
      Src: /src/rnp/src/lib/rnp.cpp:393,1
    - Dst: pgp::ec::Curve::is_supported
      Src: /src/rnp/src/lib/rnp.cpp:394,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - str
    - value
    argTypes:
    - char*
    - pgp_curve_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 395
      start: 390
    functionDepth: 1
    functionLinenumber: 390
    functionLinenumberEnd: 395
    functionName: curve_str_to_type
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - pgp::ec::Curve::by_name
    - pgp::ec::Curve::is_supported
    linkageType: ''
    returnType: bool
    signature: bool curve_str_to_type(const char *str, pgp_curve_t *value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/rnp.cpp:400,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - type
    - str
    argTypes:
    - pgp_curve_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 397
    functionDepth: 0
    functionLinenumber: 397
    functionLinenumberEnd: 406
    functionName: curve_type_to_str
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - pgp::ec::Curve::get
    linkageType: ''
    returnType: bool
    signature: bool curve_type_to_str(pgp_curve_t type, const char **str)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:411,1
    - Dst: symm_alg_supported
      Src: /src/rnp/src/lib/rnp.cpp:412,1
    - Dst: static_cast<pgp_symm_alg_t>
      Src: /src/rnp/src/lib/rnp.cpp:415,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - str
    - cipher
    argTypes:
    - char*
    - pgp_symm_alg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 417
      start: 408
    functionDepth: 1
    functionLinenumber: 408
    functionLinenumberEnd: 417
    functionName: str_to_cipher
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - symm_alg_supported
    - static_cast<pgp_symm_alg_t>
    - id_str_pair::lookup
    linkageType: ''
    returnType: bool
    signature: bool str_to_cipher(const char *str, pgp_symm_alg_t *cipher)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:422,1
    - Dst: hash_alg_supported
      Src: /src/rnp/src/lib/rnp.cpp:423,1
    - Dst: static_cast<pgp_hash_alg_t>
      Src: /src/rnp/src/lib/rnp.cpp:426,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - str
    - hash_alg
    argTypes:
    - char*
    - pgp_hash_alg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 419
    functionDepth: 1
    functionLinenumber: 419
    functionLinenumberEnd: 428
    functionName: str_to_hash_alg
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - hash_alg_supported
    - static_cast<pgp_hash_alg_t>
    - id_str_pair::lookup
    linkageType: ''
    returnType: bool
    signature: bool str_to_hash_alg(const char *str, pgp_hash_alg_t *hash_alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:433,1
    - Dst: aead_alg_supported
      Src: /src/rnp/src/lib/rnp.cpp:434,1
    - Dst: static_cast<pgp_aead_alg_t>
      Src: /src/rnp/src/lib/rnp.cpp:437,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - str
    - aead_alg
    argTypes:
    - char*
    - pgp_aead_alg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 439
      start: 430
    functionDepth: 1
    functionLinenumber: 430
    functionLinenumberEnd: 439
    functionName: str_to_aead_alg
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<pgp_aead_alg_t>
    - aead_alg_supported
    - id_str_pair::lookup
    linkageType: ''
    returnType: bool
    signature: bool str_to_aead_alg(const char *str, pgp_aead_alg_t *aead_alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:444,1
    - Dst: z_alg_supported
      Src: /src/rnp/src/lib/rnp.cpp:445,1
    - Dst: static_cast<pgp_compression_type_t>
      Src: /src/rnp/src/lib/rnp.cpp:448,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - str
    - zalg
    argTypes:
    - char*
    - pgp_compression_type_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 441
    functionDepth: 1
    functionLinenumber: 441
    functionLinenumberEnd: 450
    functionName: str_to_compression_alg
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - z_alg_supported
    - id_str_pair::lookup
    - static_cast<pgp_compression_type_t>
    linkageType: ''
    returnType: bool
    signature: bool str_to_compression_alg(const char *str, pgp_compression_type_t
      *zalg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_revocation_type_t>
      Src: /src/rnp/src/lib/rnp.cpp:455,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:456,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/lib/rnp.cpp:457,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - str
    - code
    argTypes:
    - char*
    - pgp_revocation_type_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 462
    functionName: str_to_revocation_type
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - id_str_pair::lookup
    - rnp::str_case_eq
    - static_cast<pgp_revocation_type_t>
    linkageType: ''
    returnType: bool
    signature: bool str_to_revocation_type(const char *str, pgp_revocation_type_t
      *code)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_cipher_mode_t>
      Src: /src/rnp/src/lib/rnp.cpp:467,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:468,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - str
    - mode
    argTypes:
    - char*
    - pgp_cipher_mode_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 475
      start: 464
    functionDepth: 1
    functionLinenumber: 464
    functionLinenumberEnd: 475
    functionName: str_to_cipher_mode
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - static_cast<pgp_cipher_mode_t>
    - id_str_pair::lookup
    linkageType: ''
    returnType: bool
    signature: bool str_to_cipher_mode(const char *str, pgp_cipher_mode_t *mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:480,1
    - Dst: pub_alg_supported
      Src: /src/rnp/src/lib/rnp.cpp:481,1
    - Dst: static_cast<pgp_pubkey_alg_t>
      Src: /src/rnp/src/lib/rnp.cpp:484,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - str
    - pub_alg
    argTypes:
    - char*
    - pgp_pubkey_alg_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 486
      start: 477
    functionDepth: 1
    functionLinenumber: 477
    functionLinenumberEnd: 486
    functionName: str_to_pubkey_alg
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - pub_alg_supported
    - static_cast<pgp_pubkey_alg_t>
    - id_str_pair::lookup
    linkageType: ''
    returnType: bool
    signature: bool str_to_pubkey_alg(const char *str, pgp_pubkey_alg_t *pub_alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:491,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - str
    - flag
    argTypes:
    - char*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 497
      start: 488
    functionDepth: 1
    functionLinenumber: 488
    functionLinenumberEnd: 497
    functionName: str_to_key_flag
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - id_str_pair::lookup
    linkageType: ''
    returnType: bool
    signature: bool str_to_key_flag(const char *str, uint8_t *flag)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/rnp/src/lib/rnp.cpp:502,1
    - Dst: strcmp
      Src: /src/rnp/src/lib/rnp.cpp:504,1
    - Dst: strcmp
      Src: /src/rnp/src/lib/rnp.cpp:506,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 2
    argNames:
    - key_store_format
    - format
    argTypes:
    - rnp::KeyFormat*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 512
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 512
    functionName: parse_ks_format
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - strcmp
    linkageType: ''
    returnType: bool
    signature: bool parse_ks_format(rnp::KeyFormat *key_store_format, const char *format)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: malloc
      Src: /src/rnp/src/lib/rnp.cpp:518,1
    - Dst: rnp::hex_encode
      Src: /src/rnp/src/lib/rnp.cpp:522,1
    - Dst: free
      Src: /src/rnp/src/lib/rnp.cpp:524,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - value
    - len
    - res
    argTypes:
    - uint8_t*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 530
      start: 514
    functionDepth: 0
    functionLinenumber: 514
    functionLinenumberEnd: 530
    functionName: hex_encode_value
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp::hex_encode
    - malloc
    - free
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t hex_encode_value(const uint8_t *value, size_t len, char
      **res)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/rnp/src/lib/rnp.cpp:538,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - str
    - res
    argTypes:
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 545
      start: 532
    functionDepth: 0
    functionLinenumber: 532
    functionLinenumberEnd: 545
    functionName: ret_str_value
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - strdup
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t ret_str_value(const char *str, char **res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/rnp/src/lib/rnp.cpp:550,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/rnp.cpp:550,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/rnp.cpp:554,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/rnp.cpp:554,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/rnp.cpp:554,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/rnp.cpp:555,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - vec
    - buf
    - buf_len
    argTypes:
    - std::vector<uint8_t>
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 557
      start: 547
    functionDepth: 1
    functionLinenumber: 547
    functionLinenumberEnd: 557
    functionName: ret_vec_value
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - std::vector<uint8_t>::data
    - calloc
    - memcpy
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t ret_vec_value(const std::vector<uint8_t> &vec, uint8_t
      **buf, size_t *buf_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ret_str_value
      Src: /src/rnp/src/lib/rnp.cpp:562,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:562,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - map
    - val
    - res
    argTypes:
    - id_str_pair*
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 563
      start: 559
    functionDepth: 1
    functionLinenumber: 559
    functionLinenumberEnd: 563
    functionName: get_map_value
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - ret_str_value
    - id_str_pair::lookup
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t get_map_value(const id_str_pair *map, int val, char **res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hex_encode_value
      Src: /src/rnp/src/lib/rnp.cpp:568,1
    - Dst: pgp::Fingerprint::data
      Src: /src/rnp/src/lib/rnp.cpp:568,1
    - Dst: pgp::Fingerprint::size
      Src: /src/rnp/src/lib/rnp.cpp:568,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - fp
    - res
    argTypes:
    - pgp::Fingerprint
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 569
      start: 565
    functionDepth: 1
    functionLinenumber: 565
    functionLinenumberEnd: 569
    functionName: ret_fingerprint
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - hex_encode_value
    - pgp::Fingerprint::size
    - pgp::Fingerprint::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t ret_fingerprint(const pgp::Fingerprint &fp, char **res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hex_encode_value
      Src: /src/rnp/src/lib/rnp.cpp:574,1
    - Dst: pgp::KeyID::data
      Src: /src/rnp/src/lib/rnp.cpp:574,1
    - Dst: pgp::KeyID::size
      Src: /src/rnp/src/lib/rnp.cpp:574,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - keyid
    - res
    argTypes:
    - pgp::KeyID
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 575
      start: 571
    functionDepth: 1
    functionLinenumber: 571
    functionLinenumberEnd: 575
    functionName: ret_keyid
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - hex_encode_value
    - pgp::KeyID::data
    - pgp::KeyID::size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t ret_keyid(const pgp::KeyID &keyid, char **res)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: hex_encode_value
      Src: /src/rnp/src/lib/rnp.cpp:580,1
    - Dst: pgp::KeyGrip::data
      Src: /src/rnp/src/lib/rnp.cpp:580,1
    - Dst: pgp::KeyGrip::size
      Src: /src/rnp/src/lib/rnp.cpp:580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - grip
    - res
    argTypes:
    - pgp::KeyGrip
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 581
      start: 577
    functionDepth: 1
    functionLinenumber: 577
    functionLinenumberEnd: 581
    functionName: ret_grip
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - hex_encode_value
    - pgp::KeyGrip::size
    - pgp::KeyGrip::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t ret_grip(const pgp::KeyGrip &grip, char **res)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_log_switch
      Src: /src/rnp/src/lib/rnp.cpp:586,1
    - Dst: fprintf
      Src: /src/rnp/src/lib/rnp.cpp:587,1
    - Dst: rnp_result_to_string
      Src: /src/rnp/src/lib/rnp.cpp:588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - fp
    - func
    - msg
    argTypes:
    - FILE*
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 583
    functionDepth: 1
    functionLinenumber: 583
    functionLinenumberEnd: 591
    functionName: ffi_exception
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp_result_to_string
    - rnp_log_switch
    - fprintf
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t ffi_exception(FILE *fp, const char *func, const char *msg,
      uint32_t ret = RNP_ERROR_GENERIC)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - fp
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 610
    functionName: FFI_GUARD_FP
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: FFI_GUARD_FP(fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/lib/rnp.cpp:616,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/lib/rnp.cpp:617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 2
    argNames:
    - pub_fmt
    - sec_fmt
    argTypes:
    - rnp::KeyFormat
    - rnp::KeyFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 613
    functionDepth: 0
    functionLinenumber: 613
    functionLinenumberEnd: 626
    functionName: rnp_ffi_st::rnp_ffi_st
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp::KeyStore::KeyStore
    linkageType: ''
    returnType: void
    signature: void rnp_ffi_st::rnp_ffi_st(rnp::KeyFormat pub_fmt, rnp::KeyFormat
      sec_fmt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 632
      start: 628
    functionDepth: 0
    functionLinenumber: 628
    functionLinenumberEnd: 632
    functionName: '&

      rnp_ffi_st::rng() noexcept'
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp::RNG
    signature: 'rnp::RNG &

      rnp_ffi_st::rng() noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 638
      start: 634
    functionDepth: 0
    functionLinenumber: 634
    functionLinenumberEnd: 638
    functionName: '&

      rnp_ffi_st::profile() noexcept'
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp::SecurityProfile
    signature: 'rnp::SecurityProfile &

      rnp_ffi_st::profile() noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 665
      start: 661
    functionDepth: 0
    functionLinenumber: 661
    functionLinenumberEnd: 665
    functionName: is_std_file
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_std_file(FILE *fp)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_std_file
      Src: /src/rnp/src/lib/rnp.cpp:670,1
    - Dst: fclose
      Src: /src/rnp/src/lib/rnp.cpp:671,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - fp
    argTypes:
    - FILE**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 667
    functionDepth: 1
    functionLinenumber: 667
    functionLinenumberEnd: 674
    functionName: close_io_file
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - is_std_file
    - fclose
    linkageType: ''
    returnType: void
    signature: void close_io_file(FILE **fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close_io_file
      Src: /src/rnp/src/lib/rnp.cpp:678,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 681
      start: 676
    functionDepth: 2
    functionLinenumber: 676
    functionLinenumberEnd: 681
    functionName: rnp_ffi_st::~rnp_ffi_st()
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - close_io_file
    linkageType: ''
    returnType: void
    signature: void rnp_ffi_st::~rnp_ffi_st()
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: rnp_fdopen
      Src: /src/rnp/src/lib/rnp.cpp:702,1
    - Dst: close_io_file
      Src: /src/rnp/src/lib/rnp.cpp:707,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 52
    argCount: 1
    argNames:
    - op
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 683
    functionDepth: 2
    functionLinenumber: 683
    functionLinenumberEnd: 762
    functionName: operation_description
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - close_io_file
    - rnp_fdopen
    linkageType: ''
    returnType: rnp_result_t
    signature: 'rnp_result_t *

      operation_description(uint8_t op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_ffi_t::getpasscb
      Src: /src/rnp/src/lib/rnp.cpp:777,1
    - Dst: operation_description
      Src: /src/rnp/src/lib/rnp.cpp:780,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 4
    argNames:
    - ctx
    - password
    - password_size
    - userdata_void
    argTypes:
    - pgp_password_ctx_t*
    - char*
    - size_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 783
      start: 764
    functionDepth: 3
    functionLinenumber: 764
    functionLinenumberEnd: 783
    functionName: rnp_password_cb_bounce
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - operation_description
    - rnp_ffi_t::getpasscb
    linkageType: ''
    returnType: bool
    signature: "bool rnp_password_cb_bounce(const pgp_password_ctx_t *ctx,\n                       char
      *                    password,\n                       size_t                    password_size,\n
      \                      void *                    userdata_void)"
  - BBCount: 62
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 126
    argCount: 1
    argNames:
    - result
    argTypes:
    - rnp_result_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 920
      start: 785
    functionDepth: 0
    functionLinenumber: 785
    functionLinenumberEnd: 920
    functionName: rnp_result_to_string
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      rnp_result_to_string(rnp_result_t result)'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 926
      start: 922
    functionDepth: 0
    functionLinenumber: 922
    functionLinenumberEnd: 926
    functionName: rnp_version_string
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      rnp_version_string()'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 932
      start: 928
    functionDepth: 0
    functionLinenumber: 928
    functionLinenumberEnd: 932
    functionName: rnp_version_string_full
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      rnp_version_string_full()'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 938
      start: 934
    functionDepth: 0
    functionLinenumber: 934
    functionLinenumberEnd: 938
    functionName: rnp_version
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rnp_version()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/rnp.cpp:945,1
    - Dst: RNP_VERSION_CODE_FOR
      Src: /src/rnp/src/lib/rnp.cpp:948,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - major
    - minor
    - patch
    argTypes:
    - uint32_t
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 949
      start: 940
    functionDepth: 1
    functionLinenumber: 940
    functionLinenumberEnd: 949
    functionName: rnp_version_for
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - RNP_VERSION_CODE_FOR
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rnp_version_for(uint32_t major, uint32_t minor, uint32_t patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 951
    functionDepth: 0
    functionLinenumber: 951
    functionLinenumberEnd: 955
    functionName: rnp_version_major
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rnp_version_major(uint32_t version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 961
      start: 957
    functionDepth: 0
    functionLinenumber: 957
    functionLinenumberEnd: 961
    functionName: rnp_version_minor
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rnp_version_minor(uint32_t version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 967
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 967
    functionName: rnp_version_patch
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t rnp_version_patch(uint32_t version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 969
    functionDepth: 0
    functionLinenumber: 969
    functionLinenumberEnd: 973
    functionName: rnp_version_commit_timestamp
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t rnp_version_commit_timestamp()
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: rnp::path::HOME
      Src: /src/rnp/src/lib/rnp.cpp:1006,1
    - Dst: auto::empty
      Src: /src/rnp/src/lib/rnp.cpp:1007,1
    - Dst: ret_str_value
      Src: /src/rnp/src/lib/rnp.cpp:1010,1
    - Dst: auto::c_str
      Src: /src/rnp/src/lib/rnp.cpp:1010,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/lib/rnp.cpp:1032,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/lib/rnp.cpp:1033,1
    - Dst: rnp::path::exists
      Src: /src/rnp/src/lib/rnp.cpp:1034,1
    - Dst: rnp::path::exists
      Src: /src/rnp/src/lib/rnp.cpp:1034,1
    - Dst: strdup
      Src: /src/rnp/src/lib/rnp.cpp:1035,1
    - Dst: strdup
      Src: /src/rnp/src/lib/rnp.cpp:1036,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/lib/rnp.cpp:1039,1
    - Dst: rnp::path::append
      Src: /src/rnp/src/lib/rnp.cpp:1040,1
    - Dst: rnp::path::exists
      Src: /src/rnp/src/lib/rnp.cpp:1041,1
    - Dst: rnp::path::exists
      Src: /src/rnp/src/lib/rnp.cpp:1041,1
    - Dst: strdup
      Src: /src/rnp/src/lib/rnp.cpp:1042,1
    - Dst: strdup
      Src: /src/rnp/src/lib/rnp.cpp:1043,1
    - Dst: strdup
      Src: /src/rnp/src/lib/rnp.cpp:1052,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/rnp.cpp:1052,1
    - Dst: strdup
      Src: /src/rnp/src/lib/rnp.cpp:1053,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/rnp.cpp:1053,1
    - Dst: free
      Src: /src/rnp/src/lib/rnp.cpp:1061,1
    - Dst: free
      Src: /src/rnp/src/lib/rnp.cpp:1063,1
    - Dst: free
      Src: /src/rnp/src/lib/rnp.cpp:1065,1
    - Dst: free
      Src: /src/rnp/src/lib/rnp.cpp:1067,1
    - Dst: memcmp
      Src: /src/rnp/src/lib/rnp.cpp:1086,1
    - Dst: ret_str_value
      Src: /src/rnp/src/lib/rnp.cpp:1088,1
    - Dst: memcmp
      Src: /src/rnp/src/lib/rnp.cpp:1089,1
    - Dst: ret_str_value
      Src: /src/rnp/src/lib/rnp.cpp:1091,1
    - Dst: ret_str_value
      Src: /src/rnp/src/lib/rnp.cpp:1094,1
    - Dst: ret_str_value
      Src: /src/rnp/src/lib/rnp.cpp:1097,1
    - Dst: str_to_hash_alg
      Src: /src/rnp/src/lib/rnp.cpp:1111,1
    - Dst: pgp_s2k_compute_iters
      Src: /src/rnp/src/lib/rnp.cpp:1115,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/lib/rnp.cpp:1126,1
    - Dst: str_to_cipher
      Src: /src/rnp/src/lib/rnp.cpp:1128,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/lib/rnp.cpp:1129,1
    - Dst: str_to_aead_alg
      Src: /src/rnp/src/lib/rnp.cpp:1131,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/lib/rnp.cpp:1132,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/lib/rnp.cpp:1134,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/lib/rnp.cpp:1135,1
    - Dst: str_to_pubkey_alg
      Src: /src/rnp/src/lib/rnp.cpp:1137,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/lib/rnp.cpp:1138,1
    - Dst: str_to_hash_alg
      Src: /src/rnp/src/lib/rnp.cpp:1140,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/lib/rnp.cpp:1141,1
    - Dst: str_to_compression_alg
      Src: /src/rnp/src/lib/rnp.cpp:1143,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/lib/rnp.cpp:1144,1
    - Dst: curve_str_to_type
      Src: /src/rnp/src/lib/rnp.cpp:1146,1
    - Dst: check
      Src: /src/rnp/src/lib/rnp.cpp:1158,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/lib/rnp.cpp:1158,1
    CyclomaticComplexity: 40
    EdgeCount: 40
    ICount: 109
    argCount: 2
    argNames:
    - arr
    - map
    argTypes:
    - nlohmann::ordered_json
    - id_str_pair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1164
      start: 997
    functionDepth: 3
    functionLinenumber: 997
    functionLinenumberEnd: 1164
    functionName: json_array_add_id_str
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - pgp_s2k_compute_iters
    - str_to_hash_alg
    - str_to_aead_alg
    - free
    - auto::c_str
    - curve_str_to_type
    - rnp::str_case_eq
    - ret_str_value
    - memcmp
    - rnp::json::array_add
    - rnp::path::HOME
    - rnp::path::exists
    - rnp::path::append
    - std::string::c_str
    - strdup
    - str_to_pubkey_alg
    - str_to_cipher
    - auto::empty
    - str_to_compression_alg
    - check
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t json_array_add_id_str(nlohmann::ordered_json &arr, const
      id_str_pair *map, bool (*check)(int))
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/lib/rnp.cpp:1221,1
    - Dst: str_to_hash_alg
      Src: /src/rnp/src/lib/rnp.cpp:1225,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:1226,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/lib/rnp.cpp:1233,1
    - Dst: str_to_cipher
      Src: /src/rnp/src/lib/rnp.cpp:1237,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:1238,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:1245,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 21
    argCount: 5
    argNames:
    - ffi
    - stype
    - sname
    - type
    - value
    argTypes:
    - rnp_ffi_t
    - char*
    - char*
    - rnp::FeatureType
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1247
      start: 1216
    functionDepth: 2
    functionLinenumber: 1216
    functionLinenumberEnd: 1247
    functionName: get_feature_sec_value
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - str_to_cipher
    - str_to_hash_alg
    - rnp::str_case_eq
    - FFI_LOG
    linkageType: ''
    returnType: bool
    signature: "bool get_feature_sec_value(\n  rnp_ffi_t ffi, const char *stype, const
      char *sname, rnp::FeatureType &type, int &value)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:1263,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - ffi
    - flevel
    - level
    argTypes:
    - rnp_ffi_t
    - uint32_t
    - rnp::SecurityLevel
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1267
      start: 1249
    functionDepth: 1
    functionLinenumber: 1249
    functionLinenumberEnd: 1267
    functionName: get_feature_sec_level
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - FFI_LOG
    linkageType: ''
    returnType: bool
    signature: bool get_feature_sec_level(rnp_ffi_t ffi, uint32_t flevel, rnp::SecurityLevel
      &level)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - flags
    - flag
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1275
      start: 1269
    functionDepth: 0
    functionLinenumber: 1269
    functionLinenumberEnd: 1275
    functionName: extract_flag
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool extract_flag(uint32_t &flags, uint32_t flag)
  - BBCount: 3
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1335
      start: 1325
    functionDepth: 0
    functionLinenumber: 1325
    functionLinenumberEnd: 1335
    functionName: get_security_action
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp::SecurityAction
    signature: rnp::SecurityAction get_security_action(uint32_t flags)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: get_feature_sec_value
      Src: /src/rnp/src/lib/rnp.cpp:1352,1
    - Dst: rnp_ffi_t::profile
      Src: /src/rnp/src/lib/rnp.cpp:1356,1
    - Dst: get_security_action
      Src: /src/rnp/src/lib/rnp.cpp:1358,1
    - Dst: rnp_ffi_t::profile
      Src: /src/rnp/src/lib/rnp.cpp:1360,1
    - Dst: rnp_ffi_t::profile
      Src: /src/rnp/src/lib/rnp.cpp:1361,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:1392,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:1413,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:1414,1
    - Dst: get_security_action
      Src: /src/rnp/src/lib/rnp.cpp:1415,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:1416,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:1418,1
    - Dst: rnp_ffi_t::profile
      Src: /src/rnp/src/lib/rnp.cpp:1422,1
    - Dst: rnp_ffi_t::profile
      Src: /src/rnp/src/lib/rnp.cpp:1424,1
    - Dst: get_feature_sec_value
      Src: /src/rnp/src/lib/rnp.cpp:1430,1
    - Dst: get_feature_sec_level
      Src: /src/rnp/src/lib/rnp.cpp:1431,1
    - Dst: rnp_ffi_t::profile
      Src: /src/rnp/src/lib/rnp.cpp:1436,1
    - Dst: rnp_ffi_t::profile
      Src: /src/rnp/src/lib/rnp.cpp:1441,1
    - Dst: rnp_ffi_t::profile
      Src: /src/rnp/src/lib/rnp.cpp:1446,1
    - Dst: rnp_ffi_t::profile
      Src: /src/rnp/src/lib/rnp.cpp:1450,1
    - Dst: rnp_ffi_t::getpasscb
      Src: /src/rnp/src/lib/rnp.cpp:1465,1
    - Dst: rnp::secure_vector::data
      Src: /src/rnp/src/lib/rnp.cpp:1465,1
    - Dst: rnp::secure_vector::size
      Src: /src/rnp/src/lib/rnp.cpp:1465,1
    - Dst: strlen
      Src: /src/rnp/src/lib/rnp.cpp:1469,1
    - Dst: rnp::secure_vector::data
      Src: /src/rnp/src/lib/rnp.cpp:1469,1
    - Dst: malloc
      Src: /src/rnp/src/lib/rnp.cpp:1470,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/rnp.cpp:1474,1
    - Dst: rnp::secure_vector::data
      Src: /src/rnp/src/lib/rnp.cpp:1474,1
    - Dst: rnp_ffi_t::context::set_time
      Src: /src/rnp/src/lib/rnp.cpp:1485,1
    - Dst: rnp_input_t::src_directory::empty
      Src: /src/rnp/src/lib/rnp.cpp:1497,1
    - Dst: rnp::KeyStore*::load
      Src: /src/rnp/src/lib/rnp.cpp:1500,1
    - Dst: rnp::KeyStore*::load
      Src: /src/rnp/src/lib/rnp.cpp:1507,1
    CyclomaticComplexity: 35
    EdgeCount: 35
    ICount: 106
    argCount: 3
    argNames:
    - ffi
    - input
    - store
    argTypes:
    - rnp_ffi_t
    - rnp_input_t
    - rnp::KeyStore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1511
      start: 1337
    functionDepth: 3
    functionLinenumber: 1337
    functionLinenumberEnd: 1511
    functionName: load_keys_from_input
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp::secure_vector::size
    - get_feature_sec_level
    - extract_flag
    - malloc
    - memcpy
    - rnp::secure_vector::data
    - rnp_input_t::src_directory::empty
    - get_feature_sec_value
    - rnp_ffi_t::getpasscb
    - get_security_action
    - rnp::KeyStore*::load
    - strlen
    - rnp_ffi_t::profile
    - rnp_ffi_t::context::set_time
    - FFI_LOG
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t load_keys_from_input(rnp_ffi_t ffi, rnp_input_t input,
      rnp::KeyStore *store)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/rnp.cpp:1525,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - key
    - store
    argTypes:
    - rnp::Key*
    - rnp::KeyStore*
    assertStmts:
    - condition: (key_format != rnp::KeyFormat::KBX)
      pos:
        line_end: 1524
        line_start: 1524
        source_file: /src/rnp/src/lib/rnp.cpp
    constantsTouched: []
    func_position:
      end: 1532
      start: 1513
    functionDepth: 0
    functionLinenumber: 1513
    functionLinenumberEnd: 1532
    functionName: key_needs_conversion
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - assert
    linkageType: ''
    returnType: bool
    signature: bool key_needs_conversion(const rnp::Key *key, const rnp::KeyStore
      *store)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<rnp::KeyStore>
      Src: /src/rnp/src/lib/rnp.cpp:1541,1
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/lib/rnp.cpp:1541,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:1543,1
    - Dst: load_keys_from_input
      Src: /src/rnp/src/lib/rnp.cpp:1548,1
    - Dst: std::unique_ptr::get
      Src: /src/rnp/src/lib/rnp.cpp:1548,1
    - Dst: is_secret
      Src: /src/rnp/src/lib/rnp.cpp:1556,1
    - Dst: key_needs_conversion
      Src: /src/rnp/src/lib/rnp.cpp:1557,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:1558,1
    - Dst: rnp_ffi_t::secring::add_key
      Src: /src/rnp/src/lib/rnp.cpp:1562,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:1563,1
    - Dst: rnp::Key::Key
      Src: /src/rnp/src/lib/rnp.cpp:1574,1
    - Dst: rnpffi::Key::Key
      Src: /src/rnp/src/lib/rnp.cpp:1576,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/rnp.cpp:1578,1
    - Dst: what
      Src: /src/rnp/src/lib/rnp.cpp:1578,1
    - Dst: key_needs_conversion
      Src: /src/rnp/src/lib/rnp.cpp:1588,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:1589,1
    - Dst: rnp_ffi_t::pubring::add_key
      Src: /src/rnp/src/lib/rnp.cpp:1593,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:1594,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 4
    argNames:
    - ffi
    - input
    - format
    - key_type
    argTypes:
    - rnp_ffi_t
    - rnp_input_t
    - rnp::KeyFormat
    - key_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1600
      start: 1534
    functionDepth: 4
    functionLinenumber: 1534
    functionLinenumberEnd: 1600
    functionName: do_load_keys
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - load_keys_from_input
    - std::unique_ptr::get
    - is_secret
    - rnp::Key::Key
    - rnp_ffi_t::secring::add_key
    - RNP_LOG
    - what
    - key_needs_conversion
    - rnp_ffi_t::pubring::add_key
    - rnp::KeyStore::KeyStore
    - std::unique_ptr<rnp::KeyStore>
    - rnpffi::Key::Key
    - FFI_LOG
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t do_load_keys(rnp_ffi_t ffi, rnp_input_t input, rnp::KeyFormat
      format, key_type_t key_type)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:1609,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:1612,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:1615,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 1
    argNames:
    - flags
    argTypes:
    - uint32_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1618
      start: 1602
    functionDepth: 1
    functionLinenumber: 1602
    functionLinenumberEnd: 1618
    functionName: flags_to_key_type
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - extract_flag
    linkageType: ''
    returnType: key_type_t
    signature: key_type_t flags_to_key_type(uint32_t *flags)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: flags_to_key_type
      Src: /src/rnp/src/lib/rnp.cpp:1627,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:1629,1
    - Dst: parse_ks_format
      Src: /src/rnp/src/lib/rnp.cpp:1633,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:1634,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:1640,1
    - Dst: do_load_keys
      Src: /src/rnp/src/lib/rnp.cpp:1643,1
    - Dst: pubring::clear
      Src: /src/rnp/src/lib/rnp.cpp:1659,1
    - Dst: secring::clear
      Src: /src/rnp/src/lib/rnp.cpp:1662,1
    - Dst: rnp_input_t::src_directory::empty
      Src: /src/rnp/src/lib/rnp.cpp:1675,1
    - Dst: rnp_input_t::src::eof
      Src: /src/rnp/src/lib/rnp.cpp:1681,1
    - Dst: rnp_input_t::src::error
      Src: /src/rnp/src/lib/rnp.cpp:1683,1
    - Dst: rnp_input_t::src::close
      Src: /src/rnp/src/lib/rnp.cpp:1686,1
    - Dst: std::move
      Src: /src/rnp/src/lib/rnp.cpp:1688,1
    - Dst: rnp_input_t::src::skip_chars
      Src: /src/rnp/src/lib/rnp.cpp:1693,1
    - Dst: rnp_input_t::src::eof
      Src: /src/rnp/src/lib/rnp.cpp:1695,1
    - Dst: rnp_input_t::src::is_armored
      Src: /src/rnp/src/lib/rnp.cpp:1699,1
    - Dst: rnp_input_st::rnp_input_st
      Src: /src/rnp/src/lib/rnp.cpp:1704,1
    - Dst: std::move
      Src: /src/rnp/src/lib/rnp.cpp:1705,1
    - Dst: init_armored_src
      Src: /src/rnp/src/lib/rnp.cpp:1707,1
    - Dst: std::move
      Src: /src/rnp/src/lib/rnp.cpp:1710,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 62
    argCount: 1
    argNames:
    - input
    argTypes:
    - rnp_input_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1716
      start: 1620
    functionDepth: 5
    functionLinenumber: 1620
    functionLinenumberEnd: 1716
    functionName: rnp_input_dearmor_if_needed
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - pubring::clear
    - rnp_input_t::src::skip_chars
    - do_load_keys
    - init_armored_src
    - secring::clear
    - flags_to_key_type
    - rnp_input_t::src::is_armored
    - rnp_input_st::rnp_input_st
    - rnp_input_t::src::error
    - rnp_input_t::src::eof
    - parse_ks_format
    - rnp_input_t::src_directory::empty
    - rnp_input_t::src::close
    - std::move
    - FFI_LOG
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t rnp_input_dearmor_if_needed(rnp_input_t input, bool noheaders
      = false)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:1724,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - status
    argTypes:
    - pgp_key_import_status_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1725
      start: 1718
    functionDepth: 1
    functionLinenumber: 1718
    functionLinenumberEnd: 1725
    functionName: key_status_to_str
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - id_str_pair::lookup
    linkageType: ''
    returnType: char
    signature: 'char *

      key_status_to_str(pgp_key_import_status_t status)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/lib/rnp.cpp:1733,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:1735,1
    - Dst: key_status_to_str
      Src: /src/rnp/src/lib/rnp.cpp:1735,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:1736,1
    - Dst: key_status_to_str
      Src: /src/rnp/src/lib/rnp.cpp:1736,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:1737,1
    - Dst: rnp::Key*::fp
      Src: /src/rnp/src/lib/rnp.cpp:1737,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/lib/rnp.cpp:1738,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 4
    argNames:
    - keys
    - key
    - pub
    - sec
    argTypes:
    - nlohmann::ordered_json
    - rnp::Key*
    - pgp_key_import_status_t
    - pgp_key_import_status_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1745
      start: 1727
    functionDepth: 5
    functionLinenumber: 1727
    functionLinenumberEnd: 1745
    functionName: add_key_status
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key*::fp
    - key_status_to_str
    - sexp::sexp_input_stream_t::scan_object
    - rnp::json::add
    - rnp::json::array_add
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t add_key_status(nlohmann::ordered_json &keys,\n               const
      rnp::Key *        key,\n               pgp_key_import_status_t pub,\n               pgp_key_import_status_t
      sec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:1854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - status
    argTypes:
    - pgp_sig_import_status_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1855
      start: 1848
    functionDepth: 1
    functionLinenumber: 1848
    functionLinenumberEnd: 1855
    functionName: sig_status_to_str
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - id_str_pair::lookup
    linkageType: ''
    returnType: char
    signature: 'char *

      sig_status_to_str(pgp_sig_import_status_t status)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/lib/rnp.cpp:1863,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:1865,1
    - Dst: sig_status_to_str
      Src: /src/rnp/src/lib/rnp.cpp:1865,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:1866,1
    - Dst: sig_status_to_str
      Src: /src/rnp/src/lib/rnp.cpp:1866,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:1872,1
    - Dst: rnp::Key*::fp
      Src: /src/rnp/src/lib/rnp.cpp:1872,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/lib/rnp.cpp:1878,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - sigs
    - signer
    - pub
    - sec
    argTypes:
    - nlohmann::ordered_json
    - rnp::Key*
    - pgp_sig_import_status_t
    - pgp_sig_import_status_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1885
      start: 1857
    functionDepth: 5
    functionLinenumber: 1857
    functionLinenumberEnd: 1885
    functionName: add_sig_status
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key*::fp
    - sexp::sexp_input_stream_t::scan_object
    - rnp::json::add
    - sig_status_to_str
    - rnp::json::array_add
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t add_sig_status(nlohmann::ordered_json &sigs,\n               const
      rnp::Key *        signer,\n               pgp_sig_import_status_t pub,\n               pgp_sig_import_status_t
      sec)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore*::add_key
      Src: /src/rnp/src/lib/rnp.cpp:1930,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:1931,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - ffi
    - dest
    - src
    argTypes:
    - rnp_ffi_t
    - rnp::KeyStore*
    - rnp::KeyStore*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1936
      start: 1926
    functionDepth: 1
    functionLinenumber: 1926
    functionLinenumberEnd: 1936
    functionName: copy_store_keys
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp::KeyStore*::add_key
    - FFI_LOG
    linkageType: ''
    returnType: bool
    signature: bool copy_store_keys(rnp_ffi_t ffi, rnp::KeyStore *dest, rnp::KeyStore
      *src)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeyStore::KeyStore
      Src: /src/rnp/src/lib/rnp.cpp:1944,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:1947,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:1952,1
    - Dst: what
      Src: /src/rnp/src/lib/rnp.cpp:1952,1
    - Dst: copy_store_keys
      Src: /src/rnp/src/lib/rnp.cpp:1959,1
    - Dst: copy_store_keys
      Src: /src/rnp/src/lib/rnp.cpp:1965,1
    - Dst: key_needs_conversion
      Src: /src/rnp/src/lib/rnp.cpp:1971,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:1972,1
    - Dst: rnp::KeyStore*::write
      Src: /src/rnp/src/lib/rnp.cpp:1979,1
    - Dst: rnp::KeyStore*::write
      Src: /src/rnp/src/lib/rnp.cpp:1984,1
    - Dst: dst_flush
      Src: /src/rnp/src/lib/rnp.cpp:1987,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 4
    argNames:
    - ffi
    - output
    - format
    - key_type
    argTypes:
    - rnp_ffi_t
    - rnp_output_t
    - rnp::KeyFormat
    - key_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1991
      start: 1938
    functionDepth: 2
    functionLinenumber: 1938
    functionLinenumberEnd: 1991
    functionName: do_save_keys
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - copy_store_keys
    - what
    - rnp::KeyStore*::write
    - key_needs_conversion
    - dst_flush
    - rnp::KeyStore::KeyStore
    - FFI_LOG
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t do_save_keys(rnp_ffi_t ffi, rnp_output_t output, rnp::KeyFormat
      format, key_type_t key_type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/rnp/src/lib/rnp.cpp:2049,1
    - Dst: std::move
      Src: /src/rnp/src/lib/rnp.cpp:2050,1
    - Dst: memset
      Src: /src/rnp/src/lib/rnp.cpp:2051,1
    - Dst: std::move
      Src: /src/rnp/src/lib/rnp.cpp:2058,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - input
    argTypes:
    - rnp_input_st
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 2046
    functionDepth: 1
    functionLinenumber: 2046
    functionLinenumberEnd: 2060
    functionName: '&

      rnp_input_st::operator=(rnp_input_st &&input)'
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - memset
    - std::move
    - close
    linkageType: ''
    returnType: rnp_input_st
    signature: 'rnp_input_st &

      rnp_input_st::operator=(rnp_input_st &&input)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: close
      Src: /src/rnp/src/lib/rnp.cpp:2065,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2071
      start: 2062
    functionDepth: 0
    functionLinenumber: 2062
    functionLinenumberEnd: 2071
    functionName: rnp_input_st::~rnp_input_st()
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - close
    linkageType: ''
    returnType: void
    signature: void rnp_input_st::~rnp_input_st()
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: rnp_input_st::rnp_input_st
      Src: /src/rnp/src/lib/rnp.cpp:2079,1
    - Dst: rnp_stat
      Src: /src/rnp/src/lib/rnp.cpp:2081,1
    - Dst: S_ISDIR
      Src: /src/rnp/src/lib/rnp.cpp:2081,1
    - Dst: init_null_src
      Src: /src/rnp/src/lib/rnp.cpp:2085,1
    - Dst: init_file_src
      Src: /src/rnp/src/lib/rnp.cpp:2088,1
    - Dst: rnp_input_st::rnp_input_st
      Src: /src/rnp/src/lib/rnp.cpp:2105,1
    - Dst: init_stdin_src
      Src: /src/rnp/src/lib/rnp.cpp:2106,1
    - Dst: rnp_input_st::rnp_input_st
      Src: /src/rnp/src/lib/rnp.cpp:2131,1
    - Dst: malloc
      Src: /src/rnp/src/lib/rnp.cpp:2134,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/rnp.cpp:2142,1
    - Dst: init_mem_src
      Src: /src/rnp/src/lib/rnp.cpp:2144,1
    - Dst: free
      Src: /src/rnp/src/lib/rnp.cpp:2148,1
    - Dst: rnp_input_t::reader
      Src: /src/rnp/src/lib/rnp.cpp:2165,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 59
    argCount: 4
    argNames:
    - src
    - buf
    - len
    - read
    argTypes:
    - pgp_source_t*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2166
      start: 2073
    functionDepth: 4
    functionLinenumber: 2073
    functionLinenumberEnd: 2166
    functionName: input_reader_bounce
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - init_stdin_src
    - rnp_input_t::reader
    - malloc
    - memcpy
    - init_null_src
    - rnp_input_st::rnp_input_st
    - S_ISDIR
    - init_file_src
    - rnp_stat
    - init_mem_src
    - free
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t input_reader_bounce(pgp_source_t *src, void *buf, size_t
      len, size_t *read)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_input_t::closer
      Src: /src/rnp/src/lib/rnp.cpp:2173,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - src
    argTypes:
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2175
      start: 2168
    functionDepth: 0
    functionLinenumber: 2168
    functionLinenumberEnd: 2175
    functionName: input_closer_bounce
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp_input_t::closer
    linkageType: ''
    returnType: void
    signature: void input_closer_bounce(pgp_source_t *src)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: rnp_input_st::rnp_input_st
      Src: /src/rnp/src/lib/rnp.cpp:2187,1
    - Dst: init_src_common
      Src: /src/rnp/src/lib/rnp.cpp:2192,1
    - Dst: rnp_output_st::rnp_output_st
      Src: /src/rnp/src/lib/rnp.cpp:2224,1
    - Dst: rnp_stat
      Src: /src/rnp/src/lib/rnp.cpp:2228,1
    - Dst: S_ISDIR
      Src: /src/rnp/src/lib/rnp.cpp:2228,1
    - Dst: strdup
      Src: /src/rnp/src/lib/rnp.cpp:2230,1
    - Dst: init_file_dest
      Src: /src/rnp/src/lib/rnp.cpp:2239,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:2256,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:2257,1
    - Dst: rnp_output_st::rnp_output_st
      Src: /src/rnp/src/lib/rnp.cpp:2261,1
    - Dst: init_tmpfile_dest
      Src: /src/rnp/src/lib/rnp.cpp:2267,1
    - Dst: init_file_dest
      Src: /src/rnp/src/lib/rnp.cpp:2269,1
    - Dst: rnp_output_st::rnp_output_st
      Src: /src/rnp/src/lib/rnp.cpp:2286,1
    - Dst: init_stdout_dest
      Src: /src/rnp/src/lib/rnp.cpp:2287,1
    - Dst: rnp_output_st::rnp_output_st
      Src: /src/rnp/src/lib/rnp.cpp:2305,1
    - Dst: init_mem_dest
      Src: /src/rnp/src/lib/rnp.cpp:2306,1
    - Dst: static_cast<pgp_armored_msg_t>
      Src: /src/rnp/src/lib/rnp.cpp:2325,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:2326,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/rnp.cpp:2328,1
    - Dst: rnp_output_st::rnp_output_st
      Src: /src/rnp/src/lib/rnp.cpp:2332,1
    - Dst: init_armored_dst
      Src: /src/rnp/src/lib/rnp.cpp:2336,1
    - Dst: mem_dest_get_memory
      Src: /src/rnp/src/lib/rnp.cpp:2361,1
    - Dst: malloc
      Src: /src/rnp/src/lib/rnp.cpp:2367,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/rnp.cpp:2371,1
    - Dst: rnp_output_t::writer
      Src: /src/rnp/src/lib/rnp.cpp:2384,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 130
    argCount: 3
    argNames:
    - dst
    - buf
    - len
    argTypes:
    - pgp_dest_t*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2388
      start: 2177
    functionDepth: 4
    functionLinenumber: 2177
    functionLinenumberEnd: 2388
    functionName: output_writer_bounce
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - extract_flag
    - rnp_stat
    - mem_dest_get_memory
    - init_src_common
    - rnp_input_st::rnp_input_st
    - init_stdout_dest
    - init_mem_dest
    - init_armored_dst
    - RNP_LOG
    - malloc
    - memcpy
    - static_cast<pgp_armored_msg_t>
    - id_str_pair::lookup
    - init_tmpfile_dest
    - strdup
    - rnp_output_st::rnp_output_st
    - init_file_dest
    - rnp_output_t::writer
    - S_ISDIR
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t output_writer_bounce(pgp_dest_t *dst, const void *buf,
      size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_output_t::closer
      Src: /src/rnp/src/lib/rnp.cpp:2395,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - dst
    - discard
    argTypes:
    - pgp_dest_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2397
      start: 2390
    functionDepth: 0
    functionLinenumber: 2390
    functionLinenumberEnd: 2397
    functionName: output_closer_bounce
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp_output_t::closer
    linkageType: ''
    returnType: void
    signature: void output_closer_bounce(pgp_dest_t *dst, bool discard)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: rnp_output_st::rnp_output_st
      Src: /src/rnp/src/lib/rnp.cpp:2407,1
    - Dst: init_null_dest
      Src: /src/rnp/src/lib/rnp.cpp:2408,1
    - Dst: dst_write
      Src: /src/rnp/src/lib/rnp.cpp:2432,1
    - Dst: rnp_output_st::rnp_output_st
      Src: /src/rnp/src/lib/rnp.cpp:2452,1
    - Dst: dst_finish
      Src: /src/rnp/src/lib/rnp.cpp:2474,1
    - Dst: dst_close
      Src: /src/rnp/src/lib/rnp.cpp:2485,1
    - Dst: free
      Src: /src/rnp/src/lib/rnp.cpp:2486,1
    - Dst: find_suitable_key
      Src: /src/rnp/src/lib/rnp.cpp:2505,1
    - Dst: get_key_require_secret
      Src: /src/rnp/src/lib/rnp.cpp:2505,1
    - Dst: rnp_op_sign_signatures_t::emplace_back
      Src: /src/rnp/src/lib/rnp.cpp:2511,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:2514,1
    - Dst: what
      Src: /src/rnp/src/lib/rnp.cpp:2514,1
    - Dst: rnp_op_sign_signatures_t::back
      Src: /src/rnp/src/lib/rnp.cpp:2518,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 77
    argCount: 5
    argNames:
    - ffi
    - signatures
    - key
    - '               ctx'
    - sig
    argTypes:
    - rnp_ffi_t
    - rnp_op_sign_signatures_t
    - rnp_key_handle_t
    - rnp_ctx_t
    - rnp_op_sign_signature_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2529
      start: 2399
    functionDepth: 4
    functionLinenumber: 2399
    functionLinenumberEnd: 2529
    functionName: rnp_op_add_signature
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp_op_sign_signatures_t::back
    - init_null_dest
    - what
    - find_suitable_key
    - dst_write
    - dst_finish
    - dst_close
    - get_key_require_secret
    - rnp_output_st::rnp_output_st
    - free
    - rnp_op_sign_signatures_t::emplace_back
    - FFI_LOG
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t rnp_op_add_signature(rnp_ffi_t                 ffi,\n
      \                    rnp_op_sign_signatures_t &signatures,\n                     rnp_key_handle_t
      \         key,\n                     rnp_ctx_t &               ctx,\n                     rnp_op_sign_signature_t
      * sig)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - armored
    argTypes:
    - rnp_ctx_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2536
      start: 2531
    functionDepth: 0
    functionLinenumber: 2531
    functionLinenumberEnd: 2536
    functionName: rnp_op_set_armor
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t rnp_op_set_armor(rnp_ctx_t &ctx, bool armored)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: str_to_compression_alg
      Src: /src/rnp/src/lib/rnp.cpp:2546,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:2547,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - ffi
    - ctx
    - compression
    - level
    argTypes:
    - rnp_ffi_t
    - rnp_ctx_t
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2553
      start: 2538
    functionDepth: 2
    functionLinenumber: 2538
    functionLinenumberEnd: 2553
    functionName: rnp_op_set_compression
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - str_to_compression_alg
    - FFI_LOG
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t rnp_op_set_compression(rnp_ffi_t ffi, rnp_ctx_t &ctx,
      const char *compression, int level)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: str_to_hash_alg
      Src: /src/rnp/src/lib/rnp.cpp:2562,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:2563,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 3
    argNames:
    - ffi
    - ctx
    - hash
    argTypes:
    - rnp_ffi_t
    - rnp_ctx_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2567
      start: 2555
    functionDepth: 2
    functionLinenumber: 2555
    functionLinenumberEnd: 2567
    functionName: rnp_op_set_hash
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - str_to_hash_alg
    - FFI_LOG
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t rnp_op_set_hash(rnp_ffi_t ffi, rnp_ctx_t &ctx, const char
      *hash)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - create
    argTypes:
    - rnp_ctx_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2574
      start: 2569
    functionDepth: 0
    functionLinenumber: 2569
    functionLinenumberEnd: 2574
    functionName: rnp_op_set_creation_time
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t rnp_op_set_creation_time(rnp_ctx_t &ctx, uint32_t create)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - expire
    argTypes:
    - rnp_ctx_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2581
      start: 2576
    functionDepth: 0
    functionLinenumber: 2576
    functionLinenumberEnd: 2581
    functionName: rnp_op_set_expiration_time
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t rnp_op_set_expiration_time(rnp_ctx_t &ctx, uint32_t expire)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:2586,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:2588,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 3
    argNames:
    - ffi
    - ctx
    - flags
    argTypes:
    - rnp_ffi_t
    - rnp_ctx_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2592
      start: 2583
    functionDepth: 1
    functionLinenumber: 2583
    functionLinenumberEnd: 2592
    functionName: rnp_op_set_flags
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - extract_flag
    - FFI_LOG
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t rnp_op_set_flags(rnp_ffi_t ffi, rnp_ctx_t &ctx, uint32_t
      flags)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - filename
    argTypes:
    - rnp_ctx_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2599
      start: 2594
    functionDepth: 0
    functionLinenumber: 2594
    functionLinenumberEnd: 2599
    functionName: rnp_op_set_file_name
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t rnp_op_set_file_name(rnp_ctx_t &ctx, const char *filename)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ctx
    - mtime
    argTypes:
    - rnp_ctx_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2606
      start: 2601
    functionDepth: 0
    functionLinenumber: 2601
    functionLinenumberEnd: 2606
    functionName: rnp_op_set_file_mtime
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t rnp_op_set_file_mtime(rnp_ctx_t &ctx, uint32_t mtime)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: rnp_op_encrypt_st::rnp_op_encrypt_st
      Src: /src/rnp/src/lib/rnp.cpp:2619,1
    - Dst: find_suitable_key
      Src: /src/rnp/src/lib/rnp.cpp:2637,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:2638,1
    - Dst: rnpctx::recipients::push_back
      Src: /src/rnp/src/lib/rnp.cpp:2645,1
    - Dst: rnp_op_add_signature
      Src: /src/rnp/src/lib/rnp.cpp:2698,1
    - Dst: rnp_op_set_hash
      Src: /src/rnp/src/lib/rnp.cpp:2708,1
    - Dst: rnp_op_set_creation_time
      Src: /src/rnp/src/lib/rnp.cpp:2718,1
    - Dst: rnp_op_set_expiration_time
      Src: /src/rnp/src/lib/rnp.cpp:2728,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:2745,1
    - Dst: str_to_hash_alg
      Src: /src/rnp/src/lib/rnp.cpp:2758,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:2759,1
    - Dst: str_to_cipher
      Src: /src/rnp/src/lib/rnp.cpp:2763,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:2764,1
    - Dst: pgp_request_password
      Src: /src/rnp/src/lib/rnp.cpp:2770,1
    - Dst: rnp::secure_vector::data
      Src: /src/rnp/src/lib/rnp.cpp:2771,1
    - Dst: rnp::secure_vector::size
      Src: /src/rnp/src/lib/rnp.cpp:2771,1
    - Dst: rnp::secure_vector::data
      Src: /src/rnp/src/lib/rnp.cpp:2774,1
    - Dst: rnpctx::add_encryption_password
      Src: /src/rnp/src/lib/rnp.cpp:2776,1
    - Dst: rnp_op_set_armor
      Src: /src/rnp/src/lib/rnp.cpp:2787,1
    - Dst: rnp_get_security_rule
      Src: /src/rnp/src/lib/rnp.cpp:2796,1
    - Dst: rnp_ffi_t::context::time
      Src: /src/rnp/src/lib/rnp.cpp:2799,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:2803,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:2808,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 97
    argCount: 2
    argNames:
    - ffi
    - cipher
    argTypes:
    - rnp_ffi_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2813
      start: 2608
    functionDepth: 5
    functionLinenumber: 2608
    functionLinenumberEnd: 2813
    functionName: rnp_check_old_ciphers
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 2
    functionsReached:
    - rnp::secure_vector::size
    - rnpctx::recipients::push_back
    - str_to_cipher
    - rnp_op_set_creation_time
    - rnp_op_set_expiration_time
    - find_suitable_key
    - get_key_prefer_public
    - rnp::secure_vector::data
    - rnp_op_set_armor
    - rnp_op_add_signature
    - pgp_request_password
    - str_to_hash_alg
    - rnpctx::add_encryption_password
    - rnp_ffi_t::context::time
    - rnp_op_set_hash
    - rnp_op_encrypt_st::rnp_op_encrypt_st
    - rnp_get_security_rule
    - FFI_LOG
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t rnp_check_old_ciphers(rnp_ffi_t ffi, const char *cipher)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: rnp_check_old_ciphers
      Src: /src/rnp/src/lib/rnp.cpp:2822,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:2823,1
    - Dst: str_to_cipher
      Src: /src/rnp/src/lib/rnp.cpp:2826,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:2827,1
    - Dst: str_to_aead_alg
      Src: /src/rnp/src/lib/rnp.cpp:2841,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:2842,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:2848,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:2853,1
    - Dst: rnp_op_set_compression
      Src: /src/rnp/src/lib/rnp.cpp:2885,1
    - Dst: rnp_op_set_flags
      Src: /src/rnp/src/lib/rnp.cpp:2896,1
    - Dst: rnp_op_set_file_name
      Src: /src/rnp/src/lib/rnp.cpp:2906,1
    - Dst: rnp_op_set_file_mtime
      Src: /src/rnp/src/lib/rnp.cpp:2916,1
    - Dst: rnp_ctx_t::signers::push_back
      Src: /src/rnp/src/lib/rnp.cpp:2938,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 74
    argCount: 2
    argNames:
    - opsigs
    - ctx
    argTypes:
    - rnp_op_sign_signatures_t
    - rnp_ctx_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2941
      start: 2815
    functionDepth: 6
    functionLinenumber: 2815
    functionLinenumberEnd: 2941
    functionName: rnp_op_add_signatures
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp_op_set_file_name
    - rnp_check_old_ciphers
    - rnp_ctx_t::signers::push_back
    - rnp_op_set_flags
    - str_to_aead_alg
    - str_to_cipher
    - rnp_op_set_file_mtime
    - rnp_op_set_compression
    - FFI_LOG
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t rnp_op_add_signatures(rnp_op_sign_signatures_t &opsigs,
      rnp_ctx_t &ctx)
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: signatures::empty
      Src: /src/rnp/src/lib/rnp.cpp:2957,1
    - Dst: rnp_op_add_signatures
      Src: /src/rnp/src/lib/rnp.cpp:2957,1
    - Dst: rnp_encrypt_sign_src
      Src: /src/rnp/src/lib/rnp.cpp:2960,1
    - Dst: dst_flush
      Src: /src/rnp/src/lib/rnp.cpp:2962,1
    - Dst: rnp_op_sign_st::rnp_op_sign_st
      Src: /src/rnp/src/lib/rnp.cpp:2986,1
    - Dst: rnp_op_sign_create
      Src: /src/rnp/src/lib/rnp.cpp:2997,1
    - Dst: rnp_op_sign_create
      Src: /src/rnp/src/lib/rnp.cpp:3011,1
    - Dst: rnp_op_add_signature
      Src: /src/rnp/src/lib/rnp.cpp:3025,1
    - Dst: str_to_hash_alg
      Src: /src/rnp/src/lib/rnp.cpp:3035,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:3036,1
    - Dst: rnp_op_set_armor
      Src: /src/rnp/src/lib/rnp.cpp:3074,1
    - Dst: rnp_op_set_compression
      Src: /src/rnp/src/lib/rnp.cpp:3084,1
    - Dst: rnp_op_set_hash
      Src: /src/rnp/src/lib/rnp.cpp:3094,1
    - Dst: rnp_op_set_creation_time
      Src: /src/rnp/src/lib/rnp.cpp:3104,1
    - Dst: rnp_op_set_expiration_time
      Src: /src/rnp/src/lib/rnp.cpp:3114,1
    - Dst: rnp_op_set_file_name
      Src: /src/rnp/src/lib/rnp.cpp:3124,1
    - Dst: rnp_op_set_file_mtime
      Src: /src/rnp/src/lib/rnp.cpp:3134,1
    - Dst: rnp_op_add_signatures
      Src: /src/rnp/src/lib/rnp.cpp:3151,1
    - Dst: rnp_sign_src
      Src: /src/rnp/src/lib/rnp.cpp:3154,1
    - Dst: dst_flush
      Src: /src/rnp/src/lib/rnp.cpp:3156,1
    - Dst: rnp_op_verify_t::signatures_::resize
      Src: /src/rnp/src/lib/rnp.cpp:3179,1
    - Dst: std::vector<rnp::SignatureInfo>::size
      Src: /src/rnp/src/lib/rnp.cpp:3179,1
    - Dst: auto::validity::valid
      Src: /src/rnp/src/lib/rnp.cpp:3192,1
    - Dst: auto::validity::unknown
      Src: /src/rnp/src/lib/rnp.cpp:3197,1
    - Dst: auto::validity::expired
      Src: /src/rnp/src/lib/rnp.cpp:3202,1
    - Dst: auto::validity::no_signer
      Src: /src/rnp/src/lib/rnp.cpp:3207,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:3215,1
    - Dst: what
      Src: /src/rnp/src/lib/rnp.cpp:3215,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 144
    argCount: 2
    argNames:
    - sigs
    - param
    argTypes:
    - std::vector<rnp::SignatureInfo>
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3217
      start: 2943
    functionDepth: 7
    functionLinenumber: 2943
    functionLinenumberEnd: 3217
    functionName: rnp_op_verify_on_signatures
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp_op_set_file_name
    - rnp_op_verify_t::signatures_::resize
    - rnp_op_set_creation_time
    - auto::validity::unknown
    - rnp_op_sign_st::rnp_op_sign_st
    - str_to_hash_alg
    - rnp_op_set_hash
    - rnp_op_set_file_mtime
    - std::vector<rnp::SignatureInfo>::size
    - rnp_op_set_expiration_time
    - rnp_encrypt_sign_src
    - dst_flush
    - rnp_op_sign_create
    - rnp_sign_src
    - signatures::empty
    - auto::validity::no_signer
    - rnp_op_set_compression
    - FFI_LOG
    - auto::validity::valid
    - what
    - auto::validity::expired
    - rnp_op_set_armor
    - rnp_op_add_signatures
    - rnp_op_add_signature
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t rnp_op_verify_on_signatures(const std::vector<rnp::SignatureInfo>
      &sigs, void *param)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/rnp/src/lib/rnp.cpp:3229,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - handler
    - src
    argTypes:
    - pgp_parse_handler_t*
    - pgp_source_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3231
      start: 3219
    functionDepth: 0
    functionLinenumber: 3219
    functionLinenumberEnd: 3231
    functionName: rnp_verify_src_provider
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - memset
    linkageType: ''
    returnType: bool
    signature: bool rnp_verify_src_provider(pgp_parse_handler_t *handler, pgp_source_t
      *src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_literal_hdr_t
      Src: /src/rnp/src/lib/rnp.cpp:3245,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - handler
    - dst
    - closedst
    - lithdr
    argTypes:
    - pgp_parse_handler_t*
    - pgp_dest_t**
    - bool*
    - pgp_literal_hdr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3247
      start: 3233
    functionDepth: 0
    functionLinenumber: 3233
    functionLinenumberEnd: 3247
    functionName: rnp_verify_dest_provider
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - pgp_literal_hdr_t
    linkageType: ''
    returnType: bool
    signature: "bool rnp_verify_dest_provider(pgp_parse_handler_t *    handler,\n
      \                        pgp_dest_t **            dst,\n                         bool
      *                   closedst,\n                         const pgp_literal_hdr_t
      *lithdr)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - handle
    - ' sesskey'
    argTypes:
    - rnp_recipient_handle_st
    - pgp_pk_sesskey_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3255
      start: 3249
    functionDepth: 0
    functionLinenumber: 3249
    functionLinenumberEnd: 3255
    functionName: recipient_handle_from_pk_sesskey
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void recipient_handle_from_pk_sesskey(rnp_recipient_handle_st &handle,\n
      \                                const pgp_pk_sesskey_t & sesskey)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_s2k_decode_iterations
      Src: /src/rnp/src/lib/rnp.cpp:3264,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - handle
    - sesskey
    argTypes:
    - rnp_symenc_handle_st
    - pgp_sk_sesskey_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3269
      start: 3257
    functionDepth: 1
    functionLinenumber: 3257
    functionLinenumberEnd: 3269
    functionName: symenc_handle_from_sk_sesskey
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - pgp_s2k_decode_iterations
    linkageType: ''
    returnType: void
    signature: void symenc_handle_from_sk_sesskey(rnp_symenc_handle_st &handle, const
      pgp_sk_sesskey_t &sesskey)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<pgp_pk_sesskey_t>::empty
      Src: /src/rnp/src/lib/rnp.cpp:3281,1
    - Dst: rnp_op_verify_t::recipients::resize
      Src: /src/rnp/src/lib/rnp.cpp:3282,1
    - Dst: std::vector<pgp_pk_sesskey_t>::size
      Src: /src/rnp/src/lib/rnp.cpp:3282,1
    - Dst: std::vector<pgp_pk_sesskey_t>::size
      Src: /src/rnp/src/lib/rnp.cpp:3283,1
    - Dst: recipient_handle_from_pk_sesskey
      Src: /src/rnp/src/lib/rnp.cpp:3284,1
    - Dst: std::vector<pgp_sk_sesskey_t>::empty
      Src: /src/rnp/src/lib/rnp.cpp:3287,1
    - Dst: rnp_op_verify_t::symencs::resize
      Src: /src/rnp/src/lib/rnp.cpp:3288,1
    - Dst: std::vector<pgp_sk_sesskey_t>::size
      Src: /src/rnp/src/lib/rnp.cpp:3288,1
    - Dst: std::vector<pgp_sk_sesskey_t>::size
      Src: /src/rnp/src/lib/rnp.cpp:3289,1
    - Dst: symenc_handle_from_sk_sesskey
      Src: /src/rnp/src/lib/rnp.cpp:3290,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - recipients
    - passwords
    - param
    argTypes:
    - std::vector<pgp_pk_sesskey_t>
    - std::vector<pgp_sk_sesskey_t>
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3293
      start: 3271
    functionDepth: 2
    functionLinenumber: 3271
    functionLinenumberEnd: 3293
    functionName: rnp_verify_on_recipients
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp_op_verify_t::symencs::resize
    - std::vector<pgp_sk_sesskey_t>::empty
    - recipient_handle_from_pk_sesskey
    - std::vector<pgp_sk_sesskey_t>::size
    - std::vector<pgp_pk_sesskey_t>::size
    - std::vector<pgp_pk_sesskey_t>::empty
    - symenc_handle_from_sk_sesskey
    - rnp_op_verify_t::recipients::resize
    linkageType: ''
    returnType: void
    signature: "void rnp_verify_on_recipients(const std::vector<pgp_pk_sesskey_t>
      &recipients,\n                         const std::vector<pgp_sk_sesskey_t> &passwords,\n
      \                        void *                               param)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp_recipient_handle_st::rnp_recipient_handle_st
      Src: /src/rnp/src/lib/rnp.cpp:3304,1
    - Dst: recipient_handle_from_pk_sesskey
      Src: /src/rnp/src/lib/rnp.cpp:3308,1
    - Dst: rnp_symenc_handle_st::rnp_symenc_handle_st
      Src: /src/rnp/src/lib/rnp.cpp:3312,1
    - Dst: symenc_handle_from_sk_sesskey
      Src: /src/rnp/src/lib/rnp.cpp:3316,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:3319,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 3
    argNames:
    - pubenc
    - symenc
    - param
    argTypes:
    - pgp_pk_sesskey_t*
    - pgp_sk_sesskey_t*
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3320
      start: 3295
    functionDepth: 2
    functionLinenumber: 3295
    functionLinenumberEnd: 3320
    functionName: rnp_verify_on_decryption_start
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - recipient_handle_from_pk_sesskey
    - rnp_recipient_handle_st::rnp_recipient_handle_st
    - symenc_handle_from_sk_sesskey
    - rnp_symenc_handle_st::rnp_symenc_handle_st
    - FFI_LOG
    linkageType: ''
    returnType: void
    signature: void rnp_verify_on_decryption_start(pgp_pk_sesskey_t *pubenc, pgp_sk_sesskey_t
      *symenc, void *param)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 4
    argNames:
    - mdc
    - aead
    - salg
    - param
    argTypes:
    - bool
    - pgp_aead_alg_t
    - pgp_symm_alg_t
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3334
      start: 3322
    functionDepth: 0
    functionLinenumber: 3322
    functionLinenumberEnd: 3334
    functionName: rnp_verify_on_decryption_info
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_verify_on_decryption_info(bool mdc, pgp_aead_alg_t aead, pgp_symm_alg_t
      salg, void *param)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - validated
    - param
    argTypes:
    - bool
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3344
      start: 3336
    functionDepth: 0
    functionLinenumber: 3336
    functionLinenumberEnd: 3344
    functionName: rnp_verify_on_decryption_done
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_verify_on_decryption_done(bool validated, void *param)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rnp_op_verify_st::rnp_op_verify_st
      Src: /src/rnp/src/lib/rnp.cpp:3356,1
    - Dst: rnp_op_verify_st::rnp_op_verify_st
      Src: /src/rnp/src/lib/rnp.cpp:3371,1
    - Dst: pgp_key_request_ctx_t*::search::type
      Src: /src/rnp/src/lib/rnp.cpp:3383,1
    - Dst: dynamic_cast<const rnp::KeyIDSearch *>
      Src: /src/rnp/src/lib/rnp.cpp:3384,1
    - Dst: assert
      Src: /src/rnp/src/lib/rnp.cpp:3385,1
    - Dst: auto::hidden
      Src: /src/rnp/src/lib/rnp.cpp:3386,1
    - Dst: auto::key_provider::callback
      Src: /src/rnp/src/lib/rnp.cpp:3390,1
    - Dst: call_key_callback
      Src: /src/rnp/src/lib/rnp.cpp:3398,1
    - Dst: find_key
      Src: /src/rnp/src/lib/rnp.cpp:3401,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - userdata
    argTypes:
    - pgp_key_request_ctx_t*
    - void*
    assertStmts:
    - condition: (ksearch != nullptr)
      pos:
        line_end: 3384
        line_start: 3384
        source_file: /src/rnp/src/lib/rnp.cpp
    constantsTouched: []
    func_position:
      end: 3403
      start: 3346
    functionDepth: 3
    functionLinenumber: 3346
    functionLinenumberEnd: 3403
    functionName: ffi_decrypt_key_provider
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - auto::key_provider::callback
    - rnp_op_verify_st::rnp_op_verify_st
    - call_key_callback
    - find_key
    - assert
    - pgp_key_request_ctx_t*::search::type
    - auto::hidden
    - dynamic_cast<const rnp::KeyIDSearch *>
    linkageType: ''
    returnType: rnp_result_t
    signature: 'rnp_result_t *

      ffi_decrypt_key_provider(const pgp_key_request_ctx_t *ctx, void *userdata)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:3412,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:3414,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:3416,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:3419,1
    - Dst: process_pgp_source
      Src: /src/rnp/src/lib/rnp.cpp:3451,1
    - Dst: rnp_decryption_kp_param_t::last::keyid
      Src: /src/rnp/src/lib/rnp.cpp:3457,1
    - Dst: dst_flush
      Src: /src/rnp/src/lib/rnp.cpp:3473,1
    - Dst: rnp_op_verify_t::signatures_::size
      Src: /src/rnp/src/lib/rnp.cpp:3487,1
    - Dst: rnp_op_verify_t::signatures_::size
      Src: /src/rnp/src/lib/rnp.cpp:3498,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:3499,1
    - Dst: ret_str_value
      Src: /src/rnp/src/lib/rnp.cpp:3520,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/rnp.cpp:3520,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 96
    argCount: 1
    argNames:
    - op
    argTypes:
    - rnp_op_verify_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3555
      start: 3405
    functionDepth: 10
    functionLinenumber: 3405
    functionLinenumberEnd: 3555
    functionName: get_protection_mode
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 1
    functionsReached:
    - rnp_decryption_kp_param_t::last::keyid
    - extract_flag
    - dst_flush
    - ret_str_value
    - std::string::c_str
    - process_pgp_source
    - rnp_op_verify_t::signatures_::size
    - FFI_LOG
    linkageType: ''
    returnType: rnp_result_t
    signature: 'rnp_result_t *

      get_protection_mode(rnp_op_verify_t op)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:3563,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - op
    argTypes:
    - rnp_op_verify_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3564
      start: 3557
    functionDepth: 1
    functionLinenumber: 3557
    functionLinenumberEnd: 3564
    functionName: get_protection_cipher
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 4
    functionsReached:
    - id_str_pair::lookup
    linkageType: ''
    returnType: char
    signature: 'char *

      get_protection_cipher(rnp_op_verify_t op)'
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: strdup
      Src: /src/rnp/src/lib/rnp.cpp:3574,1
    - Dst: get_protection_mode
      Src: /src/rnp/src/lib/rnp.cpp:3574,1
    - Dst: strdup
      Src: /src/rnp/src/lib/rnp.cpp:3580,1
    - Dst: get_protection_cipher
      Src: /src/rnp/src/lib/rnp.cpp:3580,1
    - Dst: recipients::size
      Src: /src/rnp/src/lib/rnp.cpp:3598,1
    - Dst: recipients::size
      Src: /src/rnp/src/lib/rnp.cpp:3622,1
    - Dst: ret_keyid
      Src: /src/rnp/src/lib/rnp.cpp:3636,1
    - Dst: get_map_value
      Src: /src/rnp/src/lib/rnp.cpp:3646,1
    - Dst: symencs::size
      Src: /src/rnp/src/lib/rnp.cpp:3656,1
    - Dst: symencs::size
      Src: /src/rnp/src/lib/rnp.cpp:3678,1
    - Dst: get_map_value
      Src: /src/rnp/src/lib/rnp.cpp:3692,1
    - Dst: get_map_value
      Src: /src/rnp/src/lib/rnp.cpp:3702,1
    - Dst: get_map_value
      Src: /src/rnp/src/lib/rnp.cpp:3712,1
    - Dst: get_map_value
      Src: /src/rnp/src/lib/rnp.cpp:3722,1
    CyclomaticComplexity: 37
    EdgeCount: 37
    ICount: 104
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3749
      start: 3566
    functionDepth: 11
    functionLinenumber: 3566
    functionLinenumberEnd: 3749
    functionName: rnp_op_verify_st::~rnp_op_verify_st()
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - recipients::size
    - strdup
    - ret_keyid
    - get_map_value
    - symencs::size
    - get_protection_mode
    - get_protection_cipher
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t rnp_op_verify_st::~rnp_op_verify_st()
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Signature::Signature
      Src: /src/rnp/src/lib/rnp.cpp:3769,1
    - Dst: rnp_signature_handle_st::rnp_signature_handle_st
      Src: /src/rnp/src/lib/rnp.cpp:3770,1
    - Dst: std::unique_ptr::release
      Src: /src/rnp/src/lib/rnp.cpp:3771,1
    - Dst: get_map_value
      Src: /src/rnp/src/lib/rnp.cpp:3784,1
    - Dst: rnp_ffi_t::pubring::get_signer
      Src: /src/rnp/src/lib/rnp.cpp:3792,1
    - Dst: rnp_ffi_t::secring::get_signer
      Src: /src/rnp/src/lib/rnp.cpp:3793,1
    - Dst: rnp_key_handle_st::rnp_key_handle_st
      Src: /src/rnp/src/lib/rnp.cpp:3797,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 2
    argNames:
    - ffi
    - sig
    argTypes:
    - rnp_ffi_t
    - pgp::pkt::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3798
      start: 3751
    functionDepth: 2
    functionLinenumber: 3751
    functionLinenumberEnd: 3798
    functionName: get_signer_handle
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp::Signature::Signature
    - std::unique_ptr::release
    - rnp_signature_handle_st::rnp_signature_handle_st
    - rnp_ffi_t::pubring::get_signer
    - rnp_ffi_t::secring::get_signer
    - get_map_value
    - rnp_key_handle_st::rnp_key_handle_st
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t get_signer_handle(rnp_ffi_t ffi, const pgp::pkt::Signature
      &sig)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: get_signer_handle
      Src: /src/rnp/src/lib/rnp.cpp:3806,1
    - Dst: sig_pkt::creation
      Src: /src/rnp/src/lib/rnp.cpp:3817,1
    - Dst: sig_pkt::expiration
      Src: /src/rnp/src/lib/rnp.cpp:3820,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/lib/rnp.cpp:3836,1
    - Dst: rnp_op_verify_set_flags
      Src: /src/rnp/src/lib/rnp.cpp:3840,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/lib/rnp.cpp:3842,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/lib/rnp.cpp:3844,1
    - Dst: rnp_ffi_t::pubring::search
      Src: /src/rnp/src/lib/rnp.cpp:3856,1
    - Dst: rnp_ffi_t::secring::search
      Src: /src/rnp/src/lib/rnp.cpp:3858,1
    - Dst: rnp_key_handle_st::rnp_key_handle_st
      Src: /src/rnp/src/lib/rnp.cpp:3866,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 38
    argCount: 3
    argNames:
    - ffi
    - locator
    - handle
    argTypes:
    - rnp_ffi_t
    - rnp::KeySearch
    - rnp_key_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3871
      start: 3800
    functionDepth: 3
    functionLinenumber: 3800
    functionLinenumberEnd: 3871
    functionName: rnp_locate_key_int
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp_op_verify_set_flags
    - get_signer_handle
    - rnp_op_verify_create
    - sig_pkt::creation
    - rnp_op_verify_destroy
    - rnp_ffi_t::secring::search
    - rnp_ffi_t::pubring::search
    - sig_pkt::expiration
    - rnp_op_verify_execute
    - rnp_key_handle_st::rnp_key_handle_st
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t rnp_locate_key_int(rnp_ffi_t             ffi,\n                   const
      rnp::KeySearch &locator,\n                   rnp_key_handle_t *    handle,\n
      \                  bool                  require_secret = false)"
  - BBCount: 31
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeySearch::create
      Src: /src/rnp/src/lib/rnp.cpp:3885,1
    - Dst: rnp_locate_key_int
      Src: /src/rnp/src/lib/rnp.cpp:3889,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:3905,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:3910,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:3914,1
    - Dst: get_key_require_public
      Src: /src/rnp/src/lib/rnp.cpp:3915,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:3918,1
    - Dst: get_key_require_secret
      Src: /src/rnp/src/lib/rnp.cpp:3919,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:3922,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:3925,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:3928,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:3933,1
    - Dst: rnp::Key*::is_secret
      Src: /src/rnp/src/lib/rnp.cpp:3941,1
    - Dst: init_armored_dst
      Src: /src/rnp/src/lib/rnp.cpp:3942,1
    - Dst: rnp::Key*::is_primary
      Src: /src/rnp/src/lib/rnp.cpp:3949,1
    - Dst: rnp::Key*::write_xfer
      Src: /src/rnp/src/lib/rnp.cpp:3951,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:3958,1
    - Dst: rnp::KeyStore*::primary_key
      Src: /src/rnp/src/lib/rnp.cpp:3962,1
    - Dst: auto*::write_xfer
      Src: /src/rnp/src/lib/rnp.cpp:3967,1
    - Dst: rnp::Key*::write_xfer
      Src: /src/rnp/src/lib/rnp.cpp:3971,1
    - Dst: dst_finish
      Src: /src/rnp/src/lib/rnp.cpp:3977,1
    - Dst: dst_close
      Src: /src/rnp/src/lib/rnp.cpp:3978,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:3995,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:3997,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:4001,1
    - Dst: auto*::is_primary
      Src: /src/rnp/src/lib/rnp.cpp:4002,1
    - Dst: auto*::usable_for
      Src: /src/rnp/src/lib/rnp.cpp:4002,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:4003,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:4008,1
    - Dst: find_suitable_key
      Src: /src/rnp/src/lib/rnp.cpp:4009,1
    - Dst: auto*::is_primary
      Src: /src/rnp/src/lib/rnp.cpp:4010,1
    - Dst: auto*::usable_for
      Src: /src/rnp/src/lib/rnp.cpp:4010,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:4011,1
    - Dst: auto*::uid_count
      Src: /src/rnp/src/lib/rnp.cpp:4015,1
    - Dst: auto*::uid_count
      Src: /src/rnp/src/lib/rnp.cpp:4017,1
    - Dst: auto*::get_uid
      Src: /src/rnp/src/lib/rnp.cpp:4018,1
    - Dst: auto*::uid_count
      Src: /src/rnp/src/lib/rnp.cpp:4024,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:4025,1
    - Dst: auto*::uid_count
      Src: /src/rnp/src/lib/rnp.cpp:4030,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:4031,1
    - Dst: auto*::write_autocrypt
      Src: /src/rnp/src/lib/rnp.cpp:4039,1
    - Dst: rnp::ArmoredDest::dst
      Src: /src/rnp/src/lib/rnp.cpp:4039,1
    - Dst: auto*::write_autocrypt
      Src: /src/rnp/src/lib/rnp.cpp:4041,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:4053,1
    - Dst: auto*::is_subkey
      Src: /src/rnp/src/lib/rnp.cpp:4057,1
    - Dst: rnp::Key*::ffi::secring::primary_key
      Src: /src/rnp/src/lib/rnp.cpp:4058,1
    - Dst: get_key_require_secret
      Src: /src/rnp/src/lib/rnp.cpp:4061,1
    CyclomaticComplexity: 43
    EdgeCount: 43
    ICount: 126
    argCount: 1
    argNames:
    - key
    argTypes:
    - rnp_key_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4062
      start: 3873
    functionDepth: 4
    functionLinenumber: 3873
    functionLinenumberEnd: 4062
    functionName: rnp_key_get_revoker
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - extract_flag
    - auto*::is_subkey
    - auto*::is_primary
    - rnp::Key*::write_xfer
    - dst_finish
    - dst_close
    - rnp::ArmoredDest::dst
    - rnp_locate_key_int
    - auto*::usable_for
    - auto*::write_xfer
    - rnp::Key*::is_primary
    - get_key_prefer_public
    - auto*::uid_count
    - rnp::Key*::ffi::secring::primary_key
    - rnp::Key*::is_secret
    - init_armored_dst
    - auto*::write_autocrypt
    - get_key_require_public
    - rnp::KeySearch::create
    - rnp::KeyStore*::primary_key
    - FFI_LOG
    - auto*::get_uid
    - find_suitable_key
    - get_key_require_secret
    linkageType: ''
    returnType: rnp_result_t
    signature: 'rnp_result_t *

      rnp_key_get_revoker(rnp_key_handle_t key)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: str_to_revocation_type
      Src: /src/rnp/src/lib/rnp.cpp:4071,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:4072,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:4076,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - ffi
    - revinfo
    - code
    - reason
    argTypes:
    - rnp_ffi_t
    - rnp::Revocation
    - char*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4083
      start: 4064
    functionDepth: 2
    functionLinenumber: 4064
    functionLinenumberEnd: 4083
    functionName: fill_revocation_reason
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - str_to_revocation_type
    - FFI_LOG
    linkageType: ''
    returnType: bool
    signature: "bool fill_revocation_reason(rnp_ffi_t        ffi,\n                       rnp::Revocation
      &revinfo,\n                       const char *     code,\n                       const
      char *     reason)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: str_to_hash_alg
      Src: /src/rnp/src/lib/rnp.cpp:4098,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:4099,1
    - Dst: rnp::Revocation::Revocation
      Src: /src/rnp/src/lib/rnp.cpp:4102,1
    - Dst: fill_revocation_reason
      Src: /src/rnp/src/lib/rnp.cpp:4103,1
    - Dst: rnp::Key*::is_locked
      Src: /src/rnp/src/lib/rnp.cpp:4108,1
    - Dst: rnp::Key*::unlock
      Src: /src/rnp/src/lib/rnp.cpp:4108,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:4109,1
    - Dst: rnp::Key*::gen_revocation
      Src: /src/rnp/src/lib/rnp.cpp:4113,1
    - Dst: rnp::Key*::pkt
      Src: /src/rnp/src/lib/rnp.cpp:4113,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:4115,1
    - Dst: what
      Src: /src/rnp/src/lib/rnp.cpp:4115,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 7
    argNames:
    - ffi
    - key
    - revoker
    - hash
    - code
    - reason
    - sig
    argTypes:
    - rnp_ffi_t
    - rnp::Key*
    - rnp::Key*
    - char*
    - char*
    - char*
    - pgp::pkt::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4119
      start: 4085
    functionDepth: 3
    functionLinenumber: 4085
    functionLinenumberEnd: 4119
    functionName: rnp_key_get_revocation
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - what
    - fill_revocation_reason
    - rnp::Revocation::Revocation
    - rnp::Key*::pkt
    - rnp::Key*::is_locked
    - rnp::Key*::gen_revocation
    - str_to_hash_alg
    - rnp::Key*::unlock
    - FFI_LOG
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t rnp_key_get_revocation(rnp_ffi_t            ffi,\n                       rnp::Key
      *           key,\n                       rnp::Key *           revoker,\n                       const
      char *         hash,\n                       const char *         code,\n                       const
      char *         reason,\n                       pgp::pkt::Signature &sig)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:4132,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:4137,1
    - Dst: auto*::is_primary
      Src: /src/rnp/src/lib/rnp.cpp:4138,1
    - Dst: rnp_key_get_revoker
      Src: /src/rnp/src/lib/rnp.cpp:4141,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:4143,1
    - Dst: pgp::pkt::Signature::Signature
      Src: /src/rnp/src/lib/rnp.cpp:4147,1
    - Dst: rnp_key_get_revocation
      Src: /src/rnp/src/lib/rnp.cpp:4149,1
    - Dst: pgp::pkt::Signature::write
      Src: /src/rnp/src/lib/rnp.cpp:4156,1
    - Dst: rnp::ArmoredDest::dst
      Src: /src/rnp/src/lib/rnp.cpp:4156,1
    - Dst: rnp::ArmoredDest::werr
      Src: /src/rnp/src/lib/rnp.cpp:4157,1
    - Dst: dst_flush
      Src: /src/rnp/src/lib/rnp.cpp:4158,1
    - Dst: rnp::ArmoredDest::dst
      Src: /src/rnp/src/lib/rnp.cpp:4158,1
    - Dst: pgp::pkt::Signature::write
      Src: /src/rnp/src/lib/rnp.cpp:4160,1
    - Dst: dst_flush
      Src: /src/rnp/src/lib/rnp.cpp:4162,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:4180,1
    - Dst: rnp_key_get_revoker
      Src: /src/rnp/src/lib/rnp.cpp:4184,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:4186,1
    - Dst: pgp::pkt::Signature::Signature
      Src: /src/rnp/src/lib/rnp.cpp:4190,1
    - Dst: rnp_key_get_revocation
      Src: /src/rnp/src/lib/rnp.cpp:4192,1
    - Dst: ffi::pubring::import_signature
      Src: /src/rnp/src/lib/rnp.cpp:4199,1
    - Dst: ffi::secring::import_signature
      Src: /src/rnp/src/lib/rnp.cpp:4202,1
    - Dst: get_key_require_secret
      Src: /src/rnp/src/lib/rnp.cpp:4219,1
    - Dst: auto*::is_locked
      Src: /src/rnp/src/lib/rnp.cpp:4220,1
    - Dst: auto*::alg
      Src: /src/rnp/src/lib/rnp.cpp:4220,1
    - Dst: auto*::curve
      Src: /src/rnp/src/lib/rnp.cpp:4221,1
    - Dst: dynamic_cast<const pgp::ECDHKeyMaterial *>
      Src: /src/rnp/src/lib/rnp.cpp:4224,1
    - Dst: auto*::material
      Src: /src/rnp/src/lib/rnp.cpp:4224,1
    - Dst: auto::x25519_bits_tweaked
      Src: /src/rnp/src/lib/rnp.cpp:4228,1
    - Dst: get_key_require_secret
      Src: /src/rnp/src/lib/rnp.cpp:4239,1
    - Dst: auto*::is_protected
      Src: /src/rnp/src/lib/rnp.cpp:4240,1
    - Dst: auto*::alg
      Src: /src/rnp/src/lib/rnp.cpp:4240,1
    - Dst: auto*::curve
      Src: /src/rnp/src/lib/rnp.cpp:4241,1
    - Dst: dynamic_cast<pgp::ECDHKeyMaterial *>
      Src: /src/rnp/src/lib/rnp.cpp:4244,1
    - Dst: auto*::material
      Src: /src/rnp/src/lib/rnp.cpp:4244,1
    - Dst: auto::x25519_tweak_bits
      Src: /src/rnp/src/lib/rnp.cpp:4245,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:4246,1
    - Dst: auto*::write_sec_rawpkt
      Src: /src/rnp/src/lib/rnp.cpp:4249,1
    - Dst: auto*::pkt
      Src: /src/rnp/src/lib/rnp.cpp:4249,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:4250,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:4263,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:4264,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:4265,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:4267,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:4273,1
    - Dst: ffi::pubring::remove_key
      Src: /src/rnp/src/lib/rnp.cpp:4281,1
    - Dst: ffi::secring::remove_key
      Src: /src/rnp/src/lib/rnp.cpp:4290,1
    - Dst: rnp_signature_handle_st::rnp_signature_handle_st
      Src: /src/rnp/src/lib/rnp.cpp:4313,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:4316,1
    - Dst: what
      Src: /src/rnp/src/lib/rnp.cpp:4316,1
    - Dst: sigcb
      Src: /src/rnp/src/lib/rnp.cpp:4322,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:4331,1
    - Dst: rnp_signature_handle_destroy
      Src: /src/rnp/src/lib/rnp.cpp:4334,1
    CyclomaticComplexity: 55
    EdgeCount: 55
    ICount: 139
    argCount: 6
    argNames:
    - ffi
    - '      key'
    - sigcb
    - app_ctx
    - '      keysig'
    - '                remove'
    argTypes:
    - rnp_ffi_t
    - rnp::Key
    - rnp_key_signatures_cb
    - void*
    - rnp::Signature
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4335
      start: 4121
    functionDepth: 5
    functionLinenumber: 4121
    functionLinenumberEnd: 4335
    functionName: report_signature_removal
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - extract_flag
    - pgp::pkt::Signature::Signature
    - auto*::is_primary
    - auto::x25519_tweak_bits
    - rnp_key_get_revocation
    - rnp_key_get_revoker
    - rnp_signature_handle_st::rnp_signature_handle_st
    - pgp::pkt::Signature::write
    - rnp::ArmoredDest::dst
    - ffi::secring::import_signature
    - auto*::curve
    - rnp::ArmoredDest::werr
    - dynamic_cast<const pgp::ECDHKeyMaterial *>
    - sigcb
    - dynamic_cast<pgp::ECDHKeyMaterial *>
    - get_key_prefer_public
    - dst_flush
    - auto*::pkt
    - auto*::material
    - auto::x25519_bits_tweaked
    - rnp_signature_handle_destroy
    - auto*::is_protected
    - FFI_LOG
    - ffi::secring::remove_key
    - auto*::alg
    - what
    - auto*::is_locked
    - auto*::write_sec_rawpkt
    - ffi::pubring::import_signature
    - get_key_require_secret
    - ffi::pubring::remove_key
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t report_signature_removal(rnp_ffi_t             ffi,\n
      \                        const rnp::Key &      key,\n                         rnp_key_signatures_cb
      sigcb,\n                         void *                app_ctx,\n                         rnp::Signature
      &      keysig,\n                         bool &                remove)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key::is_primary
      Src: /src/rnp/src/lib/rnp.cpp:4345,1
    - Dst: rnp::Key::is_signer
      Src: /src/rnp/src/lib/rnp.cpp:4345,1
    - Dst: rnp::Key::is_subkey
      Src: /src/rnp/src/lib/rnp.cpp:4348,1
    - Dst: rnp_ffi_t::pubring::primary_key
      Src: /src/rnp/src/lib/rnp.cpp:4349,1
    - Dst: auto*::is_signer
      Src: /src/rnp/src/lib/rnp.cpp:4350,1
    - Dst: rnp_ffi_t::pubring::get_signer
      Src: /src/rnp/src/lib/rnp.cpp:4355,1
    - Dst: rnp::Signature::validity::validated
      Src: /src/rnp/src/lib/rnp.cpp:4360,1
    - Dst: auto*::validate_sig
      Src: /src/rnp/src/lib/rnp.cpp:4361,1
    - Dst: rnp::Signature::validity::validated
      Src: /src/rnp/src/lib/rnp.cpp:4364,1
    - Dst: rnp::Signature::validity::valid
      Src: /src/rnp/src/lib/rnp.cpp:4367,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 22
    argCount: 4
    argNames:
    - ffi
    - key
    - sig
    - flags
    argTypes:
    - rnp_ffi_t
    - rnp::Key
    - rnp::Signature
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4371
      start: 4337
    functionDepth: 2
    functionLinenumber: 4337
    functionLinenumberEnd: 4371
    functionName: signature_needs_removal
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - auto*::is_signer
    - rnp::Key::is_signer
    - rnp_ffi_t::pubring::get_signer
    - rnp::Signature::validity::valid
    - rnp::Key::is_primary
    - rnp::Signature::validity::validated
    - rnp_ffi_t::pubring::primary_key
    - rnp::Key::is_subkey
    - auto*::validate_sig
    linkageType: ''
    returnType: bool
    signature: "bool signature_needs_removal(rnp_ffi_t       ffi,\n                        const
      rnp::Key &key,\n                        rnp::Signature &sig,\n                        uint32_t
      \       flags)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: sig_count
      Src: /src/rnp/src/lib/rnp.cpp:4383,1
    - Dst: get_sig
      Src: /src/rnp/src/lib/rnp.cpp:4384,1
    - Dst: signature_needs_removal
      Src: /src/rnp/src/lib/rnp.cpp:4385,1
    - Dst: report_signature_removal
      Src: /src/rnp/src/lib/rnp.cpp:4386,1
    - Dst: pgp::SigIDs::push_back
      Src: /src/rnp/src/lib/rnp.cpp:4388,1
    - Dst: del_sigs
      Src: /src/rnp/src/lib/rnp.cpp:4391,1
    - Dst: pgp::SigIDs::size
      Src: /src/rnp/src/lib/rnp.cpp:4392,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:4393,1
    - Dst: pgp::SigIDs::size
      Src: /src/rnp/src/lib/rnp.cpp:4393,1
    - Dst: rnp::Key*::del_sigs
      Src: /src/rnp/src/lib/rnp.cpp:4397,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 6
    argNames:
    - ffi
    - '            pub'
    - sec
    - flags
    - sigcb
    - app_ctx
    argTypes:
    - rnp_ffi_t
    - rnp::Key
    - rnp::Key*
    - uint32_t
    - rnp_key_signatures_cb
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4399
      start: 4373
    functionDepth: 6
    functionLinenumber: 4373
    functionLinenumberEnd: 4399
    functionName: remove_key_signatures
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - pgp::SigIDs::push_back
    - signature_needs_removal
    - report_signature_removal
    - rnp::Key*::del_sigs
    - del_sigs
    - get_sig
    - pgp::SigIDs::size
    - sig_count
    - FFI_LOG
    linkageType: ''
    returnType: void
    signature: "void remove_key_signatures(rnp_ffi_t             ffi,\n                      rnp::Key
      &            pub,\n                      rnp::Key *            sec,\n                      uint32_t
      \             flags,\n                      rnp_key_signatures_cb sigcb,\n                      void
      *                app_ctx)"
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - pkalg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4462
      start: 4451
    functionDepth: 0
    functionLinenumber: 4451
    functionLinenumberEnd: 4462
    functionName: pk_alg_allows_custom_curve
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool pk_alg_allows_custom_curve(pgp_pubkey_alg_t pkalg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_str_arr
      Src: /src/rnp/src/lib/rnp.cpp:4469,1
    - Dst: str_to_hash_alg
      Src: /src/rnp/src/lib/rnp.cpp:4472,1
    - Dst: c_str
      Src: /src/rnp/src/lib/rnp.cpp:4472,1
    - Dst: rnp::UserPrefs::add_hash_alg
      Src: /src/rnp/src/lib/rnp.cpp:4475,1
    - Dst: rnp::json::get_str_arr
      Src: /src/rnp/src/lib/rnp.cpp:4479,1
    - Dst: str_to_cipher
      Src: /src/rnp/src/lib/rnp.cpp:4482,1
    - Dst: c_str
      Src: /src/rnp/src/lib/rnp.cpp:4482,1
    - Dst: rnp::UserPrefs::add_symm_alg
      Src: /src/rnp/src/lib/rnp.cpp:4485,1
    - Dst: rnp::json::get_str_arr
      Src: /src/rnp/src/lib/rnp.cpp:4489,1
    - Dst: str_to_compression_alg
      Src: /src/rnp/src/lib/rnp.cpp:4492,1
    - Dst: c_str
      Src: /src/rnp/src/lib/rnp.cpp:4492,1
    - Dst: rnp::UserPrefs::add_z_alg
      Src: /src/rnp/src/lib/rnp.cpp:4495,1
    - Dst: rnp::json::get_str
      Src: /src/rnp/src/lib/rnp.cpp:4500,1
    - Dst: std::move
      Src: /src/rnp/src/lib/rnp.cpp:4501,1
    - Dst: nlohmann::ordered_json::empty
      Src: /src/rnp/src/lib/rnp.cpp:4504,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - jso
    - prefs
    argTypes:
    - nlohmann::ordered_json
    - rnp::UserPrefs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4505
      start: 4464
    functionDepth: 3
    functionLinenumber: 4464
    functionLinenumberEnd: 4505
    functionName: parse_preferences
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp::json::get_str_arr
    - rnp::json::get_str
    - str_to_compression_alg
    - rnp::UserPrefs::add_z_alg
    - rnp::UserPrefs::add_hash_alg
    - nlohmann::ordered_json::empty
    - str_to_hash_alg
    - c_str
    - rnp::UserPrefs::add_symm_alg
    - str_to_cipher
    - std::move
    linkageType: ''
    returnType: bool
    signature: bool parse_preferences(nlohmann::ordered_json &jso, rnp::UserPrefs
      &prefs)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_str
      Src: /src/rnp/src/lib/rnp.cpp:4513,1
    - Dst: str_to_pubkey_alg
      Src: /src/rnp/src/lib/rnp.cpp:4513,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/rnp.cpp:4513,1
    - Dst: rnp::KeygenParams::KeygenParams
      Src: /src/rnp/src/lib/rnp.cpp:4516,1
    - Dst: rnp::json::get_int
      Src: /src/rnp/src/lib/rnp.cpp:4519,1
    - Dst: dynamic_cast<pgp::BitsKeyParams *>
      Src: /src/rnp/src/lib/rnp.cpp:4520,1
    - Dst: std::unique_ptr::key_params
      Src: /src/rnp/src/lib/rnp.cpp:4520,1
    - Dst: auto::set_bits
      Src: /src/rnp/src/lib/rnp.cpp:4524,1
    - Dst: rnp::json::get_str
      Src: /src/rnp/src/lib/rnp.cpp:4527,1
    - Dst: pk_alg_allows_custom_curve
      Src: /src/rnp/src/lib/rnp.cpp:4528,1
    - Dst: std::unique_ptr::alg
      Src: /src/rnp/src/lib/rnp.cpp:4528,1
    - Dst: dynamic_cast<pgp::ECCKeyParams *>
      Src: /src/rnp/src/lib/rnp.cpp:4531,1
    - Dst: std::unique_ptr::key_params
      Src: /src/rnp/src/lib/rnp.cpp:4531,1
    - Dst: curve_str_to_type
      Src: /src/rnp/src/lib/rnp.cpp:4533,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/rnp.cpp:4533,1
    - Dst: auto::set_curve
      Src: /src/rnp/src/lib/rnp.cpp:4536,1
    - Dst: rnp::json::get_str
      Src: /src/rnp/src/lib/rnp.cpp:4539,1
    - Dst: str_to_hash_alg
      Src: /src/rnp/src/lib/rnp.cpp:4541,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/rnp.cpp:4541,1
    - Dst: std::unique_ptr::set_hash
      Src: /src/rnp/src/lib/rnp.cpp:4544,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - ffi
    - jso
    argTypes:
    - rnp_ffi_t
    - nlohmann::ordered_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4547
      start: 4507
    functionDepth: 3
    functionLinenumber: 4507
    functionLinenumberEnd: 4547
    functionName: parse_keygen_params
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp::json::get_str
    - curve_str_to_type
    - rnp::json::get_int
    - rnp::KeygenParams::KeygenParams
    - std::unique_ptr::alg
    - auto::set_curve
    - std::string::c_str
    - dynamic_cast<pgp::ECCKeyParams *>
    - str_to_hash_alg
    - str_to_pubkey_alg
    - dynamic_cast<pgp::BitsKeyParams *>
    - auto::set_bits
    - pk_alg_allows_custom_curve
    - std::unique_ptr::set_hash
    - std::unique_ptr::key_params
    linkageType: ''
    returnType: std::unique_ptr<rnp::KeygenParams>
    signature: std::unique_ptr<rnp::KeygenParams> parse_keygen_params(rnp_ffi_t ffi,
      nlohmann::ordered_json &jso)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_str
      Src: /src/rnp/src/lib/rnp.cpp:4554,1
    - Dst: str_to_cipher
      Src: /src/rnp/src/lib/rnp.cpp:4555,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/rnp.cpp:4555,1
    - Dst: rnp::json::get_str
      Src: /src/rnp/src/lib/rnp.cpp:4560,1
    - Dst: str_to_cipher_mode
      Src: /src/rnp/src/lib/rnp.cpp:4561,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/rnp.cpp:4561,1
    - Dst: rnp::json::get_int
      Src: /src/rnp/src/lib/rnp.cpp:4567,1
    - Dst: rnp::json::get_str
      Src: /src/rnp/src/lib/rnp.cpp:4571,1
    - Dst: str_to_hash_alg
      Src: /src/rnp/src/lib/rnp.cpp:4572,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/rnp.cpp:4572,1
    - Dst: nlohmann::ordered_json::empty
      Src: /src/rnp/src/lib/rnp.cpp:4577,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 20
    argCount: 2
    argNames:
    - jso
    - protection
    argTypes:
    - nlohmann::ordered_json
    - rnp_key_protection_params_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4578
      start: 4549
    functionDepth: 3
    functionLinenumber: 4549
    functionLinenumberEnd: 4578
    functionName: parse_protection
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp::json::get_str
    - rnp::json::get_int
    - std::string::c_str
    - nlohmann::ordered_json::empty
    - str_to_hash_alg
    - str_to_cipher_mode
    - str_to_cipher
    linkageType: ''
    returnType: bool
    signature: bool parse_protection(nlohmann::ordered_json &jso, rnp_key_protection_params_t
      &protection)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::get_str
      Src: /src/rnp/src/lib/rnp.cpp:4589,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/rnp.cpp:4590,1
    - Dst: std::move
      Src: /src/rnp/src/lib/rnp.cpp:4590,1
    - Dst: rnp::json::get_str_arr
      Src: /src/rnp/src/lib/rnp.cpp:4592,1
    - Dst: str_to_key_flag
      Src: /src/rnp/src/lib/rnp.cpp:4596,1
    - Dst: c_str
      Src: /src/rnp/src/lib/rnp.cpp:4596,1
    - Dst: rnp::json::get_uint64
      Src: /src/rnp/src/lib/rnp.cpp:4603,1
    - Dst: rnp::json::get_obj
      Src: /src/rnp/src/lib/rnp.cpp:4607,1
    - Dst: parse_protection
      Src: /src/rnp/src/lib/rnp.cpp:4609,1
    - Dst: erase
      Src: /src/rnp/src/lib/rnp.cpp:4612,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 4
    argNames:
    - '     jso'
    - '                    usage'
    - '                   expiry'
    - prot
    argTypes:
    - nlohmann::ordered_json
    - uint8_t
    - uint32_t
    - rnp_key_protection_params_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4615
      start: 4580
    functionDepth: 4
    functionLinenumber: 4580
    functionLinenumberEnd: 4615
    functionName: parse_keygen_common_fields
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp::json::get_str
    - rnp::json::get_str_arr
    - str_to_key_flag
    - rnp::json::get_obj
    - erase
    - rnp::json::get_uint64
    - parse_protection
    - c_str
    - std::move
    - std::vector::push_back
    linkageType: ''
    returnType: bool
    signature: "bool parse_keygen_common_fields(nlohmann::ordered_json &     jso,\n
      \                          uint8_t &                    usage,\n                           uint32_t
      &                   expiry,\n                           rnp_key_protection_params_t
      &prot)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: parse_keygen_params
      Src: /src/rnp/src/lib/rnp.cpp:4624,1
    - Dst: parse_keygen_common_fields
      Src: /src/rnp/src/lib/rnp.cpp:4629,1
    - Dst: rnp::json::get_str
      Src: /src/rnp/src/lib/rnp.cpp:4634,1
    - Dst: std::string::size
      Src: /src/rnp/src/lib/rnp.cpp:4635,1
    - Dst: std::move
      Src: /src/rnp/src/lib/rnp.cpp:4638,1
    - Dst: rnp::json::get_obj
      Src: /src/rnp/src/lib/rnp.cpp:4641,1
    - Dst: parse_preferences
      Src: /src/rnp/src/lib/rnp.cpp:4643,1
    - Dst: erase
      Src: /src/rnp/src/lib/rnp.cpp:4646,1
    - Dst: empty
      Src: /src/rnp/src/lib/rnp.cpp:4649,1
    - Dst: std::move
      Src: /src/rnp/src/lib/rnp.cpp:4649,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 4
    argNames:
    - ffi
    - '     jso'
    - '            cert'
    - prot
    argTypes:
    - rnp_ffi_t
    - nlohmann::ordered_json
    - rnp::CertParams
    - rnp_key_protection_params_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4650
      start: 4617
    functionDepth: 5
    functionLinenumber: 4617
    functionLinenumberEnd: 4650
    functionName: parse_keygen_primary
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp::json::get_str
    - parse_keygen_params
    - rnp::json::get_obj
    - erase
    - parse_preferences
    - std::string::size
    - empty
    - parse_keygen_common_fields
    - std::move
    linkageType: ''
    returnType: std::unique_ptr<rnp::KeygenParams>
    signature: "std::unique_ptr<rnp::KeygenParams> parse_keygen_primary(rnp_ffi_t
      \                   ffi,\n                     nlohmann::ordered_json &     jso,\n
      \                    rnp::CertParams &            cert,\n                     rnp_key_protection_params_t
      &prot)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: parse_keygen_params
      Src: /src/rnp/src/lib/rnp.cpp:4659,1
    - Dst: parse_keygen_common_fields
      Src: /src/rnp/src/lib/rnp.cpp:4664,1
    - Dst: empty
      Src: /src/rnp/src/lib/rnp.cpp:4668,1
    - Dst: std::move
      Src: /src/rnp/src/lib/rnp.cpp:4668,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 4
    argNames:
    - ffi
    - '     jso'
    - '         binding'
    - prot
    argTypes:
    - rnp_ffi_t
    - nlohmann::ordered_json
    - rnp::BindingParams
    - rnp_key_protection_params_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4669
      start: 4652
    functionDepth: 5
    functionLinenumber: 4652
    functionLinenumberEnd: 4669
    functionName: parse_keygen_sub
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - empty
    - parse_keygen_common_fields
    - parse_keygen_params
    - std::move
    linkageType: ''
    returnType: std::unique_ptr<rnp::KeygenParams>
    signature: "std::unique_ptr<rnp::KeygenParams> parse_keygen_sub(rnp_ffi_t                    ffi,\n
      \                nlohmann::ordered_json &     jso,\n                 rnp::BindingParams
      &         binding,\n                 rnp_key_protection_params_t &prot)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/lib/rnp.cpp:4678,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/lib/rnp.cpp:4682,1
    - Dst: rnp::hex_encode
      Src: /src/rnp/src/lib/rnp.cpp:4683,1
    - Dst: rnp::Key*::grip
      Src: /src/rnp/src/lib/rnp.cpp:4684,1
    - Dst: rnp::Key*::grip
      Src: /src/rnp/src/lib/rnp.cpp:4684,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:4685,1
    - Dst: std::move
      Src: /src/rnp/src/lib/rnp.cpp:4688,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/lib/rnp.cpp:4691,1
    - Dst: rnp::hex_encode
      Src: /src/rnp/src/lib/rnp.cpp:4692,1
    - Dst: rnp::Key*::grip
      Src: /src/rnp/src/lib/rnp.cpp:4692,1
    - Dst: rnp::Key*::grip
      Src: /src/rnp/src/lib/rnp.cpp:4692,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:4693,1
    - Dst: std::move
      Src: /src/rnp/src/lib/rnp.cpp:4696,1
    - Dst: strdup
      Src: /src/rnp/src/lib/rnp.cpp:4698,1
    - Dst: rnp::json::dump_pretty
      Src: /src/rnp/src/lib/rnp.cpp:4698,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - result
    - primary
    - sub
    argTypes:
    - char**
    - rnp::Key*
    - rnp::Key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4700
      start: 4671
    functionDepth: 5
    functionLinenumber: 4671
    functionLinenumberEnd: 4700
    functionName: gen_json_grips
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp::json::dump_pretty
    - sexp::sexp_input_stream_t::scan_object
    - rnp::json::add
    - rnp::hex_encode
    - strdup
    - rnp::Key*::grip
    - std::move
    linkageType: ''
    returnType: bool
    signature: bool gen_json_grips(char **result, const rnp::Key *primary, const rnp::Key
      *sub)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: parse_keygen_primary
      Src: /src/rnp/src/lib/rnp.cpp:4712,1
    - Dst: rnp::Key::Key
      Src: /src/rnp/src/lib/rnp.cpp:4717,1
    - Dst: rnp::Key::Key
      Src: /src/rnp/src/lib/rnp.cpp:4718,1
    - Dst: auto::generate
      Src: /src/rnp/src/lib/rnp.cpp:4719,1
    - Dst: rnp_ffi_t::pubring::add_key
      Src: /src/rnp/src/lib/rnp.cpp:4723,1
    - Dst: rnp::Key::protect
      Src: /src/rnp/src/lib/rnp.cpp:4727,1
    - Dst: rnp_ffi_t::secring::add_key
      Src: /src/rnp/src/lib/rnp.cpp:4730,1
    - Dst: rnp::Key::fp
      Src: /src/rnp/src/lib/rnp.cpp:4733,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 5
    argNames:
    - ffi
    - '     jsoparams'
    - prot
    - '           fp'
    - protect
    argTypes:
    - rnp_ffi_t
    - nlohmann::ordered_json
    - rnp_key_protection_params_t
    - pgp::Fingerprint
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4735
      start: 4702
    functionDepth: 6
    functionLinenumber: 4702
    functionLinenumberEnd: 4735
    functionName: gen_json_primary_key
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key::Key
    - rnp_ffi_t::secring::add_key
    - auto::generate
    - parse_keygen_primary
    - rnp::Key::fp
    - rnp_ffi_t::pubring::add_key
    - rnp::Key::protect
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t gen_json_primary_key(rnp_ffi_t                    ffi,\n
      \                    nlohmann::ordered_json &     jsoparams,\n                     rnp_key_protection_params_t
      &prot,\n                     pgp::Fingerprint &           fp,\n                     bool
      \                        protect)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: parse_keygen_sub
      Src: /src/rnp/src/lib/rnp.cpp:4748,1
    - Dst: rnp::Key::Key
      Src: /src/rnp/src/lib/rnp.cpp:4756,1
    - Dst: rnp::Key::Key
      Src: /src/rnp/src/lib/rnp.cpp:4757,1
    - Dst: auto::generate
      Src: /src/rnp/src/lib/rnp.cpp:4758,1
    - Dst: rnp_ffi_t::pubring::add_key
      Src: /src/rnp/src/lib/rnp.cpp:4762,1
    - Dst: rnp::Key::protect
      Src: /src/rnp/src/lib/rnp.cpp:4766,1
    - Dst: rnp_ffi_t::secring::add_key
      Src: /src/rnp/src/lib/rnp.cpp:4769,1
    - Dst: rnp::Key::fp
      Src: /src/rnp/src/lib/rnp.cpp:4772,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 5
    argNames:
    - ffi
    - jsoparams
    - '              prim_pub'
    - '              prim_sec'
    - '      fp'
    argTypes:
    - rnp_ffi_t
    - nlohmann::ordered_json
    - rnp::Key
    - rnp::Key
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4774
      start: 4737
    functionDepth: 6
    functionLinenumber: 4737
    functionLinenumberEnd: 4774
    functionName: gen_json_subkey
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp::Key::Key
    - rnp_ffi_t::secring::add_key
    - auto::generate
    - rnp::Key::fp
    - rnp_ffi_t::pubring::add_key
    - parse_keygen_sub
    - rnp::Key::protect
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t gen_json_subkey(rnp_ffi_t               ffi,\n                nlohmann::ordered_json
      &jsoparams,\n                rnp::Key &              prim_pub,\n                rnp::Key
      &              prim_sec,\n                pgp::Fingerprint &      fp)"
  - BBCount: 67
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/lib/rnp.cpp:4787,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:4789,1
    - Dst: what
      Src: /src/rnp/src/lib/rnp.cpp:4789,1
    - Dst: nlohmann::ordered_json::items
      Src: /src/rnp/src/lib/rnp.cpp:4798,1
    - Dst: key
      Src: /src/rnp/src/lib/rnp.cpp:4799,1
    - Dst: value
      Src: /src/rnp/src/lib/rnp.cpp:4800,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/lib/rnp.cpp:4803,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/lib/rnp.cpp:4805,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:4809,1
    - Dst: c_str
      Src: /src/rnp/src/lib/rnp.cpp:4809,1
    - Dst: pgp::Fingerprint::Fingerprint
      Src: /src/rnp/src/lib/rnp.cpp:4829,1
    - Dst: gen_json_primary_key
      Src: /src/rnp/src/lib/rnp.cpp:4831,1
    - Dst: pubring::get_key
      Src: /src/rnp/src/lib/rnp.cpp:4835,1
    - Dst: gen_json_grips
      Src: /src/rnp/src/lib/rnp.cpp:4837,1
    - Dst: secring::get_key
      Src: /src/rnp/src/lib/rnp.cpp:4842,1
    - Dst: rnp::json::get_obj
      Src: /src/rnp/src/lib/rnp.cpp:4845,1
    - Dst: nlohmann::ordered_json*::size
      Src: /src/rnp/src/lib/rnp.cpp:4846,1
    - Dst: nlohmann::ordered_json*::items
      Src: /src/rnp/src/lib/rnp.cpp:4851,1
    - Dst: value
      Src: /src/rnp/src/lib/rnp.cpp:4852,1
    - Dst: key
      Src: /src/rnp/src/lib/rnp.cpp:4855,1
    - Dst: value
      Src: /src/rnp/src/lib/rnp.cpp:4856,1
    - Dst: std::string::empty
      Src: /src/rnp/src/lib/rnp.cpp:4858,1
    - Dst: std::string::empty
      Src: /src/rnp/src/lib/rnp.cpp:4858,1
    - Dst: rnp::KeySearch::create
      Src: /src/rnp/src/lib/rnp.cpp:4862,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/rnp.cpp:4862,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/rnp.cpp:4862,1
    - Dst: pubring::search
      Src: /src/rnp/src/lib/rnp.cpp:4867,1
    - Dst: secring::search
      Src: /src/rnp/src/lib/rnp.cpp:4868,1
    - Dst: nlohmann::ordered_json*::erase
      Src: /src/rnp/src/lib/rnp.cpp:4872,1
    - Dst: gen_json_subkey
      Src: /src/rnp/src/lib/rnp.cpp:4876,1
    - Dst: pubring::remove_key
      Src: /src/rnp/src/lib/rnp.cpp:4880,1
    - Dst: secring::remove_key
      Src: /src/rnp/src/lib/rnp.cpp:4881,1
    - Dst: rnp::Key*::protect
      Src: /src/rnp/src/lib/rnp.cpp:4887,1
    - Dst: pubring::remove_key
      Src: /src/rnp/src/lib/rnp.cpp:4888,1
    - Dst: secring::remove_key
      Src: /src/rnp/src/lib/rnp.cpp:4889,1
    - Dst: pubring::get_key
      Src: /src/rnp/src/lib/rnp.cpp:4893,1
    - Dst: gen_json_grips
      Src: /src/rnp/src/lib/rnp.cpp:4894,1
    - Dst: rnp_op_generate_create
      Src: /src/rnp/src/lib/rnp.cpp:4918,1
    - Dst: rnp_op_generate_set_bits
      Src: /src/rnp/src/lib/rnp.cpp:4921,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/lib/rnp.cpp:4924,1
    - Dst: rnp_op_generate_set_userid
      Src: /src/rnp/src/lib/rnp.cpp:4927,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/lib/rnp.cpp:4930,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/lib/rnp.cpp:4933,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/lib/rnp.cpp:4936,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/lib/rnp.cpp:4939,1
    - Dst: rnp_op_generate_subkey_create
      Src: /src/rnp/src/lib/rnp.cpp:4946,1
    - Dst: rnp_op_generate_set_bits
      Src: /src/rnp/src/lib/rnp.cpp:4949,1
    - Dst: rnp_op_generate_set_curve
      Src: /src/rnp/src/lib/rnp.cpp:4952,1
    - Dst: rnp_op_generate_set_protection_password
      Src: /src/rnp/src/lib/rnp.cpp:4955,1
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/lib/rnp.cpp:4958,1
    - Dst: rnp_op_generate_t::keygen::alg
      Src: /src/rnp/src/lib/rnp.cpp:4958,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/lib/rnp.cpp:4959,1
    - Dst: rnp_op_generate_add_usage
      Src: /src/rnp/src/lib/rnp.cpp:4963,1
    - Dst: rnp_op_generate_execute
      Src: /src/rnp/src/lib/rnp.cpp:4967,1
    - Dst: rnp_op_generate_get_key
      Src: /src/rnp/src/lib/rnp.cpp:4970,1
    - Dst: rnp_key_protect
      Src: /src/rnp/src/lib/rnp.cpp:4977,1
    - Dst: rnp_key_remove
      Src: /src/rnp/src/lib/rnp.cpp:4980,1
    - Dst: rnp_key_remove
      Src: /src/rnp/src/lib/rnp.cpp:4983,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/lib/rnp.cpp:4988,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/lib/rnp.cpp:4990,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/lib/rnp.cpp:4991,1
    - Dst: rnp_op_generate_destroy
      Src: /src/rnp/src/lib/rnp.cpp:4992,1
    - Dst: rnp_generate_key_ex
      Src: /src/rnp/src/lib/rnp.cpp:5005,1
    - Dst: rnp_generate_key_ex
      Src: /src/rnp/src/lib/rnp.cpp:5026,1
    - Dst: rnp_generate_key_ex
      Src: /src/rnp/src/lib/rnp.cpp:5046,1
    - Dst: rnp_generate_key_ex
      Src: /src/rnp/src/lib/rnp.cpp:5057,1
    - Dst: rnp_generate_key_ex
      Src: /src/rnp/src/lib/rnp.cpp:5076,1
    - Dst: pgp_key_flags_t
      Src: /src/rnp/src/lib/rnp.cpp:5086,1
    - Dst: pgp_key_flags_t
      Src: /src/rnp/src/lib/rnp.cpp:5090,1
    - Dst: pgp_key_flags_t
      Src: /src/rnp/src/lib/rnp.cpp:5092,1
    - Dst: pgp_key_flags_t
      Src: /src/rnp/src/lib/rnp.cpp:5099,1
    - Dst: pgp_key_flags_t
      Src: /src/rnp/src/lib/rnp.cpp:5138,1
    CyclomaticComplexity: 77
    EdgeCount: 77
    ICount: 231
    argCount: 2
    argNames:
    - alg
    - subkey
    argTypes:
    - pgp_pubkey_alg_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5143
      start: 4776
    functionDepth: 7
    functionLinenumber: 4776
    functionLinenumberEnd: 5143
    functionName: rnp_op_generate_st::default_key_flags
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp_op_generate_execute
    - secring::remove_key
    - rnp::json::get_obj
    - gen_json_subkey
    - pgp_pk_alg_capabilities
    - rnp_op_generate_set_userid
    - pgp_key_flags_t
    - rnp_key_protect
    - pubring::get_key
    - nlohmann::ordered_json*::size
    - rnp_key_remove
    - gen_json_primary_key
    - rnp::str_case_eq
    - rnp_op_generate_set_bits
    - rnp_op_generate_get_key
    - nlohmann::ordered_json*::items
    - key
    - pgp::pkt::Signature::parse
    - secring::get_key
    - rnp_key_handle_destroy
    - secring::search
    - value
    - rnp::Key*::protect
    - pubring::search
    - std::string::c_str
    - pgp::Fingerprint::Fingerprint
    - rnp_generate_key_ex
    - nlohmann::ordered_json::items
    - rnp_op_generate_subkey_create
    - rnp_op_generate_set_protection_password
    - std::string::empty
    - rnp::KeySearch::create
    - FFI_LOG
    - what
    - rnp_op_generate_add_usage
    - pubring::remove_key
    - rnp_op_generate_create
    - nlohmann::ordered_json*::erase
    - rnp_op_generate_set_curve
    - rnp_op_generate_destroy
    - gen_json_grips
    - c_str
    - rnp_op_generate_t::keygen::alg
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t rnp_op_generate_st::default_key_flags(pgp_pubkey_alg_t
      alg, bool subkey)
  - BBCount: 69
    BranchProfiles: []
    Callsites:
    - Dst: str_to_pubkey_alg
      Src: /src/rnp/src/lib/rnp.cpp:5158,1
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/lib/rnp.cpp:5162,1
    - Dst: rnp_op_generate_st::rnp_op_generate_st
      Src: /src/rnp/src/lib/rnp.cpp:5166,1
    - Dst: sec::usable_for
      Src: /src/rnp/src/lib/rnp.cpp:5186,1
    - Dst: str_to_pubkey_alg
      Src: /src/rnp/src/lib/rnp.cpp:5191,1
    - Dst: rnp_op_generate_st::rnp_op_generate_st
      Src: /src/rnp/src/lib/rnp.cpp:5195,1
    - Dst: dynamic_cast<pgp::BitsKeyParams *>
      Src: /src/rnp/src/lib/rnp.cpp:5207,1
    - Dst: keygen::key_params
      Src: /src/rnp/src/lib/rnp.cpp:5207,1
    - Dst: auto::set_bits
      Src: /src/rnp/src/lib/rnp.cpp:5211,1
    - Dst: str_to_hash_alg
      Src: /src/rnp/src/lib/rnp.cpp:5223,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:5224,1
    - Dst: keygen::set_hash
      Src: /src/rnp/src/lib/rnp.cpp:5227,1
    - Dst: keygen::alg
      Src: /src/rnp/src/lib/rnp.cpp:5238,1
    - Dst: dynamic_cast<pgp::DSAKeyParams &>
      Src: /src/rnp/src/lib/rnp.cpp:5241,1
    - Dst: keygen::key_params
      Src: /src/rnp/src/lib/rnp.cpp:5241,1
    - Dst: auto::set_qbits
      Src: /src/rnp/src/lib/rnp.cpp:5242,1
    - Dst: pk_alg_allows_custom_curve
      Src: /src/rnp/src/lib/rnp.cpp:5253,1
    - Dst: keygen::alg
      Src: /src/rnp/src/lib/rnp.cpp:5253,1
    - Dst: curve_str_to_type
      Src: /src/rnp/src/lib/rnp.cpp:5257,1
    - Dst: dynamic_cast<pgp::ECCKeyParams &>
      Src: /src/rnp/src/lib/rnp.cpp:5260,1
    - Dst: keygen::key_params
      Src: /src/rnp/src/lib/rnp.cpp:5260,1
    - Dst: auto::set_curve
      Src: /src/rnp/src/lib/rnp.cpp:5261,1
    - Dst: password::assign
      Src: /src/rnp/src/lib/rnp.cpp:5272,1
    - Dst: strlen
      Src: /src/rnp/src/lib/rnp.cpp:5272,1
    - Dst: str_to_cipher
      Src: /src/rnp/src/lib/rnp.cpp:5294,1
    - Dst: str_to_hash_alg
      Src: /src/rnp/src/lib/rnp.cpp:5307,1
    - Dst: str_to_cipher_mode
      Src: /src/rnp/src/lib/rnp.cpp:5320,1
    - Dst: str_to_key_flag
      Src: /src/rnp/src/lib/rnp.cpp:5345,1
    - Dst: pgp_pk_alg_capabilities
      Src: /src/rnp/src/lib/rnp.cpp:5348,1
    - Dst: keygen::alg
      Src: /src/rnp/src/lib/rnp.cpp:5348,1
    - Dst: strlen
      Src: /src/rnp/src/lib/rnp.cpp:5384,1
    - Dst: cert::prefs::hash_algs::clear
      Src: /src/rnp/src/lib/rnp.cpp:5416,1
    - Dst: str_to_hash_alg
      Src: /src/rnp/src/lib/rnp.cpp:5431,1
    - Dst: cert::prefs::add_hash_alg
      Src: /src/rnp/src/lib/rnp.cpp:5434,1
    - Dst: cert::prefs::z_algs::clear
      Src: /src/rnp/src/lib/rnp.cpp:5448,1
    - Dst: str_to_compression_alg
      Src: /src/rnp/src/lib/rnp.cpp:5463,1
    - Dst: cert::prefs::add_z_alg
      Src: /src/rnp/src/lib/rnp.cpp:5466,1
    - Dst: cert::prefs::symm_algs::clear
      Src: /src/rnp/src/lib/rnp.cpp:5480,1
    - Dst: str_to_cipher
      Src: /src/rnp/src/lib/rnp.cpp:5495,1
    - Dst: cert::prefs::add_symm_alg
      Src: /src/rnp/src/lib/rnp.cpp:5498,1
    - Dst: keygen::set_version
      Src: /src/rnp/src/lib/rnp.cpp:5524,1
    - Dst: rnp::Key::Key
      Src: /src/rnp/src/lib/rnp.cpp:5538,1
    - Dst: rnp::Key::Key
      Src: /src/rnp/src/lib/rnp.cpp:5539,1
    - Dst: keygen::generate
      Src: /src/rnp/src/lib/rnp.cpp:5543,1
    - Dst: keygen::generate
      Src: /src/rnp/src/lib/rnp.cpp:5548,1
    - Dst: ffi::pubring::add_key
      Src: /src/rnp/src/lib/rnp.cpp:5560,1
    - Dst: password::empty
      Src: /src/rnp/src/lib/rnp.cpp:5566,1
    - Dst: password::data
      Src: /src/rnp/src/lib/rnp.cpp:5567,1
    - Dst: rnp::Key::protect
      Src: /src/rnp/src/lib/rnp.cpp:5571,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:5572,1
    - Dst: ffi::secring::add_key
      Src: /src/rnp/src/lib/rnp.cpp:5578,1
    - Dst: password::clear
      Src: /src/rnp/src/lib/rnp.cpp:5584,1
    - Dst: ffi::pubring::remove_key
      Src: /src/rnp/src/lib/rnp.cpp:5586,1
    - Dst: ffi::secring::remove_key
      Src: /src/rnp/src/lib/rnp.cpp:5590,1
    - Dst: rnp_key_handle_st::rnp_key_handle_st
      Src: /src/rnp/src/lib/rnp.cpp:5607,1
    - Dst: free
      Src: /src/rnp/src/lib/rnp.cpp:5631,1
    CyclomaticComplexity: 97
    EdgeCount: 97
    ICount: 303
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5632
      start: 5145
    functionDepth: 2
    functionLinenumber: 5145
    functionLinenumberEnd: 5632
    functionName: rnp_buffer_destroy
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 114
    functionsReached:
    - auto::set_qbits
    - auto::set_curve
    - dynamic_cast<pgp::ECCKeyParams &>
    - password::assign
    - pgp_pk_alg_capabilities
    - str_to_hash_alg
    - strlen
    - free
    - cert::prefs::add_hash_alg
    - ffi::secring::add_key
    - keygen::alg
    - curve_str_to_type
    - sec::usable_for
    - rnp::Key::protect
    - keygen::set_hash
    - rnp_key_handle_st::rnp_key_handle_st
    - keygen::key_params
    - password::data
    - password::empty
    - cert::prefs::symm_algs::clear
    - rnp_op_generate_st::rnp_op_generate_st
    - str_to_pubkey_alg
    - dynamic_cast<pgp::BitsKeyParams *>
    - password::clear
    - cert::prefs::hash_algs::clear
    - str_to_cipher
    - ffi::secring::remove_key
    - FFI_LOG
    - rnp::Key::Key
    - dynamic_cast<pgp::DSAKeyParams &>
    - str_to_compression_alg
    - cert::prefs::z_algs::clear
    - str_to_key_flag
    - keygen::set_version
    - ffi::pubring::add_key
    - cert::prefs::add_symm_alg
    - cert::prefs::add_z_alg
    - pk_alg_allows_custom_curve
    - str_to_cipher_mode
    - auto::set_bits
    - keygen::generate
    - ffi::pubring::remove_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t rnp_buffer_destroy(void *ptr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: secure_clear
      Src: /src/rnp/src/lib/rnp.cpp:5638,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5640
      start: 5634
    functionDepth: 0
    functionLinenumber: 5634
    functionLinenumberEnd: 5640
    functionName: rnp_buffer_clear
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 7
    functionsReached:
    - secure_clear
    linkageType: ''
    returnType: void
    signature: void rnp_buffer_clear(void *ptr, size_t size)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_handle_t::sec::fp
      Src: /src/rnp/src/lib/rnp.cpp:5647,1
    - Dst: rnp_key_handle_t::ffi::key_provider::request_key
      Src: /src/rnp/src/lib/rnp.cpp:5648,1
    - Dst: rnp_key_handle_t::sec::keyid
      Src: /src/rnp/src/lib/rnp.cpp:5654,1
    - Dst: rnp_key_handle_t::ffi::key_provider::request_key
      Src: /src/rnp/src/lib/rnp.cpp:5655,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - handle
    argTypes:
    - rnp_key_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5658
      start: 5642
    functionDepth: 0
    functionLinenumber: 5642
    functionLinenumberEnd: 5658
    functionName: get_key_require_public
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 1
    functionsReached:
    - rnp_key_handle_t::sec::fp
    - rnp_key_handle_t::ffi::key_provider::request_key
    - rnp_key_handle_t::sec::keyid
    linkageType: ''
    returnType: rnp::Key
    signature: 'rnp::Key *

      get_key_require_public(rnp_key_handle_t handle)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_key_require_public
      Src: /src/rnp/src/lib/rnp.cpp:5663,1
    - Dst: get_key_require_secret
      Src: /src/rnp/src/lib/rnp.cpp:5664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - handle
    argTypes:
    - rnp_key_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5665
      start: 5660
    functionDepth: 1
    functionLinenumber: 5660
    functionLinenumberEnd: 5665
    functionName: get_key_prefer_public
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 3
    functionsReached:
    - get_key_require_secret
    - get_key_require_public
    linkageType: ''
    returnType: rnp::Key
    signature: 'rnp::Key *

      get_key_prefer_public(rnp_key_handle_t handle)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_handle_t::pub::fp
      Src: /src/rnp/src/lib/rnp.cpp:5672,1
    - Dst: rnp_key_handle_t::ffi::key_provider::request_key
      Src: /src/rnp/src/lib/rnp.cpp:5673,1
    - Dst: rnp_key_handle_t::pub::keyid
      Src: /src/rnp/src/lib/rnp.cpp:5679,1
    - Dst: rnp_key_handle_t::ffi::key_provider::request_key
      Src: /src/rnp/src/lib/rnp.cpp:5680,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - handle
    argTypes:
    - rnp_key_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5683
      start: 5667
    functionDepth: 0
    functionLinenumber: 5667
    functionLinenumberEnd: 5683
    functionName: get_key_require_secret
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 4
    functionsReached:
    - rnp_key_handle_t::ffi::key_provider::request_key
    - rnp_key_handle_t::pub::fp
    - rnp_key_handle_t::pub::keyid
    linkageType: ''
    returnType: rnp::Key
    signature: 'rnp::Key *

      get_key_require_secret(rnp_key_handle_t handle)'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key*::uid_count
      Src: /src/rnp/src/lib/rnp.cpp:5691,1
    - Dst: ret_str_value
      Src: /src/rnp/src/lib/rnp.cpp:5694,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/lib/rnp.cpp:5694,1
    - Dst: c_str
      Src: /src/rnp/src/lib/rnp.cpp:5694,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - key
    - idx
    - uid
    argTypes:
    - rnp::Key*
    - size_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5695
      start: 5685
    functionDepth: 1
    functionLinenumber: 5685
    functionLinenumberEnd: 5695
    functionName: key_get_uid_at
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 14
    functionsReached:
    - rnp::Key*::uid_count
    - ret_str_value
    - c_str
    - rnp::Key*::get_uid
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t key_get_uid_at(rnp::Key *key, size_t idx, char **uid)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: str_to_hash_alg
      Src: /src/rnp/src/lib/rnp.cpp:5713,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:5714,1
    - Dst: strlen
      Src: /src/rnp/src/lib/rnp.cpp:5718,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:5719,1
    - Dst: get_key_require_secret
      Src: /src/rnp/src/lib/rnp.cpp:5729,1
    - Dst: auto*::usable_for
      Src: /src/rnp/src/lib/rnp.cpp:5730,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:5733,1
    - Dst: auto*::is_locked
      Src: /src/rnp/src/lib/rnp.cpp:5738,1
    - Dst: auto*::unlock
      Src: /src/rnp/src/lib/rnp.cpp:5739,1
    - Dst: auto*::add_uid_cert
      Src: /src/rnp/src/lib/rnp.cpp:5743,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:5755,1
    - Dst: auto*::has_primary_uid
      Src: /src/rnp/src/lib/rnp.cpp:5756,1
    - Dst: key_get_uid_at
      Src: /src/rnp/src/lib/rnp.cpp:5757,1
    - Dst: auto*::get_primary_uid
      Src: /src/rnp/src/lib/rnp.cpp:5757,1
    - Dst: auto*::uid_count
      Src: /src/rnp/src/lib/rnp.cpp:5759,1
    - Dst: auto*::get_uid
      Src: /src/rnp/src/lib/rnp.cpp:5760,1
    - Dst: key_get_uid_at
      Src: /src/rnp/src/lib/rnp.cpp:5763,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:5776,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:5788,1
    - Dst: key_get_uid_at
      Src: /src/rnp/src/lib/rnp.cpp:5789,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:5800,1
    - Dst: auto*::uid_count
      Src: /src/rnp/src/lib/rnp.cpp:5805,1
    - Dst: malloc
      Src: /src/rnp/src/lib/rnp.cpp:5809,1
    - Dst: rnp_uid_handle_t::key::get_uid
      Src: /src/rnp/src/lib/rnp.cpp:5827,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 78
    argCount: 1
    argNames:
    - uid
    argTypes:
    - rnp_uid_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5828
      start: 5697
    functionDepth: 2
    functionLinenumber: 5697
    functionLinenumberEnd: 5828
    functionName: rnp_uid_handle_get_uid
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - auto*::has_primary_uid
    - rnp_uid_handle_t::key::get_uid
    - auto*::get_uid
    - auto*::usable_for
    - auto*::is_locked
    - malloc
    - get_key_prefer_public
    - key_get_uid_at
    - auto*::uid_count
    - auto*::unlock
    - str_to_hash_alg
    - get_key_require_secret
    - strlen
    - auto*::add_uid_cert
    - auto*::get_primary_uid
    - FFI_LOG
    linkageType: ''
    returnType: rnp_result_t
    signature: 'rnp_result_t *

      rnp_uid_handle_get_uid(rnp_uid_handle_t uid)'
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: rnp_uid_handle_get_uid
      Src: /src/rnp/src/lib/rnp.cpp:5836,1
    - Dst: rnp_uid_handle_get_uid
      Src: /src/rnp/src/lib/rnp.cpp:5859,1
    - Dst: malloc
      Src: /src/rnp/src/lib/rnp.cpp:5863,1
    - Dst: auto::pkt::uid::size
      Src: /src/rnp/src/lib/rnp.cpp:5863,1
    - Dst: auto::pkt::uid::size
      Src: /src/rnp/src/lib/rnp.cpp:5864,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/rnp.cpp:5867,1
    - Dst: auto::pkt::uid::data
      Src: /src/rnp/src/lib/rnp.cpp:5867,1
    - Dst: auto::pkt::uid::size
      Src: /src/rnp/src/lib/rnp.cpp:5867,1
    - Dst: auto::pkt::uid::size
      Src: /src/rnp/src/lib/rnp.cpp:5868,1
    - Dst: rnp_uid_handle_get_uid
      Src: /src/rnp/src/lib/rnp.cpp:5879,1
    - Dst: key::has_primary_uid
      Src: /src/rnp/src/lib/rnp.cpp:5883,1
    - Dst: key::get_primary_uid
      Src: /src/rnp/src/lib/rnp.cpp:5883,1
    - Dst: rnp_uid_handle_get_uid
      Src: /src/rnp/src/lib/rnp.cpp:5894,1
    - Dst: rnp_signature_handle_st::rnp_signature_handle_st
      Src: /src/rnp/src/lib/rnp.cpp:5910,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:5913,1
    - Dst: what
      Src: /src/rnp/src/lib/rnp.cpp:5913,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 57
    argCount: 4
    argNames:
    - ffi
    - key
    - subsig
    - sig
    argTypes:
    - rnp_ffi_t
    - rnp::Key*
    - rnp::Signature*
    - rnp_signature_handle_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5918
      start: 5830
    functionDepth: 3
    functionLinenumber: 5830
    functionLinenumberEnd: 5918
    functionName: rnp_key_return_signature
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - what
    - malloc
    - rnp_uid_handle_get_uid
    - memcpy
    - rnp_signature_handle_st::rnp_signature_handle_st
    - auto::pkt::uid::data
    - key::has_primary_uid
    - auto::pkt::uid::size
    - key::get_primary_uid
    - FFI_LOG
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t rnp_key_return_signature(rnp_ffi_t               ffi,\n
      \                        rnp::Key *              key,\n                         rnp::Signature
      *        subsig,\n                         rnp_signature_handle_t *sig)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:5926,1
    - Dst: auto*::keysig_count
      Src: /src/rnp/src/lib/rnp.cpp:5930,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:5942,1
    - Dst: auto*::keysig_count
      Src: /src/rnp/src/lib/rnp.cpp:5943,1
    - Dst: rnp_key_return_signature
      Src: /src/rnp/src/lib/rnp.cpp:5946,1
    - Dst: auto*::get_keysig
      Src: /src/rnp/src/lib/rnp.cpp:5946,1
    - Dst: assert
      Src: /src/rnp/src/lib/rnp.cpp:5963,1
    - Dst: is_primary
      Src: /src/rnp/src/lib/rnp.cpp:5964,1
    - Dst: is_primary
      Src: /src/rnp/src/lib/rnp.cpp:5964,1
    - Dst: assert
      Src: /src/rnp/src/lib/rnp.cpp:5969,1
    - Dst: is_primary
      Src: /src/rnp/src/lib/rnp.cpp:5970,1
    - Dst: assert
      Src: /src/rnp/src/lib/rnp.cpp:5975,1
    - Dst: is_primary
      Src: /src/rnp/src/lib/rnp.cpp:5976,1
    - Dst: pgp::pkt::Signature::Signature
      Src: /src/rnp/src/lib/rnp.cpp:5983,1
    - Dst: sign_init
      Src: /src/rnp/src/lib/rnp.cpp:5984,1
    - Dst: rnp_ffi_t::rng
      Src: /src/rnp/src/lib/rnp.cpp:5985,1
    - Dst: rnp_ffi_t::context::time
      Src: /src/rnp/src/lib/rnp.cpp:5985,1
    - Dst: version
      Src: /src/rnp/src/lib/rnp.cpp:5985,1
    - Dst: pgp::pkt::Signature::set_type
      Src: /src/rnp/src/lib/rnp.cpp:5986,1
    - Dst: rnp::Signature::Signature
      Src: /src/rnp/src/lib/rnp.cpp:5987,1
    - Dst: rnp_signature_handle_st::rnp_signature_handle_st
      Src: /src/rnp/src/lib/rnp.cpp:5989,1
    - Dst: std::unique_ptr::release
      Src: /src/rnp/src/lib/rnp.cpp:5990,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 49
    argCount: 6
    argNames:
    - ffi
    - '              sigkey'
    - '              tgkey'
    - uid
    - sig
    - type
    argTypes:
    - rnp_ffi_t
    - rnp::Key
    - rnp::Key
    - uint32_t
    - rnp_signature_handle_t
    - pgp_sig_type_t
    assertStmts:
    - condition: (uid == rnp::UserID::None)
      pos:
        line_end: 5974
        line_start: 5974
        source_file: /src/rnp/src/lib/rnp.cpp
    - condition: (uid == rnp::UserID::None)
      pos:
        line_end: 5968
        line_start: 5968
        source_file: /src/rnp/src/lib/rnp.cpp
    - condition: (uid != rnp::UserID::None)
      pos:
        line_end: 5962
        line_start: 5962
        source_file: /src/rnp/src/lib/rnp.cpp
    constantsTouched: []
    func_position:
      end: 5992
      start: 5920
    functionDepth: 4
    functionLinenumber: 5920
    functionLinenumberEnd: 5992
    functionName: create_key_signature
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - sign_init
    - pgp::pkt::Signature::Signature
    - rnp::Signature::Signature
    - rnp_signature_handle_st::rnp_signature_handle_st
    - std::unique_ptr::release
    - auto*::keysig_count
    - rnp_key_return_signature
    - get_key_prefer_public
    - rnp_ffi_t::rng
    - assert
    - rnp_ffi_t::context::time
    - version
    - auto*::get_keysig
    - pgp::pkt::Signature::set_type
    - is_primary
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t create_key_signature(rnp_ffi_t               ffi,\n                     rnp::Key
      &              sigkey,\n                     rnp::Key &              tgkey,\n
      \                    uint32_t                uid,\n                     rnp_signature_handle_t
      &sig,\n                     pgp_sig_type_t          type)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_key_require_secret
      Src: /src/rnp/src/lib/rnp.cpp:6006,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:6007,1
    - Dst: create_key_signature
      Src: /src/rnp/src/lib/rnp.cpp:6011,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 4
    argNames:
    - signer
    - target
    - sig
    - type
    argTypes:
    - rnp_key_handle_t
    - rnp_key_handle_t
    - rnp_signature_handle_t*
    - pgp_sig_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6012
      start: 5994
    functionDepth: 2
    functionLinenumber: 5994
    functionLinenumberEnd: 6012
    functionName: create_key_signature
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 1
    functionsReached:
    - get_key_prefer_public
    - get_key_require_secret
    - create_key_signature
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t create_key_signature(rnp_key_handle_t        signer,\n
      \                    rnp_key_handle_t        target,\n                     rnp_signature_handle_t
      *sig,\n                     pgp_sig_type_t          type)"
  - BBCount: 141
    BranchProfiles: []
    Callsites:
    - Dst: create_key_signature
      Src: /src/rnp/src/lib/rnp.cpp:6019,1
    - Dst: get_key_require_secret
      Src: /src/rnp/src/lib/rnp.cpp:6032,1
    - Dst: auto*::fp
      Src: /src/rnp/src/lib/rnp.cpp:6039,1
    - Dst: auto*::fp
      Src: /src/rnp/src/lib/rnp.cpp:6039,1
    - Dst: static_cast<pgp_sig_type_t>
      Src: /src/rnp/src/lib/rnp.cpp:6041,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:6041,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:6043,1
    - Dst: create_key_signature
      Src: /src/rnp/src/lib/rnp.cpp:6046,1
    - Dst: create_key_signature
      Src: /src/rnp/src/lib/rnp.cpp:6055,1
    - Dst: str_to_hash_alg
      Src: /src/rnp/src/lib/rnp.cpp:6068,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:6069,1
    - Dst: sig::sig::set_creation
      Src: /src/rnp/src/lib/rnp.cpp:6085,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:6100,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:6104,1
    - Dst: sig::sig::set_key_flags
      Src: /src/rnp/src/lib/rnp.cpp:6107,1
    - Dst: sig::sig::set_key_expiration
      Src: /src/rnp/src/lib/rnp.cpp:6121,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:6136,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:6138,1
    - Dst: sig::sig::set_key_features
      Src: /src/rnp/src/lib/rnp.cpp:6141,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:6155,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:6157,1
    - Dst: sig::sig::preferred_symm_algs
      Src: /src/rnp/src/lib/rnp.cpp:6160,1
    - Dst: auto::push_back
      Src: /src/rnp/src/lib/rnp.cpp:6161,1
    - Dst: sig::sig::set_preferred_symm_algs
      Src: /src/rnp/src/lib/rnp.cpp:6162,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:6176,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:6178,1
    - Dst: sig::sig::preferred_hash_algs
      Src: /src/rnp/src/lib/rnp.cpp:6181,1
    - Dst: auto::push_back
      Src: /src/rnp/src/lib/rnp.cpp:6182,1
    - Dst: sig::sig::set_preferred_hash_algs
      Src: /src/rnp/src/lib/rnp.cpp:6183,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:6197,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:6199,1
    - Dst: sig::sig::preferred_z_algs
      Src: /src/rnp/src/lib/rnp.cpp:6202,1
    - Dst: auto::push_back
      Src: /src/rnp/src/lib/rnp.cpp:6203,1
    - Dst: sig::sig::set_preferred_z_algs
      Src: /src/rnp/src/lib/rnp.cpp:6204,1
    - Dst: sig::sig::set_primary_uid
      Src: /src/rnp/src/lib/rnp.cpp:6218,1
    - Dst: sig::sig::set_key_server
      Src: /src/rnp/src/lib/rnp.cpp:6235,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:6250,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:6252,1
    - Dst: sig::sig::set_key_server_prefs
      Src: /src/rnp/src/lib/rnp.cpp:6255,1
    - Dst: rnp::Revocation::Revocation
      Src: /src/rnp/src/lib/rnp.cpp:6268,1
    - Dst: fill_revocation_reason
      Src: /src/rnp/src/lib/rnp.cpp:6269,1
    - Dst: sig::sig::set_revocation_reason
      Src: /src/rnp/src/lib/rnp.cpp:6272,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:6288,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:6290,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:6293,1
    - Dst: sig::sig::set_revoker
      Src: /src/rnp/src/lib/rnp.cpp:6297,1
    - Dst: sig::sig::set_trust
      Src: /src/rnp/src/lib/rnp.cpp:6311,1
    - Dst: ffi::secring::get_signer
      Src: /src/rnp/src/lib/rnp.cpp:6327,1
    - Dst: auto::is_locked
      Src: /src/rnp/src/lib/rnp.cpp:6333,1
    - Dst: auto::unlock
      Src: /src/rnp/src/lib/rnp.cpp:6333,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:6334,1
    - Dst: auto::type
      Src: /src/rnp/src/lib/rnp.cpp:6340,1
    - Dst: assert
      Src: /src/rnp/src/lib/rnp.cpp:6345,1
    - Dst: assert
      Src: /src/rnp/src/lib/rnp.cpp:6346,1
    - Dst: key::uid_count
      Src: /src/rnp/src/lib/rnp.cpp:6346,1
    - Dst: key::uid_count
      Src: /src/rnp/src/lib/rnp.cpp:6347,1
    - Dst: key::get_uid
      Src: /src/rnp/src/lib/rnp.cpp:6350,1
    - Dst: auto::sign_cert
      Src: /src/rnp/src/lib/rnp.cpp:6351,1
    - Dst: key::pkt
      Src: /src/rnp/src/lib/rnp.cpp:6351,1
    - Dst: auto::sign_direct
      Src: /src/rnp/src/lib/rnp.cpp:6356,1
    - Dst: key::pkt
      Src: /src/rnp/src/lib/rnp.cpp:6356,1
    - Dst: auto::sign_direct
      Src: /src/rnp/src/lib/rnp.cpp:6360,1
    - Dst: key::pkt
      Src: /src/rnp/src/lib/rnp.cpp:6360,1
    - Dst: auto::sign_binding
      Src: /src/rnp/src/lib/rnp.cpp:6364,1
    - Dst: key::pkt
      Src: /src/rnp/src/lib/rnp.cpp:6364,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:6368,1
    - Dst: ffi::secring::add_key_sig
      Src: /src/rnp/src/lib/rnp.cpp:6372,1
    - Dst: key::fp
      Src: /src/rnp/src/lib/rnp.cpp:6372,1
    - Dst: ffi::pubring::add_key_sig
      Src: /src/rnp/src/lib/rnp.cpp:6373,1
    - Dst: key::fp
      Src: /src/rnp/src/lib/rnp.cpp:6373,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:6394,1
    - Dst: auto*::revoker_count
      Src: /src/rnp/src/lib/rnp.cpp:6398,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:6409,1
    - Dst: auto*::revoker_count
      Src: /src/rnp/src/lib/rnp.cpp:6410,1
    - Dst: ret_fingerprint
      Src: /src/rnp/src/lib/rnp.cpp:6413,1
    - Dst: auto*::get_revoker
      Src: /src/rnp/src/lib/rnp.cpp:6413,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:6423,1
    - Dst: auto*::revoked
      Src: /src/rnp/src/lib/rnp.cpp:6427,1
    - Dst: auto*::has_sig
      Src: /src/rnp/src/lib/rnp.cpp:6431,1
    - Dst: auto*::revocation
      Src: /src/rnp/src/lib/rnp.cpp:6431,1
    - Dst: rnp_key_return_signature
      Src: /src/rnp/src/lib/rnp.cpp:6434,1
    - Dst: auto*::get_sig
      Src: /src/rnp/src/lib/rnp.cpp:6435,1
    - Dst: auto*::revocation
      Src: /src/rnp/src/lib/rnp.cpp:6435,1
    - Dst: key::get_uid
      Src: /src/rnp/src/lib/rnp.cpp:6448,1
    - Dst: key::get_uid
      Src: /src/rnp/src/lib/rnp.cpp:6462,1
    - Dst: auto::sig_count
      Src: /src/rnp/src/lib/rnp.cpp:6463,1
    - Dst: auto::get_sig
      Src: /src/rnp/src/lib/rnp.cpp:6466,1
    - Dst: key::has_sig
      Src: /src/rnp/src/lib/rnp.cpp:6467,1
    - Dst: rnp_key_return_signature
      Src: /src/rnp/src/lib/rnp.cpp:6470,1
    - Dst: key::get_sig
      Src: /src/rnp/src/lib/rnp.cpp:6471,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:6484,1
    - Dst: sig::sig::type
      Src: /src/rnp/src/lib/rnp.cpp:6484,1
    - Dst: ret_str_value
      Src: /src/rnp/src/lib/rnp.cpp:6485,1
    - Dst: get_map_value
      Src: /src/rnp/src/lib/rnp.cpp:6498,1
    - Dst: get_map_value
      Src: /src/rnp/src/lib/rnp.cpp:6511,1
    - Dst: sig::sig::creation
      Src: /src/rnp/src/lib/rnp.cpp:6524,1
    - Dst: sig::sig::subpkts::size
      Src: /src/rnp/src/lib/rnp.cpp:6535,1
    - Dst: sig::sig::subpkts::size
      Src: /src/rnp/src/lib/rnp.cpp:6548,1
    - Dst: rnp_sig_subpacket_st::rnp_sig_subpacket_st
      Src: /src/rnp/src/lib/rnp.cpp:6551,1
    - Dst: sig::sig::find_subpkt
      Src: /src/rnp/src/lib/rnp.cpp:6566,1
    - Dst: rnp_signature_subpacket_at
      Src: /src/rnp/src/lib/rnp.cpp:6567,1
    - Dst: sub::raw_type
      Src: /src/rnp/src/lib/rnp.cpp:6581,1
    - Dst: sub::hashed
      Src: /src/rnp/src/lib/rnp.cpp:6584,1
    - Dst: sub::critical
      Src: /src/rnp/src/lib/rnp.cpp:6587,1
    - Dst: sub::data
      Src: /src/rnp/src/lib/rnp.cpp:6599,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/rnp.cpp:6600,1
    - Dst: ret_vec_value
      Src: /src/rnp/src/lib/rnp.cpp:6603,1
    - Dst: sig::sig::expiration
      Src: /src/rnp/src/lib/rnp.cpp:6624,1
    - Dst: sig::sig::key_get_features
      Src: /src/rnp/src/lib/rnp.cpp:6638,1
    - Dst: sig::sig::preferred_symm_algs
      Src: /src/rnp/src/lib/rnp.cpp:6652,1
    - Dst: sig::sig::preferred_symm_algs
      Src: /src/rnp/src/lib/rnp.cpp:6666,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/rnp.cpp:6667,1
    - Dst: get_map_value
      Src: /src/rnp/src/lib/rnp.cpp:6670,1
    - Dst: sig::sig::preferred_hash_algs
      Src: /src/rnp/src/lib/rnp.cpp:6683,1
    - Dst: sig::sig::preferred_hash_algs
      Src: /src/rnp/src/lib/rnp.cpp:6697,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/rnp.cpp:6698,1
    - Dst: get_map_value
      Src: /src/rnp/src/lib/rnp.cpp:6701,1
    - Dst: sig::sig::preferred_z_algs
      Src: /src/rnp/src/lib/rnp.cpp:6714,1
    - Dst: sig::sig::preferred_z_algs
      Src: /src/rnp/src/lib/rnp.cpp:6728,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/rnp.cpp:6729,1
    - Dst: get_map_value
      Src: /src/rnp/src/lib/rnp.cpp:6732,1
    - Dst: sig::sig::key_flags
      Src: /src/rnp/src/lib/rnp.cpp:6745,1
    - Dst: sig::sig::key_expiration
      Src: /src/rnp/src/lib/rnp.cpp:6759,1
    - Dst: sig::sig::primary_uid
      Src: /src/rnp/src/lib/rnp.cpp:6773,1
    - Dst: ret_str_value
      Src: /src/rnp/src/lib/rnp.cpp:6787,1
    - Dst: sig::sig::key_server
      Src: /src/rnp/src/lib/rnp.cpp:6787,1
    - Dst: sig::sig::key_server_prefs
      Src: /src/rnp/src/lib/rnp.cpp:6800,1
    - Dst: sig::sig::has_keyid
      Src: /src/rnp/src/lib/rnp.cpp:6814,1
    - Dst: ret_keyid
      Src: /src/rnp/src/lib/rnp.cpp:6818,1
    - Dst: sig::sig::keyid
      Src: /src/rnp/src/lib/rnp.cpp:6818,1
    - Dst: sig::sig::has_keyfp
      Src: /src/rnp/src/lib/rnp.cpp:6831,1
    - Dst: ret_fingerprint
      Src: /src/rnp/src/lib/rnp.cpp:6835,1
    - Dst: sig::sig::keyfp
      Src: /src/rnp/src/lib/rnp.cpp:6835,1
    - Dst: get_signer_handle
      Src: /src/rnp/src/lib/rnp.cpp:6845,1
    - Dst: auto::has_revoker
      Src: /src/rnp/src/lib/rnp.cpp:6857,1
    - Dst: ret_str_value
      Src: /src/rnp/src/lib/rnp.cpp:6858,1
    - Dst: ret_fingerprint
      Src: /src/rnp/src/lib/rnp.cpp:6860,1
    - Dst: auto::revoker
      Src: /src/rnp/src/lib/rnp.cpp:6860,1
    - Dst: auto::sig::sig::has_revocation_reason
      Src: /src/rnp/src/lib/rnp.cpp:6872,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:6873,1
    - Dst: auto::sig::sig::revocation_code
      Src: /src/rnp/src/lib/rnp.cpp:6873,1
    - Dst: auto::sig::sig::revocation_reason
      Src: /src/rnp/src/lib/rnp.cpp:6874,1
    - Dst: ret_str_value
      Src: /src/rnp/src/lib/rnp.cpp:6877,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/rnp.cpp:6877,1
    - Dst: ret_str_value
      Src: /src/rnp/src/lib/rnp.cpp:6883,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/rnp.cpp:6883,1
    - Dst: free
      Src: /src/rnp/src/lib/rnp.cpp:6886,1
    - Dst: auto::sig::sig::trust_level
      Src: /src/rnp/src/lib/rnp.cpp:6906,1
    - Dst: auto::sig::sig::trust_amount
      Src: /src/rnp/src/lib/rnp.cpp:6909,1
    - Dst: rnp::SigValidity::validated
      Src: /src/rnp/src/lib/rnp.cpp:6918,1
    - Dst: rnp::SigValidity::expired
      Src: /src/rnp/src/lib/rnp.cpp:6921,1
    - Dst: rnp::SigValidity::no_signer
      Src: /src/rnp/src/lib/rnp.cpp:6924,1
    - Dst: rnp::SigValidity::valid
      Src: /src/rnp/src/lib/rnp.cpp:6927,1
    CyclomaticComplexity: 180
    EdgeCount: 180
    ICount: 581
    argCount: 1
    argNames:
    - validity
    argTypes:
    - rnp::SigValidity
    assertStmts:
    - condition: (sig->sig->uid != rnp::UserID::None)
      pos:
        line_end: 6344
        line_start: 6344
        source_file: /src/rnp/src/lib/rnp.cpp
    - condition: (sig->sig->uid < sig->key->uid_count())
      pos:
        line_end: 6345
        line_start: 6345
        source_file: /src/rnp/src/lib/rnp.cpp
    constantsTouched: []
    func_position:
      end: 6928
      start: 6014
    functionDepth: 5
    functionLinenumber: 6014
    functionLinenumberEnd: 6928
    functionName: validation_status
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - sig::sig::subpkts::size
    - sig::sig::set_revocation_reason
    - auto::type
    - auto::sig::sig::has_revocation_reason
    - rnp_sig_subpacket_st::rnp_sig_subpacket_st
    - sig::sig::key_expiration
    - sig::sig::set_preferred_hash_algs
    - rnp::SigValidity::no_signer
    - auto*::revoker_count
    - sub::hashed
    - create_key_signature
    - sig::sig::key_server_prefs
    - auto*::get_sig
    - sub::critical
    - assert
    - sub::data
    - sig::sig::set_trust
    - ret_fingerprint
    - auto*::revoked
    - sig::sig::set_primary_uid
    - sig::sig::has_keyfp
    - key::pkt
    - auto::get_sig
    - extract_flag
    - auto::has_revoker
    - auto::sig_count
    - auto*::get_revoker
    - str_to_hash_alg
    - free
    - ret_vec_value
    - ffi::secring::add_key_sig
    - get_key_prefer_public
    - ret_str_value
    - auto::sign_cert
    - auto::unlock
    - fill_revocation_reason
    - rnp::Revocation::Revocation
    - sig::sig::set_preferred_symm_algs
    - ret_keyid
    - sig::sig::set_revoker
    - sig::sig::set_key_flags
    - FFI_LOG
    - sig::sig::expiration
    - auto::sig::sig::trust_level
    - ffi::pubring::add_key_sig
    - sig::sig::keyfp
    - get_key_require_secret
    - auto::sign_direct
    - key::fp
    - auto::push_back
    - sig::sig::set_key_expiration
    - rnp::SigValidity::expired
    - auto::revoker
    - rnp::SigValidity::validated
    - key::get_uid
    - sig::sig::key_flags
    - sig::sig::preferred_symm_algs
    - rnp::SigValidity::valid
    - sig::sig::set_creation
    - auto::sig::sig::revocation_reason
    - sig::sig::preferred_hash_algs
    - sig::sig::primary_uid
    - auto::is_locked
    - sig::sig::find_subpkt
    - std::string::c_str
    - id_str_pair::lookup
    - auto*::has_sig
    - sig::sig::set_key_server
    - sig::sig::set_key_features
    - ffi::secring::get_signer
    - sig::sig::keyid
    - sig::sig::set_preferred_z_algs
    - sig::sig::set_key_server_prefs
    - sig::sig::creation
    - sub::raw_type
    - auto::sig::sig::revocation_code
    - sig::sig::key_server
    - static_cast<pgp_sig_type_t>
    - auto*::revocation
    - key::uid_count
    - get_signer_handle
    - rnp_signature_subpacket_at
    - rnp_key_return_signature
    - key::get_sig
    - sig::sig::has_keyid
    - key::has_sig
    - auto::sign_binding
    - auto*::fp
    - sig::sig::key_get_features
    - auto::sig::sig::trust_amount
    - auto::size
    - get_map_value
    - sig::sig::type
    - sig::sig::preferred_z_algs
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validation_status(const rnp::SigValidity &validity)
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:6939,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/rnp.cpp:6941,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/rnp.cpp:6947,1
    - Dst: validation_status
      Src: /src/rnp/src/lib/rnp.cpp:6949,1
    - Dst: auto::validity::reset
      Src: /src/rnp/src/lib/rnp.cpp:6954,1
    - Dst: auto::validity::validated
      Src: /src/rnp/src/lib/rnp.cpp:6956,1
    - Dst: rnp_signature_handle_t::ffi::pubring::get_signer
      Src: /src/rnp/src/lib/rnp.cpp:6957,1
    - Dst: auto::validity::mark_validated
      Src: /src/rnp/src/lib/rnp.cpp:6959,1
    - Dst: auto*::validate_sig
      Src: /src/rnp/src/lib/rnp.cpp:6962,1
    - Dst: validation_status
      Src: /src/rnp/src/lib/rnp.cpp:6965,1
    - Dst: rnp_signature_handle_t::sig::validity::validated
      Src: /src/rnp/src/lib/rnp.cpp:6975,1
    - Dst: rnp_signature_handle_t::sig::validity::errors
      Src: /src/rnp/src/lib/rnp.cpp:6978,1
    - Dst: rnp_signature_handle_t::sig::validity::errors
      Src: /src/rnp/src/lib/rnp.cpp:6989,1
    - Dst: rnp_signature_handle_t::sig::validity::errors
      Src: /src/rnp/src/lib/rnp.cpp:6992,1
    - Dst: rnp::MemoryDest::MemoryDest
      Src: /src/rnp/src/lib/rnp.cpp:7004,1
    - Dst: rnp_signature_handle_t::sig::sig::write
      Src: /src/rnp/src/lib/rnp.cpp:7005,1
    - Dst: rnp::MemoryDest::dst
      Src: /src/rnp/src/lib/rnp.cpp:7005,1
    - Dst: rnp::MemoryDest::to_vector
      Src: /src/rnp/src/lib/rnp.cpp:7006,1
    - Dst: rnp_dump_src_to_json
      Src: /src/rnp/src/lib/rnp.cpp:7008,1
    - Dst: rnp::MemorySource::src
      Src: /src/rnp/src/lib/rnp.cpp:7008,1
    - Dst: get_key_require_public
      Src: /src/rnp/src/lib/rnp.cpp:7021,1
    - Dst: get_key_require_secret
      Src: /src/rnp/src/lib/rnp.cpp:7022,1
    - Dst: auto*::del_sig
      Src: /src/rnp/src/lib/rnp.cpp:7029,1
    - Dst: auto*::revalidate
      Src: /src/rnp/src/lib/rnp.cpp:7030,1
    - Dst: auto*::del_sig
      Src: /src/rnp/src/lib/rnp.cpp:7035,1
    - Dst: auto*::revalidate
      Src: /src/rnp/src/lib/rnp.cpp:7036,1
    - Dst: rnp_signature_handle_t::sig::raw::write
      Src: /src/rnp/src/lib/rnp.cpp:7045,1
    - Dst: dst_flush
      Src: /src/rnp/src/lib/rnp.cpp:7046,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 75
    argCount: 2
    argNames:
    - sig
    - dst
    argTypes:
    - rnp_signature_handle_t
    - pgp_dest_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7048
      start: 6930
    functionDepth: 6
    functionLinenumber: 6930
    functionLinenumberEnd: 7048
    functionName: write_signature
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 3
    functionsReached:
    - extract_flag
    - auto::validity::reset
    - auto::validity::validated
    - rnp::MemoryDest::to_vector
    - rnp_dump_src_to_json
    - validation_status
    - dst_flush
    - rnp_signature_handle_t::sig::validity::errors
    - rnp::MemoryDest::dst
    - auto*::validate_sig
    - RNP_LOG
    - rnp::MemorySource::src
    - rnp::MemoryDest::MemoryDest
    - auto::validity::mark_validated
    - get_key_require_public
    - auto*::del_sig
    - rnp_signature_handle_t::ffi::pubring::get_signer
    - rnp_signature_handle_t::sig::sig::write
    - rnp_signature_handle_t::sig::raw::write
    - rnp_signature_handle_t::sig::validity::validated
    - get_key_require_secret
    - auto*::revalidate
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t write_signature(rnp_signature_handle_t sig, pgp_dest_t
      &dst)
  - BBCount: 44
    BranchProfiles: []
    Callsites:
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:7056,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:7058,1
    - Dst: write_signature
      Src: /src/rnp/src/lib/rnp.cpp:7064,1
    - Dst: rnp::ArmoredDest::dst
      Src: /src/rnp/src/lib/rnp.cpp:7064,1
    - Dst: write_signature
      Src: /src/rnp/src/lib/rnp.cpp:7066,1
    - Dst: key::get_uid
      Src: /src/rnp/src/lib/rnp.cpp:7095,1
    - Dst: key::uid_count
      Src: /src/rnp/src/lib/rnp.cpp:7109,1
    - Dst: key::get_uid
      Src: /src/rnp/src/lib/rnp.cpp:7112,1
    - Dst: key::has_sig
      Src: /src/rnp/src/lib/rnp.cpp:7117,1
    - Dst: rnp_key_return_signature
      Src: /src/rnp/src/lib/rnp.cpp:7120,1
    - Dst: key::get_sig
      Src: /src/rnp/src/lib/rnp.cpp:7121,1
    - Dst: get_key_require_public
      Src: /src/rnp/src/lib/rnp.cpp:7131,1
    - Dst: get_key_require_secret
      Src: /src/rnp/src/lib/rnp.cpp:7132,1
    - Dst: auto*::uid_count
      Src: /src/rnp/src/lib/rnp.cpp:7141,1
    - Dst: auto*::del_uid
      Src: /src/rnp/src/lib/rnp.cpp:7142,1
    - Dst: auto*::revalidate
      Src: /src/rnp/src/lib/rnp.cpp:7143,1
    - Dst: auto*::uid_count
      Src: /src/rnp/src/lib/rnp.cpp:7146,1
    - Dst: auto*::del_uid
      Src: /src/rnp/src/lib/rnp.cpp:7147,1
    - Dst: auto*::revalidate
      Src: /src/rnp/src/lib/rnp.cpp:7148,1
    - Dst: free
      Src: /src/rnp/src/lib/rnp.cpp:7158,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:7170,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:7181,1
    - Dst: auto*::subkey_count
      Src: /src/rnp/src/lib/rnp.cpp:7182,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:7193,1
    - Dst: auto*::subkey_count
      Src: /src/rnp/src/lib/rnp.cpp:7194,1
    - Dst: auto*::get_subkey_fp
      Src: /src/rnp/src/lib/rnp.cpp:7197,1
    - Dst: rnp_locate_key_int
      Src: /src/rnp/src/lib/rnp.cpp:7198,1
    - Dst: str_to_key_flag
      Src: /src/rnp/src/lib/rnp.cpp:7212,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:7215,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:7217,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:7222,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:7242,1
    - Dst: find_suitable_key
      Src: /src/rnp/src/lib/rnp.cpp:7246,1
    - Dst: auto*::fp
      Src: /src/rnp/src/lib/rnp.cpp:7253,1
    - Dst: rnp_locate_key_int
      Src: /src/rnp/src/lib/rnp.cpp:7254,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:7269,1
    - Dst: get_map_value
      Src: /src/rnp/src/lib/rnp.cpp:7270,1
    - Dst: auto*::alg
      Src: /src/rnp/src/lib/rnp.cpp:7270,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:7280,1
    - Dst: auto*::material
      Src: /src/rnp/src/lib/rnp.cpp:7281,1
    - Dst: auto*::material
      Src: /src/rnp/src/lib/rnp.cpp:7284,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:7299,1
    - Dst: dynamic_cast<const pgp::DSAKeyMaterial *>
      Src: /src/rnp/src/lib/rnp.cpp:7300,1
    - Dst: auto*::material
      Src: /src/rnp/src/lib/rnp.cpp:7300,1
    - Dst: auto::qbits
      Src: /src/rnp/src/lib/rnp.cpp:7304,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:7315,1
    - Dst: auto*::curve
      Src: /src/rnp/src/lib/rnp.cpp:7316,1
    - Dst: curve_type_to_str
      Src: /src/rnp/src/lib/rnp.cpp:7321,1
    - Dst: ret_str_value
      Src: /src/rnp/src/lib/rnp.cpp:7324,1
    - Dst: ret_fingerprint
      Src: /src/rnp/src/lib/rnp.cpp:7334,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:7334,1
    - Dst: ret_keyid
      Src: /src/rnp/src/lib/rnp.cpp:7344,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:7344,1
    - Dst: ret_grip
      Src: /src/rnp/src/lib/rnp.cpp:7355,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:7355,1
    - Dst: rnp_ffi_t::pubring::get_key
      Src: /src/rnp/src/lib/rnp.cpp:7362,1
    - Dst: rnp_ffi_t::secring::get_key
      Src: /src/rnp/src/lib/rnp.cpp:7364,1
    - Dst: auto*::grip
      Src: /src/rnp/src/lib/rnp.cpp:7366,1
    CyclomaticComplexity: 67
    EdgeCount: 67
    ICount: 186
    argCount: 2
    argNames:
    - ffi
    - fp
    argTypes:
    - rnp_ffi_t
    - pgp::Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7367
      start: 7050
    functionDepth: 7
    functionLinenumber: 7050
    functionLinenumberEnd: 7367
    functionName: rnp_get_grip_by_fp
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - extract_flag
    - key::uid_count
    - auto*::del_uid
    - key::get_uid
    - rnp::ArmoredDest::dst
    - rnp_ffi_t::pubring::get_key
    - auto*::grip
    - rnp_ffi_t::secring::get_key
    - free
    - rnp_locate_key_int
    - auto*::curve
    - write_signature
    - rnp_key_return_signature
    - get_key_prefer_public
    - ret_str_value
    - auto*::uid_count
    - key::get_sig
    - auto*::get_subkey_fp
    - auto*::material
    - ret_grip
    - key::has_sig
    - auto*::fp
    - ret_keyid
    - get_key_require_public
    - auto*::subkey_count
    - FFI_LOG
    - ret_fingerprint
    - auto*::alg
    - curve_type_to_str
    - find_suitable_key
    - dynamic_cast<const pgp::DSAKeyMaterial *>
    - str_to_key_flag
    - auto::qbits
    - get_key_require_secret
    - get_map_value
    - auto*::revalidate
    linkageType: ''
    returnType: rnp_result_t
    signature: 'rnp_result_t *

      rnp_get_grip_by_fp(rnp_ffi_t ffi, const pgp::Fingerprint &fp)'
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:7376,1
    - Dst: auto*::is_subkey
      Src: /src/rnp/src/lib/rnp.cpp:7377,1
    - Dst: auto*::has_primary_fp
      Src: /src/rnp/src/lib/rnp.cpp:7380,1
    - Dst: rnp_get_grip_by_fp
      Src: /src/rnp/src/lib/rnp.cpp:7384,1
    - Dst: auto*::primary_fp
      Src: /src/rnp/src/lib/rnp.cpp:7384,1
    - Dst: ret_grip
      Src: /src/rnp/src/lib/rnp.cpp:7389,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:7400,1
    - Dst: auto*::is_subkey
      Src: /src/rnp/src/lib/rnp.cpp:7401,1
    - Dst: auto*::has_primary_fp
      Src: /src/rnp/src/lib/rnp.cpp:7404,1
    - Dst: ret_fingerprint
      Src: /src/rnp/src/lib/rnp.cpp:7408,1
    - Dst: auto*::primary_fp
      Src: /src/rnp/src/lib/rnp.cpp:7408,1
    - Dst: str_to_key_flag
      Src: /src/rnp/src/lib/rnp.cpp:7419,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:7422,1
    - Dst: auto*::flags
      Src: /src/rnp/src/lib/rnp.cpp:7426,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:7437,1
    - Dst: auto*::creation
      Src: /src/rnp/src/lib/rnp.cpp:7441,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:7452,1
    - Dst: auto*::revoked
      Src: /src/rnp/src/lib/rnp.cpp:7456,1
    - Dst: get_key_require_public
      Src: /src/rnp/src/lib/rnp.cpp:7467,1
    - Dst: auto*::validated
      Src: /src/rnp/src/lib/rnp.cpp:7471,1
    - Dst: auto*::validate
      Src: /src/rnp/src/lib/rnp.cpp:7472,1
    - Dst: auto*::validated
      Src: /src/rnp/src/lib/rnp.cpp:7474,1
    - Dst: auto*::valid
      Src: /src/rnp/src/lib/rnp.cpp:7477,1
    - Dst: rnp_key_valid_till64
      Src: /src/rnp/src/lib/rnp.cpp:7489,1
    - Dst: get_key_require_public
      Src: /src/rnp/src/lib/rnp.cpp:7510,1
    - Dst: auto*::validated
      Src: /src/rnp/src/lib/rnp.cpp:7515,1
    - Dst: auto*::validate
      Src: /src/rnp/src/lib/rnp.cpp:7516,1
    - Dst: auto*::validated
      Src: /src/rnp/src/lib/rnp.cpp:7518,1
    - Dst: auto*::is_subkey
      Src: /src/rnp/src/lib/rnp.cpp:7522,1
    - Dst: rnp_key_handle_t::ffi::pubring::primary_key
      Src: /src/rnp/src/lib/rnp.cpp:7524,1
    - Dst: auto*::validated
      Src: /src/rnp/src/lib/rnp.cpp:7530,1
    - Dst: auto*::validate
      Src: /src/rnp/src/lib/rnp.cpp:7531,1
    - Dst: auto*::validated
      Src: /src/rnp/src/lib/rnp.cpp:7533,1
    - Dst: auto*::valid_till
      Src: /src/rnp/src/lib/rnp.cpp:7536,1
    - Dst: auto*::valid_till
      Src: /src/rnp/src/lib/rnp.cpp:7538,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:7550,1
    - Dst: auto*::expiration
      Src: /src/rnp/src/lib/rnp.cpp:7554,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:7566,1
    - Dst: get_key_require_secret
      Src: /src/rnp/src/lib/rnp.cpp:7570,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:7572,1
    - Dst: auto*::is_primary
      Src: /src/rnp/src/lib/rnp.cpp:7576,1
    - Dst: pgp_key_set_expiration
      Src: /src/rnp/src/lib/rnp.cpp:7577,1
    - Dst: auto*::revalidate
      Src: /src/rnp/src/lib/rnp.cpp:7581,1
    - Dst: auto*::revalidate
      Src: /src/rnp/src/lib/rnp.cpp:7583,1
    - Dst: auto*::has_primary_fp
      Src: /src/rnp/src/lib/rnp.cpp:7589,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:7590,1
    - Dst: auto*::primary_fp
      Src: /src/rnp/src/lib/rnp.cpp:7594,1
    - Dst: find_key
      Src: /src/rnp/src/lib/rnp.cpp:7595,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:7597,1
    - Dst: pgp_subkey_set_expiration
      Src: /src/rnp/src/lib/rnp.cpp:7600,1
    - Dst: auto*::revalidate
      Src: /src/rnp/src/lib/rnp.cpp:7604,1
    - Dst: find_key
      Src: /src/rnp/src/lib/rnp.cpp:7605,1
    - Dst: auto*::revalidate
      Src: /src/rnp/src/lib/rnp.cpp:7607,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:7619,1
    - Dst: auto*::revoked
      Src: /src/rnp/src/lib/rnp.cpp:7620,1
    - Dst: ret_str_value
      Src: /src/rnp/src/lib/rnp.cpp:7623,1
    - Dst: auto*::revocation
      Src: /src/rnp/src/lib/rnp.cpp:7623,1
    - Dst: c_str
      Src: /src/rnp/src/lib/rnp.cpp:7623,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:7633,1
    - Dst: auto*::revoked
      Src: /src/rnp/src/lib/rnp.cpp:7634,1
    - Dst: auto*::revocation
      Src: /src/rnp/src/lib/rnp.cpp:7638,1
    CyclomaticComplexity: 59
    EdgeCount: 59
    ICount: 181
    argCount: 3
    argNames:
    - handle
    - result
    - code
    argTypes:
    - rnp_key_handle_t
    - bool*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7640
      start: 7369
    functionDepth: 8
    functionLinenumber: 7369
    functionLinenumberEnd: 7640
    functionName: rnp_key_is_revoked_with_code
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - auto*::is_subkey
    - auto*::is_primary
    - auto*::creation
    - find_key
    - pgp_subkey_set_expiration
    - auto*::flags
    - auto*::primary_fp
    - rnp_key_handle_t::ffi::pubring::primary_key
    - get_key_prefer_public
    - ret_str_value
    - rnp_get_grip_by_fp
    - auto*::valid
    - ret_grip
    - pgp_key_set_expiration
    - auto*::validate
    - get_key_require_public
    - rnp_key_valid_till64
    - FFI_LOG
    - ret_fingerprint
    - auto*::valid_till
    - auto*::revoked
    - auto*::validated
    - str_to_key_flag
    - get_key_require_secret
    - c_str
    - auto*::expiration
    - auto*::revalidate
    - auto*::revocation
    - auto*::has_primary_fp
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t rnp_key_is_revoked_with_code(rnp_key_handle_t handle,
      bool *result, int code)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: rnp_key_is_revoked_with_code
      Src: /src/rnp/src/lib/rnp.cpp:7645,1
    - Dst: rnp_key_is_revoked_with_code
      Src: /src/rnp/src/lib/rnp.cpp:7652,1
    - Dst: rnp_key_is_revoked_with_code
      Src: /src/rnp/src/lib/rnp.cpp:7659,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:7669,1
    - Dst: auto*::expired
      Src: /src/rnp/src/lib/rnp.cpp:7673,1
    - Dst: auto*::sec::pkt
      Src: /src/rnp/src/lib/rnp.cpp:7688,1
    - Dst: ret_str_value
      Src: /src/rnp/src/lib/rnp.cpp:7714,1
    - Dst: auto*::sec::pkt
      Src: /src/rnp/src/lib/rnp.cpp:7728,1
    - Dst: ret_str_value
      Src: /src/rnp/src/lib/rnp.cpp:7729,1
    - Dst: auto*::sec::pkt
      Src: /src/rnp/src/lib/rnp.cpp:7731,1
    - Dst: ret_str_value
      Src: /src/rnp/src/lib/rnp.cpp:7732,1
    - Dst: get_map_value
      Src: /src/rnp/src/lib/rnp.cpp:7735,1
    - Dst: auto*::sec::pkt
      Src: /src/rnp/src/lib/rnp.cpp:7735,1
    - Dst: auto*::pkt
      Src: /src/rnp/src/lib/rnp.cpp:7742,1
    - Dst: auto*::pkt
      Src: /src/rnp/src/lib/rnp.cpp:7743,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 57
    argCount: 1
    argNames:
    - key
    argTypes:
    - rnp::Key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7744
      start: 7642
    functionDepth: 9
    functionLinenumber: 7642
    functionLinenumberEnd: 7744
    functionName: pgp_key_has_encryption_info
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - get_key_prefer_public
    - ret_str_value
    - rnp_key_is_revoked_with_code
    - auto*::pkt
    - auto*::expired
    - get_map_value
    - auto*::sec::pkt
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t pgp_key_has_encryption_info(const rnp::Key *key)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_has_encryption_info
      Src: /src/rnp/src/lib/rnp.cpp:7755,1
    - Dst: get_map_value
      Src: /src/rnp/src/lib/rnp.cpp:7759,1
    - Dst: rnp::Key*::sec::pkt
      Src: /src/rnp/src/lib/rnp.cpp:7759,1
    - Dst: pgp_key_has_encryption_info
      Src: /src/rnp/src/lib/rnp.cpp:7772,1
    - Dst: get_map_value
      Src: /src/rnp/src/lib/rnp.cpp:7776,1
    - Dst: rnp::Key*::sec::pkt
      Src: /src/rnp/src/lib/rnp.cpp:7776,1
    - Dst: pgp_key_has_encryption_info
      Src: /src/rnp/src/lib/rnp.cpp:7789,1
    - Dst: rnp::Key*::sec::pkt
      Src: /src/rnp/src/lib/rnp.cpp:7793,1
    - Dst: pgp_s2k_decode_iterations
      Src: /src/rnp/src/lib/rnp.cpp:7794,1
    - Dst: rnp::Key*::sec::pkt
      Src: /src/rnp/src/lib/rnp.cpp:7794,1
    - Dst: get_key_require_secret
      Src: /src/rnp/src/lib/rnp.cpp:7808,1
    - Dst: auto*::is_locked
      Src: /src/rnp/src/lib/rnp.cpp:7812,1
    - Dst: get_key_require_secret
      Src: /src/rnp/src/lib/rnp.cpp:7823,1
    - Dst: auto*::lock
      Src: /src/rnp/src/lib/rnp.cpp:7827,1
    - Dst: get_key_require_secret
      Src: /src/rnp/src/lib/rnp.cpp:7840,1
    - Dst: auto*::unlock
      Src: /src/rnp/src/lib/rnp.cpp:7848,1
    - Dst: auto*::unlock
      Src: /src/rnp/src/lib/rnp.cpp:7850,1
    - Dst: get_key_require_secret
      Src: /src/rnp/src/lib/rnp.cpp:7866,1
    - Dst: auto*::is_protected
      Src: /src/rnp/src/lib/rnp.cpp:7870,1
    - Dst: str_to_cipher
      Src: /src/rnp/src/lib/rnp.cpp:7890,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:7891,1
    - Dst: str_to_cipher_mode
      Src: /src/rnp/src/lib/rnp.cpp:7894,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:7895,1
    - Dst: str_to_hash_alg
      Src: /src/rnp/src/lib/rnp.cpp:7898,1
    - Dst: FFI_LOG
      Src: /src/rnp/src/lib/rnp.cpp:7899,1
    - Dst: get_key_require_secret
      Src: /src/rnp/src/lib/rnp.cpp:7905,1
    - Dst: auto*::encrypted
      Src: /src/rnp/src/lib/rnp.cpp:7911,1
    - Dst: pgp_decrypt_seckey
      Src: /src/rnp/src/lib/rnp.cpp:7913,1
    - Dst: auto*::protect
      Src: /src/rnp/src/lib/rnp.cpp:7918,1
    - Dst: auto*::pkt
      Src: /src/rnp/src/lib/rnp.cpp:7919,1
    - Dst: get_key_require_secret
      Src: /src/rnp/src/lib/rnp.cpp:7934,1
    - Dst: auto*::unprotect
      Src: /src/rnp/src/lib/rnp.cpp:7942,1
    - Dst: auto*::unprotect
      Src: /src/rnp/src/lib/rnp.cpp:7944,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:7960,1
    - Dst: auto*::is_primary
      Src: /src/rnp/src/lib/rnp.cpp:7965,1
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:7976,1
    - Dst: auto*::is_subkey
      Src: /src/rnp/src/lib/rnp.cpp:7981,1
    - Dst: auto*::write_vec
      Src: /src/rnp/src/lib/rnp.cpp:8010,1
    - Dst: ret_vec_value
      Src: /src/rnp/src/lib/rnp.cpp:8011,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 152
    argCount: 3
    argNames:
    - key
    - buf
    - buf_len
    argTypes:
    - rnp::Key*
    - uint8_t**
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8012
      start: 7746
    functionDepth: 10
    functionLinenumber: 7746
    functionLinenumberEnd: 8012
    functionName: key_to_bytes
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - auto*::lock
    - auto*::is_subkey
    - auto*::is_primary
    - pgp_s2k_decode_iterations
    - pgp_key_has_encryption_info
    - pgp_decrypt_seckey
    - auto*::unlock
    - str_to_hash_alg
    - ret_vec_value
    - auto*::protect
    - auto*::unprotect
    - get_key_prefer_public
    - auto*::pkt
    - auto*::write_vec
    - str_to_cipher
    - auto*::is_protected
    - FFI_LOG
    - auto*::is_locked
    - auto*::encrypted
    - get_key_require_secret
    - str_to_cipher_mode
    - get_map_value
    - rnp::Key*::sec::pkt
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t key_to_bytes(rnp::Key *key, uint8_t **buf, size_t *buf_len)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: key_to_bytes
      Src: /src/rnp/src/lib/rnp.cpp:8026,1
    - Dst: key_to_bytes
      Src: /src/rnp/src/lib/rnp.cpp:8042,1
    - Dst: add_key_to_array
      Src: /src/rnp/src/lib/rnp.cpp:8049,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/lib/rnp.cpp:8050,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/lib/rnp.cpp:8052,1
    - Dst: nlohmann::ordered_json::empty
      Src: /src/rnp/src/lib/rnp.cpp:8056,1
    - Dst: std::move
      Src: /src/rnp/src/lib/rnp.cpp:8057,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 26
    argCount: 2
    argNames:
    - jso
    - key_flags
    argTypes:
    - nlohmann::ordered_json
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8060
      start: 8014
    functionDepth: 11
    functionLinenumber: 8014
    functionLinenumberEnd: 8060
    functionName: add_json_key_usage
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - add_key_to_array
    - nlohmann::ordered_json::empty
    - ARRAY_SIZE
    - rnp::json::array_add
    - key_to_bytes
    - std::move
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t add_json_key_usage(nlohmann::ordered_json &jso, uint8_t
      key_flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: add_key_to_array
      Src: /src/rnp/src/lib/rnp.cpp:8065,1
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/lib/rnp.cpp:8066,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/lib/rnp.cpp:8068,1
    - Dst: nlohmann::ordered_json::empty
      Src: /src/rnp/src/lib/rnp.cpp:8072,1
    - Dst: std::move
      Src: /src/rnp/src/lib/rnp.cpp:8073,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 2
    argNames:
    - jso
    - key_flags
    argTypes:
    - nlohmann::ordered_json
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8076
      start: 8062
    functionDepth: 3
    functionLinenumber: 8062
    functionLinenumberEnd: 8076
    functionName: add_json_key_flags
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - add_key_to_array
    - nlohmann::ordered_json::empty
    - ARRAY_SIZE
    - rnp::json::array_add
    - std::move
    linkageType: ''
    returnType: bool
    signature: bool add_json_key_flags(nlohmann::ordered_json &jso, uint8_t key_flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::add_hex
      Src: /src/rnp/src/lib/rnp.cpp:8086,1
    - Dst: second::data
      Src: /src/rnp/src/lib/rnp.cpp:8087,1
    - Dst: second::size
      Src: /src/rnp/src/lib/rnp.cpp:8087,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 2
    argNames:
    - jso
    - mpis
    argTypes:
    - nlohmann::ordered_json*
    - std::initializer_list<std::pair<const char *, const pgp::mpi *>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8092
      start: 8078
    functionDepth: 2
    functionLinenumber: 8078
    functionLinenumberEnd: 8092
    functionName: add_json_mpis
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp::json::add_hex
    - second::size
    - second::data
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t add_json_mpis(nlohmann::ordered_json *                                         jso,\n
      \             std::initializer_list<std::pair<const char *, const pgp::mpi *>>
      mpis)"
  - BBCount: 36
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key*::material
      Src: /src/rnp/src/lib/rnp.cpp:8097,1
    - Dst: rnp::Key*::material
      Src: /src/rnp/src/lib/rnp.cpp:8100,1
    - Dst: auto::alg
      Src: /src/rnp/src/lib/rnp.cpp:8101,1
    - Dst: dynamic_cast<pgp::RSAKeyMaterial &>
      Src: /src/rnp/src/lib/rnp.cpp:8105,1
    - Dst: add_json_mpis
      Src: /src/rnp/src/lib/rnp.cpp:8107,1
    - Dst: auto::n
      Src: /src/rnp/src/lib/rnp.cpp:8107,1
    - Dst: auto::e
      Src: /src/rnp/src/lib/rnp.cpp:8107,1
    - Dst: add_json_mpis
      Src: /src/rnp/src/lib/rnp.cpp:8109,1
    - Dst: auto::d
      Src: /src/rnp/src/lib/rnp.cpp:8110,1
    - Dst: auto::p
      Src: /src/rnp/src/lib/rnp.cpp:8110,1
    - Dst: auto::q
      Src: /src/rnp/src/lib/rnp.cpp:8110,1
    - Dst: auto::u
      Src: /src/rnp/src/lib/rnp.cpp:8110,1
    - Dst: dynamic_cast<pgp::EGKeyMaterial &>
      Src: /src/rnp/src/lib/rnp.cpp:8114,1
    - Dst: add_json_mpis
      Src: /src/rnp/src/lib/rnp.cpp:8116,1
    - Dst: auto::p
      Src: /src/rnp/src/lib/rnp.cpp:8116,1
    - Dst: auto::g
      Src: /src/rnp/src/lib/rnp.cpp:8116,1
    - Dst: auto::y
      Src: /src/rnp/src/lib/rnp.cpp:8116,1
    - Dst: add_json_mpis
      Src: /src/rnp/src/lib/rnp.cpp:8118,1
    - Dst: auto::x
      Src: /src/rnp/src/lib/rnp.cpp:8118,1
    - Dst: dynamic_cast<pgp::DSAKeyMaterial &>
      Src: /src/rnp/src/lib/rnp.cpp:8121,1
    - Dst: add_json_mpis
      Src: /src/rnp/src/lib/rnp.cpp:8123,1
    - Dst: auto::p
      Src: /src/rnp/src/lib/rnp.cpp:8124,1
    - Dst: auto::q
      Src: /src/rnp/src/lib/rnp.cpp:8124,1
    - Dst: auto::g
      Src: /src/rnp/src/lib/rnp.cpp:8124,1
    - Dst: auto::y
      Src: /src/rnp/src/lib/rnp.cpp:8124,1
    - Dst: add_json_mpis
      Src: /src/rnp/src/lib/rnp.cpp:8126,1
    - Dst: auto::x
      Src: /src/rnp/src/lib/rnp.cpp:8126,1
    - Dst: dynamic_cast<pgp::ECKeyMaterial &>
      Src: /src/rnp/src/lib/rnp.cpp:8132,1
    - Dst: add_json_mpis
      Src: /src/rnp/src/lib/rnp.cpp:8134,1
    - Dst: auto::p
      Src: /src/rnp/src/lib/rnp.cpp:8134,1
    - Dst: add_json_mpis
      Src: /src/rnp/src/lib/rnp.cpp:8136,1
    - Dst: auto::x
      Src: /src/rnp/src/lib/rnp.cpp:8136,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 74
    argCount: 2
    argNames:
    - jso
    - key
    argTypes:
    - nlohmann::ordered_json
    - rnp::Key*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8185
      start: 8094
    functionDepth: 1
    functionLinenumber: 8094
    functionLinenumberEnd: 8185
    functionName: add_json_mpis
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 1
    functionsReached:
    - add_json_mpis
    - auto::g
    - rnp::Key*::material
    - auto::u
    - dynamic_cast<pgp::DSAKeyMaterial &>
    - auto::e
    - auto::p
    - auto::n
    - dynamic_cast<pgp::ECKeyMaterial &>
    - auto::q
    - dynamic_cast<pgp::EGKeyMaterial &>
    - auto::d
    - auto::y
    - dynamic_cast<pgp::RSAKeyMaterial &>
    - auto::x
    - auto::alg
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t add_json_mpis(nlohmann::ordered_json &jso, rnp::Key *key,
      bool secret = false)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature*::parse_material
      Src: /src/rnp/src/lib/rnp.cpp:8190,1
    - Dst: dynamic_cast<const pgp::RSASigMaterial &>
      Src: /src/rnp/src/lib/rnp.cpp:8198,1
    - Dst: add_json_mpis
      Src: /src/rnp/src/lib/rnp.cpp:8199,1
    - Dst: dynamic_cast<const pgp::EGSigMaterial &>
      Src: /src/rnp/src/lib/rnp.cpp:8203,1
    - Dst: add_json_mpis
      Src: /src/rnp/src/lib/rnp.cpp:8204,1
    - Dst: dynamic_cast<const pgp::DSASigMaterial &>
      Src: /src/rnp/src/lib/rnp.cpp:8207,1
    - Dst: add_json_mpis
      Src: /src/rnp/src/lib/rnp.cpp:8208,1
    - Dst: dynamic_cast<const pgp::ECSigMaterial &>
      Src: /src/rnp/src/lib/rnp.cpp:8213,1
    - Dst: add_json_mpis
      Src: /src/rnp/src/lib/rnp.cpp:8214,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 49
    argCount: 2
    argNames:
    - jso
    - sig
    argTypes:
    - nlohmann::ordered_json
    - pgp::pkt::Signature*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8248
      start: 8187
    functionDepth: 3
    functionLinenumber: 8187
    functionLinenumberEnd: 8248
    functionName: add_json_sig_mpis
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - add_json_mpis
    - dynamic_cast<const pgp::ECSigMaterial &>
    - dynamic_cast<const pgp::DSASigMaterial &>
    - dynamic_cast<const pgp::EGSigMaterial &>
    - pgp::pkt::Signature*::parse_material
    - dynamic_cast<const pgp::RSASigMaterial &>
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t add_json_sig_mpis(nlohmann::ordered_json &jso, const pgp::pkt::Signature
      *sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::empty
      Src: /src/rnp/src/lib/rnp.cpp:8256,1
    - Dst: add_key_to_array
      Src: /src/rnp/src/lib/rnp.cpp:8259,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:8261,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/lib/rnp.cpp:8262,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 4
    argNames:
    - jso
    - vals
    - name
    - map
    argTypes:
    - nlohmann::ordered_json
    - std::vector<uint8_t>
    - char*
    - id_str_pair*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8267
      start: 8250
    functionDepth: 3
    functionLinenumber: 8250
    functionLinenumberEnd: 8267
    functionName: add_json_array_lookup
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp::json::array_add
    - add_key_to_array
    - id_str_pair::lookup
    - std::vector<uint8_t>::empty
    linkageType: ''
    returnType: bool
    signature: "bool add_json_array_lookup(nlohmann::ordered_json &jso,\n                      std::vector<uint8_t>
      \   vals,\n                      const char *            name,\n                      const
      id_str_pair *     map)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: add_json_array_lookup
      Src: /src/rnp/src/lib/rnp.cpp:8274,1
    - Dst: add_json_array_lookup
      Src: /src/rnp/src/lib/rnp.cpp:8277,1
    - Dst: add_json_array_lookup
      Src: /src/rnp/src/lib/rnp.cpp:8280,1
    - Dst: add_json_array_lookup
      Src: /src/rnp/src/lib/rnp.cpp:8283,1
    - Dst: rnp::UserPrefs::key_server::empty
      Src: /src/rnp/src/lib/rnp.cpp:8287,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8288,1
    - Dst: rnp::UserPrefs::key_server::c_str
      Src: /src/rnp/src/lib/rnp.cpp:8288,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 2
    argNames:
    - jso
    - prefs
    argTypes:
    - nlohmann::ordered_json
    - rnp::UserPrefs
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8293
      start: 8269
    functionDepth: 4
    functionLinenumber: 8269
    functionLinenumberEnd: 8293
    functionName: add_json_user_prefs
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - add_json_array_lookup
    - rnp::UserPrefs::key_server::empty
    - rnp::json::add
    - rnp::UserPrefs::key_server::c_str
    linkageType: ''
    returnType: bool
    signature: bool add_json_user_prefs(nlohmann::ordered_json &jso, const rnp::UserPrefs
      &prefs)
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8302,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/lib/rnp.cpp:8306,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8308,1
    - Dst: rnp::Signature*::sig::trust_level
      Src: /src/rnp/src/lib/rnp.cpp:8308,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8309,1
    - Dst: rnp::Signature*::sig::trust_amount
      Src: /src/rnp/src/lib/rnp.cpp:8309,1
    - Dst: add_json_key_usage
      Src: /src/rnp/src/lib/rnp.cpp:8313,1
    - Dst: rnp::Signature*::sig::key_flags
      Src: /src/rnp/src/lib/rnp.cpp:8313,1
    - Dst: add_json_key_flags
      Src: /src/rnp/src/lib/rnp.cpp:8317,1
    - Dst: rnp::Signature*::sig::key_flags
      Src: /src/rnp/src/lib/rnp.cpp:8317,1
    - Dst: rnp::UserPrefs::symm_algs::empty
      Src: /src/rnp/src/lib/rnp.cpp:8322,1
    - Dst: rnp::UserPrefs::hash_algs::empty
      Src: /src/rnp/src/lib/rnp.cpp:8322,1
    - Dst: rnp::UserPrefs::z_algs::empty
      Src: /src/rnp/src/lib/rnp.cpp:8322,1
    - Dst: rnp::UserPrefs::ks_prefs::empty
      Src: /src/rnp/src/lib/rnp.cpp:8323,1
    - Dst: rnp::UserPrefs::key_server::empty
      Src: /src/rnp/src/lib/rnp.cpp:8323,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/lib/rnp.cpp:8324,1
    - Dst: add_json_user_prefs
      Src: /src/rnp/src/lib/rnp.cpp:8325,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8331,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:8335,1
    - Dst: pgp::pkt::Signature*::type
      Src: /src/rnp/src/lib/rnp.cpp:8335,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8336,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:8340,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8341,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:8345,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8346,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8350,1
    - Dst: pgp::pkt::Signature*::creation
      Src: /src/rnp/src/lib/rnp.cpp:8350,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8354,1
    - Dst: pgp::pkt::Signature*::expiration
      Src: /src/rnp/src/lib/rnp.cpp:8354,1
    - Dst: pgp::pkt::Signature*::has_keyid
      Src: /src/rnp/src/lib/rnp.cpp:8359,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/lib/rnp.cpp:8360,1
    - Dst: pgp::pkt::Signature*::keyid
      Src: /src/rnp/src/lib/rnp.cpp:8362,1
    - Dst: rnp::hex_encode
      Src: /src/rnp/src/lib/rnp.cpp:8363,1
    - Dst: pgp::KeyID::data
      Src: /src/rnp/src/lib/rnp.cpp:8363,1
    - Dst: pgp::KeyID::size
      Src: /src/rnp/src/lib/rnp.cpp:8363,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8366,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/lib/rnp.cpp:8374,1
    - Dst: add_json_sig_mpis
      Src: /src/rnp/src/lib/rnp.cpp:8376,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 54
    argCount: 4
    argNames:
    - jso
    - is_sub
    - flags
    - subsig
    argTypes:
    - nlohmann::ordered_json
    - bool
    - uint32_t
    - rnp::Signature*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8383
      start: 8295
    functionDepth: 12
    functionLinenumber: 8295
    functionLinenumberEnd: 8383
    functionName: add_json_subsig
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature*::creation
    - rnp::Signature*::sig::trust_level
    - add_json_user_prefs
    - sexp::sexp_input_stream_t::scan_object
    - rnp::json::add
    - rnp::UserPrefs::key_server::empty
    - rnp::hex_encode
    - add_json_key_flags
    - add_json_key_usage
    - pgp::KeyID::size
    - pgp::pkt::Signature*::type
    - pgp::pkt::Signature*::has_keyid
    - pgp::pkt::Signature*::keyid
    - id_str_pair::lookup
    - rnp::Signature*::sig::trust_amount
    - add_json_sig_mpis
    - rnp::UserPrefs::z_algs::empty
    - rnp::UserPrefs::symm_algs::empty
    - pgp::KeyID::data
    - rnp::UserPrefs::ks_prefs::empty
    - rnp::Signature*::sig::key_flags
    - rnp::UserPrefs::hash_algs::empty
    - pgp::pkt::Signature*::expiration
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t add_json_subsig(nlohmann::ordered_json &jso,\n                bool
      \                   is_sub,\n                uint32_t                flags,\n
      \               const rnp::Signature *  subsig)"
  - BBCount: 67
    BranchProfiles: []
    Callsites:
    - Dst: get_key_prefer_public
      Src: /src/rnp/src/lib/rnp.cpp:8388,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:8391,1
    - Dst: rnp::Key*::alg
      Src: /src/rnp/src/lib/rnp.cpp:8391,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8395,1
    - Dst: rnp::Key*::material
      Src: /src/rnp/src/lib/rnp.cpp:8399,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8403,1
    - Dst: auto::bits
      Src: /src/rnp/src/lib/rnp.cpp:8403,1
    - Dst: rnp::Key*::alg
      Src: /src/rnp/src/lib/rnp.cpp:8407,1
    - Dst: dynamic_cast<pgp::ECDHKeyMaterial *>
      Src: /src/rnp/src/lib/rnp.cpp:8409,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:8413,1
    - Dst: auto::kdf_hash_alg
      Src: /src/rnp/src/lib/rnp.cpp:8413,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:8418,1
    - Dst: auto::key_wrap_alg
      Src: /src/rnp/src/lib/rnp.cpp:8418,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8422,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8423,1
    - Dst: curve_type_to_str
      Src: /src/rnp/src/lib/rnp.cpp:8432,1
    - Dst: auto::curve
      Src: /src/rnp/src/lib/rnp.cpp:8432,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8435,1
    - Dst: rnp::hex_encode
      Src: /src/rnp/src/lib/rnp.cpp:8488,1
    - Dst: rnp::Key*::keyid
      Src: /src/rnp/src/lib/rnp.cpp:8488,1
    - Dst: rnp::Key*::keyid
      Src: /src/rnp/src/lib/rnp.cpp:8488,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8491,1
    - Dst: rnp::hex_encode
      Src: /src/rnp/src/lib/rnp.cpp:8496,1
    - Dst: rnp::Key*::fp
      Src: /src/rnp/src/lib/rnp.cpp:8496,1
    - Dst: rnp::Key*::fp
      Src: /src/rnp/src/lib/rnp.cpp:8496,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8499,1
    - Dst: rnp::hex_encode
      Src: /src/rnp/src/lib/rnp.cpp:8504,1
    - Dst: rnp::Key*::grip
      Src: /src/rnp/src/lib/rnp.cpp:8504,1
    - Dst: rnp::Key*::grip
      Src: /src/rnp/src/lib/rnp.cpp:8504,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8507,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8511,1
    - Dst: rnp::Key*::revoked
      Src: /src/rnp/src/lib/rnp.cpp:8511,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8515,1
    - Dst: rnp::Key*::creation
      Src: /src/rnp/src/lib/rnp.cpp:8515,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8519,1
    - Dst: rnp::Key*::expiration
      Src: /src/rnp/src/lib/rnp.cpp:8519,1
    - Dst: add_json_key_usage
      Src: /src/rnp/src/lib/rnp.cpp:8523,1
    - Dst: rnp::Key*::flags
      Src: /src/rnp/src/lib/rnp.cpp:8523,1
    - Dst: add_json_key_flags
      Src: /src/rnp/src/lib/rnp.cpp:8527,1
    - Dst: rnp::Key*::flags
      Src: /src/rnp/src/lib/rnp.cpp:8527,1
    - Dst: rnp::Key*::is_primary
      Src: /src/rnp/src/lib/rnp.cpp:8531,1
    - Dst: add_key_to_array
      Src: /src/rnp/src/lib/rnp.cpp:8532,1
    - Dst: rnp::Key*::subkey_fps
      Src: /src/rnp/src/lib/rnp.cpp:8533,1
    - Dst: rnp_get_grip_by_fp
      Src: /src/rnp/src/lib/rnp.cpp:8534,1
    - Dst: rnp::hex_encode
      Src: /src/rnp/src/lib/rnp.cpp:8538,1
    - Dst: pgp::KeyGrip*::data
      Src: /src/rnp/src/lib/rnp.cpp:8538,1
    - Dst: pgp::KeyGrip*::size
      Src: /src/rnp/src/lib/rnp.cpp:8538,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/lib/rnp.cpp:8541,1
    - Dst: rnp::Key*::has_primary_fp
      Src: /src/rnp/src/lib/rnp.cpp:8545,1
    - Dst: rnp_get_grip_by_fp
      Src: /src/rnp/src/lib/rnp.cpp:8546,1
    - Dst: rnp::Key*::primary_fp
      Src: /src/rnp/src/lib/rnp.cpp:8546,1
    - Dst: rnp::hex_encode
      Src: /src/rnp/src/lib/rnp.cpp:8548,1
    - Dst: auto::data
      Src: /src/rnp/src/lib/rnp.cpp:8548,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/rnp.cpp:8548,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8551,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/lib/rnp.cpp:8557,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8560,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/lib/rnp.cpp:8564,1
    - Dst: add_json_mpis
      Src: /src/rnp/src/lib/rnp.cpp:8566,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/lib/rnp.cpp:8571,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8572,1
    - Dst: rnp_key_handle_t::sec::is_locked
      Src: /src/rnp/src/lib/rnp.cpp:8576,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/lib/rnp.cpp:8581,1
    - Dst: add_json_mpis
      Src: /src/rnp/src/lib/rnp.cpp:8583,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8588,1
    - Dst: rnp::json::add
      Src: /src/rnp/src/lib/rnp.cpp:8589,1
    - Dst: rnp_key_handle_t::sec::is_protected
      Src: /src/rnp/src/lib/rnp.cpp:8589,1
    - Dst: rnp::Key*::is_primary
      Src: /src/rnp/src/lib/rnp.cpp:8594,1
    - Dst: add_key_to_array
      Src: /src/rnp/src/lib/rnp.cpp:8595,1
    - Dst: rnp::Key*::uid_count
      Src: /src/rnp/src/lib/rnp.cpp:8596,1
    - Dst: rnp::json::array_add
      Src: /src/rnp/src/lib/rnp.cpp:8597,1
    - Dst: rnp::Key*::get_uid
      Src: /src/rnp/src/lib/rnp.cpp:8597,1
    - Dst: c_str
      Src: /src/rnp/src/lib/rnp.cpp:8597,1
    - Dst: add_key_to_array
      Src: /src/rnp/src/lib/rnp.cpp:8604,1
    - Dst: rnp::Key*::sig_count
      Src: /src/rnp/src/lib/rnp.cpp:8605,1
    - Dst: auto::emplace_back
      Src: /src/rnp/src/lib/rnp.cpp:8606,1
    - Dst: sexp::sexp_input_stream_t::scan_object
      Src: /src/rnp/src/lib/rnp.cpp:8606,1
    - Dst: add_json_subsig
      Src: /src/rnp/src/lib/rnp.cpp:8609,1
    - Dst: rnp::Key*::is_subkey
      Src: /src/rnp/src/lib/rnp.cpp:8609,1
    - Dst: rnp::Key*::get_sig
      Src: /src/rnp/src/lib/rnp.cpp:8609,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 173
    argCount: 3
    argNames:
    - jso
    - handle
    - flags
    argTypes:
    - nlohmann::ordered_json
    - rnp_key_handle_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8615
      start: 8385
    functionDepth: 13
    functionLinenumber: 8385
    functionLinenumberEnd: 8615
    functionName: key_to_json
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 1
    functionsReached:
    - add_json_mpis
    - auto::emplace_back
    - rnp::Key*::keyid
    - pgp::KeyGrip*::size
    - rnp::Key*::flags
    - rnp::Key*::get_sig
    - rnp_key_handle_t::sec::is_protected
    - add_key_to_array
    - dynamic_cast<pgp::ECDHKeyMaterial *>
    - rnp::Key*::is_primary
    - get_key_prefer_public
    - rnp::json::add
    - sexp::sexp_input_stream_t::scan_object
    - rnp::Key*::subkey_fps
    - rnp_get_grip_by_fp
    - rnp::hex_encode
    - rnp::Key*::has_primary_fp
    - rnp::Key*::uid_count
    - pgp::KeyGrip*::data
    - rnp::json::array_add
    - add_json_subsig
    - add_json_key_flags
    - add_json_key_usage
    - rnp::Key*::material
    - auto::kdf_hash_alg
    - id_str_pair::lookup
    - rnp::Key*::get_uid
    - rnp::Key*::is_subkey
    - rnp::Key*::alg
    - rnp::Key*::primary_fp
    - rnp::Key*::sig_count
    - curve_type_to_str
    - rnp::Key*::fp
    - rnp::Key*::revoked
    - auto::data
    - auto::bits
    - rnp::Key*::expiration
    - auto::size
    - rnp::Key*::creation
    - rnp_key_handle_t::sec::is_locked
    - auto::curve
    - auto::key_wrap_alg
    - rnp::Key*::grip
    - c_str
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t key_to_json(nlohmann::ordered_json &jso, rnp_key_handle_t
      handle, uint32_t flags)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::DumpContextJson::set_dump_mpi
      Src: /src/rnp/src/lib/rnp.cpp:8639,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:8639,1
    - Dst: rnp::DumpContextJson::set_dump_packets
      Src: /src/rnp/src/lib/rnp.cpp:8640,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:8640,1
    - Dst: rnp::DumpContextJson::set_dump_grips
      Src: /src/rnp/src/lib/rnp.cpp:8641,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:8641,1
    - Dst: rnp::DumpContextJson::dump
      Src: /src/rnp/src/lib/rnp.cpp:8646,1
    - Dst: ret_str_value
      Src: /src/rnp/src/lib/rnp.cpp:8651,1
    - Dst: rnp::json::dump_pretty
      Src: /src/rnp/src/lib/rnp.cpp:8651,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 3
    argNames:
    - src
    - flags
    - result
    argTypes:
    - pgp_source_t
    - uint32_t
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8652
      start: 8633
    functionDepth: 7
    functionLinenumber: 8633
    functionLinenumberEnd: 8652
    functionName: rnp_dump_src_to_json
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 1
    functionsReached:
    - extract_flag
    - rnp::DumpContextJson::set_dump_packets
    - rnp::json::dump_pretty
    - rnp::DumpContextJson::set_dump_grips
    - ret_str_value
    - rnp::DumpContextJson::set_dump_mpi
    - rnp::DumpContextJson::dump
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t rnp_dump_src_to_json(pgp_source_t &src, uint32_t flags,
      char **result)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Key*::write_vec
      Src: /src/rnp/src/lib/rnp.cpp:8666,1
    - Dst: rnp_dump_src_to_json
      Src: /src/rnp/src/lib/rnp.cpp:8668,1
    - Dst: rnp::MemorySource::src
      Src: /src/rnp/src/lib/rnp.cpp:8668,1
    - Dst: rnp_dump_src_to_json
      Src: /src/rnp/src/lib/rnp.cpp:8678,1
    - Dst: rnp::DumpContextDst::set_dump_mpi
      Src: /src/rnp/src/lib/rnp.cpp:8690,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:8690,1
    - Dst: rnp::DumpContextDst::set_dump_packets
      Src: /src/rnp/src/lib/rnp.cpp:8691,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:8691,1
    - Dst: rnp::DumpContextDst::set_dump_grips
      Src: /src/rnp/src/lib/rnp.cpp:8692,1
    - Dst: extract_flag
      Src: /src/rnp/src/lib/rnp.cpp:8692,1
    - Dst: rnp::DumpContextDst::dump
      Src: /src/rnp/src/lib/rnp.cpp:8697,1
    - Dst: std::next
      Src: /src/rnp/src/lib/rnp.cpp:8708,1
    - Dst: rnp_identifier_iterator_t::store::keys::end
      Src: /src/rnp/src/lib/rnp.cpp:8709,1
    - Dst: rnp_identifier_iterator_t::ffi::secring::keys::empty
      Src: /src/rnp/src/lib/rnp.cpp:8714,1
    - Dst: rnp_identifier_iterator_t::store::keys::begin
      Src: /src/rnp/src/lib/rnp.cpp:8716,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 39
    argCount: 1
    argNames:
    - it
    argTypes:
    - rnp_identifier_iterator_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8723
      start: 8654
    functionDepth: 9
    functionLinenumber: 8654
    functionLinenumberEnd: 8723
    functionName: key_iter_next_key
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - extract_flag
    - rnp::DumpContextDst::set_dump_grips
    - rnp_dump_src_to_json
    - rnp::Key*::write_vec
    - rnp_identifier_iterator_t::store::keys::begin
    - rnp::DumpContextDst::set_dump_mpi
    - rnp::DumpContextDst::set_dump_packets
    - rnp::DumpContextDst::dump
    - std::next
    - rnp_identifier_iterator_t::store::keys::end
    - rnp::MemorySource::src
    - rnp_identifier_iterator_t::ffi::secring::keys::empty
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t key_iter_next_key(rnp_identifier_iterator_t it)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: key_iter_next_key
      Src: /src/rnp/src/lib/rnp.cpp:8733,1
    - Dst: uid_count
      Src: /src/rnp/src/lib/rnp.cpp:8736,1
    - Dst: key_iter_next_key
      Src: /src/rnp/src/lib/rnp.cpp:8737,1
    - Dst: assert
      Src: /src/rnp/src/lib/rnp.cpp:8744,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 1
    argNames:
    - it
    argTypes:
    - rnp_identifier_iterator_t
    assertStmts:
    - condition: (false)
      pos:
        line_end: 8743
        line_start: 8743
        source_file: /src/rnp/src/lib/rnp.cpp
    constantsTouched: []
    func_position:
      end: 8748
      start: 8726
    functionDepth: 10
    functionLinenumber: 8726
    functionLinenumberEnd: 8748
    functionName: key_iter_next_item
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - assert
    - key_iter_next_key
    - uid_count
    linkageType: ''
    returnType: bool
    signature: bool key_iter_next_item(rnp_identifier_iterator_t it)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp_identifier_iterator_t::ffi::pubring::key_count
      Src: /src/rnp/src/lib/rnp.cpp:8753,1
    - Dst: rnp_identifier_iterator_t::ffi::secring::key_count
      Src: /src/rnp/src/lib/rnp.cpp:8755,1
    - Dst: rnp_identifier_iterator_t::store::keys::begin
      Src: /src/rnp/src/lib/rnp.cpp:8761,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 1
    argNames:
    - it
    argTypes:
    - rnp_identifier_iterator_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8764
      start: 8750
    functionDepth: 1
    functionLinenumber: 8750
    functionLinenumberEnd: 8764
    functionName: key_iter_first_key
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp_identifier_iterator_t::ffi::secring::key_count
    - rnp_identifier_iterator_t::ffi::pubring::key_count
    - rnp_identifier_iterator_t::store::keys::begin
    linkageType: ''
    returnType: bool
    signature: bool key_iter_first_key(rnp_identifier_iterator_t it)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: key_iter_first_key
      Src: /src/rnp/src/lib/rnp.cpp:8773,1
    - Dst: key_iter_first_key
      Src: /src/rnp/src/lib/rnp.cpp:8775,1
    - Dst: uid_count
      Src: /src/rnp/src/lib/rnp.cpp:8779,1
    - Dst: key_iter_next_key
      Src: /src/rnp/src/lib/rnp.cpp:8780,1
    - Dst: assert
      Src: /src/rnp/src/lib/rnp.cpp:8786,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 1
    argNames:
    - it
    argTypes:
    - rnp_identifier_iterator_t
    assertStmts:
    - condition: (false)
      pos:
        line_end: 8785
        line_start: 8785
        source_file: /src/rnp/src/lib/rnp.cpp
    constantsTouched: []
    func_position:
      end: 8790
      start: 8766
    functionDepth: 10
    functionLinenumber: 8766
    functionLinenumberEnd: 8790
    functionName: key_iter_first_item
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - key_iter_next_key
    - key_iter_first_key
    - assert
    - uid_count
    linkageType: ''
    returnType: bool
    signature: bool key_iter_first_item(rnp_identifier_iterator_t it)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bin_to_hex
      Src: /src/rnp/src/lib/rnp.cpp:8798,1
    - Dst: auto::keyid
      Src: /src/rnp/src/lib/rnp.cpp:8798,1
    - Dst: auto::keyid
      Src: /src/rnp/src/lib/rnp.cpp:8798,1
    - Dst: rnp::bin_to_hex
      Src: /src/rnp/src/lib/rnp.cpp:8800,1
    - Dst: auto::fp
      Src: /src/rnp/src/lib/rnp.cpp:8800,1
    - Dst: auto::fp
      Src: /src/rnp/src/lib/rnp.cpp:8800,1
    - Dst: rnp::bin_to_hex
      Src: /src/rnp/src/lib/rnp.cpp:8802,1
    - Dst: auto::grip
      Src: /src/rnp/src/lib/rnp.cpp:8802,1
    - Dst: auto::grip
      Src: /src/rnp/src/lib/rnp.cpp:8802,1
    - Dst: auto::uid_count
      Src: /src/rnp/src/lib/rnp.cpp:8804,1
    - Dst: auto::get_uid
      Src: /src/rnp/src/lib/rnp.cpp:8807,1
    - Dst: assert
      Src: /src/rnp/src/lib/rnp.cpp:8809,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 1
    argNames:
    - it
    argTypes:
    - rnp_identifier_iterator_t
    assertStmts:
    - condition: (false)
      pos:
        line_end: 8808
        line_start: 8808
        source_file: /src/rnp/src/lib/rnp.cpp
    constantsTouched: []
    func_position:
      end: 8812
      start: 8792
    functionDepth: 1
    functionLinenumber: 8792
    functionLinenumberEnd: 8812
    functionName: key_iter_get_item
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 0
    functionsReached:
    - rnp::bin_to_hex
    - auto::get_uid
    - assert
    - auto::fp
    - auto::keyid
    - auto::grip
    - auto::uid_count
    linkageType: ''
    returnType: std::string
    signature: std::string key_iter_get_item(const rnp_identifier_iterator_t it)
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: rnp::KeySearch::find_type
      Src: /src/rnp/src/lib/rnp.cpp:8824,1
    - Dst: rnp_identifier_iterator_st::rnp_identifier_iterator_st
      Src: /src/rnp/src/lib/rnp.cpp:8828,1
    - Dst: key_iter_first_item
      Src: /src/rnp/src/lib/rnp.cpp:8830,1
    - Dst: key_iter_get_item
      Src: /src/rnp/src/lib/rnp.cpp:8849,1
    - Dst: item::empty
      Src: /src/rnp/src/lib/rnp.cpp:8850,1
    - Dst: tbl::find
      Src: /src/rnp/src/lib/rnp.cpp:8855,1
    - Dst: tbl::end
      Src: /src/rnp/src/lib/rnp.cpp:8855,1
    - Dst: key_iter_next_item
      Src: /src/rnp/src/lib/rnp.cpp:8856,1
    - Dst: key_iter_get_item
      Src: /src/rnp/src/lib/rnp.cpp:8859,1
    - Dst: item::empty
      Src: /src/rnp/src/lib/rnp.cpp:8860,1
    - Dst: tbl::insert
      Src: /src/rnp/src/lib/rnp.cpp:8866,1
    - Dst: item::c_str
      Src: /src/rnp/src/lib/rnp.cpp:8867,1
    - Dst: key_iter_next_item
      Src: /src/rnp/src/lib/rnp.cpp:8871,1
    - Dst: src::is_cleartext
      Src: /src/rnp/src/lib/rnp.cpp:8895,1
    - Dst: src::is_armored
      Src: /src/rnp/src/lib/rnp.cpp:8897,1
    - Dst: rnp_armored_get_type
      Src: /src/rnp/src/lib/rnp.cpp:8898,1
    - Dst: rnp_armor_guess_type
      Src: /src/rnp/src/lib/rnp.cpp:8900,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:8902,1
    - Dst: strlen
      Src: /src/rnp/src/lib/rnp.cpp:8903,1
    - Dst: calloc
      Src: /src/rnp/src/lib/rnp.cpp:8904,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/rnp.cpp:8908,1
    - Dst: static_cast<pgp_armored_msg_t>
      Src: /src/rnp/src/lib/rnp.cpp:8921,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/rnp.cpp:8922,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/rnp.cpp:8924,1
    - Dst: rnp_armor_guess_type
      Src: /src/rnp/src/lib/rnp.cpp:8928,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/rnp.cpp:8930,1
    - Dst: rnp_armor_source
      Src: /src/rnp/src/lib/rnp.cpp:8934,1
    - Dst: rnp_dearmor_source
      Src: /src/rnp/src/lib/rnp.cpp:8946,1
    - Dst: dst_write_src
      Src: /src/rnp/src/lib/rnp.cpp:8958,1
    - Dst: armored_dst_set_line_length
      Src: /src/rnp/src/lib/rnp.cpp:8970,1
    - Dst: rnp::backend_string
      Src: /src/rnp/src/lib/rnp.cpp:8977,1
    CyclomaticComplexity: 31
    EdgeCount: 31
    ICount: 100
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8978
      start: 8814
    functionDepth: 11
    functionLinenumber: 8814
    functionLinenumberEnd: 8978
    functionName: rnp_backend_string
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 3
    functionsReached:
    - rnp::KeySearch::find_type
    - rnp_armor_source
    - rnp_armored_get_type
    - tbl::insert
    - strlen
    - rnp_armor_guess_type
    - rnp_identifier_iterator_st::rnp_identifier_iterator_st
    - rnp::backend_string
    - armored_dst_set_line_length
    - item::empty
    - rnp_dearmor_source
    - src::is_cleartext
    - RNP_LOG
    - memcpy
    - static_cast<pgp_armored_msg_t>
    - item::c_str
    - dst_write_src
    - key_iter_get_item
    - id_str_pair::lookup
    - tbl::find
    - key_iter_first_item
    - key_iter_next_item
    - tbl::end
    - src::is_armored
    - calloc
    linkageType: ''
    returnType: rnp_result_t
    signature: 'rnp_result_t *

      rnp_backend_string()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::backend_version
      Src: /src/rnp/src/lib/rnp.cpp:8983,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8984
      start: 8980
    functionDepth: 1
    functionLinenumber: 8980
    functionLinenumberEnd: 8984
    functionName: rnp_backend_version
    functionSourceFile: /src/rnp/src/lib/rnp.cpp
    functionUses: 2
    functionsReached:
    - rnp::backend_version
    linkageType: ''
    returnType: char
    signature: 'char *

      rnp_backend_version()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_id
      Src: /src/rnp/src/lib/signature.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - sigpkt
    argTypes:
    - pgp::pkt::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: rnp::Signature::Signature
    functionSourceFile: /src/rnp/src/lib/signature.cpp
    functionUses: 2
    functionsReached:
    - get_id
    linkageType: ''
    returnType: void
    signature: void Signature::Signature(const pgp::pkt::Signature &sigpkt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/rnp/src/lib/signature.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 48
    functionName: rnp::Signature::is_cert
    functionSourceFile: /src/rnp/src/lib/signature.cpp
    functionUses: 0
    functionsReached:
    - type
    linkageType: ''
    returnType: bool
    signature: bool Signature::is_cert() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/rnp/src/lib/signature.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: rnp::Signature::is_revocation
    functionSourceFile: /src/rnp/src/lib/signature.cpp
    functionUses: 0
    functionsReached:
    - type
    linkageType: ''
    returnType: bool
    signature: bool Signature::is_revocation() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expiration
      Src: /src/rnp/src/lib/signature.cpp:67,1
    - Dst: creation
      Src: /src/rnp/src/lib/signature.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - at
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: rnp::Signature::expired
    functionSourceFile: /src/rnp/src/lib/signature.cpp
    functionUses: 0
    functionsReached:
    - expiration
    - creation
    linkageType: ''
    returnType: bool
    signature: bool Signature::expired(uint64_t at) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Signature::sig::has_subpkt
      Src: /src/rnp/src/lib/signature.cpp:85,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/signature.cpp:86,1
    - Dst: Signature::sig::revocation_code
      Src: /src/rnp/src/lib/signature.cpp:89,1
    - Dst: Signature::sig::revocation_reason
      Src: /src/rnp/src/lib/signature.cpp:90,1
    - Dst: empty
      Src: /src/rnp/src/lib/signature.cpp:92,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/signature.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - sig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: rnp::Revocation::Revocation
    functionSourceFile: /src/rnp/src/lib/signature.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - Signature::sig::revocation_code
    - Signature::sig::has_subpkt
    - Signature::sig::revocation_reason
    - id_str_pair::lookup
    - empty
    linkageType: ''
    returnType: void
    signature: void Revocation::Revocation(Signature &sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_id
      Src: /src/rnp/src/lib/signature.cpp:32,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - sigpkt
    argTypes:
    - pgp::pkt::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 34
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 34
    functionName: rnp::Signature::Signature
    functionSourceFile: /src/rnp/src/lib/signature.cpp
    functionUses: 2
    functionsReached:
    - get_id
    linkageType: ''
    returnType: void
    signature: void Signature::Signature(const pgp::pkt::Signature &sigpkt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/rnp/src/lib/signature.cpp:39,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 48
    functionName: rnp::Signature::is_cert
    functionSourceFile: /src/rnp/src/lib/signature.cpp
    functionUses: 0
    functionsReached:
    - type
    linkageType: ''
    returnType: bool
    signature: bool Signature::is_cert() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/rnp/src/lib/signature.cpp:53,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 50
    functionDepth: 1
    functionLinenumber: 50
    functionLinenumberEnd: 61
    functionName: rnp::Signature::is_revocation
    functionSourceFile: /src/rnp/src/lib/signature.cpp
    functionUses: 0
    functionsReached:
    - type
    linkageType: ''
    returnType: bool
    signature: bool Signature::is_revocation() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: expiration
      Src: /src/rnp/src/lib/signature.cpp:67,1
    - Dst: creation
      Src: /src/rnp/src/lib/signature.cpp:71,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - at
    argTypes:
    - uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 63
    functionDepth: 0
    functionLinenumber: 63
    functionLinenumberEnd: 72
    functionName: rnp::Signature::expired
    functionSourceFile: /src/rnp/src/lib/signature.cpp
    functionUses: 0
    functionsReached:
    - expiration
    - creation
    linkageType: ''
    returnType: bool
    signature: bool Signature::expired(uint64_t at) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Signature::sig::has_subpkt
      Src: /src/rnp/src/lib/signature.cpp:85,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/signature.cpp:86,1
    - Dst: Signature::sig::revocation_code
      Src: /src/rnp/src/lib/signature.cpp:89,1
    - Dst: Signature::sig::revocation_reason
      Src: /src/rnp/src/lib/signature.cpp:90,1
    - Dst: empty
      Src: /src/rnp/src/lib/signature.cpp:92,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/signature.cpp:93,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - sig
    argTypes:
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 83
    functionDepth: 1
    functionLinenumber: 83
    functionLinenumberEnd: 95
    functionName: rnp::Revocation::Revocation
    functionSourceFile: /src/rnp/src/lib/signature.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - Signature::sig::revocation_code
    - Signature::sig::has_subpkt
    - Signature::sig::revocation_reason
    - id_str_pair::lookup
    - empty
    linkageType: ''
    returnType: void
    signature: void Revocation::Revocation(Signature &sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - affi
    argTypes:
    - rnp_ffi_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: rnp_key_handle_st
    functionSourceFile: /src/rnp/src/lib/ffi-priv-types.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_key_handle_st(rnp_ffi_t affi, rnp::Key *apub = nullptr, rnp::Key
      *asec = nullptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - affi
    argTypes:
    - rnp_ffi_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: rnp_signature_handle_st
    functionSourceFile: /src/rnp/src/lib/ffi-priv-types.h
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void rnp_signature_handle_st(rnp_ffi_t       affi,\n                            const
      rnp::Key *akey = nullptr,\n                            rnp::Signature *asig
      = nullptr,\n                            bool            aown_sig = false,\n
      \                           bool            anew_sig = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - pgp::pkt::sigsub::Raw
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 85
    functionName: rnp_sig_subpacket_st
    functionSourceFile: /src/rnp/src/lib/ffi-priv-types.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_sig_subpacket_st(const pgp::pkt::sigsub::Raw &val)
  - 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: rnp_recipient_handle_st
    functionSourceFile: /src/rnp/src/lib/ffi-priv-types.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_recipient_handle_st()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 108
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 108
    functionName: rnp_symenc_handle_st
    functionSourceFile: /src/rnp/src/lib/ffi-priv-types.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_symenc_handle_st()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 139
    functionName: rnp_input_st
    functionSourceFile: /src/rnp/src/lib/ffi-priv-types.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_input_st(const rnp_input_st &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 140
    functionName: rnp_input_st
    functionSourceFile: /src/rnp/src/lib/ffi-priv-types.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_input_st(rnp_input_st &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 143
    functionName: '&operator=(const rnp_input_st &)'
    functionSourceFile: /src/rnp/src/lib/ffi-priv-types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_input_st
    signature: rnp_input_st &operator=(const rnp_input_st &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: default_key_flags
      Src: /src/rnp/src/lib/ffi-priv-types.h:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - affi
    - alg
    argTypes:
    - rnp_ffi_t
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 176
    functionDepth: 0
    functionLinenumber: 176
    functionLinenumberEnd: 181
    functionName: rnp_op_generate_st
    functionSourceFile: /src/rnp/src/lib/ffi-priv-types.h
    functionUses: 1
    functionsReached:
    - default_key_flags
    linkageType: ''
    returnType: void
    signature: void rnp_op_generate_st(rnp_ffi_t affi, pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: default_key_flags
      Src: /src/rnp/src/lib/ffi-priv-types.h:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - affi
    - alg
    - primary
    argTypes:
    - rnp_ffi_t
    - pgp_pubkey_alg_t
    - rnp_key_handle_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: rnp_op_generate_st
    functionSourceFile: /src/rnp/src/lib/ffi-priv-types.h
    functionUses: 1
    functionsReached:
    - default_key_flags
    linkageType: ''
    returnType: void
    signature: void rnp_op_generate_st(rnp_ffi_t affi, pgp_pubkey_alg_t alg, rnp_key_handle_t
      primary)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - affi
    - in
    - out
    argTypes:
    - rnp_ffi_t
    - rnp_input_t
    - rnp_output_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 210
    functionDepth: 0
    functionLinenumber: 210
    functionLinenumberEnd: 214
    functionName: rnp_op_sign_st
    functionSourceFile: /src/rnp/src/lib/ffi-priv-types.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_op_sign_st(rnp_ffi_t affi, rnp_input_t in, rnp_output_t out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - affi
    - in
    - out
    argTypes:
    - rnp_ffi_t
    - rnp_input_t
    - rnp_output_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 254
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 254
    functionName: rnp_op_verify_st
    functionSourceFile: /src/rnp/src/lib/ffi-priv-types.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_op_verify_st(rnp_ffi_t affi, rnp_input_t in, rnp_output_t
      out)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - affi
    - data
    - signature
    argTypes:
    - rnp_ffi_t
    - rnp_input_t
    - rnp_input_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 261
    functionName: rnp_op_verify_st
    functionSourceFile: /src/rnp/src/lib/ffi-priv-types.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_op_verify_st(rnp_ffi_t affi, rnp_input_t data, rnp_input_t
      signature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - affi
    - in
    - out
    argTypes:
    - rnp_ffi_t
    - rnp_input_t
    - rnp_output_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: rnp_op_encrypt_st
    functionSourceFile: /src/rnp/src/lib/ffi-priv-types.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_op_encrypt_st(rnp_ffi_t affi, rnp_input_t in, rnp_output_t
      out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::list<rnp::Key>::iterator::iterator
      Src: /src/rnp/src/lib/ffi-priv-types.h:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - affi
    - atype
    argTypes:
    - rnp_ffi_t
    - rnp::KeySearch::Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 300
      start: 294
    functionDepth: 0
    functionLinenumber: 294
    functionLinenumberEnd: 300
    functionName: rnp_identifier_iterator_st
    functionSourceFile: /src/rnp/src/lib/ffi-priv-types.h
    functionUses: 1
    functionsReached:
    - std::list<rnp::Key>::iterator::iterator
    linkageType: ''
    returnType: void
    signature: void rnp_identifier_iterator_st(rnp_ffi_t affi, rnp::KeySearch::Type
      atype)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 302
    functionDepth: 0
    functionLinenumber: 302
    functionLinenumberEnd: 305
    functionName: ~rnp_identifier_iterator_st()
    functionSourceFile: /src/rnp/src/lib/ffi-priv-types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~rnp_identifier_iterator_st()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - opobj
    argTypes:
    - rnp_op_verify_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 314
      start: 313
    functionDepth: 0
    functionLinenumber: 313
    functionLinenumberEnd: 314
    functionName: rnp_decryption_kp_param_t
    functionSourceFile: /src/rnp/src/lib/ffi-priv-types.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void rnp_decryption_kp_param_t(rnp_op_verify_t opobj)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ahalg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: pgp::SigMaterial::SigMaterial
    functionSourceFile: /src/rnp/src/lib/sig_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SigMaterial(pgp_hash_alg_t ahalg)
  - 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: ~SigMaterial()
    functionSourceFile: /src/rnp/src/lib/sig_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~SigMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ahalg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: pgp::RSASigMaterial::RSASigMaterial
    functionSourceFile: /src/rnp/src/lib/sig_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSASigMaterial(pgp_hash_alg_t ahalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ahalg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: pgp::DSASigMaterial::DSASigMaterial
    functionSourceFile: /src/rnp/src/lib/sig_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSASigMaterial(pgp_hash_alg_t ahalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ahalg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: pgp::EGSigMaterial::EGSigMaterial
    functionSourceFile: /src/rnp/src/lib/sig_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EGSigMaterial(pgp_hash_alg_t ahalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ahalg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: pgp::ECSigMaterial::ECSigMaterial
    functionSourceFile: /src/rnp/src/lib/sig_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECSigMaterial(pgp_hash_alg_t ahalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ahalg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: pgp::Ed25519SigMaterial::Ed25519SigMaterial
    functionSourceFile: /src/rnp/src/lib/sig_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed25519SigMaterial(pgp_hash_alg_t ahalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ahalg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: pgp::Ed448SigMaterial::Ed448SigMaterial
    functionSourceFile: /src/rnp/src/lib/sig_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448SigMaterial(pgp_hash_alg_t ahalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - apalg
    - ahalg
    argTypes:
    - pgp_pubkey_alg_t
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: pgp::DilithiumSigMaterial::DilithiumSigMaterial
    functionSourceFile: /src/rnp/src/lib/sig_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DilithiumSigMaterial(pgp_pubkey_alg_t apalg, pgp_hash_alg_t ahalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - apalg
    - ahalg
    argTypes:
    - pgp_pubkey_alg_t
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: pgp::SlhdsaSigMaterial::SlhdsaSigMaterial
    functionSourceFile: /src/rnp/src/lib/sig_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SlhdsaSigMaterial(pgp_pubkey_alg_t apalg, pgp_hash_alg_t ahalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ahalg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 40
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 40
    functionName: pgp::SigMaterial::SigMaterial
    functionSourceFile: /src/rnp/src/lib/sig_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SigMaterial(pgp_hash_alg_t ahalg)
  - 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: ~SigMaterial()
    functionSourceFile: /src/rnp/src/lib/sig_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~SigMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ahalg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 52
    functionName: pgp::RSASigMaterial::RSASigMaterial
    functionSourceFile: /src/rnp/src/lib/sig_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RSASigMaterial(pgp_hash_alg_t ahalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ahalg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 61
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 61
    functionName: pgp::DSASigMaterial::DSASigMaterial
    functionSourceFile: /src/rnp/src/lib/sig_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DSASigMaterial(pgp_hash_alg_t ahalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ahalg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 70
    functionName: pgp::EGSigMaterial::EGSigMaterial
    functionSourceFile: /src/rnp/src/lib/sig_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void EGSigMaterial(pgp_hash_alg_t ahalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ahalg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 79
    functionName: pgp::ECSigMaterial::ECSigMaterial
    functionSourceFile: /src/rnp/src/lib/sig_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ECSigMaterial(pgp_hash_alg_t ahalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ahalg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: pgp::Ed25519SigMaterial::Ed25519SigMaterial
    functionSourceFile: /src/rnp/src/lib/sig_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed25519SigMaterial(pgp_hash_alg_t ahalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ahalg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 98
    functionName: pgp::Ed448SigMaterial::Ed448SigMaterial
    functionSourceFile: /src/rnp/src/lib/sig_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Ed448SigMaterial(pgp_hash_alg_t ahalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - apalg
    - ahalg
    argTypes:
    - pgp_pubkey_alg_t
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 112
    functionName: pgp::DilithiumSigMaterial::DilithiumSigMaterial
    functionSourceFile: /src/rnp/src/lib/sig_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void DilithiumSigMaterial(pgp_pubkey_alg_t apalg, pgp_hash_alg_t ahalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - apalg
    - ahalg
    argTypes:
    - pgp_pubkey_alg_t
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: pgp::SlhdsaSigMaterial::SlhdsaSigMaterial
    functionSourceFile: /src/rnp/src/lib/sig_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SlhdsaSigMaterial(pgp_pubkey_alg_t apalg, pgp_hash_alg_t ahalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: ~EncMaterial()
    functionSourceFile: /src/rnp/src/lib/enc_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~EncMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: pgp::MlkemEcdhEncMaterial::MlkemEcdhEncMaterial
    functionSourceFile: /src/rnp/src/lib/enc_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MlkemEcdhEncMaterial(pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 43
    functionName: ~EncMaterial()
    functionSourceFile: /src/rnp/src/lib/enc_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~EncMaterial()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 110
    functionName: pgp::MlkemEcdhEncMaterial::MlkemEcdhEncMaterial
    functionSourceFile: /src/rnp/src/lib/enc_material.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void MlkemEcdhEncMaterial(pgp_pubkey_alg_t alg)
  - 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: rnp::RawPacket::RawPacket
    functionSourceFile: /src/rnp/src/lib/rawpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawPacket()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: "&\n    data() const noexcept"
    functionSourceFile: /src/rnp/src/lib/rawpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    data() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: rnp::RawPacket::tag
    functionSourceFile: /src/rnp/src/lib/rawpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_pkt_type_t
    signature: pgp_pkt_type_t tag() const noexcept
  - 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: rnp::RawPacket::RawPacket
    functionSourceFile: /src/rnp/src/lib/rawpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RawPacket()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: "&\n    data() const noexcept"
    functionSourceFile: /src/rnp/src/lib/rawpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    data() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: rnp::RawPacket::tag
    functionSourceFile: /src/rnp/src/lib/rawpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_pkt_type_t
    signature: pgp_pkt_type_t tag() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: pgp::pkt::sigsub::Raw::raw_type
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t raw_type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: "&\n    data() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    data() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: pgp::pkt::sigsub::Raw::type
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Type
    signature: Type type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: pgp::pkt::sigsub::Raw::critical
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool critical() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: pgp::pkt::sigsub::Raw::set_critical
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_critical(bool value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: pgp::pkt::sigsub::Raw::hashed
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hashed() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: pgp::pkt::sigsub::Time::Time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Time(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: pgp::pkt::sigsub::Time::time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t time() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - time
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: pgp::pkt::sigsub::Time::set_time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_time(uint32_t time) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: pgp::pkt::sigsub::CreationTime::CreationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CreationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: pgp::pkt::sigsub::ExpirationTime::ExpirationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExpirationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: pgp::pkt::sigsub::KeyExpirationTime::KeyExpirationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyExpirationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: pgp::pkt::sigsub::Bool::Bool
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bool(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: pgp::pkt::sigsub::ExportableCert::ExportableCert
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExportableCert(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 266
    functionName: pgp::pkt::sigsub::ExportableCert::exportable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool exportable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exportable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: pgp::pkt::sigsub::ExportableCert::set_exportable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_exportable(bool exportable) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: pgp::pkt::sigsub::Trust::Trust
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Trust(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: pgp::pkt::sigsub::Trust::level
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t level() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: pgp::pkt::sigsub::Trust::amount
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t amount() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - level
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: pgp::pkt::sigsub::Trust::set_level
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_level(uint8_t level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - amount
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: pgp::pkt::sigsub::Trust::set_amount
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_amount(uint8_t amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 336
    functionName: pgp::pkt::sigsub::String::String
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 346
    functionName: pgp::pkt::sigsub::RegExp::RegExp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegExp(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: "&\n    regexp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    regexp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 364
    functionName: pgp::pkt::sigsub::Revocable::Revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Revocable(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: pgp::pkt::sigsub::Revocable::revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool revocable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - revocable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 377
    functionName: pgp::pkt::sigsub::Revocable::set_revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_revocable(bool revocable) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 393
    functionName: pgp::pkt::sigsub::Preferred::Preferred
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Preferred(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 399
    functionName: "&\n    algs() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    algs() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 406
    functionName: pgp::pkt::sigsub::Preferred::set_algs
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_algs(const std::vector<uint8_t> &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 415
    functionName: pgp::pkt::sigsub::PreferredSymmetric::PreferredSymmetric
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredSymmetric(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 424
    functionName: pgp::pkt::sigsub::PreferredHash::PreferredHash
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredHash(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 433
    functionName: pgp::pkt::sigsub::PreferredCompress::PreferredCompress
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredCompress(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 442
    functionName: pgp::pkt::sigsub::PreferredAEAD::PreferredAEAD
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredAEAD(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 455
    functionName: pgp::pkt::sigsub::PreferredAEADv6::PreferredAEADv6
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredAEADv6(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 476
    functionName: pgp::pkt::sigsub::RevocationKey::RevocationKey
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RevocationKey(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 482
    functionName: pgp::pkt::sigsub::RevocationKey::rev_class
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t rev_class() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 489
    functionName: pgp::pkt::sigsub::RevocationKey::set_rev_class
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_rev_class(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: pgp::pkt::sigsub::RevocationKey::alg
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_pubkey_alg_t
    signature: pgp_pubkey_alg_t alg() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 502
    functionName: pgp::pkt::sigsub::RevocationKey::set_alg
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_alg(pgp_pubkey_alg_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 508
    functionName: "&\n    fp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Fingerprint
    signature: "Fingerprint &\n    fp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fp
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 515
    functionName: pgp::pkt::sigsub::RevocationKey::set_fp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_fp(const Fingerprint &fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IssuerKeyID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 540
    functionName: "&\n    keyid() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeyID
    signature: "KeyID &\n    keyid() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - KeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: pgp::pkt::sigsub::IssuerKeyID::set_keyid
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_keyid(const KeyID &value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 568
    functionName: pgp::pkt::sigsub::NotationData::NotationData
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NotationData(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: pgp::pkt::sigsub::NotationData::human_readable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool human_readable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 582
    functionName: "&\n    name() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    name() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 590
    functionName: "&\n    value() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    value() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 610
    functionName: pgp::pkt::sigsub::Flags::Flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Flags(Type type, bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 621
    functionName: pgp::pkt::sigsub::KeyserverPrefs::KeyserverPrefs
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyserverPrefs(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 627
    functionName: pgp::pkt::sigsub::KeyserverPrefs::no_modify
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool no_modify() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 634
    functionName: pgp::pkt::sigsub::KeyserverPrefs::set_no_modify
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_no_modify(bool value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 640
    functionName: pgp::pkt::sigsub::KeyserverPrefs::raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t raw() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 647
    functionName: pgp::pkt::sigsub::KeyserverPrefs::set_raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_raw(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 658
    functionName: pgp::pkt::sigsub::PreferredKeyserver::PreferredKeyserver
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredKeyserver(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 664
    functionName: "&\n    keyserver() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    keyserver() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 671
    functionName: pgp::pkt::sigsub::PreferredKeyserver::set_keyserver
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_keyserver(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 682
    functionName: pgp::pkt::sigsub::PrimaryUserID::PrimaryUserID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrimaryUserID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 688
    functionName: pgp::pkt::sigsub::PrimaryUserID::primary
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool primary() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - primary
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 695
    functionName: pgp::pkt::sigsub::PrimaryUserID::set_primary
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_primary(bool primary) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 706
    functionName: pgp::pkt::sigsub::PolicyURI::PolicyURI
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolicyURI(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 712
    functionName: "&\n    URI() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    URI() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 723
    functionName: pgp::pkt::sigsub::KeyFlags::KeyFlags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyFlags(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 729
    functionName: pgp::pkt::sigsub::KeyFlags::flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t flags() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 736
    functionName: pgp::pkt::sigsub::KeyFlags::set_flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_flags(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 747
    functionName: pgp::pkt::sigsub::SignersUserID::SignersUserID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SignersUserID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 753
    functionName: "&\n    signer() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    signer() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 760
    functionName: pgp::pkt::sigsub::SignersUserID::set_signer
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_signer(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 780
    functionName: pgp::pkt::sigsub::RevocationReason::RevocationReason
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RevocationReason(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 786
    functionName: pgp::pkt::sigsub::RevocationReason::code
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_revocation_type_t
    signature: pgp_revocation_type_t code() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - pgp_revocation_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 793
    functionName: pgp::pkt::sigsub::RevocationReason::set_code
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_code(pgp_revocation_type_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 799
    functionName: "&\n    reason() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    reason() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 806
    functionName: pgp::pkt::sigsub::RevocationReason::set_reason
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_reason(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 817
    functionName: pgp::pkt::sigsub::Features::Features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Features(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 823
    functionName: pgp::pkt::sigsub::Features::features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t features() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 830
    functionName: pgp::pkt::sigsub::Features::set_features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_features(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 873
    functionName: pgp::pkt::sigsub::IssuerFingerprint::IssuerFingerprint
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IssuerFingerprint(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 879
    functionName: pgp::pkt::sigsub::IssuerFingerprint::version
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t version() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 886
    functionName: pgp::pkt::sigsub::IssuerFingerprint::set_version
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_version(uint8_t version) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 892
    functionName: "&\n    fp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Fingerprint
    signature: "Fingerprint &\n    fp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fp
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 899
    functionName: pgp::pkt::sigsub::IssuerFingerprint::set_fp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_fp(const Fingerprint &fp) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 910
    functionName: pgp::pkt::sigsub::List::List
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void List()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::begin
      Src: /src/rnp/src/lib/sig_subpacket.hpp:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 918
    functionName: pgp::pkt::sigsub::List::begin
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 1
    functionsReached:
    - pgp::pkt::sigsub::List::begin
    linkageType: ''
    returnType: std::vector<RawPtr>::iterator
    signature: std::vector<RawPtr>::iterator begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::end
      Src: /src/rnp/src/lib/sig_subpacket.hpp:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 924
    functionName: pgp::pkt::sigsub::List::end
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 1
    functionsReached:
    - pgp::pkt::sigsub::List::end
    linkageType: ''
    returnType: std::vector<RawPtr>::iterator
    signature: std::vector<RawPtr>::iterator end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::begin
      Src: /src/rnp/src/lib/sig_subpacket.hpp:929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 930
    functionName: pgp::pkt::sigsub::List::begin
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 2
    functionsReached:
    - pgp::pkt::sigsub::List::begin
    linkageType: ''
    returnType: std::vector<RawPtr>::const_iterator
    signature: std::vector<RawPtr>::const_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::end
      Src: /src/rnp/src/lib/sig_subpacket.hpp:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 936
    functionName: pgp::pkt::sigsub::List::end
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 2
    functionsReached:
    - pgp::pkt::sigsub::List::end
    linkageType: ''
    returnType: std::vector<RawPtr>::const_iterator
    signature: std::vector<RawPtr>::const_iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::size
      Src: /src/rnp/src/lib/sig_subpacket.hpp:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 942
    functionName: pgp::pkt::sigsub::List::size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 1
    functionsReached:
    - pgp::pkt::sigsub::List::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 948
    functionName: "&\n    operator[](size_t idx)"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawPtr
    signature: "RawPtr &\n    operator[](size_t idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 954
    functionName: "&\n    operator[](size_t idx) const"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawPtr
    signature: "RawPtr &\n    operator[](size_t idx) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: pgp::pkt::sigsub::Raw::raw_type
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t raw_type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: "&\n    data() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    data() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: pgp::pkt::sigsub::Raw::type
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Type
    signature: Type type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: pgp::pkt::sigsub::Raw::critical
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool critical() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: pgp::pkt::sigsub::Raw::set_critical
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_critical(bool value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: pgp::pkt::sigsub::Raw::hashed
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hashed() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: pgp::pkt::sigsub::Time::Time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Time(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: pgp::pkt::sigsub::Time::time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t time() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - time
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: pgp::pkt::sigsub::Time::set_time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_time(uint32_t time) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: pgp::pkt::sigsub::CreationTime::CreationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CreationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: pgp::pkt::sigsub::ExpirationTime::ExpirationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExpirationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: pgp::pkt::sigsub::KeyExpirationTime::KeyExpirationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyExpirationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: pgp::pkt::sigsub::Bool::Bool
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bool(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: pgp::pkt::sigsub::ExportableCert::ExportableCert
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExportableCert(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 266
    functionName: pgp::pkt::sigsub::ExportableCert::exportable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool exportable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exportable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: pgp::pkt::sigsub::ExportableCert::set_exportable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_exportable(bool exportable) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: pgp::pkt::sigsub::Trust::Trust
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Trust(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: pgp::pkt::sigsub::Trust::level
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t level() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: pgp::pkt::sigsub::Trust::amount
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t amount() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - level
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: pgp::pkt::sigsub::Trust::set_level
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_level(uint8_t level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - amount
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: pgp::pkt::sigsub::Trust::set_amount
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_amount(uint8_t amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 336
    functionName: pgp::pkt::sigsub::String::String
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 346
    functionName: pgp::pkt::sigsub::RegExp::RegExp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegExp(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: "&\n    regexp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    regexp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 364
    functionName: pgp::pkt::sigsub::Revocable::Revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Revocable(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: pgp::pkt::sigsub::Revocable::revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool revocable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - revocable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 377
    functionName: pgp::pkt::sigsub::Revocable::set_revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_revocable(bool revocable) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 393
    functionName: pgp::pkt::sigsub::Preferred::Preferred
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Preferred(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 399
    functionName: "&\n    algs() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    algs() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 406
    functionName: pgp::pkt::sigsub::Preferred::set_algs
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_algs(const std::vector<uint8_t> &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 415
    functionName: pgp::pkt::sigsub::PreferredSymmetric::PreferredSymmetric
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredSymmetric(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 424
    functionName: pgp::pkt::sigsub::PreferredHash::PreferredHash
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredHash(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 433
    functionName: pgp::pkt::sigsub::PreferredCompress::PreferredCompress
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredCompress(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 442
    functionName: pgp::pkt::sigsub::PreferredAEAD::PreferredAEAD
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredAEAD(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 455
    functionName: pgp::pkt::sigsub::PreferredAEADv6::PreferredAEADv6
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredAEADv6(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 476
    functionName: pgp::pkt::sigsub::RevocationKey::RevocationKey
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RevocationKey(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 482
    functionName: pgp::pkt::sigsub::RevocationKey::rev_class
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t rev_class() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 489
    functionName: pgp::pkt::sigsub::RevocationKey::set_rev_class
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_rev_class(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: pgp::pkt::sigsub::RevocationKey::alg
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_pubkey_alg_t
    signature: pgp_pubkey_alg_t alg() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 502
    functionName: pgp::pkt::sigsub::RevocationKey::set_alg
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_alg(pgp_pubkey_alg_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 508
    functionName: "&\n    fp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Fingerprint
    signature: "Fingerprint &\n    fp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fp
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 515
    functionName: pgp::pkt::sigsub::RevocationKey::set_fp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_fp(const Fingerprint &fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IssuerKeyID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 540
    functionName: "&\n    keyid() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeyID
    signature: "KeyID &\n    keyid() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - KeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: pgp::pkt::sigsub::IssuerKeyID::set_keyid
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_keyid(const KeyID &value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 568
    functionName: pgp::pkt::sigsub::NotationData::NotationData
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NotationData(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: pgp::pkt::sigsub::NotationData::human_readable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool human_readable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 582
    functionName: "&\n    name() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    name() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 590
    functionName: "&\n    value() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    value() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 610
    functionName: pgp::pkt::sigsub::Flags::Flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Flags(Type type, bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 621
    functionName: pgp::pkt::sigsub::KeyserverPrefs::KeyserverPrefs
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyserverPrefs(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 627
    functionName: pgp::pkt::sigsub::KeyserverPrefs::no_modify
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool no_modify() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 634
    functionName: pgp::pkt::sigsub::KeyserverPrefs::set_no_modify
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_no_modify(bool value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 640
    functionName: pgp::pkt::sigsub::KeyserverPrefs::raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t raw() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 647
    functionName: pgp::pkt::sigsub::KeyserverPrefs::set_raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_raw(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 658
    functionName: pgp::pkt::sigsub::PreferredKeyserver::PreferredKeyserver
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredKeyserver(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 664
    functionName: "&\n    keyserver() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    keyserver() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 671
    functionName: pgp::pkt::sigsub::PreferredKeyserver::set_keyserver
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_keyserver(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 682
    functionName: pgp::pkt::sigsub::PrimaryUserID::PrimaryUserID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrimaryUserID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 688
    functionName: pgp::pkt::sigsub::PrimaryUserID::primary
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool primary() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - primary
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 695
    functionName: pgp::pkt::sigsub::PrimaryUserID::set_primary
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_primary(bool primary) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 706
    functionName: pgp::pkt::sigsub::PolicyURI::PolicyURI
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolicyURI(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 712
    functionName: "&\n    URI() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    URI() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 723
    functionName: pgp::pkt::sigsub::KeyFlags::KeyFlags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyFlags(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 729
    functionName: pgp::pkt::sigsub::KeyFlags::flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t flags() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 736
    functionName: pgp::pkt::sigsub::KeyFlags::set_flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_flags(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 747
    functionName: pgp::pkt::sigsub::SignersUserID::SignersUserID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SignersUserID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 753
    functionName: "&\n    signer() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    signer() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 760
    functionName: pgp::pkt::sigsub::SignersUserID::set_signer
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_signer(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 780
    functionName: pgp::pkt::sigsub::RevocationReason::RevocationReason
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RevocationReason(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 786
    functionName: pgp::pkt::sigsub::RevocationReason::code
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_revocation_type_t
    signature: pgp_revocation_type_t code() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - pgp_revocation_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 793
    functionName: pgp::pkt::sigsub::RevocationReason::set_code
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_code(pgp_revocation_type_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 799
    functionName: "&\n    reason() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    reason() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 806
    functionName: pgp::pkt::sigsub::RevocationReason::set_reason
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_reason(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 817
    functionName: pgp::pkt::sigsub::Features::Features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Features(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 823
    functionName: pgp::pkt::sigsub::Features::features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t features() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 830
    functionName: pgp::pkt::sigsub::Features::set_features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_features(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 873
    functionName: pgp::pkt::sigsub::IssuerFingerprint::IssuerFingerprint
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IssuerFingerprint(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 879
    functionName: pgp::pkt::sigsub::IssuerFingerprint::version
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t version() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 886
    functionName: pgp::pkt::sigsub::IssuerFingerprint::set_version
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_version(uint8_t version) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 892
    functionName: "&\n    fp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Fingerprint
    signature: "Fingerprint &\n    fp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fp
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 899
    functionName: pgp::pkt::sigsub::IssuerFingerprint::set_fp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_fp(const Fingerprint &fp) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 910
    functionName: pgp::pkt::sigsub::List::List
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void List()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::begin
      Src: /src/rnp/src/lib/sig_subpacket.hpp:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 918
    functionName: pgp::pkt::sigsub::List::begin
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 3
    functionsReached:
    - pgp::pkt::sigsub::List::begin
    linkageType: ''
    returnType: std::vector<RawPtr>::iterator
    signature: std::vector<RawPtr>::iterator begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::end
      Src: /src/rnp/src/lib/sig_subpacket.hpp:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 924
    functionName: pgp::pkt::sigsub::List::end
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 3
    functionsReached:
    - pgp::pkt::sigsub::List::end
    linkageType: ''
    returnType: std::vector<RawPtr>::iterator
    signature: std::vector<RawPtr>::iterator end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::begin
      Src: /src/rnp/src/lib/sig_subpacket.hpp:929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 930
    functionName: pgp::pkt::sigsub::List::begin
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 4
    functionsReached:
    - pgp::pkt::sigsub::List::begin
    linkageType: ''
    returnType: std::vector<RawPtr>::const_iterator
    signature: std::vector<RawPtr>::const_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::end
      Src: /src/rnp/src/lib/sig_subpacket.hpp:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 936
    functionName: pgp::pkt::sigsub::List::end
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 4
    functionsReached:
    - pgp::pkt::sigsub::List::end
    linkageType: ''
    returnType: std::vector<RawPtr>::const_iterator
    signature: std::vector<RawPtr>::const_iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::size
      Src: /src/rnp/src/lib/sig_subpacket.hpp:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 942
    functionName: pgp::pkt::sigsub::List::size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 2
    functionsReached:
    - pgp::pkt::sigsub::List::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 948
    functionName: "&\n    operator[](size_t idx)"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawPtr
    signature: "RawPtr &\n    operator[](size_t idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 954
    functionName: "&\n    operator[](size_t idx) const"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawPtr
    signature: "RawPtr &\n    operator[](size_t idx) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: pgp::pkt::sigsub::Raw::raw_type
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t raw_type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: "&\n    data() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    data() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: pgp::pkt::sigsub::Raw::type
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Type
    signature: Type type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: pgp::pkt::sigsub::Raw::critical
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool critical() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: pgp::pkt::sigsub::Raw::set_critical
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_critical(bool value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: pgp::pkt::sigsub::Raw::hashed
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hashed() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: pgp::pkt::sigsub::Time::Time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Time(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: pgp::pkt::sigsub::Time::time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t time() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - time
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: pgp::pkt::sigsub::Time::set_time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_time(uint32_t time) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: pgp::pkt::sigsub::CreationTime::CreationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CreationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: pgp::pkt::sigsub::ExpirationTime::ExpirationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExpirationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: pgp::pkt::sigsub::KeyExpirationTime::KeyExpirationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyExpirationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: pgp::pkt::sigsub::Bool::Bool
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bool(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: pgp::pkt::sigsub::ExportableCert::ExportableCert
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExportableCert(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 266
    functionName: pgp::pkt::sigsub::ExportableCert::exportable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool exportable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exportable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: pgp::pkt::sigsub::ExportableCert::set_exportable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_exportable(bool exportable) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: pgp::pkt::sigsub::Trust::Trust
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Trust(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: pgp::pkt::sigsub::Trust::level
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t level() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: pgp::pkt::sigsub::Trust::amount
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t amount() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - level
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: pgp::pkt::sigsub::Trust::set_level
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_level(uint8_t level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - amount
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: pgp::pkt::sigsub::Trust::set_amount
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_amount(uint8_t amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 336
    functionName: pgp::pkt::sigsub::String::String
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 346
    functionName: pgp::pkt::sigsub::RegExp::RegExp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegExp(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: "&\n    regexp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    regexp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 364
    functionName: pgp::pkt::sigsub::Revocable::Revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Revocable(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: pgp::pkt::sigsub::Revocable::revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool revocable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - revocable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 377
    functionName: pgp::pkt::sigsub::Revocable::set_revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_revocable(bool revocable) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 393
    functionName: pgp::pkt::sigsub::Preferred::Preferred
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Preferred(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 399
    functionName: "&\n    algs() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    algs() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 406
    functionName: pgp::pkt::sigsub::Preferred::set_algs
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_algs(const std::vector<uint8_t> &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 415
    functionName: pgp::pkt::sigsub::PreferredSymmetric::PreferredSymmetric
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredSymmetric(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 424
    functionName: pgp::pkt::sigsub::PreferredHash::PreferredHash
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredHash(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 433
    functionName: pgp::pkt::sigsub::PreferredCompress::PreferredCompress
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredCompress(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 442
    functionName: pgp::pkt::sigsub::PreferredAEAD::PreferredAEAD
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredAEAD(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 455
    functionName: pgp::pkt::sigsub::PreferredAEADv6::PreferredAEADv6
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredAEADv6(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 476
    functionName: pgp::pkt::sigsub::RevocationKey::RevocationKey
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RevocationKey(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 482
    functionName: pgp::pkt::sigsub::RevocationKey::rev_class
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t rev_class() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 489
    functionName: pgp::pkt::sigsub::RevocationKey::set_rev_class
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_rev_class(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: pgp::pkt::sigsub::RevocationKey::alg
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_pubkey_alg_t
    signature: pgp_pubkey_alg_t alg() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 502
    functionName: pgp::pkt::sigsub::RevocationKey::set_alg
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_alg(pgp_pubkey_alg_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 508
    functionName: "&\n    fp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Fingerprint
    signature: "Fingerprint &\n    fp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fp
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 515
    functionName: pgp::pkt::sigsub::RevocationKey::set_fp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_fp(const Fingerprint &fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IssuerKeyID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 540
    functionName: "&\n    keyid() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeyID
    signature: "KeyID &\n    keyid() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - KeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: pgp::pkt::sigsub::IssuerKeyID::set_keyid
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_keyid(const KeyID &value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 568
    functionName: pgp::pkt::sigsub::NotationData::NotationData
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NotationData(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: pgp::pkt::sigsub::NotationData::human_readable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool human_readable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 582
    functionName: "&\n    name() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    name() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 590
    functionName: "&\n    value() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    value() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 610
    functionName: pgp::pkt::sigsub::Flags::Flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Flags(Type type, bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 621
    functionName: pgp::pkt::sigsub::KeyserverPrefs::KeyserverPrefs
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyserverPrefs(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 627
    functionName: pgp::pkt::sigsub::KeyserverPrefs::no_modify
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool no_modify() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 634
    functionName: pgp::pkt::sigsub::KeyserverPrefs::set_no_modify
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_no_modify(bool value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 640
    functionName: pgp::pkt::sigsub::KeyserverPrefs::raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t raw() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 647
    functionName: pgp::pkt::sigsub::KeyserverPrefs::set_raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_raw(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 658
    functionName: pgp::pkt::sigsub::PreferredKeyserver::PreferredKeyserver
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredKeyserver(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 664
    functionName: "&\n    keyserver() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    keyserver() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 671
    functionName: pgp::pkt::sigsub::PreferredKeyserver::set_keyserver
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_keyserver(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 682
    functionName: pgp::pkt::sigsub::PrimaryUserID::PrimaryUserID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrimaryUserID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 688
    functionName: pgp::pkt::sigsub::PrimaryUserID::primary
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool primary() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - primary
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 695
    functionName: pgp::pkt::sigsub::PrimaryUserID::set_primary
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_primary(bool primary) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 706
    functionName: pgp::pkt::sigsub::PolicyURI::PolicyURI
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolicyURI(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 712
    functionName: "&\n    URI() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    URI() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 723
    functionName: pgp::pkt::sigsub::KeyFlags::KeyFlags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyFlags(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 729
    functionName: pgp::pkt::sigsub::KeyFlags::flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t flags() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 736
    functionName: pgp::pkt::sigsub::KeyFlags::set_flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_flags(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 747
    functionName: pgp::pkt::sigsub::SignersUserID::SignersUserID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SignersUserID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 753
    functionName: "&\n    signer() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    signer() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 760
    functionName: pgp::pkt::sigsub::SignersUserID::set_signer
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_signer(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 780
    functionName: pgp::pkt::sigsub::RevocationReason::RevocationReason
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RevocationReason(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 786
    functionName: pgp::pkt::sigsub::RevocationReason::code
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_revocation_type_t
    signature: pgp_revocation_type_t code() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - pgp_revocation_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 793
    functionName: pgp::pkt::sigsub::RevocationReason::set_code
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_code(pgp_revocation_type_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 799
    functionName: "&\n    reason() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    reason() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 806
    functionName: pgp::pkt::sigsub::RevocationReason::set_reason
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_reason(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 817
    functionName: pgp::pkt::sigsub::Features::Features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Features(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 823
    functionName: pgp::pkt::sigsub::Features::features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t features() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 830
    functionName: pgp::pkt::sigsub::Features::set_features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_features(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 873
    functionName: pgp::pkt::sigsub::IssuerFingerprint::IssuerFingerprint
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IssuerFingerprint(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 879
    functionName: pgp::pkt::sigsub::IssuerFingerprint::version
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t version() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 886
    functionName: pgp::pkt::sigsub::IssuerFingerprint::set_version
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_version(uint8_t version) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 892
    functionName: "&\n    fp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Fingerprint
    signature: "Fingerprint &\n    fp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fp
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 899
    functionName: pgp::pkt::sigsub::IssuerFingerprint::set_fp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_fp(const Fingerprint &fp) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 910
    functionName: pgp::pkt::sigsub::List::List
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void List()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::begin
      Src: /src/rnp/src/lib/sig_subpacket.hpp:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 918
    functionName: pgp::pkt::sigsub::List::begin
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 5
    functionsReached:
    - pgp::pkt::sigsub::List::begin
    linkageType: ''
    returnType: std::vector<RawPtr>::iterator
    signature: std::vector<RawPtr>::iterator begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::end
      Src: /src/rnp/src/lib/sig_subpacket.hpp:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 924
    functionName: pgp::pkt::sigsub::List::end
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 5
    functionsReached:
    - pgp::pkt::sigsub::List::end
    linkageType: ''
    returnType: std::vector<RawPtr>::iterator
    signature: std::vector<RawPtr>::iterator end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::begin
      Src: /src/rnp/src/lib/sig_subpacket.hpp:929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 930
    functionName: pgp::pkt::sigsub::List::begin
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 6
    functionsReached:
    - pgp::pkt::sigsub::List::begin
    linkageType: ''
    returnType: std::vector<RawPtr>::const_iterator
    signature: std::vector<RawPtr>::const_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::end
      Src: /src/rnp/src/lib/sig_subpacket.hpp:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 936
    functionName: pgp::pkt::sigsub::List::end
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 6
    functionsReached:
    - pgp::pkt::sigsub::List::end
    linkageType: ''
    returnType: std::vector<RawPtr>::const_iterator
    signature: std::vector<RawPtr>::const_iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::size
      Src: /src/rnp/src/lib/sig_subpacket.hpp:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 942
    functionName: pgp::pkt::sigsub::List::size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 3
    functionsReached:
    - pgp::pkt::sigsub::List::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 948
    functionName: "&\n    operator[](size_t idx)"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawPtr
    signature: "RawPtr &\n    operator[](size_t idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 954
    functionName: "&\n    operator[](size_t idx) const"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawPtr
    signature: "RawPtr &\n    operator[](size_t idx) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: pgp::pkt::sigsub::Raw::raw_type
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t raw_type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: "&\n    data() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    data() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: pgp::pkt::sigsub::Raw::type
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Type
    signature: Type type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: pgp::pkt::sigsub::Raw::critical
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool critical() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: pgp::pkt::sigsub::Raw::set_critical
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_critical(bool value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: pgp::pkt::sigsub::Raw::hashed
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hashed() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: pgp::pkt::sigsub::Time::Time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Time(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: pgp::pkt::sigsub::Time::time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t time() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - time
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: pgp::pkt::sigsub::Time::set_time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_time(uint32_t time) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: pgp::pkt::sigsub::CreationTime::CreationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CreationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: pgp::pkt::sigsub::ExpirationTime::ExpirationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExpirationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: pgp::pkt::sigsub::KeyExpirationTime::KeyExpirationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyExpirationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: pgp::pkt::sigsub::Bool::Bool
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bool(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: pgp::pkt::sigsub::ExportableCert::ExportableCert
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExportableCert(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 266
    functionName: pgp::pkt::sigsub::ExportableCert::exportable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool exportable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exportable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: pgp::pkt::sigsub::ExportableCert::set_exportable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_exportable(bool exportable) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: pgp::pkt::sigsub::Trust::Trust
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Trust(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: pgp::pkt::sigsub::Trust::level
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t level() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: pgp::pkt::sigsub::Trust::amount
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t amount() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - level
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: pgp::pkt::sigsub::Trust::set_level
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_level(uint8_t level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - amount
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: pgp::pkt::sigsub::Trust::set_amount
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_amount(uint8_t amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 336
    functionName: pgp::pkt::sigsub::String::String
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 346
    functionName: pgp::pkt::sigsub::RegExp::RegExp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegExp(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: "&\n    regexp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    regexp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 364
    functionName: pgp::pkt::sigsub::Revocable::Revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Revocable(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: pgp::pkt::sigsub::Revocable::revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool revocable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - revocable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 377
    functionName: pgp::pkt::sigsub::Revocable::set_revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_revocable(bool revocable) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 393
    functionName: pgp::pkt::sigsub::Preferred::Preferred
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Preferred(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 399
    functionName: "&\n    algs() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    algs() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 406
    functionName: pgp::pkt::sigsub::Preferred::set_algs
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_algs(const std::vector<uint8_t> &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 415
    functionName: pgp::pkt::sigsub::PreferredSymmetric::PreferredSymmetric
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredSymmetric(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 424
    functionName: pgp::pkt::sigsub::PreferredHash::PreferredHash
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredHash(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 433
    functionName: pgp::pkt::sigsub::PreferredCompress::PreferredCompress
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredCompress(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 442
    functionName: pgp::pkt::sigsub::PreferredAEAD::PreferredAEAD
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredAEAD(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 455
    functionName: pgp::pkt::sigsub::PreferredAEADv6::PreferredAEADv6
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredAEADv6(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 476
    functionName: pgp::pkt::sigsub::RevocationKey::RevocationKey
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RevocationKey(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 482
    functionName: pgp::pkt::sigsub::RevocationKey::rev_class
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t rev_class() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 489
    functionName: pgp::pkt::sigsub::RevocationKey::set_rev_class
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_rev_class(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: pgp::pkt::sigsub::RevocationKey::alg
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_pubkey_alg_t
    signature: pgp_pubkey_alg_t alg() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 502
    functionName: pgp::pkt::sigsub::RevocationKey::set_alg
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_alg(pgp_pubkey_alg_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 508
    functionName: "&\n    fp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Fingerprint
    signature: "Fingerprint &\n    fp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fp
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 515
    functionName: pgp::pkt::sigsub::RevocationKey::set_fp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_fp(const Fingerprint &fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IssuerKeyID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 540
    functionName: "&\n    keyid() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeyID
    signature: "KeyID &\n    keyid() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - KeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: pgp::pkt::sigsub::IssuerKeyID::set_keyid
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_keyid(const KeyID &value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 568
    functionName: pgp::pkt::sigsub::NotationData::NotationData
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NotationData(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: pgp::pkt::sigsub::NotationData::human_readable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool human_readable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 582
    functionName: "&\n    name() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    name() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 590
    functionName: "&\n    value() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    value() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 610
    functionName: pgp::pkt::sigsub::Flags::Flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Flags(Type type, bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 621
    functionName: pgp::pkt::sigsub::KeyserverPrefs::KeyserverPrefs
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyserverPrefs(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 627
    functionName: pgp::pkt::sigsub::KeyserverPrefs::no_modify
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool no_modify() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 634
    functionName: pgp::pkt::sigsub::KeyserverPrefs::set_no_modify
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_no_modify(bool value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 640
    functionName: pgp::pkt::sigsub::KeyserverPrefs::raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t raw() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 647
    functionName: pgp::pkt::sigsub::KeyserverPrefs::set_raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_raw(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 658
    functionName: pgp::pkt::sigsub::PreferredKeyserver::PreferredKeyserver
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredKeyserver(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 664
    functionName: "&\n    keyserver() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    keyserver() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 671
    functionName: pgp::pkt::sigsub::PreferredKeyserver::set_keyserver
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_keyserver(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 682
    functionName: pgp::pkt::sigsub::PrimaryUserID::PrimaryUserID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrimaryUserID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 688
    functionName: pgp::pkt::sigsub::PrimaryUserID::primary
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool primary() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - primary
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 695
    functionName: pgp::pkt::sigsub::PrimaryUserID::set_primary
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_primary(bool primary) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 706
    functionName: pgp::pkt::sigsub::PolicyURI::PolicyURI
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolicyURI(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 712
    functionName: "&\n    URI() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    URI() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 723
    functionName: pgp::pkt::sigsub::KeyFlags::KeyFlags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyFlags(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 729
    functionName: pgp::pkt::sigsub::KeyFlags::flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t flags() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 736
    functionName: pgp::pkt::sigsub::KeyFlags::set_flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_flags(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 747
    functionName: pgp::pkt::sigsub::SignersUserID::SignersUserID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SignersUserID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 753
    functionName: "&\n    signer() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    signer() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 760
    functionName: pgp::pkt::sigsub::SignersUserID::set_signer
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_signer(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 780
    functionName: pgp::pkt::sigsub::RevocationReason::RevocationReason
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RevocationReason(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 786
    functionName: pgp::pkt::sigsub::RevocationReason::code
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_revocation_type_t
    signature: pgp_revocation_type_t code() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - pgp_revocation_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 793
    functionName: pgp::pkt::sigsub::RevocationReason::set_code
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_code(pgp_revocation_type_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 799
    functionName: "&\n    reason() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    reason() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 806
    functionName: pgp::pkt::sigsub::RevocationReason::set_reason
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_reason(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 817
    functionName: pgp::pkt::sigsub::Features::Features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Features(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 823
    functionName: pgp::pkt::sigsub::Features::features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t features() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 830
    functionName: pgp::pkt::sigsub::Features::set_features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_features(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 873
    functionName: pgp::pkt::sigsub::IssuerFingerprint::IssuerFingerprint
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IssuerFingerprint(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 879
    functionName: pgp::pkt::sigsub::IssuerFingerprint::version
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t version() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 886
    functionName: pgp::pkt::sigsub::IssuerFingerprint::set_version
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_version(uint8_t version) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 892
    functionName: "&\n    fp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Fingerprint
    signature: "Fingerprint &\n    fp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fp
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 899
    functionName: pgp::pkt::sigsub::IssuerFingerprint::set_fp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_fp(const Fingerprint &fp) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 910
    functionName: pgp::pkt::sigsub::List::List
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void List()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::begin
      Src: /src/rnp/src/lib/sig_subpacket.hpp:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 918
    functionName: pgp::pkt::sigsub::List::begin
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 7
    functionsReached:
    - pgp::pkt::sigsub::List::begin
    linkageType: ''
    returnType: std::vector<RawPtr>::iterator
    signature: std::vector<RawPtr>::iterator begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::end
      Src: /src/rnp/src/lib/sig_subpacket.hpp:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 924
    functionName: pgp::pkt::sigsub::List::end
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 7
    functionsReached:
    - pgp::pkt::sigsub::List::end
    linkageType: ''
    returnType: std::vector<RawPtr>::iterator
    signature: std::vector<RawPtr>::iterator end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::begin
      Src: /src/rnp/src/lib/sig_subpacket.hpp:929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 930
    functionName: pgp::pkt::sigsub::List::begin
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 8
    functionsReached:
    - pgp::pkt::sigsub::List::begin
    linkageType: ''
    returnType: std::vector<RawPtr>::const_iterator
    signature: std::vector<RawPtr>::const_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::end
      Src: /src/rnp/src/lib/sig_subpacket.hpp:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 936
    functionName: pgp::pkt::sigsub::List::end
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 8
    functionsReached:
    - pgp::pkt::sigsub::List::end
    linkageType: ''
    returnType: std::vector<RawPtr>::const_iterator
    signature: std::vector<RawPtr>::const_iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::size
      Src: /src/rnp/src/lib/sig_subpacket.hpp:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 942
    functionName: pgp::pkt::sigsub::List::size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 4
    functionsReached:
    - pgp::pkt::sigsub::List::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 948
    functionName: "&\n    operator[](size_t idx)"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawPtr
    signature: "RawPtr &\n    operator[](size_t idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 954
    functionName: "&\n    operator[](size_t idx) const"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawPtr
    signature: "RawPtr &\n    operator[](size_t idx) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: pgp::pkt::sigsub::Raw::raw_type
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t raw_type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: "&\n    data() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    data() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: pgp::pkt::sigsub::Raw::type
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Type
    signature: Type type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: pgp::pkt::sigsub::Raw::critical
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool critical() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: pgp::pkt::sigsub::Raw::set_critical
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_critical(bool value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: pgp::pkt::sigsub::Raw::hashed
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hashed() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: pgp::pkt::sigsub::Time::Time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Time(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: pgp::pkt::sigsub::Time::time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t time() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - time
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: pgp::pkt::sigsub::Time::set_time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_time(uint32_t time) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: pgp::pkt::sigsub::CreationTime::CreationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CreationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: pgp::pkt::sigsub::ExpirationTime::ExpirationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExpirationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: pgp::pkt::sigsub::KeyExpirationTime::KeyExpirationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyExpirationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: pgp::pkt::sigsub::Bool::Bool
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bool(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: pgp::pkt::sigsub::ExportableCert::ExportableCert
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExportableCert(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 266
    functionName: pgp::pkt::sigsub::ExportableCert::exportable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool exportable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exportable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: pgp::pkt::sigsub::ExportableCert::set_exportable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_exportable(bool exportable) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: pgp::pkt::sigsub::Trust::Trust
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Trust(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: pgp::pkt::sigsub::Trust::level
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t level() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: pgp::pkt::sigsub::Trust::amount
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t amount() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - level
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: pgp::pkt::sigsub::Trust::set_level
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_level(uint8_t level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - amount
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: pgp::pkt::sigsub::Trust::set_amount
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_amount(uint8_t amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 336
    functionName: pgp::pkt::sigsub::String::String
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 346
    functionName: pgp::pkt::sigsub::RegExp::RegExp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegExp(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: "&\n    regexp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    regexp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 364
    functionName: pgp::pkt::sigsub::Revocable::Revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Revocable(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: pgp::pkt::sigsub::Revocable::revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool revocable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - revocable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 377
    functionName: pgp::pkt::sigsub::Revocable::set_revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_revocable(bool revocable) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 393
    functionName: pgp::pkt::sigsub::Preferred::Preferred
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Preferred(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 399
    functionName: "&\n    algs() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    algs() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 406
    functionName: pgp::pkt::sigsub::Preferred::set_algs
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_algs(const std::vector<uint8_t> &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 415
    functionName: pgp::pkt::sigsub::PreferredSymmetric::PreferredSymmetric
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredSymmetric(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 424
    functionName: pgp::pkt::sigsub::PreferredHash::PreferredHash
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredHash(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 433
    functionName: pgp::pkt::sigsub::PreferredCompress::PreferredCompress
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredCompress(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 442
    functionName: pgp::pkt::sigsub::PreferredAEAD::PreferredAEAD
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredAEAD(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 455
    functionName: pgp::pkt::sigsub::PreferredAEADv6::PreferredAEADv6
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredAEADv6(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 476
    functionName: pgp::pkt::sigsub::RevocationKey::RevocationKey
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RevocationKey(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 482
    functionName: pgp::pkt::sigsub::RevocationKey::rev_class
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t rev_class() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 489
    functionName: pgp::pkt::sigsub::RevocationKey::set_rev_class
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_rev_class(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: pgp::pkt::sigsub::RevocationKey::alg
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_pubkey_alg_t
    signature: pgp_pubkey_alg_t alg() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 502
    functionName: pgp::pkt::sigsub::RevocationKey::set_alg
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_alg(pgp_pubkey_alg_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 508
    functionName: "&\n    fp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Fingerprint
    signature: "Fingerprint &\n    fp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fp
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 515
    functionName: pgp::pkt::sigsub::RevocationKey::set_fp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_fp(const Fingerprint &fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IssuerKeyID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 540
    functionName: "&\n    keyid() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeyID
    signature: "KeyID &\n    keyid() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - KeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: pgp::pkt::sigsub::IssuerKeyID::set_keyid
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_keyid(const KeyID &value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 568
    functionName: pgp::pkt::sigsub::NotationData::NotationData
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NotationData(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: pgp::pkt::sigsub::NotationData::human_readable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool human_readable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 582
    functionName: "&\n    name() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    name() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 590
    functionName: "&\n    value() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    value() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 610
    functionName: pgp::pkt::sigsub::Flags::Flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Flags(Type type, bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 621
    functionName: pgp::pkt::sigsub::KeyserverPrefs::KeyserverPrefs
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyserverPrefs(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 627
    functionName: pgp::pkt::sigsub::KeyserverPrefs::no_modify
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool no_modify() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 634
    functionName: pgp::pkt::sigsub::KeyserverPrefs::set_no_modify
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_no_modify(bool value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 640
    functionName: pgp::pkt::sigsub::KeyserverPrefs::raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t raw() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 647
    functionName: pgp::pkt::sigsub::KeyserverPrefs::set_raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_raw(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 658
    functionName: pgp::pkt::sigsub::PreferredKeyserver::PreferredKeyserver
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredKeyserver(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 664
    functionName: "&\n    keyserver() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    keyserver() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 671
    functionName: pgp::pkt::sigsub::PreferredKeyserver::set_keyserver
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_keyserver(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 682
    functionName: pgp::pkt::sigsub::PrimaryUserID::PrimaryUserID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrimaryUserID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 688
    functionName: pgp::pkt::sigsub::PrimaryUserID::primary
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool primary() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - primary
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 695
    functionName: pgp::pkt::sigsub::PrimaryUserID::set_primary
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_primary(bool primary) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 706
    functionName: pgp::pkt::sigsub::PolicyURI::PolicyURI
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolicyURI(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 712
    functionName: "&\n    URI() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    URI() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 723
    functionName: pgp::pkt::sigsub::KeyFlags::KeyFlags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyFlags(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 729
    functionName: pgp::pkt::sigsub::KeyFlags::flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t flags() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 736
    functionName: pgp::pkt::sigsub::KeyFlags::set_flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_flags(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 747
    functionName: pgp::pkt::sigsub::SignersUserID::SignersUserID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SignersUserID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 753
    functionName: "&\n    signer() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    signer() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 760
    functionName: pgp::pkt::sigsub::SignersUserID::set_signer
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_signer(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 780
    functionName: pgp::pkt::sigsub::RevocationReason::RevocationReason
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RevocationReason(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 786
    functionName: pgp::pkt::sigsub::RevocationReason::code
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_revocation_type_t
    signature: pgp_revocation_type_t code() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - pgp_revocation_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 793
    functionName: pgp::pkt::sigsub::RevocationReason::set_code
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_code(pgp_revocation_type_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 799
    functionName: "&\n    reason() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    reason() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 806
    functionName: pgp::pkt::sigsub::RevocationReason::set_reason
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_reason(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 817
    functionName: pgp::pkt::sigsub::Features::Features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Features(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 823
    functionName: pgp::pkt::sigsub::Features::features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t features() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 830
    functionName: pgp::pkt::sigsub::Features::set_features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_features(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 873
    functionName: pgp::pkt::sigsub::IssuerFingerprint::IssuerFingerprint
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IssuerFingerprint(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 879
    functionName: pgp::pkt::sigsub::IssuerFingerprint::version
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t version() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 886
    functionName: pgp::pkt::sigsub::IssuerFingerprint::set_version
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_version(uint8_t version) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 892
    functionName: "&\n    fp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Fingerprint
    signature: "Fingerprint &\n    fp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fp
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 899
    functionName: pgp::pkt::sigsub::IssuerFingerprint::set_fp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_fp(const Fingerprint &fp) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 910
    functionName: pgp::pkt::sigsub::List::List
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void List()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::begin
      Src: /src/rnp/src/lib/sig_subpacket.hpp:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 918
    functionName: pgp::pkt::sigsub::List::begin
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 9
    functionsReached:
    - pgp::pkt::sigsub::List::begin
    linkageType: ''
    returnType: std::vector<RawPtr>::iterator
    signature: std::vector<RawPtr>::iterator begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::end
      Src: /src/rnp/src/lib/sig_subpacket.hpp:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 924
    functionName: pgp::pkt::sigsub::List::end
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 9
    functionsReached:
    - pgp::pkt::sigsub::List::end
    linkageType: ''
    returnType: std::vector<RawPtr>::iterator
    signature: std::vector<RawPtr>::iterator end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::begin
      Src: /src/rnp/src/lib/sig_subpacket.hpp:929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 930
    functionName: pgp::pkt::sigsub::List::begin
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 10
    functionsReached:
    - pgp::pkt::sigsub::List::begin
    linkageType: ''
    returnType: std::vector<RawPtr>::const_iterator
    signature: std::vector<RawPtr>::const_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::end
      Src: /src/rnp/src/lib/sig_subpacket.hpp:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 936
    functionName: pgp::pkt::sigsub::List::end
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 10
    functionsReached:
    - pgp::pkt::sigsub::List::end
    linkageType: ''
    returnType: std::vector<RawPtr>::const_iterator
    signature: std::vector<RawPtr>::const_iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::size
      Src: /src/rnp/src/lib/sig_subpacket.hpp:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 942
    functionName: pgp::pkt::sigsub::List::size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 5
    functionsReached:
    - pgp::pkt::sigsub::List::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 948
    functionName: "&\n    operator[](size_t idx)"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawPtr
    signature: "RawPtr &\n    operator[](size_t idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 954
    functionName: "&\n    operator[](size_t idx) const"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawPtr
    signature: "RawPtr &\n    operator[](size_t idx) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: pgp::pkt::sigsub::Raw::raw_type
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t raw_type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: "&\n    data() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    data() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: pgp::pkt::sigsub::Raw::type
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Type
    signature: Type type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: pgp::pkt::sigsub::Raw::critical
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool critical() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: pgp::pkt::sigsub::Raw::set_critical
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_critical(bool value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: pgp::pkt::sigsub::Raw::hashed
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hashed() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: pgp::pkt::sigsub::Time::Time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Time(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: pgp::pkt::sigsub::Time::time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t time() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - time
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: pgp::pkt::sigsub::Time::set_time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_time(uint32_t time) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: pgp::pkt::sigsub::CreationTime::CreationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CreationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: pgp::pkt::sigsub::ExpirationTime::ExpirationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExpirationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: pgp::pkt::sigsub::KeyExpirationTime::KeyExpirationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyExpirationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: pgp::pkt::sigsub::Bool::Bool
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bool(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: pgp::pkt::sigsub::ExportableCert::ExportableCert
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExportableCert(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 266
    functionName: pgp::pkt::sigsub::ExportableCert::exportable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool exportable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exportable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: pgp::pkt::sigsub::ExportableCert::set_exportable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_exportable(bool exportable) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: pgp::pkt::sigsub::Trust::Trust
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Trust(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: pgp::pkt::sigsub::Trust::level
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t level() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: pgp::pkt::sigsub::Trust::amount
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t amount() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - level
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: pgp::pkt::sigsub::Trust::set_level
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_level(uint8_t level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - amount
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: pgp::pkt::sigsub::Trust::set_amount
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_amount(uint8_t amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 336
    functionName: pgp::pkt::sigsub::String::String
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 346
    functionName: pgp::pkt::sigsub::RegExp::RegExp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegExp(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: "&\n    regexp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    regexp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 364
    functionName: pgp::pkt::sigsub::Revocable::Revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Revocable(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: pgp::pkt::sigsub::Revocable::revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool revocable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - revocable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 377
    functionName: pgp::pkt::sigsub::Revocable::set_revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_revocable(bool revocable) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 393
    functionName: pgp::pkt::sigsub::Preferred::Preferred
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Preferred(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 399
    functionName: "&\n    algs() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    algs() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 406
    functionName: pgp::pkt::sigsub::Preferred::set_algs
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_algs(const std::vector<uint8_t> &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 415
    functionName: pgp::pkt::sigsub::PreferredSymmetric::PreferredSymmetric
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredSymmetric(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 424
    functionName: pgp::pkt::sigsub::PreferredHash::PreferredHash
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredHash(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 433
    functionName: pgp::pkt::sigsub::PreferredCompress::PreferredCompress
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredCompress(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 442
    functionName: pgp::pkt::sigsub::PreferredAEAD::PreferredAEAD
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredAEAD(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 455
    functionName: pgp::pkt::sigsub::PreferredAEADv6::PreferredAEADv6
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredAEADv6(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 476
    functionName: pgp::pkt::sigsub::RevocationKey::RevocationKey
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RevocationKey(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 482
    functionName: pgp::pkt::sigsub::RevocationKey::rev_class
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t rev_class() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 489
    functionName: pgp::pkt::sigsub::RevocationKey::set_rev_class
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_rev_class(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: pgp::pkt::sigsub::RevocationKey::alg
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_pubkey_alg_t
    signature: pgp_pubkey_alg_t alg() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 502
    functionName: pgp::pkt::sigsub::RevocationKey::set_alg
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_alg(pgp_pubkey_alg_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 508
    functionName: "&\n    fp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Fingerprint
    signature: "Fingerprint &\n    fp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fp
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 515
    functionName: pgp::pkt::sigsub::RevocationKey::set_fp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_fp(const Fingerprint &fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IssuerKeyID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 540
    functionName: "&\n    keyid() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeyID
    signature: "KeyID &\n    keyid() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - KeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: pgp::pkt::sigsub::IssuerKeyID::set_keyid
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_keyid(const KeyID &value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 568
    functionName: pgp::pkt::sigsub::NotationData::NotationData
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NotationData(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: pgp::pkt::sigsub::NotationData::human_readable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool human_readable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 582
    functionName: "&\n    name() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    name() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 590
    functionName: "&\n    value() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    value() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 610
    functionName: pgp::pkt::sigsub::Flags::Flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Flags(Type type, bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 621
    functionName: pgp::pkt::sigsub::KeyserverPrefs::KeyserverPrefs
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyserverPrefs(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 627
    functionName: pgp::pkt::sigsub::KeyserverPrefs::no_modify
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool no_modify() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 634
    functionName: pgp::pkt::sigsub::KeyserverPrefs::set_no_modify
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_no_modify(bool value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 640
    functionName: pgp::pkt::sigsub::KeyserverPrefs::raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t raw() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 647
    functionName: pgp::pkt::sigsub::KeyserverPrefs::set_raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_raw(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 658
    functionName: pgp::pkt::sigsub::PreferredKeyserver::PreferredKeyserver
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredKeyserver(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 664
    functionName: "&\n    keyserver() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    keyserver() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 671
    functionName: pgp::pkt::sigsub::PreferredKeyserver::set_keyserver
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_keyserver(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 682
    functionName: pgp::pkt::sigsub::PrimaryUserID::PrimaryUserID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrimaryUserID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 688
    functionName: pgp::pkt::sigsub::PrimaryUserID::primary
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool primary() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - primary
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 695
    functionName: pgp::pkt::sigsub::PrimaryUserID::set_primary
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_primary(bool primary) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 706
    functionName: pgp::pkt::sigsub::PolicyURI::PolicyURI
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolicyURI(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 712
    functionName: "&\n    URI() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    URI() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 723
    functionName: pgp::pkt::sigsub::KeyFlags::KeyFlags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyFlags(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 729
    functionName: pgp::pkt::sigsub::KeyFlags::flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t flags() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 736
    functionName: pgp::pkt::sigsub::KeyFlags::set_flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_flags(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 747
    functionName: pgp::pkt::sigsub::SignersUserID::SignersUserID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SignersUserID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 753
    functionName: "&\n    signer() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    signer() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 760
    functionName: pgp::pkt::sigsub::SignersUserID::set_signer
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_signer(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 780
    functionName: pgp::pkt::sigsub::RevocationReason::RevocationReason
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RevocationReason(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 786
    functionName: pgp::pkt::sigsub::RevocationReason::code
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_revocation_type_t
    signature: pgp_revocation_type_t code() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - pgp_revocation_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 793
    functionName: pgp::pkt::sigsub::RevocationReason::set_code
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_code(pgp_revocation_type_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 799
    functionName: "&\n    reason() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    reason() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 806
    functionName: pgp::pkt::sigsub::RevocationReason::set_reason
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_reason(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 817
    functionName: pgp::pkt::sigsub::Features::Features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Features(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 823
    functionName: pgp::pkt::sigsub::Features::features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t features() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 830
    functionName: pgp::pkt::sigsub::Features::set_features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_features(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 873
    functionName: pgp::pkt::sigsub::IssuerFingerprint::IssuerFingerprint
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IssuerFingerprint(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 879
    functionName: pgp::pkt::sigsub::IssuerFingerprint::version
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t version() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 886
    functionName: pgp::pkt::sigsub::IssuerFingerprint::set_version
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_version(uint8_t version) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 892
    functionName: "&\n    fp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Fingerprint
    signature: "Fingerprint &\n    fp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fp
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 899
    functionName: pgp::pkt::sigsub::IssuerFingerprint::set_fp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_fp(const Fingerprint &fp) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 910
    functionName: pgp::pkt::sigsub::List::List
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void List()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::begin
      Src: /src/rnp/src/lib/sig_subpacket.hpp:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 918
    functionName: pgp::pkt::sigsub::List::begin
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 11
    functionsReached:
    - pgp::pkt::sigsub::List::begin
    linkageType: ''
    returnType: std::vector<RawPtr>::iterator
    signature: std::vector<RawPtr>::iterator begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::end
      Src: /src/rnp/src/lib/sig_subpacket.hpp:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 924
    functionName: pgp::pkt::sigsub::List::end
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 11
    functionsReached:
    - pgp::pkt::sigsub::List::end
    linkageType: ''
    returnType: std::vector<RawPtr>::iterator
    signature: std::vector<RawPtr>::iterator end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::begin
      Src: /src/rnp/src/lib/sig_subpacket.hpp:929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 930
    functionName: pgp::pkt::sigsub::List::begin
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 12
    functionsReached:
    - pgp::pkt::sigsub::List::begin
    linkageType: ''
    returnType: std::vector<RawPtr>::const_iterator
    signature: std::vector<RawPtr>::const_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::end
      Src: /src/rnp/src/lib/sig_subpacket.hpp:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 936
    functionName: pgp::pkt::sigsub::List::end
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 12
    functionsReached:
    - pgp::pkt::sigsub::List::end
    linkageType: ''
    returnType: std::vector<RawPtr>::const_iterator
    signature: std::vector<RawPtr>::const_iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::size
      Src: /src/rnp/src/lib/sig_subpacket.hpp:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 942
    functionName: pgp::pkt::sigsub::List::size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 6
    functionsReached:
    - pgp::pkt::sigsub::List::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 948
    functionName: "&\n    operator[](size_t idx)"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawPtr
    signature: "RawPtr &\n    operator[](size_t idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 954
    functionName: "&\n    operator[](size_t idx) const"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawPtr
    signature: "RawPtr &\n    operator[](size_t idx) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: pgp::pkt::sigsub::Raw::raw_type
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t raw_type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: "&\n    data() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    data() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: pgp::pkt::sigsub::Raw::type
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Type
    signature: Type type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: pgp::pkt::sigsub::Raw::critical
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool critical() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: pgp::pkt::sigsub::Raw::set_critical
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_critical(bool value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: pgp::pkt::sigsub::Raw::hashed
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hashed() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: pgp::pkt::sigsub::Time::Time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Time(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: pgp::pkt::sigsub::Time::time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t time() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - time
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: pgp::pkt::sigsub::Time::set_time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_time(uint32_t time) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: pgp::pkt::sigsub::CreationTime::CreationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CreationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: pgp::pkt::sigsub::ExpirationTime::ExpirationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExpirationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: pgp::pkt::sigsub::KeyExpirationTime::KeyExpirationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyExpirationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: pgp::pkt::sigsub::Bool::Bool
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bool(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: pgp::pkt::sigsub::ExportableCert::ExportableCert
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExportableCert(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 266
    functionName: pgp::pkt::sigsub::ExportableCert::exportable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool exportable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exportable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: pgp::pkt::sigsub::ExportableCert::set_exportable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_exportable(bool exportable) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: pgp::pkt::sigsub::Trust::Trust
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Trust(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: pgp::pkt::sigsub::Trust::level
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t level() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: pgp::pkt::sigsub::Trust::amount
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t amount() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - level
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: pgp::pkt::sigsub::Trust::set_level
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_level(uint8_t level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - amount
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: pgp::pkt::sigsub::Trust::set_amount
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_amount(uint8_t amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 336
    functionName: pgp::pkt::sigsub::String::String
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 346
    functionName: pgp::pkt::sigsub::RegExp::RegExp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegExp(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: "&\n    regexp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    regexp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 364
    functionName: pgp::pkt::sigsub::Revocable::Revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Revocable(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: pgp::pkt::sigsub::Revocable::revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool revocable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - revocable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 377
    functionName: pgp::pkt::sigsub::Revocable::set_revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_revocable(bool revocable) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 393
    functionName: pgp::pkt::sigsub::Preferred::Preferred
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Preferred(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 399
    functionName: "&\n    algs() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    algs() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 406
    functionName: pgp::pkt::sigsub::Preferred::set_algs
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_algs(const std::vector<uint8_t> &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 415
    functionName: pgp::pkt::sigsub::PreferredSymmetric::PreferredSymmetric
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredSymmetric(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 424
    functionName: pgp::pkt::sigsub::PreferredHash::PreferredHash
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredHash(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 433
    functionName: pgp::pkt::sigsub::PreferredCompress::PreferredCompress
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredCompress(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 442
    functionName: pgp::pkt::sigsub::PreferredAEAD::PreferredAEAD
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredAEAD(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 455
    functionName: pgp::pkt::sigsub::PreferredAEADv6::PreferredAEADv6
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredAEADv6(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 476
    functionName: pgp::pkt::sigsub::RevocationKey::RevocationKey
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RevocationKey(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 482
    functionName: pgp::pkt::sigsub::RevocationKey::rev_class
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t rev_class() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 489
    functionName: pgp::pkt::sigsub::RevocationKey::set_rev_class
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_rev_class(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: pgp::pkt::sigsub::RevocationKey::alg
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_pubkey_alg_t
    signature: pgp_pubkey_alg_t alg() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 502
    functionName: pgp::pkt::sigsub::RevocationKey::set_alg
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_alg(pgp_pubkey_alg_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 508
    functionName: "&\n    fp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Fingerprint
    signature: "Fingerprint &\n    fp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fp
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 515
    functionName: pgp::pkt::sigsub::RevocationKey::set_fp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_fp(const Fingerprint &fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IssuerKeyID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 540
    functionName: "&\n    keyid() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeyID
    signature: "KeyID &\n    keyid() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - KeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: pgp::pkt::sigsub::IssuerKeyID::set_keyid
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_keyid(const KeyID &value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 568
    functionName: pgp::pkt::sigsub::NotationData::NotationData
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NotationData(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: pgp::pkt::sigsub::NotationData::human_readable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool human_readable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 582
    functionName: "&\n    name() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    name() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 590
    functionName: "&\n    value() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    value() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 610
    functionName: pgp::pkt::sigsub::Flags::Flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Flags(Type type, bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 621
    functionName: pgp::pkt::sigsub::KeyserverPrefs::KeyserverPrefs
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyserverPrefs(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 627
    functionName: pgp::pkt::sigsub::KeyserverPrefs::no_modify
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool no_modify() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 634
    functionName: pgp::pkt::sigsub::KeyserverPrefs::set_no_modify
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_no_modify(bool value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 640
    functionName: pgp::pkt::sigsub::KeyserverPrefs::raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t raw() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 647
    functionName: pgp::pkt::sigsub::KeyserverPrefs::set_raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_raw(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 658
    functionName: pgp::pkt::sigsub::PreferredKeyserver::PreferredKeyserver
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredKeyserver(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 664
    functionName: "&\n    keyserver() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    keyserver() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 671
    functionName: pgp::pkt::sigsub::PreferredKeyserver::set_keyserver
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_keyserver(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 682
    functionName: pgp::pkt::sigsub::PrimaryUserID::PrimaryUserID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrimaryUserID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 688
    functionName: pgp::pkt::sigsub::PrimaryUserID::primary
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool primary() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - primary
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 695
    functionName: pgp::pkt::sigsub::PrimaryUserID::set_primary
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_primary(bool primary) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 706
    functionName: pgp::pkt::sigsub::PolicyURI::PolicyURI
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolicyURI(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 712
    functionName: "&\n    URI() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    URI() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 723
    functionName: pgp::pkt::sigsub::KeyFlags::KeyFlags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyFlags(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 729
    functionName: pgp::pkt::sigsub::KeyFlags::flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t flags() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 736
    functionName: pgp::pkt::sigsub::KeyFlags::set_flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_flags(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 747
    functionName: pgp::pkt::sigsub::SignersUserID::SignersUserID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SignersUserID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 753
    functionName: "&\n    signer() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    signer() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 760
    functionName: pgp::pkt::sigsub::SignersUserID::set_signer
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_signer(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 780
    functionName: pgp::pkt::sigsub::RevocationReason::RevocationReason
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RevocationReason(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 786
    functionName: pgp::pkt::sigsub::RevocationReason::code
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_revocation_type_t
    signature: pgp_revocation_type_t code() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - pgp_revocation_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 793
    functionName: pgp::pkt::sigsub::RevocationReason::set_code
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_code(pgp_revocation_type_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 799
    functionName: "&\n    reason() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    reason() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 806
    functionName: pgp::pkt::sigsub::RevocationReason::set_reason
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_reason(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 817
    functionName: pgp::pkt::sigsub::Features::Features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Features(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 823
    functionName: pgp::pkt::sigsub::Features::features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t features() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 830
    functionName: pgp::pkt::sigsub::Features::set_features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_features(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 873
    functionName: pgp::pkt::sigsub::IssuerFingerprint::IssuerFingerprint
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IssuerFingerprint(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 879
    functionName: pgp::pkt::sigsub::IssuerFingerprint::version
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t version() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 886
    functionName: pgp::pkt::sigsub::IssuerFingerprint::set_version
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_version(uint8_t version) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 892
    functionName: "&\n    fp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Fingerprint
    signature: "Fingerprint &\n    fp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fp
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 899
    functionName: pgp::pkt::sigsub::IssuerFingerprint::set_fp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_fp(const Fingerprint &fp) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 910
    functionName: pgp::pkt::sigsub::List::List
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void List()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::begin
      Src: /src/rnp/src/lib/sig_subpacket.hpp:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 918
    functionName: pgp::pkt::sigsub::List::begin
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 13
    functionsReached:
    - pgp::pkt::sigsub::List::begin
    linkageType: ''
    returnType: std::vector<RawPtr>::iterator
    signature: std::vector<RawPtr>::iterator begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::end
      Src: /src/rnp/src/lib/sig_subpacket.hpp:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 924
    functionName: pgp::pkt::sigsub::List::end
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 13
    functionsReached:
    - pgp::pkt::sigsub::List::end
    linkageType: ''
    returnType: std::vector<RawPtr>::iterator
    signature: std::vector<RawPtr>::iterator end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::begin
      Src: /src/rnp/src/lib/sig_subpacket.hpp:929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 930
    functionName: pgp::pkt::sigsub::List::begin
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 14
    functionsReached:
    - pgp::pkt::sigsub::List::begin
    linkageType: ''
    returnType: std::vector<RawPtr>::const_iterator
    signature: std::vector<RawPtr>::const_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::end
      Src: /src/rnp/src/lib/sig_subpacket.hpp:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 936
    functionName: pgp::pkt::sigsub::List::end
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 14
    functionsReached:
    - pgp::pkt::sigsub::List::end
    linkageType: ''
    returnType: std::vector<RawPtr>::const_iterator
    signature: std::vector<RawPtr>::const_iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::size
      Src: /src/rnp/src/lib/sig_subpacket.hpp:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 942
    functionName: pgp::pkt::sigsub::List::size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 7
    functionsReached:
    - pgp::pkt::sigsub::List::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 948
    functionName: "&\n    operator[](size_t idx)"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawPtr
    signature: "RawPtr &\n    operator[](size_t idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 954
    functionName: "&\n    operator[](size_t idx) const"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawPtr
    signature: "RawPtr &\n    operator[](size_t idx) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: pgp::pkt::sigsub::Raw::raw_type
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t raw_type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 0
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: "&\n    data() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    data() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 139
    functionName: pgp::pkt::sigsub::Raw::type
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Type
    signature: Type type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: pgp::pkt::sigsub::Raw::critical
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool critical() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: pgp::pkt::sigsub::Raw::set_critical
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_critical(bool value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 0
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: pgp::pkt::sigsub::Raw::hashed
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hashed() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 185
    functionName: pgp::pkt::sigsub::Time::Time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Time(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 187
    functionDepth: 0
    functionLinenumber: 187
    functionLinenumberEnd: 191
    functionName: pgp::pkt::sigsub::Time::time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t time() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - time
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 193
    functionDepth: 1
    functionLinenumber: 193
    functionLinenumberEnd: 198
    functionName: pgp::pkt::sigsub::Time::set_time
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_time(uint32_t time) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 206
    functionDepth: 0
    functionLinenumber: 206
    functionLinenumberEnd: 209
    functionName: pgp::pkt::sigsub::CreationTime::CreationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CreationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 220
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 220
    functionName: pgp::pkt::sigsub::ExpirationTime::ExpirationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExpirationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 231
    functionName: pgp::pkt::sigsub::KeyExpirationTime::KeyExpirationTime
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyExpirationTime(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 248
    functionName: pgp::pkt::sigsub::Bool::Bool
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Bool(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 256
    functionDepth: 0
    functionLinenumber: 256
    functionLinenumberEnd: 260
    functionName: pgp::pkt::sigsub::ExportableCert::ExportableCert
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ExportableCert(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 262
    functionDepth: 0
    functionLinenumber: 262
    functionLinenumberEnd: 266
    functionName: pgp::pkt::sigsub::ExportableCert::exportable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool exportable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - exportable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 268
    functionDepth: 1
    functionLinenumber: 268
    functionLinenumberEnd: 273
    functionName: pgp::pkt::sigsub::ExportableCert::set_exportable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_exportable(bool exportable) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 290
    functionDepth: 0
    functionLinenumber: 290
    functionLinenumberEnd: 293
    functionName: pgp::pkt::sigsub::Trust::Trust
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Trust(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: pgp::pkt::sigsub::Trust::level
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t level() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 301
    functionDepth: 0
    functionLinenumber: 301
    functionLinenumberEnd: 305
    functionName: pgp::pkt::sigsub::Trust::amount
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t amount() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:311,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - level
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 312
    functionName: pgp::pkt::sigsub::Trust::set_level
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_level(uint8_t level)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - amount
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 319
    functionName: pgp::pkt::sigsub::Trust::set_amount
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_amount(uint8_t amount)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 334
    functionDepth: 0
    functionLinenumber: 334
    functionLinenumberEnd: 336
    functionName: pgp::pkt::sigsub::String::String
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void String(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 346
      start: 344
    functionDepth: 0
    functionLinenumber: 344
    functionLinenumberEnd: 346
    functionName: pgp::pkt::sigsub::RegExp::RegExp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RegExp(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 352
    functionName: "&\n    regexp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    regexp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 360
    functionDepth: 0
    functionLinenumber: 360
    functionLinenumberEnd: 364
    functionName: pgp::pkt::sigsub::Revocable::Revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Revocable(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 370
      start: 366
    functionDepth: 0
    functionLinenumber: 366
    functionLinenumberEnd: 370
    functionName: pgp::pkt::sigsub::Revocable::revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool revocable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - revocable
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 377
      start: 372
    functionDepth: 1
    functionLinenumber: 372
    functionLinenumberEnd: 377
    functionName: pgp::pkt::sigsub::Revocable::set_revocable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_revocable(bool revocable) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - type
    - hashed
    - critical
    argTypes:
    - Type
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 393
      start: 393
    functionDepth: 0
    functionLinenumber: 393
    functionLinenumberEnd: 393
    functionName: pgp::pkt::sigsub::Preferred::Preferred
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Preferred(Type type, bool hashed, bool critical)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 399
      start: 395
    functionDepth: 0
    functionLinenumber: 395
    functionLinenumberEnd: 399
    functionName: "&\n    algs() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    algs() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:405,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - algs
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 401
    functionDepth: 1
    functionLinenumber: 401
    functionLinenumberEnd: 406
    functionName: pgp::pkt::sigsub::Preferred::set_algs
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_algs(const std::vector<uint8_t> &algs)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 415
      start: 414
    functionDepth: 0
    functionLinenumber: 414
    functionLinenumberEnd: 415
    functionName: pgp::pkt::sigsub::PreferredSymmetric::PreferredSymmetric
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredSymmetric(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 424
    functionName: pgp::pkt::sigsub::PreferredHash::PreferredHash
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredHash(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 432
    functionDepth: 0
    functionLinenumber: 432
    functionLinenumberEnd: 433
    functionName: pgp::pkt::sigsub::PreferredCompress::PreferredCompress
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredCompress(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 441
    functionDepth: 0
    functionLinenumber: 441
    functionLinenumberEnd: 442
    functionName: pgp::pkt::sigsub::PreferredAEAD::PreferredAEAD
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredAEAD(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 455
      start: 454
    functionDepth: 0
    functionLinenumber: 454
    functionLinenumberEnd: 455
    functionName: pgp::pkt::sigsub::PreferredAEADv6::PreferredAEADv6
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredAEADv6(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 474
    functionDepth: 0
    functionLinenumber: 474
    functionLinenumberEnd: 476
    functionName: pgp::pkt::sigsub::RevocationKey::RevocationKey
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RevocationKey(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 482
      start: 478
    functionDepth: 0
    functionLinenumber: 478
    functionLinenumberEnd: 482
    functionName: pgp::pkt::sigsub::RevocationKey::rev_class
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t rev_class() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:488,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 489
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 489
    functionName: pgp::pkt::sigsub::RevocationKey::set_rev_class
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_rev_class(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 495
      start: 491
    functionDepth: 0
    functionLinenumber: 491
    functionLinenumberEnd: 495
    functionName: pgp::pkt::sigsub::RevocationKey::alg
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_pubkey_alg_t
    signature: pgp_pubkey_alg_t alg() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:501,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 497
    functionDepth: 1
    functionLinenumber: 497
    functionLinenumberEnd: 502
    functionName: pgp::pkt::sigsub::RevocationKey::set_alg
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_alg(pgp_pubkey_alg_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 508
      start: 504
    functionDepth: 0
    functionLinenumber: 504
    functionLinenumberEnd: 508
    functionName: "&\n    fp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Fingerprint
    signature: "Fingerprint &\n    fp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:514,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fp
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 515
      start: 510
    functionDepth: 1
    functionLinenumber: 510
    functionLinenumberEnd: 515
    functionName: pgp::pkt::sigsub::RevocationKey::set_fp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_fp(const Fingerprint &fp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 531
    functionDepth: 0
    functionLinenumber: 531
    functionLinenumberEnd: 534
    functionName: pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IssuerKeyID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 540
      start: 536
    functionDepth: 0
    functionLinenumber: 536
    functionLinenumberEnd: 540
    functionName: "&\n    keyid() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeyID
    signature: "KeyID &\n    keyid() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:546,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - KeyID
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 547
      start: 542
    functionDepth: 1
    functionLinenumber: 542
    functionLinenumberEnd: 547
    functionName: pgp::pkt::sigsub::IssuerKeyID::set_keyid
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_keyid(const KeyID &value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 568
      start: 565
    functionDepth: 0
    functionLinenumber: 565
    functionLinenumberEnd: 568
    functionName: pgp::pkt::sigsub::NotationData::NotationData
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void NotationData(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 574
      start: 570
    functionDepth: 0
    functionLinenumber: 570
    functionLinenumberEnd: 574
    functionName: pgp::pkt::sigsub::NotationData::human_readable
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool human_readable() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 578
    functionDepth: 0
    functionLinenumber: 578
    functionLinenumberEnd: 582
    functionName: "&\n    name() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    name() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 590
      start: 586
    functionDepth: 0
    functionLinenumber: 586
    functionLinenumberEnd: 590
    functionName: "&\n    value() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> &\n    value() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 607
    functionDepth: 0
    functionLinenumber: 607
    functionLinenumberEnd: 610
    functionName: pgp::pkt::sigsub::Flags::Flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Flags(Type type, bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 621
      start: 618
    functionDepth: 0
    functionLinenumber: 618
    functionLinenumberEnd: 621
    functionName: pgp::pkt::sigsub::KeyserverPrefs::KeyserverPrefs
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyserverPrefs(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 627
      start: 623
    functionDepth: 0
    functionLinenumber: 623
    functionLinenumberEnd: 627
    functionName: pgp::pkt::sigsub::KeyserverPrefs::no_modify
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool no_modify() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:633,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 634
      start: 629
    functionDepth: 1
    functionLinenumber: 629
    functionLinenumberEnd: 634
    functionName: pgp::pkt::sigsub::KeyserverPrefs::set_no_modify
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_no_modify(bool value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 636
    functionDepth: 0
    functionLinenumber: 636
    functionLinenumberEnd: 640
    functionName: pgp::pkt::sigsub::KeyserverPrefs::raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t raw() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 647
      start: 642
    functionDepth: 1
    functionLinenumber: 642
    functionLinenumberEnd: 647
    functionName: pgp::pkt::sigsub::KeyserverPrefs::set_raw
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_raw(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 655
    functionDepth: 0
    functionLinenumber: 655
    functionLinenumberEnd: 658
    functionName: pgp::pkt::sigsub::PreferredKeyserver::PreferredKeyserver
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PreferredKeyserver(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 664
      start: 660
    functionDepth: 0
    functionLinenumber: 660
    functionLinenumberEnd: 664
    functionName: "&\n    keyserver() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    keyserver() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:670,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 671
      start: 666
    functionDepth: 1
    functionLinenumber: 666
    functionLinenumberEnd: 671
    functionName: pgp::pkt::sigsub::PreferredKeyserver::set_keyserver
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_keyserver(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 682
      start: 679
    functionDepth: 0
    functionLinenumber: 679
    functionLinenumberEnd: 682
    functionName: pgp::pkt::sigsub::PrimaryUserID::PrimaryUserID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PrimaryUserID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 688
      start: 684
    functionDepth: 0
    functionLinenumber: 684
    functionLinenumberEnd: 688
    functionName: pgp::pkt::sigsub::PrimaryUserID::primary
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool primary() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:694,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - primary
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 695
      start: 690
    functionDepth: 1
    functionLinenumber: 690
    functionLinenumberEnd: 695
    functionName: pgp::pkt::sigsub::PrimaryUserID::set_primary
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_primary(bool primary) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 706
      start: 703
    functionDepth: 0
    functionLinenumber: 703
    functionLinenumberEnd: 706
    functionName: pgp::pkt::sigsub::PolicyURI::PolicyURI
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void PolicyURI(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 712
      start: 708
    functionDepth: 0
    functionLinenumber: 708
    functionLinenumberEnd: 712
    functionName: "&\n    URI() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    URI() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 723
      start: 720
    functionDepth: 0
    functionLinenumber: 720
    functionLinenumberEnd: 723
    functionName: pgp::pkt::sigsub::KeyFlags::KeyFlags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyFlags(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 729
      start: 725
    functionDepth: 0
    functionLinenumber: 725
    functionLinenumberEnd: 729
    functionName: pgp::pkt::sigsub::KeyFlags::flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t flags() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:735,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 736
      start: 731
    functionDepth: 1
    functionLinenumber: 731
    functionLinenumberEnd: 736
    functionName: pgp::pkt::sigsub::KeyFlags::set_flags
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_flags(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 747
      start: 744
    functionDepth: 0
    functionLinenumber: 744
    functionLinenumberEnd: 747
    functionName: pgp::pkt::sigsub::SignersUserID::SignersUserID
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SignersUserID(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 753
      start: 749
    functionDepth: 0
    functionLinenumber: 749
    functionLinenumberEnd: 753
    functionName: "&\n    signer() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    signer() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:759,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 760
      start: 755
    functionDepth: 1
    functionLinenumber: 755
    functionLinenumberEnd: 760
    functionName: pgp::pkt::sigsub::SignersUserID::set_signer
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_signer(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 780
    functionName: pgp::pkt::sigsub::RevocationReason::RevocationReason
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RevocationReason(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 786
      start: 782
    functionDepth: 0
    functionLinenumber: 782
    functionLinenumberEnd: 786
    functionName: pgp::pkt::sigsub::RevocationReason::code
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_revocation_type_t
    signature: pgp_revocation_type_t code() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - pgp_revocation_type_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 793
      start: 788
    functionDepth: 1
    functionLinenumber: 788
    functionLinenumberEnd: 793
    functionName: pgp::pkt::sigsub::RevocationReason::set_code
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_code(pgp_revocation_type_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 799
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 799
    functionName: "&\n    reason() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: "std::string &\n    reason() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:805,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 806
      start: 801
    functionDepth: 1
    functionLinenumber: 801
    functionLinenumberEnd: 806
    functionName: pgp::pkt::sigsub::RevocationReason::set_reason
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_reason(const std::string &value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 817
      start: 814
    functionDepth: 0
    functionLinenumber: 814
    functionLinenumberEnd: 817
    functionName: pgp::pkt::sigsub::Features::Features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Features(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 823
      start: 819
    functionDepth: 0
    functionLinenumber: 819
    functionLinenumberEnd: 823
    functionName: pgp::pkt::sigsub::Features::features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t features() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:829,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - value
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 830
      start: 825
    functionDepth: 1
    functionLinenumber: 825
    functionLinenumberEnd: 830
    functionName: pgp::pkt::sigsub::Features::set_features
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_features(uint8_t value) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 873
      start: 870
    functionDepth: 0
    functionLinenumber: 870
    functionLinenumberEnd: 873
    functionName: pgp::pkt::sigsub::IssuerFingerprint::IssuerFingerprint
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void IssuerFingerprint(bool hashed = true, bool critical = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 879
      start: 875
    functionDepth: 0
    functionLinenumber: 875
    functionLinenumberEnd: 879
    functionName: pgp::pkt::sigsub::IssuerFingerprint::version
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t version() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:885,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - version
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 886
      start: 881
    functionDepth: 1
    functionLinenumber: 881
    functionLinenumberEnd: 886
    functionName: pgp::pkt::sigsub::IssuerFingerprint::set_version
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_version(uint8_t version) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 888
    functionDepth: 0
    functionLinenumber: 888
    functionLinenumberEnd: 892
    functionName: "&\n    fp() const noexcept"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Fingerprint
    signature: "Fingerprint &\n    fp() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/sig_subpacket.hpp:898,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - fp
    argTypes:
    - Fingerprint
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 899
      start: 894
    functionDepth: 1
    functionLinenumber: 894
    functionLinenumberEnd: 899
    functionName: pgp::pkt::sigsub::IssuerFingerprint::set_fp
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached:
    - clear
    linkageType: ''
    returnType: void
    signature: void set_fp(const Fingerprint &fp) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 908
    functionDepth: 0
    functionLinenumber: 908
    functionLinenumberEnd: 910
    functionName: pgp::pkt::sigsub::List::List
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void List()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::begin
      Src: /src/rnp/src/lib/sig_subpacket.hpp:917,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 918
      start: 914
    functionDepth: 0
    functionLinenumber: 914
    functionLinenumberEnd: 918
    functionName: pgp::pkt::sigsub::List::begin
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 15
    functionsReached:
    - pgp::pkt::sigsub::List::begin
    linkageType: ''
    returnType: std::vector<RawPtr>::iterator
    signature: std::vector<RawPtr>::iterator begin()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::end
      Src: /src/rnp/src/lib/sig_subpacket.hpp:923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 924
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 924
    functionName: pgp::pkt::sigsub::List::end
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 15
    functionsReached:
    - pgp::pkt::sigsub::List::end
    linkageType: ''
    returnType: std::vector<RawPtr>::iterator
    signature: std::vector<RawPtr>::iterator end()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::begin
      Src: /src/rnp/src/lib/sig_subpacket.hpp:929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 926
    functionDepth: 0
    functionLinenumber: 926
    functionLinenumberEnd: 930
    functionName: pgp::pkt::sigsub::List::begin
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 16
    functionsReached:
    - pgp::pkt::sigsub::List::begin
    linkageType: ''
    returnType: std::vector<RawPtr>::const_iterator
    signature: std::vector<RawPtr>::const_iterator begin() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::end
      Src: /src/rnp/src/lib/sig_subpacket.hpp:935,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 936
      start: 932
    functionDepth: 0
    functionLinenumber: 932
    functionLinenumberEnd: 936
    functionName: pgp::pkt::sigsub::List::end
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 16
    functionsReached:
    - pgp::pkt::sigsub::List::end
    linkageType: ''
    returnType: std::vector<RawPtr>::const_iterator
    signature: std::vector<RawPtr>::const_iterator end() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::sigsub::List::size
      Src: /src/rnp/src/lib/sig_subpacket.hpp:941,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 942
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 942
    functionName: pgp::pkt::sigsub::List::size
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 8
    functionsReached:
    - pgp::pkt::sigsub::List::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 944
    functionDepth: 0
    functionLinenumber: 944
    functionLinenumberEnd: 948
    functionName: "&\n    operator[](size_t idx)"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawPtr
    signature: "RawPtr &\n    operator[](size_t idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 954
      start: 950
    functionDepth: 0
    functionLinenumber: 950
    functionLinenumberEnd: 954
    functionName: "&\n    operator[](size_t idx) const"
    functionSourceFile: /src/rnp/src/lib/sig_subpacket.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: RawPtr
    signature: "RawPtr &\n    operator[](size_t idx) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: rnp::Key::Key
    functionSourceFile: /src/rnp/src/lib/key.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key()
  - 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: '&operator=(const Key &)'
    functionSourceFile: /src/rnp/src/lib/key.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key
    signature: Key &operator=(const Key &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: '&operator=(Key &&)'
    functionSourceFile: /src/rnp/src/lib/key.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key
    signature: Key &operator=(Key &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key::is_locked
      Src: /src/rnp/src/lib/key.hpp:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 551
    functionName: rnp::KeyLocker::KeyLocker
    functionSourceFile: /src/rnp/src/lib/key.hpp
    functionUses: 0
    functionsReached:
    - Key::is_locked
    linkageType: ''
    returnType: void
    signature: void KeyLocker(Key &key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_locked
      Src: /src/rnp/src/lib/key.hpp:555,1
    - Dst: lock
      Src: /src/rnp/src/lib/key.hpp:556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 558
    functionName: ~KeyLocker()
    functionSourceFile: /src/rnp/src/lib/key.hpp
    functionUses: 0
    functionsReached:
    - is_locked
    - lock
    linkageType: ''
    returnType: void
    signature: void ~KeyLocker()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 88
    functionName: rnp::Key::Key
    functionSourceFile: /src/rnp/src/lib/key.hpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Key()
  - 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: '&operator=(const Key &)'
    functionSourceFile: /src/rnp/src/lib/key.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key
    signature: Key &operator=(const Key &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 95
    functionName: '&operator=(Key &&)'
    functionSourceFile: /src/rnp/src/lib/key.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Key
    signature: Key &operator=(Key &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Key::is_locked
      Src: /src/rnp/src/lib/key.hpp:549,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 551
      start: 549
    functionDepth: 0
    functionLinenumber: 549
    functionLinenumberEnd: 551
    functionName: rnp::KeyLocker::KeyLocker
    functionSourceFile: /src/rnp/src/lib/key.hpp
    functionUses: 0
    functionsReached:
    - Key::is_locked
    linkageType: ''
    returnType: void
    signature: void KeyLocker(Key &key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_locked
      Src: /src/rnp/src/lib/key.hpp:555,1
    - Dst: lock
      Src: /src/rnp/src/lib/key.hpp:556,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 558
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 558
    functionName: ~KeyLocker()
    functionSourceFile: /src/rnp/src/lib/key.hpp
    functionUses: 0
    functionsReached:
    - is_locked
    - lock
    linkageType: ''
    returnType: void
    signature: void ~KeyLocker()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_ECDSA_SIG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:41,1
    - Dst: rnp::ossl::ECDSASig::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:42,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:43,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:43,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:46,1
    - Dst: ECDSA_SIG_get0
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:47,1
    - Dst: rnp::ossl::ECDSASig::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:47,1
    - Dst: rnp::bn::cptr
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:47,1
    - Dst: cptr
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:47,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:48,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - data
    - len
    - sig
    argTypes:
    - uint8_t*
    - size_t
    - ec::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 51
    functionName: pgp::ecdsa::decode_sig
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - rnp::bn::mpi
    - rnp::ossl::ECDSASig::get
    - d2i_ECDSA_SIG
    - ECDSA_SIG_get0
    - cptr
    - mpi
    - ERR_peek_last_error
    - rnp::bn::cptr
    linkageType: ''
    returnType: bool
    signature: bool decode_sig(const uint8_t *data, size_t len, ec::Signature &sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_SIG_new
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:56,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:60,1
    - Dst: ECDSA_SIG_free
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:61,1
    - Dst: ECDSA_SIG_set0
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:64,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:64,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:64,1
    - Dst: i2d_ECDSA_SIG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:65,1
    - Dst: ECDSA_SIG_free
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:66,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - data
    - len
    - sig
    argTypes:
    - uint8_t*
    - size_t*
    - ec::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 73
    functionName: pgp::ecdsa::encode_sig
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - ECDSA_SIG_free
    - ECDSA_SIG_set0
    - rnp::bn::own
    - i2d_ECDSA_SIG
    - ECDSA_SIG_new
    linkageType: ''
    returnType: bool
    signature: bool encode_sig(uint8_t *data, size_t *len, const ec::Signature &sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::validate_key
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: pgp::ecdsa::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - pgp::ec::validate_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: x::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:88,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:89,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:94,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:96,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:101,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:101,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:103,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:103,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:106,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:106,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:107,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:107,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:112,1
    - Dst: EVP_PKEY_sign
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:113,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:113,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:113,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:113,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:113,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:114,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:114,1
    - Dst: pgp::ecdsa::decode_sig
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:117,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:117,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:118,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:118,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 5
    argNames:
    - '               rng'
    - '          sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - rnp::RNG
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 122
    functionName: pgp::ecdsa::sign
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - std::vector::size
    - EVP_PKEY_sign_init
    - rnp::secure_bytes::size
    - rnp::secure_bytes::data
    - pgp::ec::load_key
    - x::size
    - EVP_PKEY_sign
    - pgp::ecdsa::decode_sig
    - auto::get
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - std::vector::data
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t sign(rnp::RNG &               rng,\n     ec::Signature
      &          sig,\n     pgp_hash_alg_t           hash_alg,\n     const rnp::secure_bytes
      &hash,\n     const ec::Key &          key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:131,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:133,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:137,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:137,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:139,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:139,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:142,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:142,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:143,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:143,1
    - Dst: r::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:147,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:147,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:148,1
    - Dst: pgp::ecdsa::encode_sig
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:149,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:149,1
    - Dst: EVP_PKEY_verify
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:152,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:152,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:152,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:152,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - '    sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 156
    functionName: pgp::ecdsa::verify
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - r::size
    - EVP_PKEY_verify
    - std::vector::size
    - rnp::secure_bytes::size
    - EVP_PKEY_verify_init
    - pgp::ec::load_key
    - rnp::secure_bytes::data
    - s::size
    - auto::get
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - std::vector::data
    - EVP_PKEY_CTX_new
    - pgp::ecdsa::encode_sig
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t verify(const ec::Signature &    sig,\n       pgp_hash_alg_t
      \          hash_alg,\n       const rnp::secure_bytes &hash,\n       const ec::Key
      &          key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_ECDSA_SIG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:41,1
    - Dst: rnp::ossl::ECDSASig::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:42,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:43,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:43,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:46,1
    - Dst: ECDSA_SIG_get0
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:47,1
    - Dst: rnp::ossl::ECDSASig::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:47,1
    - Dst: rnp::bn::cptr
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:47,1
    - Dst: cptr
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:47,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:48,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - data
    - len
    - sig
    argTypes:
    - uint8_t*
    - size_t
    - ec::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 51
    functionName: pgp::ecdsa::decode_sig
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp
    functionUses: 1
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - rnp::bn::mpi
    - rnp::ossl::ECDSASig::get
    - d2i_ECDSA_SIG
    - ECDSA_SIG_get0
    - cptr
    - mpi
    - ERR_peek_last_error
    - rnp::bn::cptr
    linkageType: ''
    returnType: bool
    signature: bool decode_sig(const uint8_t *data, size_t len, ec::Signature &sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_SIG_new
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:56,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:60,1
    - Dst: ECDSA_SIG_free
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:61,1
    - Dst: ECDSA_SIG_set0
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:64,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:64,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:64,1
    - Dst: i2d_ECDSA_SIG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:65,1
    - Dst: ECDSA_SIG_free
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:66,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - data
    - len
    - sig
    argTypes:
    - uint8_t*
    - size_t*
    - ec::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 73
    functionName: pgp::ecdsa::encode_sig
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - ECDSA_SIG_free
    - ECDSA_SIG_set0
    - rnp::bn::own
    - i2d_ECDSA_SIG
    - ECDSA_SIG_new
    linkageType: ''
    returnType: bool
    signature: bool encode_sig(uint8_t *data, size_t *len, const ec::Signature &sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::validate_key
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: pgp::ecdsa::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - pgp::ec::validate_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: x::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:88,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:89,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:94,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:96,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:101,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:101,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:103,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:103,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:106,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:106,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:107,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:107,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:112,1
    - Dst: EVP_PKEY_sign
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:113,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:113,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:113,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:113,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:113,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:114,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:114,1
    - Dst: pgp::ecdsa::decode_sig
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:117,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:117,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:118,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:118,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 5
    argNames:
    - '               rng'
    - '          sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - rnp::RNG
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 122
    functionName: pgp::ecdsa::sign
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - std::vector::size
    - EVP_PKEY_sign_init
    - rnp::secure_bytes::size
    - rnp::secure_bytes::data
    - pgp::ec::load_key
    - x::size
    - EVP_PKEY_sign
    - pgp::ecdsa::decode_sig
    - auto::get
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - std::vector::data
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t sign(rnp::RNG &               rng,\n     ec::Signature
      &          sig,\n     pgp_hash_alg_t           hash_alg,\n     const rnp::secure_bytes
      &hash,\n     const ec::Key &          key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:131,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:133,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:137,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:137,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:139,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:139,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:142,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:142,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:143,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:143,1
    - Dst: r::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:147,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:147,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:148,1
    - Dst: pgp::ecdsa::encode_sig
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:149,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:149,1
    - Dst: EVP_PKEY_verify
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:152,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:152,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:152,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:152,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - '    sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 156
    functionName: pgp::ecdsa::verify
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - r::size
    - EVP_PKEY_verify
    - std::vector::size
    - rnp::secure_bytes::size
    - EVP_PKEY_verify_init
    - pgp::ec::load_key
    - rnp::secure_bytes::data
    - s::size
    - auto::get
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - std::vector::data
    - EVP_PKEY_CTX_new
    - pgp::ecdsa::encode_sig
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t verify(const ec::Signature &    sig,\n       pgp_hash_alg_t
      \          hash_alg,\n       const rnp::secure_bytes &hash,\n       const ec::Key
      &          key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_ECDSA_SIG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:41,1
    - Dst: rnp::ossl::ECDSASig::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:42,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:43,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:43,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:46,1
    - Dst: ECDSA_SIG_get0
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:47,1
    - Dst: rnp::ossl::ECDSASig::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:47,1
    - Dst: rnp::bn::cptr
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:47,1
    - Dst: cptr
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:47,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:48,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - data
    - len
    - sig
    argTypes:
    - uint8_t*
    - size_t
    - ec::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 51
    functionName: pgp::ecdsa::decode_sig
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - rnp::bn::mpi
    - rnp::ossl::ECDSASig::get
    - d2i_ECDSA_SIG
    - ECDSA_SIG_get0
    - cptr
    - mpi
    - ERR_peek_last_error
    - rnp::bn::cptr
    linkageType: ''
    returnType: bool
    signature: bool decode_sig(const uint8_t *data, size_t len, ec::Signature &sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_SIG_new
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:56,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:60,1
    - Dst: ECDSA_SIG_free
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:61,1
    - Dst: ECDSA_SIG_set0
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:64,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:64,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:64,1
    - Dst: i2d_ECDSA_SIG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:65,1
    - Dst: ECDSA_SIG_free
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:66,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - data
    - len
    - sig
    argTypes:
    - uint8_t*
    - size_t*
    - ec::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 73
    functionName: pgp::ecdsa::encode_sig
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - ECDSA_SIG_free
    - ECDSA_SIG_set0
    - rnp::bn::own
    - i2d_ECDSA_SIG
    - ECDSA_SIG_new
    linkageType: ''
    returnType: bool
    signature: bool encode_sig(uint8_t *data, size_t *len, const ec::Signature &sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::validate_key
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: pgp::ecdsa::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - pgp::ec::validate_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: x::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:88,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:89,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:94,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:96,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:101,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:101,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:103,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:103,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:106,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:106,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:107,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:107,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:112,1
    - Dst: EVP_PKEY_sign
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:113,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:113,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:113,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:113,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:113,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:114,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:114,1
    - Dst: pgp::ecdsa::decode_sig
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:117,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:117,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:118,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:118,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 5
    argNames:
    - '               rng'
    - '          sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - rnp::RNG
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 122
    functionName: pgp::ecdsa::sign
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - std::vector::size
    - EVP_PKEY_sign_init
    - rnp::secure_bytes::size
    - rnp::secure_bytes::data
    - pgp::ec::load_key
    - x::size
    - EVP_PKEY_sign
    - pgp::ecdsa::decode_sig
    - auto::get
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - std::vector::data
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t sign(rnp::RNG &               rng,\n     ec::Signature
      &          sig,\n     pgp_hash_alg_t           hash_alg,\n     const rnp::secure_bytes
      &hash,\n     const ec::Key &          key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:131,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:133,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:137,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:137,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:139,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:139,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:142,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:142,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:143,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:143,1
    - Dst: r::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:147,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:147,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:148,1
    - Dst: pgp::ecdsa::encode_sig
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:149,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:149,1
    - Dst: EVP_PKEY_verify
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:152,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:152,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:152,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:152,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - '    sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 156
    functionName: pgp::ecdsa::verify
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - r::size
    - EVP_PKEY_verify
    - std::vector::size
    - rnp::secure_bytes::size
    - EVP_PKEY_verify_init
    - pgp::ec::load_key
    - rnp::secure_bytes::data
    - s::size
    - auto::get
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - std::vector::data
    - EVP_PKEY_CTX_new
    - pgp::ecdsa::encode_sig
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t verify(const ec::Signature &    sig,\n       pgp_hash_alg_t
      \          hash_alg,\n       const rnp::secure_bytes &hash,\n       const ec::Key
      &          key)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_ECDSA_SIG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:41,1
    - Dst: rnp::ossl::ECDSASig::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:42,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:43,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:43,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:46,1
    - Dst: ECDSA_SIG_get0
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:47,1
    - Dst: rnp::ossl::ECDSASig::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:47,1
    - Dst: rnp::bn::cptr
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:47,1
    - Dst: cptr
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:47,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:48,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:49,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - data
    - len
    - sig
    argTypes:
    - uint8_t*
    - size_t
    - ec::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 51
    functionName: pgp::ecdsa::decode_sig
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp
    functionUses: 3
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - rnp::bn::mpi
    - rnp::ossl::ECDSASig::get
    - d2i_ECDSA_SIG
    - ECDSA_SIG_get0
    - cptr
    - mpi
    - ERR_peek_last_error
    - rnp::bn::cptr
    linkageType: ''
    returnType: bool
    signature: bool decode_sig(const uint8_t *data, size_t len, ec::Signature &sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_SIG_new
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:56,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:60,1
    - Dst: ECDSA_SIG_free
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:61,1
    - Dst: ECDSA_SIG_set0
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:64,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:64,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:64,1
    - Dst: i2d_ECDSA_SIG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:65,1
    - Dst: ECDSA_SIG_free
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:66,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:68,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - data
    - len
    - sig
    argTypes:
    - uint8_t*
    - size_t*
    - ec::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 73
    functionName: pgp::ecdsa::encode_sig
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - ECDSA_SIG_free
    - ECDSA_SIG_set0
    - rnp::bn::own
    - i2d_ECDSA_SIG
    - ECDSA_SIG_new
    linkageType: ''
    returnType: bool
    signature: bool encode_sig(uint8_t *data, size_t *len, const ec::Signature &sig)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::validate_key
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: pgp::ecdsa::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - pgp::ec::validate_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: x::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:88,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:89,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:94,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:96,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:101,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:101,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:103,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:103,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:106,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:106,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:107,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:107,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:112,1
    - Dst: EVP_PKEY_sign
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:113,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:113,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:113,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:113,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:113,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:114,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:114,1
    - Dst: pgp::ecdsa::decode_sig
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:117,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:117,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:118,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:118,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 5
    argNames:
    - '               rng'
    - '          sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - rnp::RNG
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 81
    functionDepth: 2
    functionLinenumber: 81
    functionLinenumberEnd: 122
    functionName: pgp::ecdsa::sign
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - std::vector::size
    - EVP_PKEY_sign_init
    - rnp::secure_bytes::size
    - rnp::secure_bytes::data
    - pgp::ec::load_key
    - x::size
    - EVP_PKEY_sign
    - pgp::ecdsa::decode_sig
    - auto::get
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - std::vector::data
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t sign(rnp::RNG &               rng,\n     ec::Signature
      &          sig,\n     pgp_hash_alg_t           hash_alg,\n     const rnp::secure_bytes
      &hash,\n     const ec::Key &          key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:131,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:133,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:137,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:137,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:139,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:139,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:142,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:142,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:143,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:143,1
    - Dst: r::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:147,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:147,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:148,1
    - Dst: pgp::ecdsa::encode_sig
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:149,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:149,1
    - Dst: EVP_PKEY_verify
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:152,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:152,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:152,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:152,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp:152,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 4
    argNames:
    - '    sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 124
    functionDepth: 2
    functionLinenumber: 124
    functionLinenumberEnd: 156
    functionName: pgp::ecdsa::verify
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - r::size
    - EVP_PKEY_verify
    - std::vector::size
    - rnp::secure_bytes::size
    - EVP_PKEY_verify_init
    - pgp::ec::load_key
    - rnp::secure_bytes::data
    - s::size
    - auto::get
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - std::vector::data
    - EVP_PKEY_CTX_new
    - pgp::ecdsa::encode_sig
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t verify(const ec::Signature &    sig,\n       pgp_hash_alg_t
      \          hash_alg,\n       const rnp::secure_bytes &hash,\n       const ec::Key
      &          key)"
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:93,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - alg
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 97
    functionName: pgp_sa_to_botan_string
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: char
    signature: 'char *

      pgp_sa_to_botan_string(int alg, bool silent = false)'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp_sa_to_botan_string
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:103,1
    - Dst: strlen
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:110,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:113,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:119,1
    - Dst: strncpy
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:120,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:123,1
    - Dst: strncpy
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:124,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:127,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 4
    argNames:
    - ealg
    - aalg
    - buf
    - len
    argTypes:
    - pgp_symm_alg_t
    - pgp_aead_alg_t
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 100
    functionDepth: 2
    functionLinenumber: 100
    functionLinenumberEnd: 132
    functionName: pgp_aead_to_botan_string
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - memcpy
    - strlen
    - pgp_sa_to_botan_string
    - strncpy
    linkageType: ''
    returnType: bool
    signature: bool pgp_aead_to_botan_string(pgp_symm_alg_t ealg, pgp_aead_alg_t aalg,
      char *buf, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:141,1
    - Dst: pgp_sa_to_botan_string
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:143,1
    - Dst: pgp_block_size
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:149,1
    - Dst: botan_block_cipher_init
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:152,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:153,1
    - Dst: pgp_key_size
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:157,1
    - Dst: botan_block_cipher_set_key
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:159,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:160,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:166,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - crypt
    - alg
    - key
    - iv
    argTypes:
    - pgp_crypt_t*
    - pgp_symm_alg_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 135
    functionDepth: 2
    functionLinenumber: 135
    functionLinenumberEnd: 172
    functionName: pgp_cipher_cfb_start
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric.cpp
    functionUses: 7
    functionsReached:
    - RNP_LOG
    - botan_block_cipher_init
    - memcpy
    - pgp_block_size
    - memset
    - pgp_key_size
    - botan_block_cipher_set_key
    - pgp_sa_to_botan_string
    linkageType: ''
    returnType: bool
    signature: "bool pgp_cipher_cfb_start(pgp_crypt_t *  crypt,\n                     pgp_symm_alg_t
      alg,\n                     const uint8_t *key,\n                     const uint8_t
      *iv)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: botan_block_cipher_destroy
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:181,1
    - Dst: botan_scrub_mem
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:184,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - crypt
    argTypes:
    - pgp_crypt_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 174
    functionDepth: 0
    functionLinenumber: 174
    functionLinenumberEnd: 186
    functionName: pgp_cipher_cfb_finish
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric.cpp
    functionUses: 9
    functionsReached:
    - botan_scrub_mem
    - botan_block_cipher_destroy
    linkageType: ''
    returnType: int
    signature: int pgp_cipher_cfb_finish(pgp_crypt_t *crypt)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_block_cipher_encrypt_blocks
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - crypt
    - iv
    - blsize
    argTypes:
    - pgp_crypt_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: pgp_cipher_encrypt_block
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric.cpp
    functionUses: 0
    functionsReached:
    - botan_block_cipher_encrypt_blocks
    linkageType: ''
    returnType: int
    signature: int pgp_cipher_encrypt_block(pgp_crypt_t *crypt, uint8_t *iv, size_t
      blsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_sa_to_botan_string
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:197,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - alg
    - silent
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 198
    functionName: pgp_is_sa_supported
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric.cpp
    functionUses: 1
    functionsReached:
    - pgp_sa_to_botan_string
    linkageType: ''
    returnType: bool
    signature: bool pgp_is_sa_supported(int alg, bool silent)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:211,1
    - Dst: pgp_aead_to_botan_string
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:213,1
    - Dst: pgp_block_size
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:218,1
    - Dst: botan_cipher_init
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:225,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:226,1
    - Dst: botan_cipher_set_key
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:230,1
    - Dst: pgp_key_size
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:230,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:231,1
    - Dst: botan_cipher_get_update_granularity
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:235,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:236,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 5
    argNames:
    - crypt
    - ealg
    - aalg
    - key
    - decrypt
    argTypes:
    - pgp_crypt_t*
    - pgp_symm_alg_t
    - pgp_aead_alg_t
    - uint8_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 201
    functionDepth: 3
    functionLinenumber: 201
    functionLinenumberEnd: 241
    functionName: pgp_cipher_aead_init
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric.cpp
    functionUses: 5
    functionsReached:
    - RNP_LOG
    - pgp_block_size
    - memset
    - botan_cipher_get_update_granularity
    - pgp_key_size
    - pgp_aead_to_botan_string
    - botan_cipher_set_key
    - botan_cipher_init
    linkageType: ''
    returnType: bool
    signature: "bool pgp_cipher_aead_init(pgp_crypt_t *  crypt,\n                     pgp_symm_alg_t
      ealg,\n                     pgp_aead_alg_t aalg,\n                     const
      uint8_t *key,\n                     bool           decrypt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_cipher_set_associated_data
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - crypt
    - ad
    - len
    argTypes:
    - pgp_crypt_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: pgp_cipher_aead_set_ad
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric.cpp
    functionUses: 4
    functionsReached:
    - botan_cipher_set_associated_data
    linkageType: ''
    returnType: bool
    signature: bool pgp_cipher_aead_set_ad(pgp_crypt_t *crypt, const uint8_t *ad,
      size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_cipher_start
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - crypt
    - nonce
    - len
    argTypes:
    - pgp_crypt_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 249
    functionDepth: 0
    functionLinenumber: 249
    functionLinenumberEnd: 253
    functionName: pgp_cipher_aead_start
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric.cpp
    functionUses: 6
    functionsReached:
    - botan_cipher_start
    linkageType: ''
    returnType: bool
    signature: bool pgp_cipher_aead_start(pgp_crypt_t *crypt, const uint8_t *nonce,
      size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:260,1
    - Dst: botan_cipher_update
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:266,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:267,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:272,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 15
    argCount: 5
    argNames:
    - crypt
    - out
    - in
    - len
    - read
    argTypes:
    - pgp_crypt_t
    - uint8_t*
    - uint8_t*
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 278
    functionName: pgp_cipher_aead_update
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - botan_cipher_update
    linkageType: ''
    returnType: bool
    signature: "bool pgp_cipher_aead_update(\n  pgp_crypt_t &crypt, uint8_t *out,
      const uint8_t *in, size_t len, size_t &read)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_cipher_reset
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crypt
    argTypes:
    - pgp_crypt_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 284
    functionName: pgp_cipher_aead_reset
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric.cpp
    functionUses: 2
    functionsReached:
    - botan_cipher_reset
    linkageType: ''
    returnType: void
    signature: void pgp_cipher_aead_reset(pgp_crypt_t *crypt)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: botan_cipher_update
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:298,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:301,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:307,1
    - Dst: botan_cipher_update
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:313,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:315,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:320,1
    - Dst: pgp_cipher_aead_reset
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:325,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 25
    argCount: 4
    argNames:
    - crypt
    - out
    - in
    - len
    argTypes:
    - pgp_crypt_t*
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 327
      start: 286
    functionDepth: 1
    functionLinenumber: 286
    functionLinenumberEnd: 327
    functionName: pgp_cipher_aead_finish
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric.cpp
    functionUses: 6
    functionsReached:
    - RNP_LOG
    - pgp_cipher_aead_reset
    - botan_cipher_update
    linkageType: ''
    returnType: bool
    signature: bool pgp_cipher_aead_finish(pgp_crypt_t *crypt, uint8_t *out, const
      uint8_t *in, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: botan_cipher_destroy
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:333,1
    - Dst: memset
      Src: /src/rnp/src/lib/crypto/symmetric.cpp:335,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - crypt
    argTypes:
    - pgp_crypt_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 336
      start: 329
    functionDepth: 0
    functionLinenumber: 329
    functionLinenumberEnd: 336
    functionName: pgp_cipher_aead_destroy
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric.cpp
    functionUses: 7
    functionsReached:
    - botan_cipher_destroy
    - memset
    linkageType: ''
    returnType: void
    signature: void pgp_cipher_aead_destroy(pgp_crypt_t *crypt)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 44
    functionName: pgp_kyber_ecdh_composite_key_t::~pgp_kyber_ecdh_composite_key_t()
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_kyber_ecdh_composite_key_t::~pgp_kyber_ecdh_composite_key_t()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_kyber_ecdh_composite_key_t::is_initialized
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:49,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:50,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:51,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 53
    functionName: pgp_kyber_ecdh_composite_key_t::initialized_or_throw
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_kyber_ecdh_composite_key_t::is_initialized
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void pgp_kyber_ecdh_composite_key_t::initialized_or_throw() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_kyber_ecdh_composite_key_t::pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:61,1
    - Dst: pgp_kyber_ecdh_composite_key_t::pk_alg_to_kyber_id
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:62,1
    - Dst: ec_key_t::generate_ecdh_kem_key_pair
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:66,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:68,1
    - Dst: kyber_generate_keypair
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:72,1
    - Dst: pgp_kyber_ecdh_composite_private_key_t
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:74,1
    - Dst: ecdh_kem_key_t::priv::get_encoded
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:75,1
    - Dst: auto::second::get_encoded
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:75,1
    - Dst: pgp_kyber_ecdh_composite_public_key_t
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:76,1
    - Dst: ecdh_kem_key_t::pub::get_encoded
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:77,1
    - Dst: auto::first::get_encoded
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - rng
    - key
    - alg
    argTypes:
    - rnp::RNG*
    - pgp_kyber_ecdh_key_t*
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 80
    functionName: pgp_kyber_ecdh_composite_key_t::gen_keypair
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - pgp_kyber_ecdh_composite_private_key_t
    - auto::second::get_encoded
    - pgp_kyber_ecdh_composite_public_key_t
    - pgp_kyber_ecdh_composite_key_t::pk_alg_to_curve_id
    - ec_key_t::generate_ecdh_kem_key_pair
    - pgp_kyber_ecdh_composite_key_t::pk_alg_to_kyber_id
    - auto::first::get_encoded
    - kyber_generate_keypair
    - ecdh_kem_key_t::priv::get_encoded
    - ecdh_kem_key_t::pub::get_encoded
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t pgp_kyber_ecdh_composite_key_t::gen_keypair(rnp::RNG
      *            rng,\n                                            pgp_kyber_ecdh_key_t
      *key,\n                                            pgp_pubkey_alg_t      alg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:101,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:102,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - curve
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 82
    functionDepth: 1
    functionLinenumber: 82
    functionLinenumberEnd: 104
    functionName: pgp_kyber_ecdh_composite_key_t::ecdh_curve_privkey_size
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_kyber_ecdh_composite_key_t::ecdh_curve_privkey_size(pgp_curve_t
      curve)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:125,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:126,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - curve
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 106
    functionDepth: 1
    functionLinenumber: 106
    functionLinenumberEnd: 128
    functionName: pgp_kyber_ecdh_composite_key_t::ecdh_curve_pubkey_size
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_kyber_ecdh_composite_key_t::ecdh_curve_pubkey_size(pgp_curve_t
      curve)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:149,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:150,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - curve
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 152
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 152
    functionName: pgp_kyber_ecdh_composite_key_t::ecdh_curve_ephemeral_size
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_kyber_ecdh_composite_key_t::ecdh_curve_ephemeral_size(pgp_curve_t
      curve)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:173,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:174,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - curve
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 176
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 176
    functionName: pgp_kyber_ecdh_composite_key_t::ecdh_curve_keyshare_size
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_kyber_ecdh_composite_key_t::ecdh_curve_keyshare_size(pgp_curve_t
      curve)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:199,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - pk_alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 202
      start: 178
    functionDepth: 1
    functionLinenumber: 178
    functionLinenumberEnd: 202
    functionName: pgp_kyber_ecdh_composite_key_t::pk_alg_to_kyber_id
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: kyber_parameter_e
    signature: kyber_parameter_e pgp_kyber_ecdh_composite_key_t::pk_alg_to_kyber_id(pgp_pubkey_alg_t
      pk_alg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:223,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:224,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - pk_alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 204
    functionDepth: 1
    functionLinenumber: 204
    functionLinenumberEnd: 226
    functionName: pgp_kyber_ecdh_composite_key_t::pk_alg_to_curve_id
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t pgp_kyber_ecdh_composite_key_t::pk_alg_to_curve_id(pgp_pubkey_alg_t
      pk_alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_kyber_ecdh_composite_private_key_t::parse_component_keys
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:232,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:232,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key_encoded
    - key_encoded_len
    - pk_alg
    argTypes:
    - uint8_t*
    - size_t
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 233
      start: 228
    functionDepth: 1
    functionLinenumber: 228
    functionLinenumberEnd: 233
    functionName: pgp_kyber_ecdh_composite_private_key_t::pgp_kyber_ecdh_composite_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    - pgp_kyber_ecdh_composite_private_key_t::parse_component_keys
    linkageType: ''
    returnType: void
    signature: "void pgp_kyber_ecdh_composite_private_key_t::pgp_kyber_ecdh_composite_private_key_t(\n
      \ const uint8_t *key_encoded, size_t key_encoded_len, pgp_pubkey_alg_t pk_alg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_kyber_ecdh_composite_private_key_t::parse_component_keys
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:239,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key_encoded
    - pk_alg
    argTypes:
    - std::vector<uint8_t>
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 240
      start: 235
    functionDepth: 1
    functionLinenumber: 235
    functionLinenumberEnd: 240
    functionName: pgp_kyber_ecdh_composite_private_key_t::pgp_kyber_ecdh_composite_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 0
    functionsReached:
    - pgp_kyber_ecdh_composite_private_key_t::parse_component_keys
    linkageType: ''
    returnType: void
    signature: "void pgp_kyber_ecdh_composite_private_key_t::pgp_kyber_ecdh_composite_private_key_t(\n
      \ std::vector<uint8_t> const &key_encoded, pgp_pubkey_alg_t pk_alg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ecdh_curve_privkey_size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:248,1
    - Dst: pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:248,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:248,1
    - Dst: kyber_privkey_size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:249,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:249,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:250,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:251,1
    - Dst: std::unique_ptr<pgp_kyber_private_key_t>
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:254,1
    - Dst: pk_alg_to_kyber_id
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:255,1
    - Dst: pgp_kyber_private_key_t::pgp_kyber_private_key_t
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:255,1
    - Dst: std::unique_ptr<ecdh_kem_private_key_t>
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:256,1
    - Dst: pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:257,1
    - Dst: ecdh_kem_private_key_t::ecdh_kem_private_key_t
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:257,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - ecdh_key_encoded
    - kyber_key_encoded
    - pk_alg
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 242
    functionDepth: 1
    functionLinenumber: 242
    functionLinenumberEnd: 260
    functionName: pgp_kyber_ecdh_composite_private_key_t::pgp_kyber_ecdh_composite_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>::size
    - pk_alg_to_curve_id
    - kyber_privkey_size
    - std::unique_ptr<pgp_kyber_private_key_t>
    - ecdh_kem_private_key_t::ecdh_kem_private_key_t
    - std::unique_ptr<ecdh_kem_private_key_t>
    - pk_alg_to_kyber_id
    - rnp::rnp_exception::rnp_exception
    - pgp_kyber_private_key_t::pgp_kyber_private_key_t
    - ecdh_curve_privkey_size
    linkageType: ''
    returnType: void
    signature: "void pgp_kyber_ecdh_composite_private_key_t::pgp_kyber_ecdh_composite_private_key_t(\n
      \ std::vector<uint8_t> const &ecdh_key_encoded,\n  std::vector<uint8_t> const
      &kyber_key_encoded,\n  pgp_pubkey_alg_t            pk_alg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp_kyber_ecdh_composite_key_t::operator=
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:268,1
    - Dst: pgp_kyber_ecdh_composite_private_key_t::is_initialized
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:270,1
    - Dst: std::unique_ptr<pgp_kyber_private_key_t>
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:271,1
    - Dst: pgp_kyber_ecdh_composite_private_key_t::kyber_key_::get_encoded
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:272,1
    - Dst: pgp_kyber_ecdh_composite_private_key_t::kyber_key_::param
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:272,1
    - Dst: pgp_kyber_private_key_t::pgp_kyber_private_key_t
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:271,1
    - Dst: pgp_kyber_ecdh_composite_private_key_t::is_initialized
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:274,1
    - Dst: std::unique_ptr<ecdh_kem_private_key_t>
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:275,1
    - Dst: pgp_kyber_ecdh_composite_private_key_t::ecdh_key_::get_encoded
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:276,1
    - Dst: pgp_kyber_ecdh_composite_private_key_t::ecdh_key_::get_curve
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:276,1
    - Dst: ecdh_kem_private_key_t::ecdh_kem_private_key_t
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:275,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - other
    argTypes:
    - pgp_kyber_ecdh_composite_private_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 280
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 280
    functionName: "&\npgp_kyber_ecdh_composite_private_key_t::operator=(\n  const
      pgp_kyber_ecdh_composite_private_key_t &other)"
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 0
    functionsReached:
    - pgp_kyber_ecdh_composite_private_key_t::ecdh_key_::get_curve
    - pgp_kyber_ecdh_composite_private_key_t::kyber_key_::get_encoded
    - pgp_kyber_ecdh_composite_private_key_t::ecdh_key_::get_encoded
    - pgp_kyber_ecdh_composite_private_key_t::kyber_key_::param
    - std::unique_ptr<pgp_kyber_private_key_t>
    - ecdh_kem_private_key_t::ecdh_kem_private_key_t
    - pgp_kyber_ecdh_composite_private_key_t::is_initialized
    - std::unique_ptr<ecdh_kem_private_key_t>
    - pgp_kyber_private_key_t::pgp_kyber_private_key_t
    - pgp_kyber_ecdh_composite_key_t::operator=
    linkageType: ''
    returnType: pgp_kyber_ecdh_composite_private_key_t
    signature: "pgp_kyber_ecdh_composite_private_key_t &\npgp_kyber_ecdh_composite_private_key_t::operator=(\n
      \ const pgp_kyber_ecdh_composite_private_key_t &other)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - pgp_kyber_ecdh_composite_private_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 282
    functionDepth: 0
    functionLinenumber: 282
    functionLinenumberEnd: 286
    functionName: pgp_kyber_ecdh_composite_private_key_t::pgp_kyber_ecdh_composite_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void pgp_kyber_ecdh_composite_private_key_t::pgp_kyber_ecdh_composite_private_key_t(\n
      \ const pgp_kyber_ecdh_composite_private_key_t &other)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:291,1
    - Dst: ecdh_curve_privkey_size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:292,1
    - Dst: kyber_privkey_size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pk_alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 293
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 293
    functionName: pgp_kyber_ecdh_composite_private_key_t::encoded_size
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 0
    functionsReached:
    - ecdh_curve_privkey_size
    - pk_alg_to_curve_id
    - kyber_privkey_size
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_kyber_ecdh_composite_private_key_t::encoded_size(pgp_pubkey_alg_t
      pk_alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:298,1
    - Dst: pgp_kyber_ecdh_composite_private_key_t::encoded_size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:298,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:299,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:300,1
    - Dst: pk_alg_to_kyber_id
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:303,1
    - Dst: pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:304,1
    - Dst: ecdh_curve_privkey_size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:305,1
    - Dst: pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:305,1
    - Dst: std::unique_ptr<pgp_kyber_private_key_t>
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:307,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:308,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:308,1
    - Dst: pgp_kyber_private_key_t::pgp_kyber_private_key_t
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:307,1
    - Dst: std::unique_ptr<ecdh_kem_private_key_t>
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:309,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:310,1
    - Dst: ecdh_kem_private_key_t::ecdh_kem_private_key_t
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:310,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - key_encoded
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 313
      start: 295
    functionDepth: 2
    functionLinenumber: 295
    functionLinenumberEnd: 313
    functionName: pgp_kyber_ecdh_composite_private_key_t::parse_component_keys
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>::size
    - pk_alg_to_curve_id
    - pgp_kyber_ecdh_composite_private_key_t::encoded_size
    - std::unique_ptr<pgp_kyber_private_key_t>
    - ecdh_kem_private_key_t::ecdh_kem_private_key_t
    - std::unique_ptr<ecdh_kem_private_key_t>
    - pk_alg_to_kyber_id
    - rnp::rnp_exception::rnp_exception
    - std::vector<uint8_t>::data
    - pgp_kyber_private_key_t::pgp_kyber_private_key_t
    - ecdh_curve_privkey_size
    linkageType: ''
    returnType: void
    signature: void pgp_kyber_ecdh_composite_private_key_t::parse_component_keys(std::vector<uint8_t>
      key_encoded)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: initialized_or_throw
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:323,1
    - Dst: pgp_kyber_ecdh_encrypted_t*::wrapped_sesskey::size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:328,1
    - Dst: pgp_kyber_ecdh_encrypted_t*::wrapped_sesskey::size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:328,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:329,1
    - Dst: pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:335,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:336,1
    - Dst: pgp_kyber_ecdh_encrypted_t*::composite_ciphertext::data
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:337,1
    - Dst: pgp_kyber_ecdh_encrypted_t*::composite_ciphertext::data
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:338,1
    - Dst: ecdh_curve_ephemeral_size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:338,1
    - Dst: decapsulate
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:339,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:341,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:346,1
    - Dst: pgp_kyber_ecdh_encrypted_t*::composite_ciphertext::begin
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:347,1
    - Dst: ecdh_curve_ephemeral_size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:347,1
    - Dst: pgp_kyber_ecdh_encrypted_t*::composite_ciphertext::end
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:348,1
    - Dst: decapsulate
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:349,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:350,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:350,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:352,1
    - Dst: rnp::PqcKemCombiner::compute
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:358,1
    - Dst: pgp_kyber_ecdh_composite_public_key_t::get_ecdh_encoded
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:361,1
    - Dst: pgp_kyber_ecdh_composite_private_key_t::pk_alg
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:362,1
    - Dst: Botan::rfc3394_keyunwrap
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:370,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:370,1
    - Dst: pgp_kyber_ecdh_encrypted_t*::wrapped_sesskey::begin
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:370,1
    - Dst: pgp_kyber_ecdh_encrypted_t*::wrapped_sesskey::end
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:371,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:374,1
    - Dst: what
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:374,1
    - Dst: Botan::secure_vector::size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:378,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:379,1
    - Dst: Botan::secure_vector::size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:382,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:383,1
    - Dst: Botan::secure_vector::data
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:383,1
    - Dst: EVP_CIPHER_CTX_set_flags
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:392,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:392,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:393,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:393,1
    - Dst: EVP_aes_256_wrap
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:393,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:393,1
    - Dst: pgp_kyber_ecdh_encrypted_t*::wrapped_sesskey::size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:397,1
    - Dst: EVP_DecryptUpdate
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:400,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:400,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:401,1
    - Dst: pgp_kyber_ecdh_encrypted_t*::wrapped_sesskey::data
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:403,1
    - Dst: pgp_kyber_ecdh_encrypted_t*::wrapped_sesskey::size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:404,1
    - Dst: EVP_DecryptFinal_ex
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:405,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:405,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:405,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:406,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:411,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:415,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:415,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 47
    argCount: 5
    argNames:
    - rng
    - out
    - out_len
    - enc
    - ecdh_kyber_pub_key
    argTypes:
    - rnp::RNG*
    - uint8_t*
    - size_t*
    - pgp_kyber_ecdh_encrypted_t*
    - pgp_kyber_ecdh_composite_public_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 420
    functionName: pgp_kyber_ecdh_composite_private_key_t::decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 0
    functionsReached:
    - rnp::PqcKemCombiner::compute
    - pgp_kyber_ecdh_composite_private_key_t::pk_alg
    - EVP_CIPHER_CTX_set_flags
    - decapsulate
    - pgp_kyber_ecdh_encrypted_t*::composite_ciphertext::begin
    - pgp_kyber_ecdh_encrypted_t*::composite_ciphertext::data
    - pgp_kyber_ecdh_encrypted_t*::wrapped_sesskey::data
    - EVP_DecryptFinal_ex
    - initialized_or_throw
    - rnp::ossl::evp::CipherCtx::get
    - Botan::secure_vector::data
    - ecdh_curve_ephemeral_size
    - EVP_DecryptInit_ex
    - Botan::secure_vector::size
    - Botan::secure_vector<uint8_t>
    - RNP_LOG
    - pk_alg_to_curve_id
    - memcpy
    - EVP_DecryptUpdate
    - pgp_kyber_ecdh_encrypted_t*::wrapped_sesskey::begin
    - std::vector::size
    - pgp_kyber_ecdh_encrypted_t*::wrapped_sesskey::end
    - std::vector::data
    - pgp_kyber_ecdh_encrypted_t*::composite_ciphertext::end
    - pgp_kyber_ecdh_encrypted_t*::wrapped_sesskey::size
    - std::vector<uint8_t>
    - what
    - Botan::rfc3394_keyunwrap
    - pgp_kyber_ecdh_composite_public_key_t::get_ecdh_encoded
    - EVP_aes_256_wrap
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t pgp_kyber_ecdh_composite_private_key_t::decrypt(\n  rnp::RNG
      *                                   rng,\n  uint8_t *                                    out,\n
      \ size_t *                                     out_len,\n  const pgp_kyber_ecdh_encrypted_t
      *           enc,\n  const pgp_kyber_ecdh_composite_public_key_t &ecdh_kyber_pub_key)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:427,1
    - Dst: reset
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:428,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 422
    functionDepth: 1
    functionLinenumber: 422
    functionLinenumberEnd: 430
    functionName: pgp_kyber_ecdh_composite_private_key_t::secure_clear
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void pgp_kyber_ecdh_composite_private_key_t::secure_clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initialized_or_throw
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:435,1
    - Dst: pgp_kyber_ecdh_composite_private_key_t::get_encoded
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:437,1
    - Dst: pgp_kyber_ecdh_composite_private_key_t::get_encoded
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:438,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:440,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:440,1
    - Dst: begin
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:440,1
    - Dst: end
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:440,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:441,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:441,1
    - Dst: begin
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:441,1
    - Dst: end
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:441,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 443
      start: 432
    functionDepth: 1
    functionLinenumber: 432
    functionLinenumberEnd: 443
    functionName: pgp_kyber_ecdh_composite_private_key_t::get_encoded
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 1
    functionsReached:
    - std::vector::insert
    - end
    - initialized_or_throw
    - std::vector::end
    - pgp_kyber_ecdh_composite_private_key_t::get_encoded
    - begin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pgp_kyber_ecdh_composite_private_key_t::get_encoded()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_kyber_ecdh_composite_public_key_t::parse_component_keys
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:449,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key_encoded
    - key_encoded_len
    - pk_alg
    argTypes:
    - uint8_t*
    - size_t
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 450
      start: 445
    functionDepth: 1
    functionLinenumber: 445
    functionLinenumberEnd: 450
    functionName: pgp_kyber_ecdh_composite_public_key_t::pgp_kyber_ecdh_composite_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    - pgp_kyber_ecdh_composite_public_key_t::parse_component_keys
    linkageType: ''
    returnType: void
    signature: "void pgp_kyber_ecdh_composite_public_key_t::pgp_kyber_ecdh_composite_public_key_t(\n
      \ const uint8_t *key_encoded, size_t key_encoded_len, pgp_pubkey_alg_t pk_alg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_kyber_ecdh_composite_public_key_t::parse_component_keys
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:456,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key_encoded
    - pk_alg
    argTypes:
    - std::vector<uint8_t>
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 457
      start: 452
    functionDepth: 1
    functionLinenumber: 452
    functionLinenumberEnd: 457
    functionName: pgp_kyber_ecdh_composite_public_key_t::pgp_kyber_ecdh_composite_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 0
    functionsReached:
    - pgp_kyber_ecdh_composite_public_key_t::parse_component_keys
    linkageType: ''
    returnType: void
    signature: "void pgp_kyber_ecdh_composite_public_key_t::pgp_kyber_ecdh_composite_public_key_t(\n
      \ std::vector<uint8_t> const &key_encoded, pgp_pubkey_alg_t pk_alg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pk_alg_to_kyber_id
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:463,1
    - Dst: pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:464,1
    - Dst: ecdh_curve_pubkey_size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:466,1
    - Dst: pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:466,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:466,1
    - Dst: kyber_pubkey_size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:467,1
    - Dst: pk_alg_to_kyber_id
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:467,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:467,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:468,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:469,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - ecdh_key_encoded
    - kyber_key_encoded
    - pk_alg
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 459
    functionDepth: 1
    functionLinenumber: 459
    functionLinenumberEnd: 472
    functionName: pgp_kyber_ecdh_composite_public_key_t::pgp_kyber_ecdh_composite_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>::size
    - pk_alg_to_curve_id
    - pk_alg_to_kyber_id
    - rnp::rnp_exception::rnp_exception
    - ecdh_curve_pubkey_size
    - kyber_pubkey_size
    linkageType: ''
    returnType: void
    signature: "void pgp_kyber_ecdh_composite_public_key_t::pgp_kyber_ecdh_composite_public_key_t(\n
      \ std::vector<uint8_t> const &ecdh_key_encoded,\n  std::vector<uint8_t> const
      &kyber_key_encoded,\n  pgp_pubkey_alg_t            pk_alg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk_alg_to_kyber_id
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:477,1
    - Dst: pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:478,1
    - Dst: ecdh_curve_pubkey_size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:479,1
    - Dst: kyber_pubkey_size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:479,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pk_alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 474
    functionDepth: 1
    functionLinenumber: 474
    functionLinenumberEnd: 480
    functionName: pgp_kyber_ecdh_composite_public_key_t::encoded_size
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 3
    functionsReached:
    - ecdh_curve_pubkey_size
    - pk_alg_to_curve_id
    - kyber_pubkey_size
    - pk_alg_to_kyber_id
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_kyber_ecdh_composite_public_key_t::encoded_size(pgp_pubkey_alg_t
      pk_alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:485,1
    - Dst: pgp_kyber_ecdh_composite_public_key_t::encoded_size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:485,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:486,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:487,1
    - Dst: pk_alg_to_kyber_id
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:490,1
    - Dst: pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:491,1
    - Dst: ecdh_curve_pubkey_size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:492,1
    - Dst: pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:492,1
    - Dst: pgp_kyber_public_key_t
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:494,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:495,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:495,1
    - Dst: ecdh_kem_public_key_t
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:496,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:496,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - key_encoded
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 499
      start: 482
    functionDepth: 2
    functionLinenumber: 482
    functionLinenumberEnd: 499
    functionName: pgp_kyber_ecdh_composite_public_key_t::parse_component_keys
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>::size
    - pgp_kyber_public_key_t
    - pk_alg_to_curve_id
    - pgp_kyber_ecdh_composite_public_key_t::encoded_size
    - ecdh_kem_public_key_t
    - pk_alg_to_kyber_id
    - rnp::rnp_exception::rnp_exception
    - std::vector<uint8_t>::data
    - ecdh_curve_pubkey_size
    linkageType: ''
    returnType: void
    signature: void pgp_kyber_ecdh_composite_public_key_t::parse_component_keys(std::vector<uint8_t>
      key_encoded)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: initialized_or_throw
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:507,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:514,1
    - Dst: encapsulate
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:519,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:521,1
    - Dst: encapsulate
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:526,1
    - Dst: rnp::PqcKemCombiner::compute
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:529,1
    - Dst: pgp_kyber_ecdh_composite_public_key_t::get_encoded
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:532,1
    - Dst: pgp_kyber_ecdh_composite_public_key_t::pk_alg
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:533,1
    - Dst: rnpffi::Key::unlock
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:539,1
    - Dst: Botan::rfc3394_keywrap
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:539,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:540,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:542,1
    - Dst: what
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:542,1
    - Dst: EVP_CIPHER_CTX_set_flags
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:552,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:552,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:553,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:553,1
    - Dst: EVP_aes_256_wrap
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:553,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:553,1
    - Dst: pgp_kyber_ecdh_encrypted_t*::wrapped_sesskey::resize
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:557,1
    - Dst: EVP_EncryptUpdate
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:559,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:559,1
    - Dst: pgp_kyber_ecdh_encrypted_t*::wrapped_sesskey::data
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:560,1
    - Dst: EVP_EncryptFinal_ex
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:564,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:565,1
    - Dst: pgp_kyber_ecdh_encrypted_t*::wrapped_sesskey::data
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:565,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:566,1
    - Dst: pgp_kyber_ecdh_encrypted_t*::wrapped_sesskey::resize
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:569,1
    - Dst: pgp_kyber_ecdh_encrypted_t*::composite_ciphertext::assign
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:573,1
    - Dst: std::vector::begin
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:573,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:573,1
    - Dst: pgp_kyber_ecdh_encrypted_t*::composite_ciphertext::insert
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:574,1
    - Dst: pgp_kyber_ecdh_encrypted_t*::composite_ciphertext::end
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:574,1
    - Dst: kyber_encap_result_t::ciphertext::begin
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:575,1
    - Dst: kyber_encap_result_t::ciphertext::end
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:576,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 34
    argCount: 4
    argNames:
    - rng
    - out
    - session_key
    - session_key_len
    argTypes:
    - rnp::RNG*
    - pgp_kyber_ecdh_encrypted_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 501
    functionDepth: 1
    functionLinenumber: 501
    functionLinenumberEnd: 578
    functionName: pgp_kyber_ecdh_composite_public_key_t::encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 0
    functionsReached:
    - rnp::PqcKemCombiner::compute
    - EVP_CIPHER_CTX_set_flags
    - pgp_kyber_ecdh_encrypted_t*::composite_ciphertext::insert
    - Botan::rfc3394_keywrap
    - EVP_EncryptInit_ex
    - pgp_kyber_ecdh_encrypted_t*::wrapped_sesskey::data
    - initialized_or_throw
    - rnp::ossl::evp::CipherCtx::get
    - std::vector::begin
    - encapsulate
    - pgp_kyber_ecdh_encrypted_t*::composite_ciphertext::assign
    - Botan::secure_vector<uint8_t>
    - RNP_LOG
    - pgp_kyber_ecdh_encrypted_t*::wrapped_sesskey::resize
    - rnpffi::Key::unlock
    - EVP_EncryptFinal_ex
    - kyber_encap_result_t::ciphertext::begin
    - std::vector::end
    - pgp_kyber_ecdh_composite_public_key_t::get_encoded
    - pgp_kyber_ecdh_composite_public_key_t::pk_alg
    - kyber_encap_result_t::ciphertext::end
    - std::vector::data
    - pgp_kyber_ecdh_encrypted_t*::composite_ciphertext::end
    - what
    - EVP_aes_256_wrap
    - EVP_EncryptUpdate
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t pgp_kyber_ecdh_composite_public_key_t::encrypt(rnp::RNG
      *                  rng,\n                                               pgp_kyber_ecdh_encrypted_t
      *out,\n                                               const uint8_t *             session_key,\n
      \                                              size_t session_key_len) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initialized_or_throw
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:583,1
    - Dst: pgp_kyber_ecdh_composite_public_key_t::get_encoded
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:585,1
    - Dst: pgp_kyber_ecdh_composite_public_key_t::get_encoded
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:586,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:588,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:588,1
    - Dst: begin
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:588,1
    - Dst: end
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:588,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:589,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:589,1
    - Dst: begin
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:589,1
    - Dst: end
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:589,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 591
      start: 580
    functionDepth: 1
    functionLinenumber: 580
    functionLinenumberEnd: 591
    functionName: pgp_kyber_ecdh_composite_public_key_t::get_encoded
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 2
    functionsReached:
    - std::vector::insert
    - end
    - initialized_or_throw
    - std::vector::end
    - pgp_kyber_ecdh_composite_public_key_t::get_encoded
    - begin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pgp_kyber_ecdh_composite_public_key_t::get_encoded()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initialized_or_throw
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:596,1
    - Dst: pgp_kyber_ecdh_composite_public_key_t::get_encoded
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 599
      start: 593
    functionDepth: 2
    functionLinenumber: 593
    functionLinenumberEnd: 599
    functionName: pgp_kyber_ecdh_composite_public_key_t::get_kyber_encoded
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 0
    functionsReached:
    - pgp_kyber_ecdh_composite_public_key_t::get_encoded
    - initialized_or_throw
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pgp_kyber_ecdh_composite_public_key_t::get_kyber_encoded()
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initialized_or_throw
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:604,1
    - Dst: pgp_kyber_ecdh_composite_public_key_t::get_encoded
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:606,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 607
      start: 601
    functionDepth: 2
    functionLinenumber: 601
    functionLinenumberEnd: 607
    functionName: pgp_kyber_ecdh_composite_public_key_t::get_ecdh_encoded
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 1
    functionsReached:
    - pgp_kyber_ecdh_composite_public_key_t::get_encoded
    - initialized_or_throw
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pgp_kyber_ecdh_composite_public_key_t::get_ecdh_encoded()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_initialized
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:612,1
    - Dst: pgp_kyber_ecdh_composite_public_key_t::is_valid
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:615,1
    - Dst: pgp_kyber_ecdh_composite_public_key_t::is_valid
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:615,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 616
      start: 609
    functionDepth: 1
    functionLinenumber: 609
    functionLinenumberEnd: 616
    functionName: pgp_kyber_ecdh_composite_public_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 1
    functionsReached:
    - is_initialized
    - pgp_kyber_ecdh_composite_public_key_t::is_valid
    linkageType: ''
    returnType: bool
    signature: bool pgp_kyber_ecdh_composite_public_key_t::is_valid(rnp::RNG *rng)
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_initialized
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:621,1
    - Dst: pgp_kyber_ecdh_composite_private_key_t::is_valid
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:624,1
    - Dst: pgp_kyber_ecdh_composite_private_key_t::is_valid
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:624,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 625
      start: 618
    functionDepth: 1
    functionLinenumber: 618
    functionLinenumberEnd: 625
    functionName: pgp_kyber_ecdh_composite_private_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 1
    functionsReached:
    - is_initialized
    - pgp_kyber_ecdh_composite_private_key_t::is_valid
    linkageType: ''
    returnType: bool
    signature: bool pgp_kyber_ecdh_composite_private_key_t::is_valid(rnp::RNG *rng)
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp_kyber_ecdh_key_t*::pub::is_valid
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:632,1
    - Dst: pgp_kyber_ecdh_key_t*::priv::is_valid
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp:634,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG*
    - pgp_kyber_ecdh_key_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 640
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 640
    functionName: kyber_ecdh_validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
    functionUses: 2
    functionsReached:
    - pgp_kyber_ecdh_key_t*::priv::is_valid
    - pgp_kyber_ecdh_key_t*::pub::is_valid
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t kyber_ecdh_validate_key(rnp::RNG *rng, const pgp_kyber_ecdh_key_t
      *key, bool secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OPENSSL_cleanse
      Src: /src/rnp/src/lib/crypto/mem_ossl.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vp
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: secure_clear
    functionSourceFile: /src/rnp/src/lib/crypto/mem_ossl.cpp
    functionUses: 17
    functionsReached:
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void secure_clear(void *vp, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - buf
    - buf_len
    - hex
    - hex_len
    - format
    argTypes:
    - uint8_t*
    - size_t
    - char*
    - size_t
    - HexFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 56
    functionName: rnp::hex_encode
    functionSourceFile: /src/rnp/src/lib/crypto/mem_ossl.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hex_encode(const uint8_t *buf, size_t buf_len, char *hex, size_t
      hex_len, HexFormat format)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - hex
    - res
    argTypes:
    - char
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 74
    functionName: rnp::hex_char_decode
    functionSourceFile: /src/rnp/src/lib/crypto/mem_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hex_char_decode(const char hex, uint8_t &res)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/rnp/src/lib/crypto/mem_ossl.cpp:79,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/mem_ossl.cpp:98,1
    - Dst: rnp::hex_char_decode
      Src: /src/rnp/src/lib/crypto/mem_ossl.cpp:102,1
    - Dst: rnp::hex_char_decode
      Src: /src/rnp/src/lib/crypto/mem_ossl.cpp:102,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/mem_ossl.cpp:103,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 24
    argCount: 3
    argNames:
    - hex
    - buf
    - buf_len
    argTypes:
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 112
    functionName: rnp::hex_decode
    functionSourceFile: /src/rnp/src/lib/crypto/mem_ossl.cpp
    functionUses: 8
    functionsReached:
    - RNP_LOG
    - strlen
    - rnp::hex_char_decode
    linkageType: ''
    returnType: size_t
    signature: size_t hex_decode(const char *hex, uint8_t *buf, size_t buf_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - buf
    - buf_len
    - hex
    - hex_len
    - format
    argTypes:
    - uint8_t*
    - size_t
    - char*
    - size_t
    - HexFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 56
    functionName: rnp::hex_encode
    functionSourceFile: /src/rnp/src/lib/crypto/mem_ossl.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hex_encode(const uint8_t *buf, size_t buf_len, char *hex, size_t
      hex_len, HexFormat format)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - hex
    - res
    argTypes:
    - char
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 74
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 74
    functionName: rnp::hex_char_decode
    functionSourceFile: /src/rnp/src/lib/crypto/mem_ossl.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool hex_char_decode(const char hex, uint8_t &res)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/rnp/src/lib/crypto/mem_ossl.cpp:79,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/mem_ossl.cpp:98,1
    - Dst: rnp::hex_char_decode
      Src: /src/rnp/src/lib/crypto/mem_ossl.cpp:102,1
    - Dst: rnp::hex_char_decode
      Src: /src/rnp/src/lib/crypto/mem_ossl.cpp:102,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/mem_ossl.cpp:103,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 24
    argCount: 3
    argNames:
    - hex
    - buf
    - buf_len
    argTypes:
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 112
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 112
    functionName: rnp::hex_decode
    functionSourceFile: /src/rnp/src/lib/crypto/mem_ossl.cpp
    functionUses: 8
    functionsReached:
    - RNP_LOG
    - strlen
    - rnp::hex_char_decode
    linkageType: ''
    returnType: size_t
    signature: size_t hex_decode(const char *hex, uint8_t *buf, size_t buf_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mode
    argTypes:
    - kyber_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 44
    functionName: rnp_kyber_param_to_botan_kyber_mode
    functionSourceFile: /src/rnp/src/lib/crypto/kyber.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::KyberMode
    signature: Botan::KyberMode rnp_kyber_param_to_botan_kyber_mode(kyber_parameter_e
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: kyber_key_share_size
    functionSourceFile: /src/rnp/src/lib/crypto/kyber.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t kyber_key_share_size()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PublicKey
      Src: /src/rnp/src/lib/crypto/kyber.cpp:55,1
    - Dst: rnp_kyber_param_to_botan_kyber_mode
      Src: /src/rnp/src/lib/crypto/kyber.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key_encoded
    - kyber_mode
    argTypes:
    - std::vector<uint8_t>
    - kyber_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: kyber_pubkey_from_bytes
    functionSourceFile: /src/rnp/src/lib/crypto/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_PublicKey
    - rnp_kyber_param_to_botan_kyber_mode
    linkageType: ''
    returnType: Botan::Kyber_PublicKey
    signature: Botan::Kyber_PublicKey kyber_pubkey_from_bytes(const std::vector<uint8_t>
      &key_encoded, kyber_parameter_e kyber_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PrivateKey
      Src: /src/rnp/src/lib/crypto/kyber.cpp:65,1
    - Dst: rnp_kyber_param_to_botan_kyber_mode
      Src: /src/rnp/src/lib/crypto/kyber.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key_data
    - key_size
    - kyber_mode
    argTypes:
    - uint8_t*
    - size_t
    - kyber_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: kyber_privkey_from_bytes
    functionSourceFile: /src/rnp/src/lib/crypto/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_PrivateKey
    - rnp_kyber_param_to_botan_kyber_mode
    linkageType: ''
    returnType: Botan::Kyber_PrivateKey
    signature: "Botan::Kyber_PrivateKey kyber_privkey_from_bytes(const uint8_t *   key_data,\n
      \                        size_t            key_size,\n                         kyber_parameter_e
      kyber_mode)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mode
    argTypes:
    - kyber_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 44
    functionName: rnp_kyber_param_to_botan_kyber_mode
    functionSourceFile: /src/rnp/src/lib/crypto/kyber.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Botan::KyberMode
    signature: Botan::KyberMode rnp_kyber_param_to_botan_kyber_mode(kyber_parameter_e
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: kyber_key_share_size
    functionSourceFile: /src/rnp/src/lib/crypto/kyber.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t kyber_key_share_size()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PublicKey
      Src: /src/rnp/src/lib/crypto/kyber.cpp:55,1
    - Dst: rnp_kyber_param_to_botan_kyber_mode
      Src: /src/rnp/src/lib/crypto/kyber.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key_encoded
    - kyber_mode
    argTypes:
    - std::vector<uint8_t>
    - kyber_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 57
    functionName: kyber_pubkey_from_bytes
    functionSourceFile: /src/rnp/src/lib/crypto/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_PublicKey
    - rnp_kyber_param_to_botan_kyber_mode
    linkageType: ''
    returnType: Botan::Kyber_PublicKey
    signature: Botan::Kyber_PublicKey kyber_pubkey_from_bytes(const std::vector<uint8_t>
      &key_encoded, kyber_parameter_e kyber_mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Kyber_PrivateKey
      Src: /src/rnp/src/lib/crypto/kyber.cpp:65,1
    - Dst: rnp_kyber_param_to_botan_kyber_mode
      Src: /src/rnp/src/lib/crypto/kyber.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key_data
    - key_size
    - kyber_mode
    argTypes:
    - uint8_t*
    - size_t
    - kyber_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 1
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: kyber_privkey_from_bytes
    functionSourceFile: /src/rnp/src/lib/crypto/kyber.cpp
    functionUses: 0
    functionsReached:
    - Botan::Kyber_PrivateKey
    - rnp_kyber_param_to_botan_kyber_mode
    linkageType: ''
    returnType: Botan::Kyber_PrivateKey
    signature: "Botan::Kyber_PrivateKey kyber_privkey_from_bytes(const uint8_t *   key_data,\n
      \                        size_t            key_size,\n                         kyber_parameter_e
      kyber_mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/kyber.cpp:72,1
    - Dst: rnp_kyber_param_to_botan_kyber_mode
      Src: /src/rnp/src/lib/crypto/kyber.cpp:73,1
    - Dst: Botan::Kyber_PrivateKey::private_key_bits
      Src: /src/rnp/src/lib/crypto/kyber.cpp:76,1
    - Dst: Botan::Kyber_PrivateKey::public_key
      Src: /src/rnp/src/lib/crypto/kyber.cpp:77,1
    - Dst: Botan::Kyber_PrivateKey::public_key_bits
      Src: /src/rnp/src/lib/crypto/kyber.cpp:79,1
    - Dst: std::make_pair
      Src: /src/rnp/src/lib/crypto/kyber.cpp:80,1
    - Dst: pgp_kyber_public_key_t
      Src: /src/rnp/src/lib/crypto/kyber.cpp:80,1
    - Dst: pgp_kyber_private_key_t
      Src: /src/rnp/src/lib/crypto/kyber.cpp:81,1
    - Dst: Botan::secure_vector::data
      Src: /src/rnp/src/lib/crypto/kyber.cpp:81,1
    - Dst: Botan::secure_vector::size
      Src: /src/rnp/src/lib/crypto/kyber.cpp:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rng
    - kyber_param
    argTypes:
    - rnp::RNG*
    - kyber_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 69
    functionDepth: 1
    functionLinenumber: 69
    functionLinenumberEnd: 84
    functionName: kyber_generate_keypair
    functionSourceFile: /src/rnp/src/lib/crypto/kyber.cpp
    functionUses: 2
    functionsReached:
    - pgp_kyber_public_key_t
    - Botan::Kyber_PrivateKey::private_key_bits
    - Botan::Kyber_PrivateKey::public_key
    - rnp_kyber_param_to_botan_kyber_mode
    - Botan::Kyber_PrivateKey::public_key_bits
    - std::make_pair
    - Botan::secure_vector::data
    - pgp_kyber_private_key_t
    - Botan::secure_vector::size
    - rnp::RNG*::obj
    linkageType: ''
    returnType: std::pair<pgp_kyber_public_key_t, pgp_kyber_private_key_t>
    signature: std::pair<pgp_kyber_public_key_t, pgp_kyber_private_key_t> kyber_generate_keypair(rnp::RNG
      *rng, kyber_parameter_e kyber_param)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/kyber.cpp:89,1
    - Dst: kyber_pubkey_from_bytes
      Src: /src/rnp/src/lib/crypto/kyber.cpp:90,1
    - Dst: Botan::PK_KEM_Encryptor::encrypt
      Src: /src/rnp/src/lib/crypto/kyber.cpp:96,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/kyber.cpp:96,1
    - Dst: kyber_key_share_size
      Src: /src/rnp/src/lib/crypto/kyber.cpp:96,1
    - Dst: kyber_encap_result_t::ciphertext::insert
      Src: /src/rnp/src/lib/crypto/kyber.cpp:98,1
    - Dst: kyber_encap_result_t::ciphertext::end
      Src: /src/rnp/src/lib/crypto/kyber.cpp:99,1
    - Dst: Botan::secure_vector::data
      Src: /src/rnp/src/lib/crypto/kyber.cpp:99,1
    - Dst: Botan::secure_vector::data
      Src: /src/rnp/src/lib/crypto/kyber.cpp:99,1
    - Dst: Botan::secure_vector::size
      Src: /src/rnp/src/lib/crypto/kyber.cpp:99,1
    - Dst: kyber_encap_result_t::symmetric_key::insert
      Src: /src/rnp/src/lib/crypto/kyber.cpp:100,1
    - Dst: kyber_encap_result_t::symmetric_key::end
      Src: /src/rnp/src/lib/crypto/kyber.cpp:100,1
    - Dst: Botan::secure_vector::data
      Src: /src/rnp/src/lib/crypto/kyber.cpp:101,1
    - Dst: Botan::secure_vector::data
      Src: /src/rnp/src/lib/crypto/kyber.cpp:102,1
    - Dst: Botan::secure_vector::size
      Src: /src/rnp/src/lib/crypto/kyber.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts:
    - condition: (is_initialized_)
      pos:
        line_end: 88
        line_start: 88
        source_file: /src/rnp/src/lib/crypto/kyber.cpp
    constantsTouched: []
    func_position:
      end: 104
      start: 86
    functionDepth: 2
    functionLinenumber: 86
    functionLinenumberEnd: 104
    functionName: pgp_kyber_public_key_t::encapsulate
    functionSourceFile: /src/rnp/src/lib/crypto/kyber.cpp
    functionUses: 0
    functionsReached:
    - kyber_encap_result_t::ciphertext::insert
    - Botan::PK_KEM_Encryptor::encrypt
    - kyber_key_share_size
    - assert
    - Botan::secure_vector::data
    - kyber_pubkey_from_bytes
    - kyber_encap_result_t::symmetric_key::end
    - kyber_encap_result_t::symmetric_key::insert
    - kyber_encap_result_t::ciphertext::end
    - Botan::secure_vector::size
    - rnp::RNG*::obj
    linkageType: ''
    returnType: kyber_encap_result_t
    signature: kyber_encap_result_t pgp_kyber_public_key_t::encapsulate(rnp::RNG *rng)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/kyber.cpp:111,1
    - Dst: kyber_privkey_from_bytes
      Src: /src/rnp/src/lib/crypto/kyber.cpp:113,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/kyber.cpp:113,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/kyber.cpp:113,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/kyber.cpp:114,1
    - Dst: Botan::PK_KEM_Decryptor::decrypt
      Src: /src/rnp/src/lib/crypto/kyber.cpp:116,1
    - Dst: kyber_key_share_size
      Src: /src/rnp/src/lib/crypto/kyber.cpp:116,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/kyber.cpp:117,1
    - Dst: Botan::secure_vector::data
      Src: /src/rnp/src/lib/crypto/kyber.cpp:117,1
    - Dst: Botan::secure_vector::data
      Src: /src/rnp/src/lib/crypto/kyber.cpp:118,1
    - Dst: Botan::secure_vector::size
      Src: /src/rnp/src/lib/crypto/kyber.cpp:118,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - rng
    - ciphertext
    - ciphertext_len
    argTypes:
    - rnp::RNG*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (is_initialized_)
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/rnp/src/lib/crypto/kyber.cpp
    constantsTouched: []
    func_position:
      end: 119
      start: 106
    functionDepth: 2
    functionLinenumber: 106
    functionLinenumberEnd: 119
    functionName: pgp_kyber_private_key_t::decapsulate
    functionSourceFile: /src/rnp/src/lib/crypto/kyber.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    - data
    - kyber_key_share_size
    - assert
    - Botan::secure_vector::data
    - kyber_privkey_from_bytes
    - Botan::PK_KEM_Decryptor::decrypt
    - Botan::secure_vector::size
    - size
    - rnp::RNG*::obj
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> pgp_kyber_private_key_t::decapsulate(rnp::RNG
      *     rng,\n                                     const uint8_t *ciphertext,\n
      \                                    size_t         ciphertext_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kyber_pubkey_from_bytes
      Src: /src/rnp/src/lib/crypto/kyber.cpp:128,1
    - Dst: auto::check_key
      Src: /src/rnp/src/lib/crypto/kyber.cpp:129,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/kyber.cpp:129,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 121
    functionDepth: 2
    functionLinenumber: 121
    functionLinenumberEnd: 130
    functionName: pgp_kyber_public_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/kyber.cpp
    functionUses: 0
    functionsReached:
    - kyber_pubkey_from_bytes
    - auto::check_key
    - rnp::RNG*::obj
    linkageType: ''
    returnType: bool
    signature: bool pgp_kyber_public_key_t::is_valid(rnp::RNG *rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: kyber_privkey_from_bytes
      Src: /src/rnp/src/lib/crypto/kyber.cpp:139,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/kyber.cpp:139,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/kyber.cpp:139,1
    - Dst: auto::check_key
      Src: /src/rnp/src/lib/crypto/kyber.cpp:140,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/kyber.cpp:140,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 141
      start: 132
    functionDepth: 2
    functionLinenumber: 132
    functionLinenumberEnd: 141
    functionName: pgp_kyber_private_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/kyber.cpp
    functionUses: 0
    functionsReached:
    - data
    - kyber_privkey_from_bytes
    - auto::check_key
    - size
    - rnp::RNG*::obj
    linkageType: ''
    returnType: bool
    signature: bool pgp_kyber_private_key_t::is_valid(rnp::RNG *rng) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:47,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 50
    functionName: rnp_sphincsplus_alg_to_botan_param
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: Botan::SLH_DSA_Parameter_Set
    signature: Botan::SLH_DSA_Parameter_Set rnp_sphincsplus_alg_to_botan_param(pgp_pubkey_alg_t
      alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SLH_DSA_PublicKey
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:55,1
    - Dst: rnp_sphincsplus_alg_to_botan_param
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key_encoded
    - alg
    argTypes:
    - std::vector<uint8_t>
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: sphincsplus_pubkey_from_bytes
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::SLH_DSA_PublicKey
    - rnp_sphincsplus_alg_to_botan_param
    linkageType: ''
    returnType: Botan::SLH_DSA_PublicKey
    signature: Botan::SLH_DSA_PublicKey sphincsplus_pubkey_from_bytes(const std::vector<uint8_t>
      &key_encoded, pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SLH_DSA_PrivateKey
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:64,1
    - Dst: rnp_sphincsplus_alg_to_botan_param
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key_data
    - key_size
    - alg
    argTypes:
    - uint8_t*
    - size_t
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: sphincsplus_privkey_from_bytes
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::SLH_DSA_PrivateKey
    - rnp_sphincsplus_alg_to_botan_param
    linkageType: ''
    returnType: Botan::SLH_DSA_PrivateKey
    signature: Botan::SLH_DSA_PrivateKey sphincsplus_privkey_from_bytes(const uint8_t
      *key_data, size_t key_size, pgp_pubkey_alg_t alg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:47,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 50
    functionName: rnp_sphincsplus_alg_to_botan_param
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: Botan::SLH_DSA_Parameter_Set
    signature: Botan::SLH_DSA_Parameter_Set rnp_sphincsplus_alg_to_botan_param(pgp_pubkey_alg_t
      alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SLH_DSA_PublicKey
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:55,1
    - Dst: rnp_sphincsplus_alg_to_botan_param
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key_encoded
    - alg
    argTypes:
    - std::vector<uint8_t>
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 58
    functionName: sphincsplus_pubkey_from_bytes
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::SLH_DSA_PublicKey
    - rnp_sphincsplus_alg_to_botan_param
    linkageType: ''
    returnType: Botan::SLH_DSA_PublicKey
    signature: Botan::SLH_DSA_PublicKey sphincsplus_pubkey_from_bytes(const std::vector<uint8_t>
      &key_encoded, pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::SLH_DSA_PrivateKey
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:64,1
    - Dst: rnp_sphincsplus_alg_to_botan_param
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key_data
    - key_size
    - alg
    argTypes:
    - uint8_t*
    - size_t
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 60
    functionDepth: 2
    functionLinenumber: 60
    functionLinenumberEnd: 66
    functionName: sphincsplus_privkey_from_bytes
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::SLH_DSA_PrivateKey
    - rnp_sphincsplus_alg_to_botan_param
    linkageType: ''
    returnType: Botan::SLH_DSA_PrivateKey
    signature: Botan::SLH_DSA_PrivateKey sphincsplus_privkey_from_bytes(const uint8_t
      *key_data, size_t key_size, pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - key_encoded
    - key_encoded_len
    - alg
    argTypes:
    - uint8_t*
    - size_t
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 75
    functionName: pgp_sphincsplus_public_key_t::pgp_sphincsplus_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void pgp_sphincsplus_public_key_t::pgp_sphincsplus_public_key_t(const
      uint8_t *  key_encoded,\n                                                           size_t
      \          key_encoded_len,\n                                                           pgp_pubkey_alg_t
      alg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key_encoded
    - alg
    argTypes:
    - std::vector<uint8_t>
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: pgp_sphincsplus_public_key_t::pgp_sphincsplus_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void pgp_sphincsplus_public_key_t::pgp_sphincsplus_public_key_t(\n
      \ std::vector<uint8_t> const &key_encoded, pgp_pubkey_alg_t alg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - key_encoded
    - key_encoded_len
    - alg
    argTypes:
    - uint8_t*
    - size_t
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 89
    functionName: pgp_sphincsplus_private_key_t::pgp_sphincsplus_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void pgp_sphincsplus_private_key_t::pgp_sphincsplus_private_key_t(const
      uint8_t *  key_encoded,\n                                                             size_t
      \          key_encoded_len,\n                                                             pgp_pubkey_alg_t
      alg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:93,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key_encoded
    - alg
    argTypes:
    - std::vector<uint8_t>
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 1
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: pgp_sphincsplus_private_key_t::pgp_sphincsplus_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - std::vector<uint8_t>::data
    linkageType: ''
    returnType: void
    signature: "void pgp_sphincsplus_private_key_t::pgp_sphincsplus_private_key_t(\n
      \ std::vector<uint8_t> const &key_encoded, pgp_pubkey_alg_t alg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:103,1
    - Dst: sphincsplus_privkey_from_bytes
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:105,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:105,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:105,1
    - Dst: Botan::PK_Signer
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:107,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:107,1
    - Dst: auto::sign_message
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:108,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - rng
    - sig
    - msg
    - msg_len
    argTypes:
    - rnp::RNG*
    - pgp_sphincsplus_signature_t*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (is_initialized_)
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/rnp/src/lib/crypto/sphincsplus.cpp
    constantsTouched: []
    func_position:
      end: 111
      start: 97
    functionDepth: 3
    functionLinenumber: 97
    functionLinenumberEnd: 111
    functionName: pgp_sphincsplus_private_key_t::sign
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - data
    - auto::sign_message
    - Botan::PK_Signer
    - sphincsplus_privkey_from_bytes
    - assert
    - size
    - rnp::RNG*::obj
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t pgp_sphincsplus_private_key_t::sign(rnp::RNG *                   rng,\n
      \                                   pgp_sphincsplus_signature_t *sig,\n                                    const
      uint8_t *              msg,\n                                    size_t                       msg_len)
      const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:118,1
    - Dst: sphincsplus_pubkey_from_bytes
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:119,1
    - Dst: Botan::PK_Verifier
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:121,1
    - Dst: auto::verify_message
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:122,1
    - Dst: pgp_sphincsplus_signature_t*::sig::data
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:122,1
    - Dst: pgp_sphincsplus_signature_t*::sig::size
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 3
    argNames:
    - sig
    - msg
    - msg_len
    argTypes:
    - pgp_sphincsplus_signature_t*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (is_initialized_)
      pos:
        line_end: 117
        line_start: 117
        source_file: /src/rnp/src/lib/crypto/sphincsplus.cpp
    constantsTouched: []
    func_position:
      end: 126
      start: 113
    functionDepth: 3
    functionLinenumber: 113
    functionLinenumberEnd: 126
    functionName: pgp_sphincsplus_public_key_t::verify
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - Botan::PK_Verifier
    - pgp_sphincsplus_signature_t*::sig::size
    - assert
    - sphincsplus_pubkey_from_bytes
    - auto::verify_message
    - pgp_sphincsplus_signature_t*::sig::data
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t pgp_sphincsplus_public_key_t::verify(const pgp_sphincsplus_signature_t
      *sig,\n                                     const uint8_t *                    msg,\n
      \                                    size_t                             msg_len)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:131,1
    - Dst: rnp_sphincsplus_alg_to_botan_param
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:132,1
    - Dst: Botan::SLH_DSA_PrivateKey::public_key
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:135,1
    - Dst: Botan::SLH_DSA_PrivateKey::private_key_bits
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:136,1
    - Dst: std::make_pair
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:137,1
    - Dst: pgp_sphincsplus_public_key_t
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:138,1
    - Dst: std::unique_ptr::public_key_bits
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:138,1
    - Dst: pgp_sphincsplus_private_key_t
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:139,1
    - Dst: Botan::secure_vector::data
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:139,1
    - Dst: Botan::secure_vector::size
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rng
    - alg
    argTypes:
    - rnp::RNG*
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 128
    functionDepth: 2
    functionLinenumber: 128
    functionLinenumberEnd: 140
    functionName: sphincsplus_generate_keypair
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.cpp
    functionUses: 1
    functionsReached:
    - Botan::SLH_DSA_PrivateKey::private_key_bits
    - pgp_sphincsplus_public_key_t
    - std::unique_ptr::public_key_bits
    - std::make_pair
    - Botan::secure_vector::data
    - pgp_sphincsplus_private_key_t
    - rnp_sphincsplus_alg_to_botan_param
    - Botan::secure_vector::size
    - Botan::SLH_DSA_PrivateKey::public_key
    - rnp::RNG*::obj
    linkageType: ''
    returnType: std::pair<pgp_sphincsplus_public_key_t, pgp_sphincsplus_private_key_t>
    signature: std::pair<pgp_sphincsplus_public_key_t, pgp_sphincsplus_private_key_t>
      sphincsplus_generate_keypair(rnp::RNG *rng, pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sphincsplus_generate_keypair
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - rng
    - material
    - alg
    argTypes:
    - rnp::RNG*
    - pgp_sphincsplus_key_t*
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 150
    functionName: pgp_sphincsplus_generate
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.cpp
    functionUses: 2
    functionsReached:
    - sphincsplus_generate_keypair
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t pgp_sphincsplus_generate(rnp::RNG *rng, pgp_sphincsplus_key_t
      *material, pgp_pubkey_alg_t alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sphincsplus_pubkey_from_bytes
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:159,1
    - Dst: auto::check_key
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:160,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 152
    functionDepth: 3
    functionLinenumber: 152
    functionLinenumberEnd: 161
    functionName: pgp_sphincsplus_public_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - sphincsplus_pubkey_from_bytes
    - auto::check_key
    - rnp::RNG*::obj
    linkageType: ''
    returnType: bool
    signature: bool pgp_sphincsplus_public_key_t::is_valid(rnp::RNG *rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sphincsplus_privkey_from_bytes
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:171,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:171,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:171,1
    - Dst: auto::check_key
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:172,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:172,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 163
    functionDepth: 3
    functionLinenumber: 163
    functionLinenumberEnd: 173
    functionName: pgp_sphincsplus_private_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - data
    - sphincsplus_privkey_from_bytes
    - auto::check_key
    - size
    - rnp::RNG*::obj
    linkageType: ''
    returnType: bool
    signature: bool pgp_sphincsplus_private_key_t::is_valid(rnp::RNG *rng) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp_sphincsplus_key_t*::pub::is_valid
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:180,1
    - Dst: pgp_sphincsplus_key_t*::priv::is_valid
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:182,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG*
    - pgp_sphincsplus_key_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 189
    functionName: sphincsplus_validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.cpp
    functionUses: 2
    functionsReached:
    - pgp_sphincsplus_key_t*::pub::is_valid
    - pgp_sphincsplus_key_t*::priv::is_valid
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t sphincsplus_validate_key(rnp::RNG *rng, const pgp_sphincsplus_key_t
      *key, bool secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sphincsplus_pubkey_size
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: sphincsplus_privkey_size
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.cpp
    functionUses: 0
    functionsReached:
    - sphincsplus_pubkey_size
    linkageType: ''
    returnType: size_t
    signature: size_t sphincsplus_privkey_size(pgp_pubkey_alg_t alg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 211
    functionName: sphincsplus_pubkey_size
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.cpp
    functionUses: 6
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: size_t
    signature: size_t sphincsplus_pubkey_size(pgp_pubkey_alg_t alg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sphincsplus.cpp:224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 213
    functionDepth: 1
    functionLinenumber: 213
    functionLinenumberEnd: 227
    functionName: sphincsplus_signature_size
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: size_t
    signature: size_t sphincsplus_signature_size(pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_mp_init
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: rnp::bn::bn
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 4
    functionsReached:
    - botan_mp_init
    linkageType: ''
    returnType: void
    signature: void bn()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: botan_mp_init
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:47,1
    - Dst: botan_mp_from_bin
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:48,1
    - Dst: botan_mp_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - val
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: rnp::bn::bn
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 4
    functionsReached:
    - botan_mp_from_bin
    - botan_mp_init
    - botan_mp_destroy
    linkageType: ''
    returnType: void
    signature: void bn(const uint8_t *val, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:56,1
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - pgp::mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: rnp::bn::bn
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 4
    functionsReached:
    - pgp::mpi::size
    - pgp::mpi::data
    linkageType: ''
    returnType: void
    signature: void bn(const pgp::mpi &val)
  - 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: rnp::bn::bn
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bn(const bn &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_mp_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: ~bn()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_mp_destroy
    linkageType: ''
    returnType: void
    signature: void ~bn()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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: operator bool() const
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - 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: rnp::bn::get
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_mp_t
    signature: botan_mp_t get() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:79,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:81,1
    - Dst: pgp::mpi::resize
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:82,1
    - Dst: pgp::mpi::resize
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:85,1
    - Dst: botan_mp_to_bin
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:86,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - val
    argTypes:
    - pgp::mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: rnp::bn::mpi
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - pgp::mpi::resize
    - pgp::mpi::data
    - botan_mp_to_bin
    - rnp::bn::bytes
    linkageType: ''
    returnType: bool
    signature: bool mpi(pgp::mpi &val) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_mp_to_bin
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: rnp::bn::bin
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_mp_to_bin
    linkageType: ''
    returnType: bool
    signature: bool bin(uint8_t *b) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: botan_mp_num_bits
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:99,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:100,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: rnp::bn::bytes
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - botan_mp_num_bits
    - BITS_TO_BYTES
    linkageType: ''
    returnType: size_t
    signature: size_t bytes() const noexcept
  - 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: rnp::botan::Pubkey::Pubkey
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pubkey()
  - 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: rnp::botan::Pubkey::Pubkey
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pubkey(const Pubkey &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pubkey_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp: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: ~Pubkey()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pubkey_destroy
    linkageType: ''
    returnType: void
    signature: void ~Pubkey()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pubkey_t
    signature: "botan_pubkey_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: rnp::botan::Privkey::Privkey
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Privkey()
  - 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: rnp::botan::Privkey::Privkey
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Privkey(const Privkey &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_privkey_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: ~Privkey()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_privkey_destroy
    linkageType: ''
    returnType: void
    signature: void ~Privkey()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_privkey_t
    signature: "botan_privkey_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: "&\n    get() const noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_privkey_t
    signature: "botan_privkey_t &\n    get() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: rnp::botan::op::Encrypt::Encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypt()
  - 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: rnp::botan::op::Encrypt::Encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypt(const Encrypt &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_encrypt_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: ~Encrypt()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_encrypt_destroy
    linkageType: ''
    returnType: void
    signature: void ~Encrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_encrypt_t
    signature: "botan_pk_op_encrypt_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: rnp::botan::op::Decrypt::Decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Decrypt()
  - 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: rnp::botan::op::Decrypt::Decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Decrypt(const Decrypt &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_decrypt_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: ~Decrypt()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_decrypt_destroy
    linkageType: ''
    returnType: void
    signature: void ~Decrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_decrypt_t
    signature: "botan_pk_op_decrypt_t &\n    get() noexcept"
  - 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: rnp::botan::op::Verify::Verify
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Verify()
  - 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: rnp::botan::op::Verify::Verify
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Verify(const Verify &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_verify_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: ~Verify()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_verify_destroy
    linkageType: ''
    returnType: void
    signature: void ~Verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_verify_t
    signature: "botan_pk_op_verify_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: rnp::botan::op::Sign::Sign
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sign()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: rnp::botan::op::Sign::Sign
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sign(const Sign &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_sign_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: ~Sign()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_sign_destroy
    linkageType: ''
    returnType: void
    signature: void ~Sign()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_sign_t
    signature: "botan_pk_op_sign_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: rnp::botan::op::KeyAgreement::KeyAgreement
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyAgreement()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: rnp::botan::op::KeyAgreement::KeyAgreement
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyAgreement(const KeyAgreement &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_key_agreement_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: ~KeyAgreement()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_key_agreement_destroy
    linkageType: ''
    returnType: void
    signature: void ~KeyAgreement()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_ka_t
    signature: "botan_pk_op_ka_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: rnp::botan::op::Encrypt::Encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypt()
  - 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: rnp::botan::op::Encrypt::Encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypt(const Encrypt &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_encrypt_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: ~Encrypt()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_encrypt_destroy
    linkageType: ''
    returnType: void
    signature: void ~Encrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_encrypt_t
    signature: "botan_pk_op_encrypt_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: rnp::botan::op::Decrypt::Decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Decrypt()
  - 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: rnp::botan::op::Decrypt::Decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Decrypt(const Decrypt &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_decrypt_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: ~Decrypt()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_decrypt_destroy
    linkageType: ''
    returnType: void
    signature: void ~Decrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_decrypt_t
    signature: "botan_pk_op_decrypt_t &\n    get() noexcept"
  - 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: rnp::botan::op::Verify::Verify
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Verify()
  - 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: rnp::botan::op::Verify::Verify
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Verify(const Verify &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_verify_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: ~Verify()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_verify_destroy
    linkageType: ''
    returnType: void
    signature: void ~Verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_verify_t
    signature: "botan_pk_op_verify_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: rnp::botan::op::Sign::Sign
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sign()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: rnp::botan::op::Sign::Sign
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sign(const Sign &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_sign_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: ~Sign()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_sign_destroy
    linkageType: ''
    returnType: void
    signature: void ~Sign()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_sign_t
    signature: "botan_pk_op_sign_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: rnp::botan::op::KeyAgreement::KeyAgreement
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyAgreement()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: rnp::botan::op::KeyAgreement::KeyAgreement
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyAgreement(const KeyAgreement &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_key_agreement_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: ~KeyAgreement()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_key_agreement_destroy
    linkageType: ''
    returnType: void
    signature: void ~KeyAgreement()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_ka_t
    signature: "botan_pk_op_ka_t &\n    get() noexcept"
  - 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: rnp::botan::Pubkey::Pubkey
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pubkey()
  - 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: rnp::botan::Pubkey::Pubkey
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pubkey(const Pubkey &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pubkey_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp: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: ~Pubkey()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pubkey_destroy
    linkageType: ''
    returnType: void
    signature: void ~Pubkey()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pubkey_t
    signature: "botan_pubkey_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: rnp::botan::Privkey::Privkey
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Privkey()
  - 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: rnp::botan::Privkey::Privkey
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Privkey(const Privkey &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_privkey_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: ~Privkey()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_privkey_destroy
    linkageType: ''
    returnType: void
    signature: void ~Privkey()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_privkey_t
    signature: "botan_privkey_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: "&\n    get() const noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_privkey_t
    signature: "botan_privkey_t &\n    get() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: rnp::botan::op::Encrypt::Encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypt()
  - 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: rnp::botan::op::Encrypt::Encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypt(const Encrypt &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_encrypt_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: ~Encrypt()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_encrypt_destroy
    linkageType: ''
    returnType: void
    signature: void ~Encrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_encrypt_t
    signature: "botan_pk_op_encrypt_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: rnp::botan::op::Decrypt::Decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Decrypt()
  - 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: rnp::botan::op::Decrypt::Decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Decrypt(const Decrypt &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_decrypt_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: ~Decrypt()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_decrypt_destroy
    linkageType: ''
    returnType: void
    signature: void ~Decrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_decrypt_t
    signature: "botan_pk_op_decrypt_t &\n    get() noexcept"
  - 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: rnp::botan::op::Verify::Verify
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Verify()
  - 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: rnp::botan::op::Verify::Verify
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Verify(const Verify &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_verify_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: ~Verify()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_verify_destroy
    linkageType: ''
    returnType: void
    signature: void ~Verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_verify_t
    signature: "botan_pk_op_verify_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: rnp::botan::op::Sign::Sign
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sign()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: rnp::botan::op::Sign::Sign
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sign(const Sign &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_sign_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: ~Sign()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_sign_destroy
    linkageType: ''
    returnType: void
    signature: void ~Sign()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_sign_t
    signature: "botan_pk_op_sign_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: rnp::botan::op::KeyAgreement::KeyAgreement
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyAgreement()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: rnp::botan::op::KeyAgreement::KeyAgreement
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyAgreement(const KeyAgreement &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_key_agreement_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: ~KeyAgreement()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_key_agreement_destroy
    linkageType: ''
    returnType: void
    signature: void ~KeyAgreement()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_ka_t
    signature: "botan_pk_op_ka_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: rnp::botan::op::Encrypt::Encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypt()
  - 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: rnp::botan::op::Encrypt::Encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypt(const Encrypt &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_encrypt_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: ~Encrypt()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_encrypt_destroy
    linkageType: ''
    returnType: void
    signature: void ~Encrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_encrypt_t
    signature: "botan_pk_op_encrypt_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: rnp::botan::op::Decrypt::Decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Decrypt()
  - 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: rnp::botan::op::Decrypt::Decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Decrypt(const Decrypt &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_decrypt_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: ~Decrypt()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_decrypt_destroy
    linkageType: ''
    returnType: void
    signature: void ~Decrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_decrypt_t
    signature: "botan_pk_op_decrypt_t &\n    get() noexcept"
  - 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: rnp::botan::op::Verify::Verify
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Verify()
  - 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: rnp::botan::op::Verify::Verify
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Verify(const Verify &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_verify_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: ~Verify()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_verify_destroy
    linkageType: ''
    returnType: void
    signature: void ~Verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_verify_t
    signature: "botan_pk_op_verify_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: rnp::botan::op::Sign::Sign
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sign()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: rnp::botan::op::Sign::Sign
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sign(const Sign &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_sign_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: ~Sign()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_sign_destroy
    linkageType: ''
    returnType: void
    signature: void ~Sign()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_sign_t
    signature: "botan_pk_op_sign_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: rnp::botan::op::KeyAgreement::KeyAgreement
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyAgreement()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: rnp::botan::op::KeyAgreement::KeyAgreement
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyAgreement(const KeyAgreement &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_key_agreement_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: ~KeyAgreement()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_key_agreement_destroy
    linkageType: ''
    returnType: void
    signature: void ~KeyAgreement()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_ka_t
    signature: "botan_pk_op_ka_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_mp_init
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 43
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 43
    functionName: rnp::bn::bn
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 4
    functionsReached:
    - botan_mp_init
    linkageType: ''
    returnType: void
    signature: void bn()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: botan_mp_init
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:47,1
    - Dst: botan_mp_from_bin
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:48,1
    - Dst: botan_mp_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:50,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - val
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 45
    functionDepth: 0
    functionLinenumber: 45
    functionLinenumberEnd: 54
    functionName: rnp::bn::bn
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 4
    functionsReached:
    - botan_mp_from_bin
    - botan_mp_init
    - botan_mp_destroy
    linkageType: ''
    returnType: void
    signature: void bn(const uint8_t *val, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:56,1
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - pgp::mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 56
    functionName: rnp::bn::bn
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 4
    functionsReached:
    - pgp::mpi::size
    - pgp::mpi::data
    linkageType: ''
    returnType: void
    signature: void bn(const pgp::mpi &val)
  - 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: rnp::bn::bn
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bn(const bn &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_mp_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: ~bn()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_mp_destroy
    linkageType: ''
    returnType: void
    signature: void ~bn()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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: operator bool() const
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - 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: rnp::bn::get
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_mp_t
    signature: botan_mp_t get() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:79,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:81,1
    - Dst: pgp::mpi::resize
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:82,1
    - Dst: pgp::mpi::resize
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:85,1
    - Dst: botan_mp_to_bin
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:86,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:86,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - val
    argTypes:
    - pgp::mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 76
    functionDepth: 1
    functionLinenumber: 76
    functionLinenumberEnd: 87
    functionName: rnp::bn::mpi
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - pgp::mpi::resize
    - pgp::mpi::data
    - botan_mp_to_bin
    - rnp::bn::bytes
    linkageType: ''
    returnType: bool
    signature: bool mpi(pgp::mpi &val) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_mp_to_bin
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:92,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: rnp::bn::bin
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_mp_to_bin
    linkageType: ''
    returnType: bool
    signature: bool bin(uint8_t *b) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: botan_mp_num_bits
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:99,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:100,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:102,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 95
    functionDepth: 1
    functionLinenumber: 95
    functionLinenumberEnd: 103
    functionName: rnp::bn::bytes
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - botan_mp_num_bits
    - BITS_TO_BYTES
    linkageType: ''
    returnType: size_t
    signature: size_t bytes() const noexcept
  - 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: rnp::botan::Pubkey::Pubkey
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pubkey()
  - 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: rnp::botan::Pubkey::Pubkey
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pubkey(const Pubkey &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pubkey_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp: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: ~Pubkey()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pubkey_destroy
    linkageType: ''
    returnType: void
    signature: void ~Pubkey()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pubkey_t
    signature: "botan_pubkey_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: rnp::botan::Privkey::Privkey
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Privkey()
  - 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: rnp::botan::Privkey::Privkey
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Privkey(const Privkey &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_privkey_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: ~Privkey()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_privkey_destroy
    linkageType: ''
    returnType: void
    signature: void ~Privkey()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_privkey_t
    signature: "botan_privkey_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: "&\n    get() const noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_privkey_t
    signature: "botan_privkey_t &\n    get() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: rnp::botan::op::Encrypt::Encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypt()
  - 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: rnp::botan::op::Encrypt::Encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypt(const Encrypt &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_encrypt_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: ~Encrypt()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_encrypt_destroy
    linkageType: ''
    returnType: void
    signature: void ~Encrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_encrypt_t
    signature: "botan_pk_op_encrypt_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: rnp::botan::op::Decrypt::Decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Decrypt()
  - 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: rnp::botan::op::Decrypt::Decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Decrypt(const Decrypt &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_decrypt_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: ~Decrypt()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_decrypt_destroy
    linkageType: ''
    returnType: void
    signature: void ~Decrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_decrypt_t
    signature: "botan_pk_op_decrypt_t &\n    get() noexcept"
  - 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: rnp::botan::op::Verify::Verify
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Verify()
  - 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: rnp::botan::op::Verify::Verify
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Verify(const Verify &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_verify_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: ~Verify()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_verify_destroy
    linkageType: ''
    returnType: void
    signature: void ~Verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_verify_t
    signature: "botan_pk_op_verify_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: rnp::botan::op::Sign::Sign
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sign()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: rnp::botan::op::Sign::Sign
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sign(const Sign &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_sign_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: ~Sign()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_sign_destroy
    linkageType: ''
    returnType: void
    signature: void ~Sign()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_sign_t
    signature: "botan_pk_op_sign_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: rnp::botan::op::KeyAgreement::KeyAgreement
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyAgreement()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: rnp::botan::op::KeyAgreement::KeyAgreement
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyAgreement(const KeyAgreement &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_key_agreement_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: ~KeyAgreement()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_key_agreement_destroy
    linkageType: ''
    returnType: void
    signature: void ~KeyAgreement()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_ka_t
    signature: "botan_pk_op_ka_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: rnp::botan::op::Encrypt::Encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypt()
  - 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: rnp::botan::op::Encrypt::Encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypt(const Encrypt &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_encrypt_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: ~Encrypt()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_encrypt_destroy
    linkageType: ''
    returnType: void
    signature: void ~Encrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_encrypt_t
    signature: "botan_pk_op_encrypt_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: rnp::botan::op::Decrypt::Decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Decrypt()
  - 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: rnp::botan::op::Decrypt::Decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Decrypt(const Decrypt &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_decrypt_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: ~Decrypt()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_decrypt_destroy
    linkageType: ''
    returnType: void
    signature: void ~Decrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_decrypt_t
    signature: "botan_pk_op_decrypt_t &\n    get() noexcept"
  - 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: rnp::botan::op::Verify::Verify
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Verify()
  - 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: rnp::botan::op::Verify::Verify
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Verify(const Verify &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_verify_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: ~Verify()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_verify_destroy
    linkageType: ''
    returnType: void
    signature: void ~Verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_verify_t
    signature: "botan_pk_op_verify_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: rnp::botan::op::Sign::Sign
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sign()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: rnp::botan::op::Sign::Sign
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sign(const Sign &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_sign_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: ~Sign()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_sign_destroy
    linkageType: ''
    returnType: void
    signature: void ~Sign()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_sign_t
    signature: "botan_pk_op_sign_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: rnp::botan::op::KeyAgreement::KeyAgreement
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyAgreement()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: rnp::botan::op::KeyAgreement::KeyAgreement
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyAgreement(const KeyAgreement &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_key_agreement_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: ~KeyAgreement()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_key_agreement_destroy
    linkageType: ''
    returnType: void
    signature: void ~KeyAgreement()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_ka_t
    signature: "botan_pk_op_ka_t &\n    get() noexcept"
  - 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: rnp::botan::Pubkey::Pubkey
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pubkey()
  - 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: rnp::botan::Pubkey::Pubkey
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Pubkey(const Pubkey &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pubkey_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp: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: ~Pubkey()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pubkey_destroy
    linkageType: ''
    returnType: void
    signature: void ~Pubkey()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pubkey_t
    signature: "botan_pubkey_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 132
    functionName: rnp::botan::Privkey::Privkey
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Privkey()
  - 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: rnp::botan::Privkey::Privkey
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Privkey(const Privkey &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_privkey_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:138,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 139
    functionName: ~Privkey()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_privkey_destroy
    linkageType: ''
    returnType: void
    signature: void ~Privkey()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 141
    functionDepth: 0
    functionLinenumber: 141
    functionLinenumberEnd: 145
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_privkey_t
    signature: "botan_privkey_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 151
      start: 147
    functionDepth: 0
    functionLinenumber: 147
    functionLinenumberEnd: 151
    functionName: "&\n    get() const noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_privkey_t
    signature: "botan_privkey_t &\n    get() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: rnp::botan::op::Encrypt::Encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypt()
  - 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: rnp::botan::op::Encrypt::Encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypt(const Encrypt &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_encrypt_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: ~Encrypt()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_encrypt_destroy
    linkageType: ''
    returnType: void
    signature: void ~Encrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_encrypt_t
    signature: "botan_pk_op_encrypt_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: rnp::botan::op::Decrypt::Decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Decrypt()
  - 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: rnp::botan::op::Decrypt::Decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Decrypt(const Decrypt &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_decrypt_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: ~Decrypt()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_decrypt_destroy
    linkageType: ''
    returnType: void
    signature: void ~Decrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_decrypt_t
    signature: "botan_pk_op_decrypt_t &\n    get() noexcept"
  - 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: rnp::botan::op::Verify::Verify
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Verify()
  - 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: rnp::botan::op::Verify::Verify
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Verify(const Verify &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_verify_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: ~Verify()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_verify_destroy
    linkageType: ''
    returnType: void
    signature: void ~Verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_verify_t
    signature: "botan_pk_op_verify_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: rnp::botan::op::Sign::Sign
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sign()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: rnp::botan::op::Sign::Sign
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sign(const Sign &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_sign_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: ~Sign()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_sign_destroy
    linkageType: ''
    returnType: void
    signature: void ~Sign()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_sign_t
    signature: "botan_pk_op_sign_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: rnp::botan::op::KeyAgreement::KeyAgreement
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyAgreement()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: rnp::botan::op::KeyAgreement::KeyAgreement
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyAgreement(const KeyAgreement &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_key_agreement_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: ~KeyAgreement()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_key_agreement_destroy
    linkageType: ''
    returnType: void
    signature: void ~KeyAgreement()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_ka_t
    signature: "botan_pk_op_ka_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 159
    functionDepth: 0
    functionLinenumber: 159
    functionLinenumberEnd: 159
    functionName: rnp::botan::op::Encrypt::Encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypt()
  - 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: rnp::botan::op::Encrypt::Encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Encrypt(const Encrypt &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_encrypt_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:165,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 166
    functionName: ~Encrypt()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_encrypt_destroy
    linkageType: ''
    returnType: void
    signature: void ~Encrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 168
    functionDepth: 0
    functionLinenumber: 168
    functionLinenumberEnd: 172
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_encrypt_t
    signature: "botan_pk_op_encrypt_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 179
    functionDepth: 0
    functionLinenumber: 179
    functionLinenumberEnd: 179
    functionName: rnp::botan::op::Decrypt::Decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Decrypt()
  - 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: rnp::botan::op::Decrypt::Decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Decrypt(const Decrypt &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_decrypt_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 186
    functionName: ~Decrypt()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_decrypt_destroy
    linkageType: ''
    returnType: void
    signature: void ~Decrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 188
    functionDepth: 0
    functionLinenumber: 188
    functionLinenumberEnd: 192
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_decrypt_t
    signature: "botan_pk_op_decrypt_t &\n    get() noexcept"
  - 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: rnp::botan::op::Verify::Verify
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Verify()
  - 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: rnp::botan::op::Verify::Verify
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Verify(const Verify &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_verify_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:205,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 203
    functionDepth: 0
    functionLinenumber: 203
    functionLinenumberEnd: 206
    functionName: ~Verify()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_verify_destroy
    linkageType: ''
    returnType: void
    signature: void ~Verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 212
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 212
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_verify_t
    signature: "botan_pk_op_verify_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 219
    functionDepth: 0
    functionLinenumber: 219
    functionLinenumberEnd: 219
    functionName: rnp::botan::op::Sign::Sign
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sign()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 221
    functionDepth: 0
    functionLinenumber: 221
    functionLinenumberEnd: 221
    functionName: rnp::botan::op::Sign::Sign
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Sign(const Sign &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_sign_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:225,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 226
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 226
    functionName: ~Sign()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_sign_destroy
    linkageType: ''
    returnType: void
    signature: void ~Sign()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 232
      start: 228
    functionDepth: 0
    functionLinenumber: 228
    functionLinenumberEnd: 232
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_sign_t
    signature: "botan_pk_op_sign_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 239
    functionName: rnp::botan::op::KeyAgreement::KeyAgreement
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyAgreement()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 241
    functionDepth: 0
    functionLinenumber: 241
    functionLinenumberEnd: 241
    functionName: rnp::botan::op::KeyAgreement::KeyAgreement
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyAgreement(const KeyAgreement &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_pk_op_key_agreement_destroy
      Src: /src/rnp/src/lib/crypto/botan_utils.hpp:245,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 246
    functionName: ~KeyAgreement()
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached:
    - botan_pk_op_key_agreement_destroy
    linkageType: ''
    returnType: void
    signature: void ~KeyAgreement()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 252
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 252
    functionName: "&\n    get() noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/botan_utils.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: botan_pk_op_ka_t
    signature: "botan_pk_op_ka_t &\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/rsa.h:62,1
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/rsa.h:63,1
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/rsa.h:64,1
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/rsa.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: pgp::rsa::Key::clear_secret
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.h
    functionUses: 0
    functionsReached:
    - forget
    linkageType: ''
    returnType: void
    signature: void clear_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_secret
      Src: /src/rnp/src/lib/crypto/rsa.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: ~Key()
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.h
    functionUses: 0
    functionsReached:
    - clear_secret
    linkageType: ''
    returnType: void
    signature: void ~Key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/rsa.h:62,1
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/rsa.h:63,1
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/rsa.h:64,1
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/rsa.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: pgp::rsa::Key::clear_secret
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.h
    functionUses: 0
    functionsReached:
    - forget
    linkageType: ''
    returnType: void
    signature: void clear_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_secret
      Src: /src/rnp/src/lib/crypto/rsa.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: ~Key()
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.h
    functionUses: 0
    functionsReached:
    - clear_secret
    linkageType: ''
    returnType: void
    signature: void ~Key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/rsa.h:62,1
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/rsa.h:63,1
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/rsa.h:64,1
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/rsa.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: pgp::rsa::Key::clear_secret
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.h
    functionUses: 0
    functionsReached:
    - forget
    linkageType: ''
    returnType: void
    signature: void clear_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_secret
      Src: /src/rnp/src/lib/crypto/rsa.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: ~Key()
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.h
    functionUses: 0
    functionsReached:
    - clear_secret
    linkageType: ''
    returnType: void
    signature: void ~Key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/rsa.h:62,1
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/rsa.h:63,1
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/rsa.h:64,1
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/rsa.h:65,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 66
    functionName: pgp::rsa::Key::clear_secret
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.h
    functionUses: 0
    functionsReached:
    - forget
    linkageType: ''
    returnType: void
    signature: void clear_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_secret
      Src: /src/rnp/src/lib/crypto/rsa.h:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 71
    functionName: ~Key()
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.h
    functionUses: 0
    functionsReached:
    - clear_secret
    linkageType: ''
    returnType: void
    signature: void ~Key()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/crypto/mpi.cpp:42,1
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/crypto/mpi.cpp:45,1
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/crypto/mpi.cpp:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 51
    functionName: pgp::mpi::bits
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 2
    functionsReached:
    - pgp::mpi::size
    linkageType: ''
    returnType: size_t
    signature: size_t mpi::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/crypto/mpi.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: pgp::mpi::size
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 12
    functionsReached:
    - pgp::mpi::size
    linkageType: ''
    returnType: size_t
    signature: size_t mpi::size() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/crypto/mpi.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: pgp::mpi::data
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 13
    functionsReached:
    - pgp::mpi::data
    linkageType: ''
    returnType: uint8_t
    signature: 'uint8_t *

      mpi::data() noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/crypto/mpi.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: pgp::mpi::data
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 14
    functionsReached:
    - pgp::mpi::data
    linkageType: ''
    returnType: uint8_t
    signature: 'uint8_t *

      mpi::data() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/mpi.cpp:77,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/mpi.cpp:80,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/mpi.cpp:83,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/mpi.cpp:83,1
    - Dst: memcmp
      Src: /src/rnp/src/lib/crypto/mpi.cpp:84,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/mpi.cpp:84,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/mpi.cpp:84,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/mpi.cpp:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - src
    argTypes:
    - mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 85
    functionName: mpi::operator==(const mpi &src) const
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcmp
    - mpi::data
    - mpi::size
    - size
    linkageType: ''
    returnType: bool
    signature: bool mpi::operator==(const mpi &src) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: mpi::operator!=(const mpi &src) const
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool mpi::operator!=(const mpi &src) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/rnp/src/lib/crypto/mpi.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: '&

      mpi::operator[](size_t idx)'
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: uint8_t
    signature: 'uint8_t &

      mpi::operator[](size_t idx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/rnp/src/lib/crypto/mpi.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: '&

      mpi::operator[](size_t idx) const'
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: uint8_t
    signature: 'uint8_t &

      mpi::operator[](size_t idx) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::mpi::assign
      Src: /src/rnp/src/lib/crypto/mpi.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: pgp::mpi::assign
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 4
    functionsReached:
    - pgp::mpi::assign
    linkageType: ''
    returnType: void
    signature: void mpi::assign(const uint8_t *val, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/mpi.cpp:114,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/crypto/mpi.cpp:114,1
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/crypto/mpi.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: pgp::mpi::copy
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 0
    functionsReached:
    - pgp::mpi::size
    - memcpy
    - pgp::mpi::data
    linkageType: ''
    returnType: void
    signature: void mpi::copy(uint8_t *dst) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::mpi::resize
      Src: /src/rnp/src/lib/crypto/mpi.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - size
    - fill
    argTypes:
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: pgp::mpi::resize
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 6
    functionsReached:
    - pgp::mpi::resize
    linkageType: ''
    returnType: void
    signature: void mpi::resize(size_t size, uint8_t fill)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secure_clear
      Src: /src/rnp/src/lib/crypto/mpi.cpp:126,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/crypto/mpi.cpp:126,1
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/crypto/mpi.cpp:126,1
    - Dst: pgp::mpi::resize
      Src: /src/rnp/src/lib/crypto/mpi.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: pgp::mpi::forget
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 1
    functionsReached:
    - pgp::mpi::size
    - pgp::mpi::resize
    - pgp::mpi::data
    - secure_clear
    linkageType: ''
    returnType: void
    signature: void mpi::forget() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/crypto/mpi.cpp:42,1
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/crypto/mpi.cpp:45,1
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/crypto/mpi.cpp:46,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 51
    functionName: pgp::mpi::bits
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 2
    functionsReached:
    - pgp::mpi::size
    linkageType: ''
    returnType: size_t
    signature: size_t mpi::bits() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/crypto/mpi.cpp:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 53
    functionDepth: 0
    functionLinenumber: 53
    functionLinenumberEnd: 57
    functionName: pgp::mpi::size
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 16
    functionsReached:
    - pgp::mpi::size
    linkageType: ''
    returnType: size_t
    signature: size_t mpi::size() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/crypto/mpi.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: pgp::mpi::data
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 17
    functionsReached:
    - pgp::mpi::data
    linkageType: ''
    returnType: uint8_t
    signature: 'uint8_t *

      mpi::data() noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/crypto/mpi.cpp:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 69
    functionName: pgp::mpi::data
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 18
    functionsReached:
    - pgp::mpi::data
    linkageType: ''
    returnType: uint8_t
    signature: 'uint8_t *

      mpi::data() const noexcept'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/mpi.cpp:77,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/mpi.cpp:80,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/mpi.cpp:83,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/mpi.cpp:83,1
    - Dst: memcmp
      Src: /src/rnp/src/lib/crypto/mpi.cpp:84,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/mpi.cpp:84,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/mpi.cpp:84,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/mpi.cpp:84,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 6
    argCount: 1
    argNames:
    - src
    argTypes:
    - mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 85
    functionName: mpi::operator==(const mpi &src) const
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 0
    functionsReached:
    - data
    - memcmp
    - mpi::data
    - mpi::size
    - size
    linkageType: ''
    returnType: bool
    signature: bool mpi::operator==(const mpi &src) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 87
    functionDepth: 0
    functionLinenumber: 87
    functionLinenumberEnd: 91
    functionName: mpi::operator!=(const mpi &src) const
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool mpi::operator!=(const mpi &src) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/rnp/src/lib/crypto/mpi.cpp:96,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: '&

      mpi::operator[](size_t idx)'
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: uint8_t
    signature: 'uint8_t &

      mpi::operator[](size_t idx)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/rnp/src/lib/crypto/mpi.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 103
    functionName: '&

      mpi::operator[](size_t idx) const'
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: uint8_t
    signature: 'uint8_t &

      mpi::operator[](size_t idx) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::mpi::assign
      Src: /src/rnp/src/lib/crypto/mpi.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - val
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: pgp::mpi::assign
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 5
    functionsReached:
    - pgp::mpi::assign
    linkageType: ''
    returnType: void
    signature: void mpi::assign(const uint8_t *val, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/mpi.cpp:114,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/crypto/mpi.cpp:114,1
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/crypto/mpi.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - dst
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: pgp::mpi::copy
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 0
    functionsReached:
    - pgp::mpi::size
    - memcpy
    - pgp::mpi::data
    linkageType: ''
    returnType: void
    signature: void mpi::copy(uint8_t *dst) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::mpi::resize
      Src: /src/rnp/src/lib/crypto/mpi.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - size
    - fill
    argTypes:
    - size_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 121
    functionName: pgp::mpi::resize
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 8
    functionsReached:
    - pgp::mpi::resize
    linkageType: ''
    returnType: void
    signature: void mpi::resize(size_t size, uint8_t fill)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secure_clear
      Src: /src/rnp/src/lib/crypto/mpi.cpp:126,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/crypto/mpi.cpp:126,1
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/crypto/mpi.cpp:126,1
    - Dst: pgp::mpi::resize
      Src: /src/rnp/src/lib/crypto/mpi.cpp:127,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 123
    functionDepth: 2
    functionLinenumber: 123
    functionLinenumberEnd: 128
    functionName: pgp::mpi::forget
    functionSourceFile: /src/rnp/src/lib/crypto/mpi.cpp
    functionUses: 1
    functionsReached:
    - pgp::mpi::size
    - pgp::mpi::resize
    - pgp::mpi::data
    - secure_clear
    linkageType: ''
    returnType: void
    signature: void mpi::forget() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hkdf::create
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:51,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:52,1
    - Dst: pgp_key_size
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:52,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:55,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:55,1
    - Dst: begin
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:56,1
    - Dst: end
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:57,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:58,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:58,1
    - Dst: begin
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:59,1
    - Dst: end
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:60,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:61,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:61,1
    - Dst: begin
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:61,1
    - Dst: end
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:61,1
    - Dst: auto::extract_expand
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:63,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:65,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:66,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:67,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:68,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:69,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - '      derived_key'
    - ephemeral_pubkey_material
    - recipient_pubkey_material
    - shared_key
    - info_str
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 71
    functionName: x_hkdf
    functionSourceFile: /src/rnp/src/lib/crypto/x25519_x448.cpp
    functionUses: 0
    functionsReached:
    - auto::extract_expand
    - std::vector<uint8_t>::size
    - data
    - std::vector::insert
    - end
    - rnp::Hkdf::create
    - resize
    - std::vector::end
    - pgp_key_size
    - std::vector::size
    - std::vector<uint8_t>::data
    - begin
    - std::vector::data
    - size
    linkageType: ''
    returnType: void
    signature: "void x_hkdf(std::vector<uint8_t> &      derived_key,\n       const
      std::vector<uint8_t> &ephemeral_pubkey_material,\n       const std::vector<uint8_t>
      &recipient_pubkey_material,\n       const std::vector<uint8_t> &shared_key,\n
      \      const std::vector<uint8_t> &info_str)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:85,1
    - Dst: ecdh_kem_public_key_t::encapsulate
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:91,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:93,1
    - Dst: x_hkdf
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:97,1
    - Dst: rnpffi::Key::unlock
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:101,1
    - Dst: Botan::rfc3394_keywrap
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:102,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:102,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:104,1
    - Dst: what
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - rng
    - pubkey
    - in
    - in_len
    - encrypted
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - uint8_t*
    - size_t
    - pgp_x25519_encrypted_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 109
    functionName: x25519_native_encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/x25519_x448.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - what
    - rnpffi::Key::unlock
    - Botan::rfc3394_keywrap
    - x_hkdf
    - ecdh_kem_public_key_t::encapsulate
    - Botan::secure_vector<uint8_t>
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t x25519_native_encrypt(rnp::RNG *                  rng,\n
      \                     const std::vector<uint8_t> &pubkey,\n                      const
      uint8_t *             in,\n                      size_t                      in_len,\n
      \                     pgp_x25519_encrypted_t *    encrypted)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp_x25519_encrypted_t*::eph_key::size
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:123,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:124,1
    - Dst: pgp_x25519_encrypted_t*::enc_sess_key::size
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:127,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:129,1
    - Dst: ecdh_kem_private_key_t::decapsulate
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:135,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:137,1
    - Dst: x_hkdf
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:141,1
    - Dst: Botan::rfc3394_keyunwrap
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:145,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:145,1
    - Dst: pgp_x25519_encrypted_t*::enc_sess_key::begin
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:145,1
    - Dst: pgp_x25519_encrypted_t*::enc_sess_key::end
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:146,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:148,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:149,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:152,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:153,1
    - Dst: auto::data
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:153,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:153,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - rng
    - '      keypair'
    - encrypted
    - decbuf
    - decbuf_len
    argTypes:
    - rnp::RNG*
    - pgp_x25519_key_t
    - pgp_x25519_encrypted_t*
    - uint8_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 156
    functionName: x25519_native_decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/x25519_x448.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - pgp_x25519_encrypted_t*::eph_key::size
    - ecdh_kem_private_key_t::decapsulate
    - Botan::rfc3394_keyunwrap
    - memcpy
    - auto::size
    - pgp_x25519_encrypted_t*::enc_sess_key::end
    - auto::data
    - x_hkdf
    - pgp_x25519_encrypted_t*::enc_sess_key::begin
    - pgp_x25519_encrypted_t*::enc_sess_key::size
    - Botan::secure_vector<uint8_t>
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t x25519_native_decrypt(rnp::RNG *                    rng,\n
      \                     const pgp_x25519_key_t &      keypair,\n                      const
      pgp_x25519_encrypted_t *encrypted,\n                      uint8_t *                     decbuf,\n
      \                     size_t *                      decbuf_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X25519_PublicKey::check_key
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:165,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:165,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:169,1
    - Dst: pgp_x25519_key_t*::priv::begin
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:169,1
    - Dst: pgp_x25519_key_t*::priv::end
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:169,1
    - Dst: Botan::X25519_PrivateKey::check_key
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:170,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG*
    - pgp_x25519_key_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 158
    functionDepth: 1
    functionLinenumber: 158
    functionLinenumberEnd: 177
    functionName: x25519_validate_key_native
    functionSourceFile: /src/rnp/src/lib/crypto/x25519_x448.cpp
    functionUses: 2
    functionsReached:
    - Botan::X25519_PrivateKey::check_key
    - pgp_x25519_key_t*::priv::begin
    - rnp::RNG*::obj
    - Botan::X25519_PublicKey::check_key
    - pgp_x25519_key_t*::priv::end
    - Botan::secure_vector<uint8_t>
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t x25519_validate_key_native(rnp::RNG *rng, const pgp_x25519_key_t
      *key, bool secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:184,1
    - Dst: Botan::X25519_PrivateKey::public_value
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:185,1
    - Dst: rnpffi::Key::unlock
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:186,1
    - Dst: Botan::X25519_PrivateKey::raw_private_key_bits
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:186,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - rng
    - privkey
    - pubkey
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 189
    functionName: generate_x25519_native
    functionSourceFile: /src/rnp/src/lib/crypto/x25519_x448.cpp
    functionUses: 2
    functionsReached:
    - Botan::X25519_PrivateKey::raw_private_key_bits
    - rnpffi::Key::unlock
    - Botan::X25519_PrivateKey::public_value
    - rnp::RNG*::obj
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t generate_x25519_native(rnp::RNG *            rng,\n                       std::vector<uint8_t>
      &privkey,\n                       std::vector<uint8_t> &pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:197,1
    - Dst: Botan::X448_PrivateKey::public_value
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:198,1
    - Dst: rnpffi::Key::unlock
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:199,1
    - Dst: Botan::X448_PrivateKey::raw_private_key_bits
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:199,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - rng
    - privkey
    - pubkey
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 201
    functionName: generate_x448_native
    functionSourceFile: /src/rnp/src/lib/crypto/x25519_x448.cpp
    functionUses: 2
    functionsReached:
    - Botan::X448_PrivateKey::raw_private_key_bits
    - rnpffi::Key::unlock
    - Botan::X448_PrivateKey::public_value
    - rnp::RNG*::obj
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t generate_x448_native(rnp::RNG *            rng,\n                     std::vector<uint8_t>
      &privkey,\n                     std::vector<uint8_t> &pubkey)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:215,1
    - Dst: ecdh_kem_public_key_t::encapsulate
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:221,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:223,1
    - Dst: x_hkdf
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:227,1
    - Dst: rnpffi::Key::unlock
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:231,1
    - Dst: Botan::rfc3394_keywrap
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:232,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:232,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:234,1
    - Dst: what
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:234,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 5
    argNames:
    - rng
    - pubkey
    - in
    - in_len
    - encrypted
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - uint8_t*
    - size_t
    - pgp_x448_encrypted_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 239
    functionName: x448_native_encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/x25519_x448.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - rnpffi::Key::unlock
    - Botan::rfc3394_keywrap
    - x_hkdf
    - ecdh_kem_public_key_t::encapsulate
    - Botan::secure_vector<uint8_t>
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t x448_native_encrypt(rnp::RNG *                  rng,\n
      \                   const std::vector<uint8_t> &pubkey,\n                    const
      uint8_t *             in,\n                    size_t                      in_len,\n
      \                   pgp_x448_encrypted_t *      encrypted)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp_x448_encrypted_t*::eph_key::size
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:253,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:254,1
    - Dst: pgp_x448_encrypted_t*::enc_sess_key::size
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:257,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:259,1
    - Dst: ecdh_kem_private_key_t::decapsulate
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:265,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:267,1
    - Dst: x_hkdf
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:271,1
    - Dst: Botan::rfc3394_keyunwrap
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:275,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:275,1
    - Dst: pgp_x448_encrypted_t*::enc_sess_key::begin
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:275,1
    - Dst: pgp_x448_encrypted_t*::enc_sess_key::end
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:276,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:278,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:279,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:282,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:283,1
    - Dst: auto::data
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:283,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:283,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 5
    argNames:
    - rng
    - '      keypair'
    - encrypted
    - decbuf
    - decbuf_len
    argTypes:
    - rnp::RNG*
    - pgp_x448_key_t
    - pgp_x448_encrypted_t*
    - uint8_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 286
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 286
    functionName: x448_native_decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/x25519_x448.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - pgp_x448_encrypted_t*::eph_key::size
    - ecdh_kem_private_key_t::decapsulate
    - Botan::rfc3394_keyunwrap
    - memcpy
    - auto::size
    - pgp_x448_encrypted_t*::enc_sess_key::size
    - auto::data
    - x_hkdf
    - pgp_x448_encrypted_t*::enc_sess_key::begin
    - pgp_x448_encrypted_t*::enc_sess_key::end
    - Botan::secure_vector<uint8_t>
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t x448_native_decrypt(rnp::RNG *                  rng,\n
      \                   const pgp_x448_key_t &      keypair,\n                    const
      pgp_x448_encrypted_t *encrypted,\n                    uint8_t *                   decbuf,\n
      \                   size_t *                    decbuf_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X448_PublicKey::check_key
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:295,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:295,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:299,1
    - Dst: pgp_x448_key_t*::priv::begin
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:299,1
    - Dst: pgp_x448_key_t*::priv::end
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:299,1
    - Dst: Botan::X448_PrivateKey::check_key
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:300,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/x25519_x448.cpp:300,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG*
    - pgp_x448_key_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 288
    functionDepth: 1
    functionLinenumber: 288
    functionLinenumberEnd: 307
    functionName: x448_validate_key_native
    functionSourceFile: /src/rnp/src/lib/crypto/x25519_x448.cpp
    functionUses: 2
    functionsReached:
    - pgp_x448_key_t*::priv::begin
    - Botan::X448_PublicKey::check_key
    - rnp::RNG*::obj
    - Botan::X448_PrivateKey::check_key
    - pgp_x448_key_t*::priv::end
    - Botan::secure_vector<uint8_t>
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t x448_validate_key_native(rnp::RNG *rng, const pgp_x448_key_t
      *key, bool secret)
  - 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: pgp_dilithium_private_key_t::pgp_dilithium_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_dilithium_private_key_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: pgp_dilithium_private_key_t::param
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: dilithium_parameter_e
    signature: dilithium_parameter_e param() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlock
      Src: /src/rnp/src/lib/crypto/dilithium.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: pgp_dilithium_private_key_t::get_encoded
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium.h
    functionUses: 0
    functionsReached:
    - unlock
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_encoded() const
  - 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: pgp_dilithium_public_key_t::pgp_dilithium_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_dilithium_public_key_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - pgp_dilithium_public_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 79
    functionDepth: 0
    functionLinenumber: 79
    functionLinenumberEnd: 84
    functionName: operator==(const pgp_dilithium_public_key_t &rhs) const
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const pgp_dilithium_public_key_t &rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: pgp_dilithium_public_key_t::get_encoded
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_encoded() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: rnp::backend_string
    functionSourceFile: /src/rnp/src/lib/crypto/backend_version.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      backend_string()'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::short_version_cstr
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:66,1
    - Dst: OpenSSL_version
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:79,1
    - Dst: strlen
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:81,1
    - Dst: regcomp
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:82,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:83,1
    - Dst: regexec
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:87,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:89,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:92,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:93,1
    - Dst: OpenSSL_version
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:98,1
    - Dst: std::regex_search
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:99,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:100,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:100,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:103,1
    - Dst: str
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:103,1
    - Dst: strncpy
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:104,1
    - Dst: str
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (sizeof(version) > matches[1].rm_eo - matches[1].rm_so)
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/rnp/src/lib/crypto/backend_version.cpp
    - condition: (sizeof(version) > result[1].str().size())
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/rnp/src/lib/crypto/backend_version.cpp
    constantsTouched: []
    func_position:
      end: 110
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 110
    functionName: rnp::backend_version
    functionSourceFile: /src/rnp/src/lib/crypto/backend_version.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - memcpy
    - std::regex_search
    - std::string::c_str
    - str
    - assert
    - regcomp
    - regexec
    - strlen
    - Botan::short_version_cstr
    - OpenSSL_version
    - strncpy
    linkageType: ''
    returnType: char
    signature: 'char *

      backend_version()'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:137,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:139,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:143,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:145,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:145,1
    - Dst: free
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:146,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:151,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:153,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:153,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:154,1
    - Dst: free
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - param
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 161
    functionName: rnp::backend_init
    functionSourceFile: /src/rnp/src/lib/crypto/backend_version.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - OSSL_PROVIDER_unload
    - rnp::ossl::latest_err
    - OSSL_PROVIDER_load
    - free
    - calloc
    linkageType: ''
    returnType: bool
    signature: bool backend_init(void **param)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_unload
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:170,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:172,1
    - Dst: free
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - param
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 175
    functionName: rnp::backend_finish
    functionSourceFile: /src/rnp/src/lib/crypto/backend_version.cpp
    functionUses: 2
    functionsReached:
    - OSSL_PROVIDER_unload
    - free
    linkageType: ''
    returnType: void
    signature: void backend_finish(void *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: rnp::backend_init
    functionSourceFile: /src/rnp/src/lib/crypto/backend_version.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool backend_init(void **param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - param
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: rnp::backend_finish
    functionSourceFile: /src/rnp/src/lib/crypto/backend_version.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void backend_finish(void *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 50
    functionDepth: 0
    functionLinenumber: 50
    functionLinenumberEnd: 60
    functionName: rnp::backend_string
    functionSourceFile: /src/rnp/src/lib/crypto/backend_version.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      backend_string()'
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: Botan::short_version_cstr
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:66,1
    - Dst: OpenSSL_version
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:79,1
    - Dst: strlen
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:81,1
    - Dst: regcomp
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:82,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:83,1
    - Dst: regexec
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:87,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:89,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:92,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:93,1
    - Dst: OpenSSL_version
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:98,1
    - Dst: std::regex_search
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:99,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:100,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:100,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:103,1
    - Dst: str
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:103,1
    - Dst: strncpy
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:104,1
    - Dst: str
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:104,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (sizeof(version) > matches[1].rm_eo - matches[1].rm_so)
      pos:
        line_end: 91
        line_start: 91
        source_file: /src/rnp/src/lib/crypto/backend_version.cpp
    - condition: (sizeof(version) > result[1].str().size())
      pos:
        line_end: 102
        line_start: 102
        source_file: /src/rnp/src/lib/crypto/backend_version.cpp
    constantsTouched: []
    func_position:
      end: 110
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 110
    functionName: rnp::backend_version
    functionSourceFile: /src/rnp/src/lib/crypto/backend_version.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - memcpy
    - std::regex_search
    - std::string::c_str
    - str
    - assert
    - regcomp
    - regexec
    - strlen
    - Botan::short_version_cstr
    - OpenSSL_version
    - strncpy
    linkageType: ''
    returnType: char
    signature: 'char *

      backend_version()'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: calloc
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:137,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:139,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:143,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:145,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:145,1
    - Dst: free
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:146,1
    - Dst: OSSL_PROVIDER_load
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:151,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:153,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:153,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:154,1
    - Dst: free
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:155,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - param
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 161
    functionName: rnp::backend_init
    functionSourceFile: /src/rnp/src/lib/crypto/backend_version.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - OSSL_PROVIDER_unload
    - rnp::ossl::latest_err
    - OSSL_PROVIDER_load
    - free
    - calloc
    linkageType: ''
    returnType: bool
    signature: bool backend_init(void **param)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PROVIDER_unload
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:170,1
    - Dst: OSSL_PROVIDER_unload
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:172,1
    - Dst: free
      Src: /src/rnp/src/lib/crypto/backend_version.cpp:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - param
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 175
    functionName: rnp::backend_finish
    functionSourceFile: /src/rnp/src/lib/crypto/backend_version.cpp
    functionUses: 2
    functionsReached:
    - OSSL_PROVIDER_unload
    - free
    linkageType: ''
    returnType: void
    signature: void backend_finish(void *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - void**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 177
    functionDepth: 0
    functionLinenumber: 177
    functionLinenumberEnd: 181
    functionName: rnp::backend_init
    functionSourceFile: /src/rnp/src/lib/crypto/backend_version.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool backend_init(void **param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - param
    argTypes:
    - void*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 187
      start: 183
    functionDepth: 0
    functionLinenumber: 183
    functionLinenumberEnd: 187
    functionName: rnp::backend_finish
    functionSourceFile: /src/rnp/src/lib/crypto/backend_version.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void backend_finish(void *param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 54
    functionName: ec_key_t::~ec_key_t()
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ec_key_t::~ec_key_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - curve
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 58
    functionName: ec_key_t::ec_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ec_key_t::ec_key_t(pgp_curve_t curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - key_buf
    - key_buf_len
    - curve
    argTypes:
    - uint8_t*
    - size_t
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: ecdh_kem_public_key_t::ecdh_kem_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    linkageType: ''
    returnType: void
    signature: "void ecdh_kem_public_key_t::ecdh_kem_public_key_t(uint8_t *   key_buf,\n
      \                                            size_t      key_buf_len,\n                                             pgp_curve_t
      curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key
    - curve
    argTypes:
    - std::vector<uint8_t>
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: ecdh_kem_public_key_t::ecdh_kem_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ecdh_kem_public_key_t::ecdh_kem_public_key_t(std::vector<uint8_t>
      key, pgp_curve_t curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - key_buf
    - key_buf_len
    - curve
    argTypes:
    - uint8_t*
    - size_t
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 76
    functionName: ecdh_kem_private_key_t::ecdh_kem_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ecdh_kem_private_key_t::ecdh_kem_private_key_t(uint8_t *   key_buf,\n
      \                                              size_t      key_buf_len,\n                                               pgp_curve_t
      curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:78,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key
    - curve
    argTypes:
    - std::vector<uint8_t>
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 80
    functionName: ecdh_kem_private_key_t::ecdh_kem_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 3
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ecdh_kem_private_key_t::ecdh_kem_private_key_t(std::vector<uint8_t>
      key, pgp_curve_t curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:88,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:89,1
    - Dst: Botan::ECDH_PrivateKey
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:90,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:90,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:91,1
    - Dst: Botan::BigInt
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:92,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 4
    argNames:
    - rng
    - key_data
    - key_size
    - curve
    argTypes:
    - rnp::RNG*
    - uint8_t*
    - size_t
    - pgp_curve_t
    assertStmts:
    - condition: (curve >= PGP_CURVE_NIST_P_256 && curve <= PGP_CURVE_P256K1)
      pos:
        line_end: 87
        line_start: 87
        source_file: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    constantsTouched: []
    func_position:
      end: 93
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 93
    functionName: ecdh_kem_privkey_from_bytes
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached:
    - Botan::ECDH_PrivateKey
    - Botan::EC_Group::from_name
    - pgp::ec::Curve::get
    - assert
    - Botan::BigInt
    - rnp::RNG*::obj
    linkageType: ''
    returnType: Botan::ECDH_PrivateKey
    signature: "Botan::ECDH_PrivateKey ecdh_kem_privkey_from_bytes(rnp::RNG *     rng,\n
      \                           const uint8_t *key_data,\n                            size_t
      \        key_size,\n                            pgp_curve_t    curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:98,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:99,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:100,1
    - Dst: Botan::ECDH_PublicKey
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:101,1
    - Dst: Botan::EC_AffinePoint
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:101,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 3
    argNames:
    - rng
    - key
    - curve
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - pgp_curve_t
    assertStmts:
    - condition: (curve >= PGP_CURVE_NIST_P_256 && curve <= PGP_CURVE_P256K1)
      pos:
        line_end: 97
        line_start: 97
        source_file: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    constantsTouched: []
    func_position:
      end: 102
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 102
    functionName: ecdh_kem_pubkey_from_bytes
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_name
    - Botan::EC_AffinePoint
    - pgp::ec::Curve::get
    - assert
    - Botan::ECDH_PublicKey
    linkageType: ''
    returnType: Botan::ECDH_PublicKey
    signature: Botan::ECDH_PublicKey ecdh_kem_pubkey_from_bytes(rnp::RNG *rng, const
      std::vector<uint8_t> &key, pgp_curve_t curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X25519_PrivateKey
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key_data
    - key_size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 104
    functionDepth: 0
    functionLinenumber: 104
    functionLinenumberEnd: 109
    functionName: x25519_privkey_from_bytes
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached:
    - Botan::X25519_PrivateKey
    linkageType: ''
    returnType: Botan::X25519_PrivateKey
    signature: Botan::X25519_PrivateKey x25519_privkey_from_bytes(const uint8_t *key_data,
      size_t key_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X25519_PublicKey
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 111
    functionDepth: 0
    functionLinenumber: 111
    functionLinenumberEnd: 115
    functionName: x25519_pubkey_from_bytes
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached:
    - Botan::X25519_PublicKey
    linkageType: ''
    returnType: Botan::X25519_PublicKey
    signature: Botan::X25519_PublicKey x25519_pubkey_from_bytes(const std::vector<uint8_t>
      &key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X448_PrivateKey
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key_data
    - key_size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 118
    functionDepth: 0
    functionLinenumber: 118
    functionLinenumberEnd: 123
    functionName: x448_privkey_from_bytes
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached:
    - Botan::X448_PrivateKey
    linkageType: ''
    returnType: Botan::X448_PrivateKey
    signature: Botan::X448_PrivateKey x448_privkey_from_bytes(const uint8_t *key_data,
      size_t key_size)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::X448_PublicKey
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 129
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 129
    functionName: x448_pubkey_from_bytes
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached:
    - Botan::X448_PublicKey
    linkageType: ''
    returnType: Botan::X448_PublicKey
    signature: Botan::X448_PublicKey x448_pubkey_from_bytes(const std::vector<uint8_t>
      &key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: x25519_privkey_from_bytes
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:138,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:138,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:138,1
    - Dst: Botan::X25519_PrivateKey::public_value
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:139,1
    - Dst: x448_privkey_from_bytes
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:143,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:143,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:143,1
    - Dst: Botan::X448_PrivateKey::public_value
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:144,1
    - Dst: ecdh_kem_privkey_from_bytes
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:149,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:149,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:149,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:150,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 153
      start: 132
    functionDepth: 1
    functionLinenumber: 132
    functionLinenumberEnd: 153
    functionName: ecdh_kem_private_key_t::get_pubkey_encoded
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached:
    - data
    - ecdh_kem_privkey_from_bytes
    - Botan::X448_PrivateKey::public_value
    - Botan::X25519_PrivateKey::public_value
    - x448_privkey_from_bytes
    - x25519_privkey_from_bytes
    - Botan::ECDH_PrivateKey::public_value
    - size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> ecdh_kem_private_key_t::get_pubkey_encoded(rnp::RNG
      *rng) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:162,1
    - Dst: Botan::X25519_PrivateKey::public_value
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:163,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:164,1
    - Dst: rnpffi::Key::unlock
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:165,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:165,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:170,1
    - Dst: Botan::X448_PrivateKey::public_value
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:171,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:172,1
    - Dst: rnpffi::Key::unlock
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:173,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:173,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:178,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:180,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:184,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:185,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:186,1
    - Dst: Botan::ECDH_PrivateKey::public_value
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:187,1
    - Dst: rnpffi::Key::unlock
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:188,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:188,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - rng
    - ciphertext
    - symmetric_key
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 155
    functionDepth: 1
    functionLinenumber: 155
    functionLinenumberEnd: 193
    functionName: ecdh_kem_public_key_t::encapsulate
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - Botan::X448_PrivateKey::public_value
    - Botan::X25519_PrivateKey::public_value
    - Botan::EC_Group::from_name
    - rnpffi::Key::unlock
    - pgp::ec::Curve::get
    - Botan::PK_Key_Agreement::derive_key
    - Botan::ECDH_PrivateKey::public_value
    - rnp::RNG*::obj
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ecdh_kem_public_key_t::encapsulate(rnp::RNG *            rng,\n
      \                                  std::vector<uint8_t> &ciphertext,\n                                   std::vector<uint8_t>
      &symmetric_key) const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: x25519_privkey_from_bytes
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:203,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:203,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:203,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:204,1
    - Dst: rnpffi::Key::unlock
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:205,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:205,1
    - Dst: x448_privkey_from_bytes
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:210,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:210,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:210,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:211,1
    - Dst: rnpffi::Key::unlock
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:212,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:212,1
    - Dst: ecdh_kem_privkey_from_bytes
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:218,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:218,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:218,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:219,1
    - Dst: rnpffi::Key::unlock
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:220,1
    - Dst: Botan::PK_Key_Agreement::derive_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:220,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 3
    argNames:
    - rng
    - ciphertext
    - '      plaintext'
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 225
    functionName: ecdh_kem_private_key_t::decapsulate
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 2
    functionsReached:
    - data
    - ecdh_kem_privkey_from_bytes
    - rnpffi::Key::unlock
    - x448_privkey_from_bytes
    - x25519_privkey_from_bytes
    - Botan::PK_Key_Agreement::derive_key
    - size
    - rnp::RNG*::obj
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ecdh_kem_private_key_t::decapsulate(rnp::RNG *                  rng,\n
      \                                   const std::vector<uint8_t> &ciphertext,\n
      \                                   std::vector<uint8_t> &      plaintext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ec_generate_native
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:231,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:233,1
    - Dst: ecdh_kem_private_key_t
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:237,1
    - Dst: ecdh_kem_public_key_t
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - rng
    - out
    - curve
    argTypes:
    - rnp::RNG*
    - ecdh_kem_key_t*
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 227
    functionDepth: 1
    functionLinenumber: 227
    functionLinenumberEnd: 241
    functionName: ec_key_t::generate_ecdh_kem_key_pair
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - ecdh_kem_public_key_t
    - ecdh_kem_private_key_t
    - ec_generate_native
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t ec_key_t::generate_ecdh_kem_key_pair(rnp::RNG *rng, ecdh_kem_key_t
      *out, pgp_curve_t curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - key_buf
    - key_buf_len
    - curve
    argTypes:
    - uint8_t*
    - size_t
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 244
    functionDepth: 0
    functionLinenumber: 244
    functionLinenumberEnd: 247
    functionName: exdsa_public_key_t::exdsa_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void exdsa_public_key_t::exdsa_public_key_t(uint8_t *key_buf, size_t
      key_buf_len, pgp_curve_t curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key
    - curve
    argTypes:
    - std::vector<uint8_t>
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 251
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 251
    functionName: exdsa_public_key_t::exdsa_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void exdsa_public_key_t::exdsa_public_key_t(std::vector<uint8_t> key,
      pgp_curve_t curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - key_buf
    - key_buf_len
    - curve
    argTypes:
    - uint8_t*
    - size_t
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 253
    functionDepth: 0
    functionLinenumber: 253
    functionLinenumberEnd: 258
    functionName: exdsa_private_key_t::exdsa_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void exdsa_private_key_t::exdsa_private_key_t(uint8_t *   key_buf,\n
      \                                        size_t      key_buf_len,\n                                         pgp_curve_t
      curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key
    - curve
    argTypes:
    - std::vector<uint8_t>
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 262
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 262
    functionName: exdsa_private_key_t::exdsa_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void exdsa_private_key_t::exdsa_private_key_t(std::vector<uint8_t>
      key, pgp_curve_t curve)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ec_generate_native
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:268,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:270,1
    - Dst: exdsa_private_key_t
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:274,1
    - Dst: exdsa_public_key_t
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - rng
    - out
    - curve
    argTypes:
    - rnp::RNG*
    - exdsa_key_t*
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 264
    functionDepth: 1
    functionLinenumber: 264
    functionLinenumberEnd: 278
    functionName: ec_key_t::generate_exdsa_key_pair
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - exdsa_private_key_t
    - exdsa_public_key_t
    - ec_generate_native
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t ec_key_t::generate_exdsa_key_pair(rnp::RNG *rng, exdsa_key_t
      *out, pgp_curve_t curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:286,1
    - Dst: Botan::ECDSA_PrivateKey
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:287,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:287,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:288,1
    - Dst: Botan::BigInt
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:289,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - rng
    - key_data
    - key_size
    - curve
    argTypes:
    - rnp::RNG*
    - uint8_t*
    - size_t
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 290
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 290
    functionName: exdsa_privkey_from_bytes
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_Group::from_name
    - pgp::ec::Curve::get
    - Botan::ECDSA_PrivateKey
    - rnp::RNG*::obj
    - Botan::BigInt
    linkageType: ''
    returnType: Botan::ECDSA_PrivateKey
    signature: "Botan::ECDSA_PrivateKey exdsa_privkey_from_bytes(rnp::RNG *     rng,\n
      \                        const uint8_t *key_data,\n                         size_t
      \        key_size,\n                         pgp_curve_t    curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:296,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:297,1
    - Dst: Botan::ECDSA_PublicKey
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:298,1
    - Dst: Botan::EC_AffinePoint
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key
    - curve
    argTypes:
    - std::vector<uint8_t>
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 299
    functionName: exdsa_pubkey_from_bytes
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached:
    - Botan::EC_AffinePoint
    - Botan::ECDSA_PublicKey
    - Botan::EC_Group::from_name
    - pgp::ec::Curve::get
    linkageType: ''
    returnType: Botan::ECDSA_PublicKey
    signature: Botan::ECDSA_PublicKey exdsa_pubkey_from_bytes(const std::vector<uint8_t>
      &key, pgp_curve_t curve)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ed25519_sign_native
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:311,1
    - Dst: unlock
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:311,1
    - Dst: ed448_sign_native
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:314,1
    - Dst: unlock
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:314,1
    - Dst: exdsa_privkey_from_bytes
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:318,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:318,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:318,1
    - Dst: Botan::PK_Signer
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:320,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:320,1
    - Dst: pgp::ecdsa::padding_str_for
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:320,1
    - Dst: auto::sign_message
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:321,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:321,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 13
    argCount: 5
    argNames:
    - rng
    - sig_out
    - hash
    - hash_len
    - hash_alg
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - uint8_t*
    - size_t
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 302
    functionDepth: 1
    functionLinenumber: 302
    functionLinenumberEnd: 325
    functionName: exdsa_private_key_t::sign
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached:
    - data
    - auto::sign_message
    - ed448_sign_native
    - Botan::PK_Signer
    - exdsa_privkey_from_bytes
    - unlock
    - ed25519_sign_native
    - pgp::ecdsa::padding_str_for
    - size
    - rnp::RNG*::obj
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t exdsa_private_key_t::sign(rnp::RNG *            rng,\n
      \                         std::vector<uint8_t> &sig_out,\n                          const
      uint8_t *       hash,\n                          size_t                hash_len,\n
      \                         pgp_hash_alg_t        hash_alg) const"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ed25519_verify_native
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:335,1
    - Dst: ed448_verify_native
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:338,1
    - Dst: exdsa_pubkey_from_bytes
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:341,1
    - Dst: Botan::PK_Verifier
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:342,1
    - Dst: pgp::ecdsa::padding_str_for
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:342,1
    - Dst: auto::verify_message
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:343,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:343,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 15
    argCount: 4
    argNames:
    - sig
    - hash
    - hash_len
    - hash_alg
    argTypes:
    - std::vector<uint8_t>
    - uint8_t*
    - size_t
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 349
    functionName: exdsa_public_key_t::verify
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - Botan::PK_Verifier
    - exdsa_pubkey_from_bytes
    - ed448_verify_native
    - pgp::ecdsa::padding_str_for
    - std::vector<uint8_t>::data
    - auto::verify_message
    - ed25519_verify_native
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t exdsa_public_key_t::verify(const std::vector<uint8_t>
      &sig,\n                           const uint8_t *             hash,\n                           size_t
      \                     hash_len,\n                           pgp_hash_alg_t              hash_alg)
      const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_PublicKey::check_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:357,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:357,1
    - Dst: Botan::Ed448_PublicKey::check_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:361,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:361,1
    - Dst: exdsa_pubkey_from_bytes
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:364,1
    - Dst: Botan::ECDSA_PublicKey::check_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:365,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:365,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 368
    functionName: exdsa_public_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached:
    - Botan::Ed25519_PublicKey::check_key
    - Botan::ECDSA_PublicKey::check_key
    - exdsa_pubkey_from_bytes
    - Botan::Ed448_PublicKey::check_key
    - rnp::RNG*::obj
    linkageType: ''
    returnType: bool
    signature: bool exdsa_public_key_t::is_valid(rnp::RNG *rng) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:375,1
    - Dst: end
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:375,1
    - Dst: Botan::Ed25519_PrivateKey::check_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:377,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:377,1
    - Dst: Botan::Ed448_PrivateKey::check_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:381,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:381,1
    - Dst: exdsa_privkey_from_bytes
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:384,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:384,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:384,1
    - Dst: auto::check_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:385,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:385,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 388
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 388
    functionName: exdsa_private_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached:
    - data
    - end
    - exdsa_privkey_from_bytes
    - Botan::Ed25519_PrivateKey::check_key
    - rnp::RNG*::obj
    - auto::check_key
    - begin
    - size
    - Botan::Ed448_PrivateKey::check_key
    linkageType: ''
    returnType: bool
    signature: bool exdsa_private_key_t::is_valid(rnp::RNG *rng) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: x25519_pubkey_from_bytes
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:396,1
    - Dst: auto::check_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:397,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:397,1
    - Dst: x448_pubkey_from_bytes
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:401,1
    - Dst: auto::check_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:402,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:402,1
    - Dst: ecdh_kem_pubkey_from_bytes
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:406,1
    - Dst: auto::check_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:407,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:407,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 410
      start: 391
    functionDepth: 1
    functionLinenumber: 391
    functionLinenumberEnd: 410
    functionName: ecdh_kem_public_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached:
    - ecdh_kem_pubkey_from_bytes
    - x25519_pubkey_from_bytes
    - x448_pubkey_from_bytes
    - auto::check_key
    - rnp::RNG*::obj
    linkageType: ''
    returnType: bool
    signature: bool ecdh_kem_public_key_t::is_valid(rnp::RNG *rng) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: x25519_privkey_from_bytes
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:417,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:417,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:417,1
    - Dst: auto::check_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:418,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:418,1
    - Dst: x448_privkey_from_bytes
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:422,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:422,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:422,1
    - Dst: auto::check_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:423,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:423,1
    - Dst: ecdh_kem_privkey_from_bytes
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:427,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:427,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:427,1
    - Dst: auto::check_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:428,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp:428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 431
      start: 412
    functionDepth: 1
    functionLinenumber: 412
    functionLinenumberEnd: 431
    functionName: ecdh_kem_private_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
    functionUses: 0
    functionsReached:
    - data
    - ecdh_kem_privkey_from_bytes
    - x448_privkey_from_bytes
    - x25519_privkey_from_bytes
    - auto::check_key
    - size
    - rnp::RNG*::obj
    linkageType: ''
    returnType: bool
    signature: bool ecdh_kem_private_key_t::is_valid(rnp::RNG *rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: rnp::RNG::RNG
    functionSourceFile: /src/rnp/src/lib/crypto/rng_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RNG::RNG(Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: RNG::~RNG()
    functionSourceFile: /src/rnp/src/lib/crypto/rng_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RNG::~RNG()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/rnp/src/lib/crypto/rng_ossl.cpp:44,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/rng_ossl.cpp:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: rnp::RNG::get
    functionSourceFile: /src/rnp/src/lib/crypto/rng_ossl.cpp
    functionUses: 1
    functionsReached:
    - RAND_bytes
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void RNG::get(uint8_t *data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 35
    functionName: rnp::RNG::RNG
    functionSourceFile: /src/rnp/src/lib/crypto/rng_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RNG::RNG(Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 39
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 39
    functionName: RNG::~RNG()
    functionSourceFile: /src/rnp/src/lib/crypto/rng_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void RNG::~RNG()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RAND_bytes
      Src: /src/rnp/src/lib/crypto/rng_ossl.cpp:44,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/rng_ossl.cpp:45,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 41
    functionDepth: 1
    functionLinenumber: 41
    functionLinenumberEnd: 47
    functionName: rnp::RNG::get
    functionSourceFile: /src/rnp/src/lib/crypto/rng_ossl.cpp
    functionUses: 1
    functionsReached:
    - RAND_bytes
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void RNG::get(uint8_t *data, size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:51,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:57,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:63,1
    - Dst: rnpffi::FFI::iterator_create
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:72,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:74,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:74,1
    - Dst: std::move
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:77,1
    - Dst: Cipher_Botan::Cipher_Botan
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 3
    argNames:
    - alg
    - name
    - encrypt
    argTypes:
    - pgp_symm_alg_t
    - std::string
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 78
    functionName: Cipher_Botan::create
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_botan.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - Cipher_Botan::Cipher_Botan
    - std::string::c_str
    - rnpffi::FFI::iterator_create
    - std::move
    linkageType: ''
    returnType: Cipher_Botan
    signature: 'Cipher_Botan *

      Cipher_Botan::create(pgp_symm_alg_t alg, const std::string &name, bool encrypt)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:83,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:84,1
    - Dst: std::stringstream::str
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:97,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 4
    argNames:
    - cipher
    - mode
    - tag_size
    - disable_padding
    argTypes:
    - pgp_symm_alg_t
    - pgp_cipher_mode_t
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 101
    functionName: make_name
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_botan.cpp
    functionUses: 0
    functionsReached:
    - std::stringstream::str
    - id_str_pair::lookup
    linkageType: ''
    returnType: std::string
    signature: std::string make_name(pgp_symm_alg_t cipher, pgp_cipher_mode_t mode,
      size_t tag_size, bool disable_padding)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Cipher_Botan>
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:109,1
    - Dst: Cipher_Botan::create
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:110,1
    - Dst: make_name
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cipher
    - mode
    - tag_size
    - disable_padding
    argTypes:
    - pgp_symm_alg_t
    - pgp_cipher_mode_t
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 111
    functionName: Cipher_Botan::encryption
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_botan.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Cipher_Botan>
    - Cipher_Botan::create
    - make_name
    linkageType: ''
    returnType: std::unique_ptr<Cipher_Botan>
    signature: "std::unique_ptr<Cipher_Botan> Cipher_Botan::encryption(pgp_symm_alg_t
      \   cipher,\n                         pgp_cipher_mode_t mode,\n                         size_t
      \           tag_size,\n                         bool              disable_padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Cipher_Botan>
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:119,1
    - Dst: Cipher_Botan::create
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:120,1
    - Dst: make_name
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - cipher
    - mode
    - tag_size
    - disable_padding
    argTypes:
    - pgp_symm_alg_t
    - pgp_cipher_mode_t
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 121
    functionName: Cipher_Botan::decryption
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_botan.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Cipher_Botan>
    - Cipher_Botan::create
    - make_name
    linkageType: ''
    returnType: std::unique_ptr<Cipher_Botan>
    signature: "std::unique_ptr<Cipher_Botan> Cipher_Botan::decryption(pgp_symm_alg_t
      \   cipher,\n                         pgp_cipher_mode_t mode,\n                         size_t
      \           tag_size,\n                         bool              disable_padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Cipher_Botan::update_granularity
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: Cipher_Botan::update_granularity
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_botan.cpp
    functionUses: 1
    functionsReached:
    - Cipher_Botan::update_granularity
    linkageType: ''
    returnType: size_t
    signature: size_t Cipher_Botan::update_granularity() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Cipher_Botan::set_key
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:133,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:135,1
    - Dst: what
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:135,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - key
    - key_length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 139
    functionName: Cipher_Botan::set_key
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_botan.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - what
    - Cipher_Botan::set_key
    linkageType: ''
    returnType: bool
    signature: bool Cipher_Botan::set_key(const uint8_t *key, size_t key_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assign
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:148,1
    - Dst: reserve
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:149,1
    - Dst: Cipher_Botan::update_granularity
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:149,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:151,1
    - Dst: what
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:151,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - iv
    - iv_length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 155
    functionName: Cipher_Botan::set_iv
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_botan.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - reserve
    - Cipher_Botan::update_granularity
    - assign
    linkageType: ''
    returnType: bool
    signature: bool Cipher_Botan::set_iv(const uint8_t *iv, size_t iv_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:160,1
    - Dst: authenticated
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:160,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:162,1
    - Dst: assign
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:166,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:168,1
    - Dst: what
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:168,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - ad
    - ad_length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (m_cipher->authenticated())
      pos:
        line_end: 159
        line_start: 159
        source_file: /src/rnp/src/lib/crypto/cipher_botan.cpp
    constantsTouched: []
    func_position:
      end: 172
      start: 157
    functionDepth: 1
    functionLinenumber: 157
    functionLinenumberEnd: 172
    functionName: Cipher_Botan::set_ad
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_botan.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - assert
    - assign
    - authenticated
    linkageType: ''
    returnType: bool
    signature: bool Cipher_Botan::set_ad(const uint8_t *ad, size_t ad_length)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: authenticated
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:181,1
    - Dst: empty
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:181,1
    - Dst: dynamic_cast<Botan::AEAD_Mode &>
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:182,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:182,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:183,1
    - Dst: Cipher_Botan::start
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:185,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:185,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:185,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:188,1
    - Dst: what
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:188,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 192
    functionName: Cipher_Botan::start
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_botan.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - what
    - data
    - dynamic_cast<Botan::AEAD_Mode &>
    - Cipher_Botan::start
    - empty
    - size
    - authenticated
    linkageType: ''
    returnType: bool
    signature: bool Cipher_Botan::start()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Cipher_Botan::start
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:202,1
    - Dst: Cipher_Botan::update_granularity
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:206,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:207,1
    - Dst: assign
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:212,1
    - Dst: process
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:213,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:213,1
    - Dst: std::copy
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:214,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:214,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:214,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:224,1
    - Dst: what
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:224,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 6
    argNames:
    - output
    - output_length
    - output_written
    - input
    - input_length
    - input_consumed
    argTypes:
    - uint8_t*
    - size_t
    - size_t*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 228
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 228
    functionName: Cipher_Botan::update
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_botan.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - what
    - data
    - resize
    - Cipher_Botan::start
    - std::copy
    - Cipher_Botan::update_granularity
    - assign
    - process
    linkageType: ''
    returnType: bool
    signature: "bool Cipher_Botan::update(uint8_t *      output,\n                     size_t
      \        output_length,\n                     size_t *       output_written,\n
      \                    const uint8_t *input,\n                     size_t         input_length,\n
      \                    size_t *       input_consumed)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: Cipher_Botan::start
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:238,1
    - Dst: Cipher_Botan::update_granularity
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:244,1
    - Dst: Cipher_Botan::update
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:246,1
    - Dst: Cipher_Botan::finish
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:260,1
    - Dst: Botan::secure_vector::size
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:261,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:262,1
    - Dst: std::copy
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:265,1
    - Dst: Botan::secure_vector::begin
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:265,1
    - Dst: Botan::secure_vector::end
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:265,1
    - Dst: Botan::secure_vector::size
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:266,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:269,1
    - Dst: what
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:269,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 29
    argCount: 6
    argNames:
    - output
    - output_length
    - output_written
    - input
    - input_length
    - input_consumed
    argTypes:
    - uint8_t*
    - size_t
    - size_t*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 230
    functionDepth: 2
    functionLinenumber: 230
    functionLinenumberEnd: 273
    functionName: Cipher_Botan::finish
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_botan.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - Botan::secure_vector::end
    - what
    - Cipher_Botan::start
    - std::copy
    - Cipher_Botan::update_granularity
    - Cipher_Botan::update
    - Cipher_Botan::finish
    - Botan::secure_vector::size
    - Botan::secure_vector::begin
    linkageType: ''
    returnType: bool
    signature: "bool Cipher_Botan::finish(uint8_t *      output,\n                     size_t
      \        output_length,\n                     size_t *       output_written,\n
      \                    const uint8_t *input,\n                     size_t         input_length,\n
      \                    size_t *       input_consumed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/crypto/cipher_botan.cpp:276,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - alg
    - cipher
    argTypes:
    - pgp_symm_alg_t
    - std::unique_ptr<Botan::Cipher_Mode>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 278
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 278
    functionName: Cipher_Botan::Cipher_Botan
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_botan.cpp
    functionUses: 1
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void Cipher_Botan::Cipher_Botan(pgp_symm_alg_t alg, std::unique_ptr<Botan::Cipher_Mode>
      cipher)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 280
    functionDepth: 0
    functionLinenumber: 280
    functionLinenumberEnd: 282
    functionName: Cipher_Botan::~Cipher_Botan()
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_botan.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cipher_Botan::~Cipher_Botan()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Key::p::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:48,1
    - Dst: botan_pubkey_load_elgamal
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:59,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:59,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:59,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:59,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - pubkey
    - key
    argTypes:
    - rnp::botan::Pubkey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 60
    functionName: pgp::eg::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 0
    functionsReached:
    - botan_pubkey_load_elgamal
    - Key::p::size
    - rnp::bn::get
    - rnp::botan::Pubkey::get
    linkageType: ''
    returnType: bool
    signature: bool load_public_key(rnp::botan::Pubkey &pubkey, const Key &key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Key::p::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:66,1
    - Dst: botan_privkey_load_elgamal
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:77,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:77,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:77,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:77,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - privkey
    - key
    argTypes:
    - rnp::botan::Privkey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 78
    functionName: pgp::eg::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 0
    functionsReached:
    - botan_privkey_load_elgamal
    - Key::p::size
    - rnp::botan::Privkey::get
    - rnp::bn::get
    linkageType: ''
    returnType: bool
    signature: bool load_secret_key(rnp::botan::Privkey &privkey, const Key &key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:84,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:91,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:91,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:92,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:92,1
    - Dst: Botan::BigInt::cmp_word
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:95,1
    - Dst: Botan::BigInt::cmp
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:95,1
    - Dst: Botan::power_mod
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:99,1
    - Dst: Botan::BigInt::cmp_word
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:110,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:111,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:119,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:119,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:120,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:120,1
    - Dst: Botan::power_mod
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:121,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:123,1
    - Dst: what
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:123,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - secret
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 126
    functionName: pgp::eg::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - Botan::BigInt::cmp_word
    - what
    - data
    - Botan::power_mod
    - Botan::BigInt::cmp
    - size
    linkageType: ''
    returnType: bool
    signature: bool Key::validate(bool secret) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:131,1
    - Dst: load_public_key
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:132,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:133,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:143,1
    - Dst: rnp::botan::op::Encrypt::Encrypt
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:145,1
    - Dst: botan_pk_op_encrypt_create
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:147,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:147,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:147,1
    - Dst: botan_pk_op_encrypt
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:148,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:149,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:149,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:149,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:149,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:149,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:150,1
    - Dst: Encrypted::g::assign
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:166,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:166,1
    - Dst: Encrypted::m::assign
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:167,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 169
    functionName: pgp::eg::Key::encrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - botan_pk_op_encrypt_create
    - rnp::secure_bytes::size
    - rnp::botan::Pubkey::get
    - rnp::RNG::handle
    - load_public_key
    - Encrypted::m::assign
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_encrypt
    - Encrypted::g::assign
    - rnp::botan::op::Encrypt::get
    - rnp::secure_bytes::data
    - std::vector::data
    - size
    - rnp::botan::op::Encrypt::Encrypt
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::encrypt_pkcs1(rnp::RNG &rng, Encrypted &out, const
      rnp::secure_bytes &in) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:174,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:175,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:180,1
    - Dst: Encrypted::g::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:181,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:182,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:185,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:189,1
    - Dst: load_secret_key
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:190,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:191,1
    - Dst: Encrypted::g::copy
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:199,1
    - Dst: Encrypted::m::copy
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:200,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:202,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:203,1
    - Dst: rnp::botan::op::Decrypt::Decrypt
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:204,1
    - Dst: botan_pk_op_decrypt_create
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:205,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:205,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:205,1
    - Dst: botan_pk_op_decrypt
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:206,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:206,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:206,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:206,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:207,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:208,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:211,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - rnp::secure_bytes
    - Encrypted
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 213
    functionName: pgp::eg::Key::decrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - Encrypted::m::size
    - rnp::botan::Privkey::Privkey
    - rnp::botan::op::Decrypt::Decrypt
    - rnp::secure_bytes::size
    - load_secret_key
    - Encrypted::g::copy
    - rnp::botan::Privkey::get
    - rnp::botan::op::Decrypt::get
    - botan_pk_op_decrypt
    - Encrypted::m::copy
    - rnp::secure_bytes::resize
    - Encrypted::g::size
    - botan_pk_op_decrypt_create
    - rnp::secure_bytes::data
    - std::vector::data
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::decrypt_pkcs1(rnp::RNG &rng, rnp::secure_bytes &out,
      const Encrypted &in) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:222,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:223,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:224,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:225,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:232,1
    - Dst: botan_privkey_create_elgamal
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:233,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:234,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:234,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:235,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:238,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:238,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:238,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:239,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:242,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:242,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:247,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:247,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:247,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:248,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:248,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:248,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:249,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:249,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:249,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:250,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:250,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:250,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:251,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:257,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:257,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:257,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:257,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 29
    argCount: 2
    argNames:
    - rng
    - keybits
    argTypes:
    - rnp::RNG
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 261
    functionName: pgp::eg::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 1
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - rnp::bn::mpi
    - rnp::botan::Privkey::Privkey
    - rnp::RNG::handle
    - BITS_TO_BYTES
    - rnp::botan::Privkey::get
    - botan_privkey_get_field
    - botan_privkey_create_elgamal
    - rnp::bn::bytes
    - rnp::bn::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t keybits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Key::p::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:48,1
    - Dst: botan_pubkey_load_elgamal
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:59,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:59,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:59,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:59,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - pubkey
    - key
    argTypes:
    - rnp::botan::Pubkey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 60
    functionName: pgp::eg::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 0
    functionsReached:
    - botan_pubkey_load_elgamal
    - Key::p::size
    - rnp::bn::get
    - rnp::botan::Pubkey::get
    linkageType: ''
    returnType: bool
    signature: bool load_public_key(rnp::botan::Pubkey &pubkey, const Key &key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Key::p::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:66,1
    - Dst: botan_privkey_load_elgamal
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:77,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:77,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:77,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:77,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - privkey
    - key
    argTypes:
    - rnp::botan::Privkey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 78
    functionName: pgp::eg::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 0
    functionsReached:
    - botan_privkey_load_elgamal
    - Key::p::size
    - rnp::botan::Privkey::get
    - rnp::bn::get
    linkageType: ''
    returnType: bool
    signature: bool load_secret_key(rnp::botan::Privkey &privkey, const Key &key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:84,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:91,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:91,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:92,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:92,1
    - Dst: Botan::BigInt::cmp_word
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:95,1
    - Dst: Botan::BigInt::cmp
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:95,1
    - Dst: Botan::power_mod
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:99,1
    - Dst: Botan::BigInt::cmp_word
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:110,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:111,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:119,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:119,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:120,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:120,1
    - Dst: Botan::power_mod
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:121,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:123,1
    - Dst: what
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:123,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - secret
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 126
    functionName: pgp::eg::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - Botan::BigInt::cmp_word
    - what
    - data
    - Botan::power_mod
    - Botan::BigInt::cmp
    - size
    linkageType: ''
    returnType: bool
    signature: bool Key::validate(bool secret) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:131,1
    - Dst: load_public_key
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:132,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:133,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:143,1
    - Dst: rnp::botan::op::Encrypt::Encrypt
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:145,1
    - Dst: botan_pk_op_encrypt_create
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:147,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:147,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:147,1
    - Dst: botan_pk_op_encrypt
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:148,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:149,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:149,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:149,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:149,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:149,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:150,1
    - Dst: Encrypted::g::assign
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:166,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:166,1
    - Dst: Encrypted::m::assign
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:167,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 169
    functionName: pgp::eg::Key::encrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - botan_pk_op_encrypt_create
    - rnp::secure_bytes::size
    - rnp::botan::Pubkey::get
    - rnp::RNG::handle
    - load_public_key
    - Encrypted::m::assign
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_encrypt
    - Encrypted::g::assign
    - rnp::botan::op::Encrypt::get
    - rnp::secure_bytes::data
    - std::vector::data
    - size
    - rnp::botan::op::Encrypt::Encrypt
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::encrypt_pkcs1(rnp::RNG &rng, Encrypted &out, const
      rnp::secure_bytes &in) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:174,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:175,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:180,1
    - Dst: Encrypted::g::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:181,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:182,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:185,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:189,1
    - Dst: load_secret_key
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:190,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:191,1
    - Dst: Encrypted::g::copy
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:199,1
    - Dst: Encrypted::m::copy
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:200,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:202,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:203,1
    - Dst: rnp::botan::op::Decrypt::Decrypt
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:204,1
    - Dst: botan_pk_op_decrypt_create
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:205,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:205,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:205,1
    - Dst: botan_pk_op_decrypt
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:206,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:206,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:206,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:206,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:207,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:208,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:211,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - rnp::secure_bytes
    - Encrypted
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 213
    functionName: pgp::eg::Key::decrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - Encrypted::m::size
    - rnp::botan::Privkey::Privkey
    - rnp::botan::op::Decrypt::Decrypt
    - rnp::secure_bytes::size
    - load_secret_key
    - Encrypted::g::copy
    - rnp::botan::Privkey::get
    - rnp::botan::op::Decrypt::get
    - botan_pk_op_decrypt
    - Encrypted::m::copy
    - rnp::secure_bytes::resize
    - Encrypted::g::size
    - botan_pk_op_decrypt_create
    - rnp::secure_bytes::data
    - std::vector::data
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::decrypt_pkcs1(rnp::RNG &rng, rnp::secure_bytes &out,
      const Encrypted &in) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:222,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:223,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:224,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:225,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:232,1
    - Dst: botan_privkey_create_elgamal
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:233,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:234,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:234,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:235,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:238,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:238,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:238,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:239,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:242,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:242,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:247,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:247,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:247,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:248,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:248,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:248,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:249,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:249,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:249,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:250,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:250,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:250,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:251,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:257,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:257,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:257,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:257,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 29
    argCount: 2
    argNames:
    - rng
    - keybits
    argTypes:
    - rnp::RNG
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 261
    functionName: pgp::eg::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 1
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - rnp::bn::mpi
    - rnp::botan::Privkey::Privkey
    - rnp::RNG::handle
    - BITS_TO_BYTES
    - rnp::botan::Privkey::get
    - botan_privkey_get_field
    - botan_privkey_create_elgamal
    - rnp::bn::bytes
    - rnp::bn::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t keybits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Key::p::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:48,1
    - Dst: botan_pubkey_load_elgamal
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:59,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:59,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:59,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:59,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - pubkey
    - key
    argTypes:
    - rnp::botan::Pubkey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 60
    functionName: pgp::eg::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 0
    functionsReached:
    - botan_pubkey_load_elgamal
    - Key::p::size
    - rnp::bn::get
    - rnp::botan::Pubkey::get
    linkageType: ''
    returnType: bool
    signature: bool load_public_key(rnp::botan::Pubkey &pubkey, const Key &key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Key::p::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:66,1
    - Dst: botan_privkey_load_elgamal
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:77,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:77,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:77,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:77,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - privkey
    - key
    argTypes:
    - rnp::botan::Privkey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 78
    functionName: pgp::eg::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 0
    functionsReached:
    - botan_privkey_load_elgamal
    - Key::p::size
    - rnp::botan::Privkey::get
    - rnp::bn::get
    linkageType: ''
    returnType: bool
    signature: bool load_secret_key(rnp::botan::Privkey &privkey, const Key &key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:84,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:91,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:91,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:92,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:92,1
    - Dst: Botan::BigInt::cmp_word
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:95,1
    - Dst: Botan::BigInt::cmp
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:95,1
    - Dst: Botan::power_mod
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:99,1
    - Dst: Botan::BigInt::cmp_word
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:110,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:111,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:119,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:119,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:120,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:120,1
    - Dst: Botan::power_mod
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:121,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:123,1
    - Dst: what
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:123,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - secret
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 126
    functionName: pgp::eg::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - Botan::BigInt::cmp_word
    - what
    - data
    - Botan::power_mod
    - Botan::BigInt::cmp
    - size
    linkageType: ''
    returnType: bool
    signature: bool Key::validate(bool secret) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:131,1
    - Dst: load_public_key
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:132,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:133,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:143,1
    - Dst: rnp::botan::op::Encrypt::Encrypt
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:145,1
    - Dst: botan_pk_op_encrypt_create
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:147,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:147,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:147,1
    - Dst: botan_pk_op_encrypt
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:148,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:149,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:149,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:149,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:149,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:149,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:150,1
    - Dst: Encrypted::g::assign
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:166,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:166,1
    - Dst: Encrypted::m::assign
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:167,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 169
    functionName: pgp::eg::Key::encrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - botan_pk_op_encrypt_create
    - rnp::secure_bytes::size
    - rnp::botan::Pubkey::get
    - rnp::RNG::handle
    - load_public_key
    - Encrypted::m::assign
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_encrypt
    - Encrypted::g::assign
    - rnp::botan::op::Encrypt::get
    - rnp::secure_bytes::data
    - std::vector::data
    - size
    - rnp::botan::op::Encrypt::Encrypt
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::encrypt_pkcs1(rnp::RNG &rng, Encrypted &out, const
      rnp::secure_bytes &in) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:174,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:175,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:180,1
    - Dst: Encrypted::g::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:181,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:182,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:185,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:189,1
    - Dst: load_secret_key
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:190,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:191,1
    - Dst: Encrypted::g::copy
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:199,1
    - Dst: Encrypted::m::copy
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:200,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:202,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:203,1
    - Dst: rnp::botan::op::Decrypt::Decrypt
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:204,1
    - Dst: botan_pk_op_decrypt_create
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:205,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:205,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:205,1
    - Dst: botan_pk_op_decrypt
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:206,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:206,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:206,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:206,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:207,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:208,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:211,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - rnp::secure_bytes
    - Encrypted
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 213
    functionName: pgp::eg::Key::decrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - Encrypted::m::size
    - rnp::botan::Privkey::Privkey
    - rnp::botan::op::Decrypt::Decrypt
    - rnp::secure_bytes::size
    - load_secret_key
    - Encrypted::g::copy
    - rnp::botan::Privkey::get
    - rnp::botan::op::Decrypt::get
    - botan_pk_op_decrypt
    - Encrypted::m::copy
    - rnp::secure_bytes::resize
    - Encrypted::g::size
    - botan_pk_op_decrypt_create
    - rnp::secure_bytes::data
    - std::vector::data
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::decrypt_pkcs1(rnp::RNG &rng, rnp::secure_bytes &out,
      const Encrypted &in) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:222,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:223,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:224,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:225,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:232,1
    - Dst: botan_privkey_create_elgamal
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:233,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:234,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:234,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:235,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:238,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:238,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:238,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:239,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:242,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:242,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:247,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:247,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:247,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:248,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:248,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:248,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:249,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:249,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:249,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:250,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:250,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:250,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:251,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:257,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:257,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:257,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:257,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 29
    argCount: 2
    argNames:
    - rng
    - keybits
    argTypes:
    - rnp::RNG
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 261
    functionName: pgp::eg::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 1
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - rnp::bn::mpi
    - rnp::botan::Privkey::Privkey
    - rnp::RNG::handle
    - BITS_TO_BYTES
    - rnp::botan::Privkey::get
    - botan_privkey_get_field
    - botan_privkey_create_elgamal
    - rnp::bn::bytes
    - rnp::bn::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t keybits)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Key::p::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:48,1
    - Dst: botan_pubkey_load_elgamal
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:59,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:59,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:59,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:59,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:59,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - pubkey
    - key
    argTypes:
    - rnp::botan::Pubkey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 60
    functionName: pgp::eg::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 0
    functionsReached:
    - botan_pubkey_load_elgamal
    - Key::p::size
    - rnp::bn::get
    - rnp::botan::Pubkey::get
    linkageType: ''
    returnType: bool
    signature: bool load_public_key(rnp::botan::Pubkey &pubkey, const Key &key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: Key::p::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:66,1
    - Dst: botan_privkey_load_elgamal
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:77,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:77,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:77,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:77,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:77,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - privkey
    - key
    argTypes:
    - rnp::botan::Privkey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 78
    functionName: pgp::eg::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 0
    functionsReached:
    - botan_privkey_load_elgamal
    - Key::p::size
    - rnp::botan::Privkey::get
    - rnp::bn::get
    linkageType: ''
    returnType: bool
    signature: bool load_secret_key(rnp::botan::Privkey &privkey, const Key &key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:84,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:91,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:91,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:92,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:92,1
    - Dst: Botan::BigInt::cmp_word
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:95,1
    - Dst: Botan::BigInt::cmp
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:95,1
    - Dst: Botan::power_mod
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:99,1
    - Dst: Botan::BigInt::cmp_word
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:110,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:111,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:119,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:119,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:120,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:120,1
    - Dst: Botan::power_mod
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:121,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:123,1
    - Dst: what
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:123,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 26
    argCount: 1
    argNames:
    - secret
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 80
    functionDepth: 1
    functionLinenumber: 80
    functionLinenumberEnd: 126
    functionName: pgp::eg::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - Botan::BigInt::cmp_word
    - what
    - data
    - Botan::power_mod
    - Botan::BigInt::cmp
    - size
    linkageType: ''
    returnType: bool
    signature: bool Key::validate(bool secret) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:131,1
    - Dst: load_public_key
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:132,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:133,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:143,1
    - Dst: rnp::botan::op::Encrypt::Encrypt
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:145,1
    - Dst: botan_pk_op_encrypt_create
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:147,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:147,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:147,1
    - Dst: botan_pk_op_encrypt
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:148,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:149,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:149,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:149,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:149,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:149,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:150,1
    - Dst: Encrypted::g::assign
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:166,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:166,1
    - Dst: Encrypted::m::assign
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:167,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:167,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 169
    functionName: pgp::eg::Key::encrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - botan_pk_op_encrypt_create
    - rnp::secure_bytes::size
    - rnp::botan::Pubkey::get
    - rnp::RNG::handle
    - load_public_key
    - Encrypted::m::assign
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_encrypt
    - Encrypted::g::assign
    - rnp::botan::op::Encrypt::get
    - rnp::secure_bytes::data
    - std::vector::data
    - size
    - rnp::botan::op::Encrypt::Encrypt
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::encrypt_pkcs1(rnp::RNG &rng, Encrypted &out, const
      rnp::secure_bytes &in) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:174,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:175,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:180,1
    - Dst: Encrypted::g::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:181,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:182,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:185,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:189,1
    - Dst: load_secret_key
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:190,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:191,1
    - Dst: Encrypted::g::copy
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:199,1
    - Dst: Encrypted::m::copy
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:200,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:202,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:203,1
    - Dst: rnp::botan::op::Decrypt::Decrypt
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:204,1
    - Dst: botan_pk_op_decrypt_create
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:205,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:205,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:205,1
    - Dst: botan_pk_op_decrypt
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:206,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:206,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:206,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:206,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:207,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:208,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:211,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 23
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - rnp::secure_bytes
    - Encrypted
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 213
    functionName: pgp::eg::Key::decrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - Encrypted::m::size
    - rnp::botan::Privkey::Privkey
    - rnp::botan::op::Decrypt::Decrypt
    - rnp::secure_bytes::size
    - load_secret_key
    - Encrypted::g::copy
    - rnp::botan::Privkey::get
    - rnp::botan::op::Decrypt::get
    - botan_pk_op_decrypt
    - Encrypted::m::copy
    - rnp::secure_bytes::resize
    - Encrypted::g::size
    - botan_pk_op_decrypt_create
    - rnp::secure_bytes::data
    - std::vector::data
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::decrypt_pkcs1(rnp::RNG &rng, rnp::secure_bytes &out,
      const Encrypted &in) const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:222,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:223,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:224,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:225,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:232,1
    - Dst: botan_privkey_create_elgamal
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:233,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:234,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:234,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:235,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:238,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:238,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:238,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:239,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:242,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:242,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:247,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:247,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:247,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:248,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:248,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:248,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:249,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:249,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:249,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:250,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:250,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:250,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:251,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:257,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:257,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:257,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal.cpp:257,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 29
    argCount: 2
    argNames:
    - rng
    - keybits
    argTypes:
    - rnp::RNG
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 261
    functionName: pgp::eg::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.cpp
    functionUses: 1
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - rnp::bn::mpi
    - rnp::botan::Privkey::Privkey
    - rnp::RNG::handle
    - BITS_TO_BYTES
    - rnp::botan::Privkey::get
    - botan_privkey_get_field
    - botan_privkey_create_elgamal
    - rnp::bn::bytes
    - rnp::bn::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t keybits)
  - 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: ec_key_t::~ec_key_t()
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ec_key_t::~ec_key_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - curve
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: ec_key_t::ec_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ec_key_t::ec_key_t(pgp_curve_t curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:58,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - key_buf
    - key_buf_len
    - curve
    argTypes:
    - uint8_t*
    - size_t
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 60
    functionName: ecdh_kem_public_key_t::ecdh_kem_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    linkageType: ''
    returnType: void
    signature: "void ecdh_kem_public_key_t::ecdh_kem_public_key_t(uint8_t *   key_buf,\n
      \                                            size_t      key_buf_len,\n                                             pgp_curve_t
      curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key
    - curve
    argTypes:
    - std::vector<uint8_t>
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 64
    functionName: ecdh_kem_public_key_t::ecdh_kem_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ecdh_kem_public_key_t::ecdh_kem_public_key_t(std::vector<uint8_t>
      key, pgp_curve_t curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - key_buf
    - key_buf_len
    - curve
    argTypes:
    - uint8_t*
    - size_t
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: ecdh_kem_private_key_t::ecdh_kem_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void ecdh_kem_private_key_t::ecdh_kem_private_key_t(uint8_t *   key_buf,\n
      \                                              size_t      key_buf_len,\n                                               pgp_curve_t
      curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:73,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key
    - curve
    argTypes:
    - std::vector<uint8_t>
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 75
    functionName: ecdh_kem_private_key_t::ecdh_kem_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 3
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void ecdh_kem_private_key_t::ecdh_kem_private_key_t(std::vector<uint8_t>
      key, pgp_curve_t curve)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:80,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:80,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:82,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:82,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:85,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:85,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:86,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:86,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:89,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:89,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:89,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:90,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:90,1
    - Dst: EVP_PKEY_derive
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:94,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:94,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:95,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:95,1
    - Dst: std::vector<uint8_t>::resize
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:98,1
    - Dst: EVP_PKEY_derive
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:99,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:99,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:99,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:100,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:100,1
    - Dst: std::vector<uint8_t>::resize
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:103,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 24
    argCount: 3
    argNames:
    - sec
    - peer
    - out
    argTypes:
    - rnp::ossl::evp::PKey
    - rnp::ossl::evp::PKey
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 105
    functionName: derive_secret
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - ERR_peek_last_error
    - EVP_PKEY_derive
    - std::vector<uint8_t>::resize
    - EVP_PKEY_derive_set_peer
    - EVP_PKEY_derive_init
    - rnp::ossl::evp::PKey::get
    - std::vector<uint8_t>::data
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: bool
    signature: bool derive_secret(rnp::ossl::evp::PKey &sec, rnp::ossl::evp::PKey
      &peer, std::vector<uint8_t> &out)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::mpi::assign
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:111,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:111,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:111,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:112,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - key
    - curve
    argTypes:
    - std::vector<uint8_t>
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 107
    functionDepth: 2
    functionLinenumber: 107
    functionLinenumberEnd: 113
    functionName: load_nist_pubkey
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - std::vector<uint8_t>::data
    - pgp::mpi::assign
    - pgp::ec::load_key
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_nist_pubkey(const std::vector<uint8_t> &key,
      pgp_curve_t curve)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:119,1
    - Dst: OSSL_PARAM_BLD_push_utf8_string
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:131,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:132,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:133,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:133,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:133,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:136,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:136,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:145,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:145,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:146,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:146,1
    - Dst: rnp::ossl::Param::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:146,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:149,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 23
    argCount: 3
    argNames:
    - scalar
    - scalar_len
    - curve
    argTypes:
    - uint8_t*
    - size_t
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 116
    functionDepth: 1
    functionLinenumber: 116
    functionLinenumberEnd: 150
    functionName: load_nist_privkey
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::ossl::evp::PKeyCtx::get
    - rnp::ossl::evp::PKey
    - OSSL_PARAM_BLD_push_BN
    - rnp::ossl::ParamBld::get
    - EVP_PKEY_fromdata
    - pgp::ec::Curve::get
    - OSSL_PARAM_BLD_push_utf8_string
    - EVP_PKEY_fromdata_init
    - rnp::ossl::Param::get
    - OSSL_PARAM_BLD_to_param
    - rnp::bn::get
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_nist_privkey(const uint8_t *scalar, size_t
      scalar_len, pgp_curve_t curve)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:160,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:160,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:160,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:162,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:162,1
    - Dst: std::vector::resize
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:165,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:166,1
    - Dst: EVP_PKEY_get_raw_public_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:167,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:167,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:167,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:168,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:168,1
    - Dst: std::vector::clear
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:169,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:176,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:176,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:176,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:178,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:178,1
    - Dst: std::vector::resize
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:181,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:182,1
    - Dst: EVP_PKEY_get_raw_public_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:183,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:183,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:183,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:184,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:184,1
    - Dst: std::vector::clear
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:185,1
    - Dst: load_nist_privkey
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:192,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:192,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:192,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:194,1
    - Dst: pgp::ec::write_pubkey
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:198,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:199,1
    - Dst: std::vector::assign
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:202,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:202,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:202,1
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:202,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:204,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 41
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 153
    functionDepth: 2
    functionLinenumber: 153
    functionLinenumberEnd: 210
    functionName: ecdh_kem_private_key_t::get_pubkey_encoded
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - std::vector::clear
    - data
    - std::vector::size
    - pgp::ec::write_pubkey
    - std::vector::assign
    - pgp::mpi::data
    - EVP_PKEY_get_raw_public_key
    - rnp::ossl::evp::PKey::get
    - load_nist_privkey
    - EVP_PKEY_new_raw_private_key
    - ERR_peek_last_error
    - pgp::mpi::size
    - std::vector::resize
    - std::vector::data
    - size
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> ecdh_kem_private_key_t::get_pubkey_encoded(rnp::RNG
      *rng) const
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:220,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:220,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:221,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:221,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:225,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:225,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:226,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:226,1
    - Dst: std::vector<uint8_t>::resize
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:230,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:231,1
    - Dst: EVP_PKEY_get_raw_public_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:232,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:232,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:232,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:233,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:233,1
    - Dst: EVP_PKEY_new_raw_public_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:237,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:237,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:237,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:239,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:239,1
    - Dst: derive_secret
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:242,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:250,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:250,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:251,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:251,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:255,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:255,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:256,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:256,1
    - Dst: std::vector<uint8_t>::resize
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:260,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:261,1
    - Dst: EVP_PKEY_get_raw_public_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:262,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:262,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:262,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:263,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:263,1
    - Dst: EVP_PKEY_new_raw_public_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:267,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:267,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:267,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:269,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:269,1
    - Dst: derive_secret
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:272,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:279,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:281,1
    - Dst: pgp::ec::generate_pkey
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:284,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:286,1
    - Dst: load_nist_pubkey
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:289,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:291,1
    - Dst: derive_secret
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:294,1
    - Dst: pgp::ec::write_pubkey
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:298,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:299,1
    - Dst: std::vector<uint8_t>::assign
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:302,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:302,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:302,1
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:302,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 73
    argCount: 3
    argNames:
    - rng
    - ciphertext
    - symmetric_key
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 307
      start: 212
    functionDepth: 3
    functionLinenumber: 212
    functionLinenumberEnd: 307
    functionName: ecdh_kem_public_key_t::encapsulate
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 2
    functionsReached:
    - std::vector<uint8_t>::assign
    - data
    - pgp::ec::write_pubkey
    - EVP_PKEY_keygen
    - EVP_PKEY_get_raw_public_key
    - pgp::ec::generate_pkey
    - load_nist_pubkey
    - derive_secret
    - size
    - std::vector<uint8_t>::resize
    - pgp::mpi::data
    - pgp::ec::Curve::get
    - rnp::ossl::evp::PKey::get
    - pgp::mpi::size
    - rnp::ossl::evp::PKeyCtx::get
    - RNP_LOG
    - std::vector<uint8_t>::size
    - ERR_peek_last_error
    - EVP_PKEY_new_raw_public_key
    - EVP_PKEY_keygen_init
    - std::vector<uint8_t>::data
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ecdh_kem_public_key_t::encapsulate(rnp::RNG *            rng,\n
      \                                  std::vector<uint8_t> &ciphertext,\n                                   std::vector<uint8_t>
      &symmetric_key) const"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:317,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:317,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:317,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:319,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:319,1
    - Dst: EVP_PKEY_new_raw_public_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:322,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:323,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:323,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:325,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:325,1
    - Dst: derive_secret
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:328,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:336,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:336,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:336,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:338,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:338,1
    - Dst: EVP_PKEY_new_raw_public_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:341,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:342,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:342,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:344,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:344,1
    - Dst: derive_secret
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:347,1
    - Dst: load_nist_privkey
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:355,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:355,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:355,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:357,1
    - Dst: load_nist_pubkey
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:360,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:362,1
    - Dst: derive_secret
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:365,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:369,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 48
    argCount: 3
    argNames:
    - rng
    - ciphertext
    - '      plaintext'
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 309
    functionDepth: 3
    functionLinenumber: 309
    functionLinenumberEnd: 376
    functionName: ecdh_kem_private_key_t::decapsulate
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>::size
    - data
    - EVP_PKEY_new_raw_public_key
    - derive_secret
    - load_nist_privkey
    - load_nist_pubkey
    - EVP_PKEY_new_raw_private_key
    - ERR_peek_last_error
    - std::vector<uint8_t>::data
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ecdh_kem_private_key_t::decapsulate(rnp::RNG *                  rng,\n
      \                                   const std::vector<uint8_t> &ciphertext,\n
      \                                   std::vector<uint8_t> &      plaintext)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ec_generate_native
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:382,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:384,1
    - Dst: ecdh_kem_private_key_t
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:387,1
    - Dst: ecdh_kem_public_key_t
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:388,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - rng
    - out
    - curve
    argTypes:
    - rnp::RNG*
    - ecdh_kem_key_t*
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 390
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 390
    functionName: ec_key_t::generate_ecdh_kem_key_pair
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - ecdh_kem_public_key_t
    - ecdh_kem_private_key_t
    - ec_generate_native
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t ec_key_t::generate_ecdh_kem_key_pair(rnp::RNG *rng, ecdh_kem_key_t
      *out, pgp_curve_t curve)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new_raw_public_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:398,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:398,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:398,1
    - Dst: EVP_PKEY_new_raw_public_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:404,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:404,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:404,1
    - Dst: load_nist_pubkey
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:409,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:413,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:413,1
    - Dst: EVP_PKEY_public_check
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:417,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:417,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 18
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 420
      start: 392
    functionDepth: 3
    functionLinenumber: 392
    functionLinenumberEnd: 420
    functionName: ecdh_kem_public_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 0
    functionsReached:
    - EVP_PKEY_public_check
    - data
    - EVP_PKEY_new_raw_public_key
    - size
    - load_nist_pubkey
    - auto::get
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: bool
    signature: bool ecdh_kem_public_key_t::is_valid(rnp::RNG *rng) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:428,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:428,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:428,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:434,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:434,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:434,1
    - Dst: load_nist_privkey
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:440,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:440,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:440,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:444,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:444,1
    - Dst: EVP_PKEY_private_check
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:448,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:448,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 454
      start: 422
    functionDepth: 2
    functionLinenumber: 422
    functionLinenumberEnd: 454
    functionName: ecdh_kem_private_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 0
    functionsReached:
    - EVP_PKEY_private_check
    - data
    - size
    - auto::get
    - load_nist_privkey
    - EVP_PKEY_new_raw_private_key
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: bool
    signature: bool ecdh_kem_private_key_t::is_valid(rnp::RNG *rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - key_buf
    - key_buf_len
    - curve
    argTypes:
    - uint8_t*
    - size_t
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 461
      start: 458
    functionDepth: 0
    functionLinenumber: 458
    functionLinenumberEnd: 461
    functionName: exdsa_public_key_t::exdsa_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void exdsa_public_key_t::exdsa_public_key_t(uint8_t *key_buf, size_t
      key_buf_len, pgp_curve_t curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key
    - curve
    argTypes:
    - std::vector<uint8_t>
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 465
      start: 462
    functionDepth: 0
    functionLinenumber: 462
    functionLinenumberEnd: 465
    functionName: exdsa_public_key_t::exdsa_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void exdsa_public_key_t::exdsa_public_key_t(std::vector<uint8_t> key,
      pgp_curve_t curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - key_buf
    - key_buf_len
    - curve
    argTypes:
    - uint8_t*
    - size_t
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 472
      start: 467
    functionDepth: 0
    functionLinenumber: 467
    functionLinenumberEnd: 472
    functionName: exdsa_private_key_t::exdsa_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void exdsa_private_key_t::exdsa_private_key_t(uint8_t *   key_buf,\n
      \                                        size_t      key_buf_len,\n                                         pgp_curve_t
      curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:474,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key
    - curve
    argTypes:
    - std::vector<uint8_t>
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 476
      start: 473
    functionDepth: 1
    functionLinenumber: 473
    functionLinenumberEnd: 476
    functionName: exdsa_private_key_t::exdsa_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void exdsa_private_key_t::exdsa_private_key_t(std::vector<uint8_t>
      key, pgp_curve_t curve)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ec_generate_native
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:482,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:484,1
    - Dst: exdsa_private_key_t
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:487,1
    - Dst: exdsa_public_key_t
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:488,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 3
    argNames:
    - rng
    - out
    - curve
    argTypes:
    - rnp::RNG*
    - exdsa_key_t*
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 490
      start: 478
    functionDepth: 1
    functionLinenumber: 478
    functionLinenumberEnd: 490
    functionName: ec_key_t::generate_exdsa_key_pair
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - exdsa_private_key_t
    - exdsa_public_key_t
    - ec_generate_native
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t ec_key_t::generate_exdsa_key_pair(rnp::RNG *rng, exdsa_key_t
      *out, pgp_curve_t curve)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: ed25519_sign_native
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:502,1
    - Dst: unlock
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:502,1
    - Dst: ed448_sign_native
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:504,1
    - Dst: unlock
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:504,1
    - Dst: load_nist_privkey
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:507,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:507,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:507,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:509,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:512,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:512,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:513,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:513,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:514,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:514,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:517,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:521,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:523,1
    - Dst: EVP_PKEY_sign
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:524,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:524,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:524,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:525,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:525,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:529,1
    - Dst: d2i_ECDSA_SIG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:530,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:532,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:532,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:535,1
    - Dst: ECDSA_SIG_get0
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:536,1
    - Dst: rnp::ossl::ECDSASig::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:536,1
    - Dst: rnp::bn::cptr
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:536,1
    - Dst: cptr
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:536,1
    - Dst: std::vector<uint8_t>::resize
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:537,1
    - Dst: BN_bn2binpad
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:538,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:538,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:538,1
    - Dst: BN_bn2binpad
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:539,1
    - Dst: c_get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:539,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:539,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:540,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:545,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 38
    argCount: 5
    argNames:
    - rng
    - sig_out
    - hash
    - hash_len
    - hash_alg
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - uint8_t*
    - size_t
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 550
      start: 492
    functionDepth: 2
    functionLinenumber: 492
    functionLinenumberEnd: 550
    functionName: exdsa_private_key_t::sign
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 0
    functionsReached:
    - data
    - EVP_PKEY_sign_init
    - rnp::ossl::ECDSASig::get
    - cptr
    - std::vector<uint8_t>::data
    - size
    - std::vector<uint8_t>::resize
    - ed448_sign_native
    - c_get
    - pgp::ec::Curve::get
    - d2i_ECDSA_SIG
    - unlock
    - ed25519_sign_native
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    - RNP_LOG
    - EVP_PKEY_sign
    - load_nist_privkey
    - auto::get
    - std::vector::size
    - ERR_peek_last_error
    - auto::bytes
    - rnp::bn::cptr
    - std::vector::data
    - rnp::bn::bn
    - ECDSA_SIG_get0
    - rnp::bn::c_get
    - BN_bn2binpad
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t exdsa_private_key_t::sign(rnp::RNG *            rng,\n
      \                         std::vector<uint8_t> &sig_out,\n                          const
      uint8_t *       hash,\n                          size_t                hash_len,\n
      \                         pgp_hash_alg_t        hash_alg) const"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: ed25519_verify_native
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:561,1
    - Dst: ed448_verify_native
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:563,1
    - Dst: load_nist_pubkey
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:565,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:567,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:570,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:574,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:575,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:576,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:577,1
    - Dst: BN_bin2bn
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:581,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:581,1
    - Dst: BN_bin2bn
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:582,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:582,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:584,1
    - Dst: ECDSA_SIG_set0
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:591,1
    - Dst: rnp::ossl::ECDSASig::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:591,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:591,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:591,1
    - Dst: i2d_ECDSA_SIG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:592,1
    - Dst: rnp::ossl::ECDSASig::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:592,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:597,1
    - Dst: i2d_ECDSA_SIG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:598,1
    - Dst: rnp::ossl::ECDSASig::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:598,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:602,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:602,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:603,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:603,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:604,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:604,1
    - Dst: EVP_PKEY_verify
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:607,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:607,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:607,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 43
    argCount: 4
    argNames:
    - sig
    - hash
    - hash_len
    - hash_alg
    argTypes:
    - std::vector<uint8_t>
    - uint8_t*
    - size_t
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 613
      start: 552
    functionDepth: 3
    functionLinenumber: 552
    functionLinenumberEnd: 613
    functionName: exdsa_public_key_t::verify
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 0
    functionsReached:
    - EVP_PKEY_verify
    - EVP_PKEY_verify_init
    - rnp::ossl::ECDSASig::get
    - i2d_ECDSA_SIG
    - load_nist_pubkey
    - ed25519_verify_native
    - ECDSA_SIG_set0
    - pgp::ec::Curve::get
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    - RNP_LOG
    - std::vector<uint8_t>::size
    - rnp::bn::own
    - auto::get
    - ERR_peek_last_error
    - auto::bytes
    - std::vector::data
    - BN_bin2bn
    - ed448_verify_native
    - std::vector<uint8_t>::data
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t exdsa_public_key_t::verify(const std::vector<uint8_t>
      &sig,\n                           const uint8_t *             hash,\n                           size_t
      \                     hash_len,\n                           pgp_hash_alg_t              hash_alg)
      const"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new_raw_public_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:621,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:621,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:621,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:625,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:625,1
    - Dst: EVP_PKEY_public_check
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:626,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:626,1
    - Dst: EVP_PKEY_new_raw_public_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:630,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:630,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:630,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:634,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:634,1
    - Dst: EVP_PKEY_public_check
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:635,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:635,1
    - Dst: load_nist_pubkey
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:638,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:642,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:642,1
    - Dst: EVP_PKEY_public_check
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:643,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:643,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 21
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 646
      start: 615
    functionDepth: 3
    functionLinenumber: 615
    functionLinenumberEnd: 646
    functionName: exdsa_public_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 0
    functionsReached:
    - EVP_PKEY_public_check
    - data
    - EVP_PKEY_new_raw_public_key
    - size
    - load_nist_pubkey
    - auto::get
    - rnp::ossl::evp::PKey::get
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: bool
    signature: bool exdsa_public_key_t::is_valid(rnp::RNG *rng) const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:654,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:654,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:654,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:658,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:658,1
    - Dst: EVP_PKEY_check
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:659,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:659,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:663,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:663,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:663,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:667,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:667,1
    - Dst: EVP_PKEY_check
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:668,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:668,1
    - Dst: load_nist_privkey
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:672,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:672,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:672,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:676,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:676,1
    - Dst: EVP_PKEY_private_check
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:677,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp:677,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 22
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 683
      start: 648
    functionDepth: 2
    functionLinenumber: 648
    functionLinenumberEnd: 683
    functionName: exdsa_private_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
    functionUses: 0
    functionsReached:
    - EVP_PKEY_private_check
    - data
    - size
    - EVP_PKEY_check
    - auto::get
    - load_nist_privkey
    - EVP_PKEY_new_raw_private_key
    - rnp::ossl::evp::PKey::get
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: bool
    signature: bool exdsa_private_key_t::is_valid(rnp::RNG *rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/symmetric_common.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - crypt
    - buf
    argTypes:
    - pgp_crypt_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: pgp_cipher_cfb_resync
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_common.cpp
    functionUses: 3
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: void
    signature: void pgp_cipher_cfb_resync(pgp_crypt_t *crypt, const uint8_t *buf)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crypt
    argTypes:
    - pgp_crypt_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: pgp_cipher_block_size
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_common.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_cipher_block_size(pgp_crypt_t *crypt)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/symmetric_common.cpp:70,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/symmetric_common.cpp:77,1
    - Dst: pgp_cipher_encrypt_block
      Src: /src/rnp/src/lib/crypto/symmetric_common.cpp:83,1
    - Dst: pgp_cipher_encrypt_block
      Src: /src/rnp/src/lib/crypto/symmetric_common.cpp:92,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/symmetric_common.cpp:98,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/symmetric_common.cpp:103,1
    - Dst: pgp_cipher_encrypt_block
      Src: /src/rnp/src/lib/crypto/symmetric_common.cpp:110,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 55
    argCount: 4
    argNames:
    - crypt
    - out
    - in
    - bytes
    argTypes:
    - pgp_crypt_t*
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 122
    functionName: pgp_cipher_cfb_encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_common.cpp
    functionUses: 6
    functionsReached:
    - pgp_cipher_encrypt_block
    - memcpy
    linkageType: ''
    returnType: int
    signature: int pgp_cipher_cfb_encrypt(pgp_crypt_t *crypt, uint8_t *out, const
      uint8_t *in, size_t bytes)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/symmetric_common.cpp:151,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/symmetric_common.cpp:159,1
    - Dst: pgp_cipher_encrypt_block
      Src: /src/rnp/src/lib/crypto/symmetric_common.cpp:166,1
    - Dst: pgp_cipher_encrypt_block
      Src: /src/rnp/src/lib/crypto/symmetric_common.cpp:175,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/symmetric_common.cpp:181,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/symmetric_common.cpp:186,1
    - Dst: pgp_cipher_encrypt_block
      Src: /src/rnp/src/lib/crypto/symmetric_common.cpp:193,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 56
    argCount: 4
    argNames:
    - crypt
    - out
    - in
    - bytes
    argTypes:
    - pgp_crypt_t*
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 125
    functionDepth: 0
    functionLinenumber: 125
    functionLinenumberEnd: 206
    functionName: pgp_cipher_cfb_decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_common.cpp
    functionUses: 6
    functionsReached:
    - pgp_cipher_encrypt_block
    - memcpy
    linkageType: ''
    returnType: int
    signature: int pgp_cipher_cfb_decrypt(pgp_crypt_t *crypt, uint8_t *out, const
      uint8_t *in, size_t bytes)
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_symm_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 229
    functionName: pgp_block_size
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_common.cpp
    functionUses: 11
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_block_size(pgp_symm_alg_t alg)
  - BBCount: 14
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_symm_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 261
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 261
    functionName: pgp_key_size
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_common.cpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_key_size(pgp_symm_alg_t alg)
  - BBCount: 5
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_symm_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 274
    functionName: pgp_is_sa_aes
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_common.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool pgp_is_sa_aes(pgp_symm_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crypt
    argTypes:
    - pgp_crypt_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 281
      start: 277
    functionDepth: 0
    functionLinenumber: 277
    functionLinenumberEnd: 281
    functionName: pgp_cipher_aead_granularity
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_common.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_cipher_aead_granularity(pgp_crypt_t *crypt)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/symmetric_common.cpp:292,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/symmetric_common.cpp:302,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 19
    argCount: 4
    argNames:
    - aalg
    - iv
    - nonce
    - index
    argTypes:
    - pgp_aead_alg_t
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 311
      start: 283
    functionDepth: 0
    functionLinenumber: 283
    functionLinenumberEnd: 311
    functionName: pgp_cipher_aead_nonce
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_common.cpp
    functionUses: 5
    functionsReached:
    - memcpy
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_cipher_aead_nonce(pgp_aead_alg_t aalg, const uint8_t *iv,
      uint8_t *nonce, size_t index)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - aalg
    argTypes:
    - pgp_aead_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 326
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 326
    functionName: pgp_cipher_aead_nonce_len
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_common.cpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_cipher_aead_nonce_len(pgp_aead_alg_t aalg)
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - aalg
    argTypes:
    - pgp_aead_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 338
      start: 328
    functionDepth: 0
    functionLinenumber: 328
    functionLinenumberEnd: 338
    functionName: pgp_cipher_aead_tag_len
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_common.cpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_cipher_aead_tag_len(pgp_aead_alg_t aalg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:43,1
    - Dst: rnpffi::Key::unlock
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:45,1
    - Dst: Botan::Ed25519_PrivateKey::raw_private_key_bits
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:45,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:46,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:46,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:47,1
    - Dst: auto::begin
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:47,1
    - Dst: auto::begin
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:47,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:48,1
    - Dst: auto::begin
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:48,1
    - Dst: auto::end
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 3
    argNames:
    - rng
    - privkey
    - pubkey
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts:
    - condition: (priv_pub.size() == 2 * key_len)
      pos:
        line_end: 45
        line_start: 45
        source_file: /src/rnp/src/lib/crypto/ed25519_ed448.cpp
    constantsTouched: []
    func_position:
      end: 51
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 51
    functionName: generate_ed25519_native
    functionSourceFile: /src/rnp/src/lib/crypto/ed25519_ed448.cpp
    functionUses: 2
    functionsReached:
    - std::vector<uint8_t>
    - auto::begin
    - Botan::Ed25519_PrivateKey::raw_private_key_bits
    - auto::size
    - rnpffi::Key::unlock
    - assert
    - auto::end
    - rnp::RNG*::obj
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t generate_ed25519_native(rnp::RNG *            rng,\n
      \                       std::vector<uint8_t> &privkey,\n                        std::vector<uint8_t>
      &pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:60,1
    - Dst: std::vector<uint8_t>::begin
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:60,1
    - Dst: std::vector<uint8_t>::end
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:60,1
    - Dst: Botan::PK_Signer
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:61,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:61,1
    - Dst: auto::sign_message
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:62,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - rng
    - '      sig_out'
    - key
    - hash
    - hash_len
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: ed25519_sign_native
    functionSourceFile: /src/rnp/src/lib/crypto/ed25519_ed448.cpp
    functionUses: 4
    functionsReached:
    - auto::sign_message
    - std::vector<uint8_t>::end
    - Botan::PK_Signer
    - std::vector<uint8_t>::begin
    - Botan::secure_vector<uint8_t>
    - rnp::RNG*::obj
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ed25519_sign_native(rnp::RNG *                  rng,\n
      \                   std::vector<uint8_t> &      sig_out,\n                    const
      std::vector<uint8_t> &key,\n                    const uint8_t *             hash,\n
      \                   size_t                      hash_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Verifier
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:74,1
    - Dst: auto::verify_message
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:75,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:75,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - sig
    - key
    - hash
    - hash_len
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: ed25519_verify_native
    functionSourceFile: /src/rnp/src/lib/crypto/ed25519_ed448.cpp
    functionUses: 4
    functionsReached:
    - std::vector<uint8_t>::size
    - std::vector<uint8_t>::data
    - auto::verify_message
    - Botan::PK_Verifier
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ed25519_verify_native(const std::vector<uint8_t> &sig,\n
      \                     const std::vector<uint8_t> &key,\n                      const
      uint8_t *             hash,\n                      size_t                      hash_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed25519_PublicKey::check_key
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:85,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:85,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:91,1
    - Dst: pgp_ed25519_key_t*::priv::begin
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:91,1
    - Dst: pgp_ed25519_key_t*::priv::end
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:91,1
    - Dst: Botan::Ed25519_PrivateKey::check_key
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:92,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:92,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG*
    - pgp_ed25519_key_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 98
    functionName: ed25519_validate_key_native
    functionSourceFile: /src/rnp/src/lib/crypto/ed25519_ed448.cpp
    functionUses: 2
    functionsReached:
    - pgp_ed25519_key_t*::priv::end
    - Botan::Ed25519_PublicKey::check_key
    - pgp_ed25519_key_t*::priv::begin
    - Botan::Ed25519_PrivateKey::check_key
    - rnp::RNG*::obj
    - Botan::secure_vector<uint8_t>
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t ed25519_validate_key_native(rnp::RNG *rng, const pgp_ed25519_key_t
      *key, bool secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:106,1
    - Dst: rnpffi::Key::unlock
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:108,1
    - Dst: Botan::Ed448_PrivateKey::raw_private_key_bits
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:108,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:109,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:109,1
    - Dst: Botan::Ed448_PrivateKey::public_key_bits
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:110,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:111,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:111,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:112,1
    - Dst: auto::begin
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:112,1
    - Dst: auto::begin
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:112,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:113,1
    - Dst: auto::begin
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:113,1
    - Dst: auto::begin
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:113,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - rng
    - privkey
    - pubkey
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts:
    - condition: (priv.size() == key_len)
      pos:
        line_end: 108
        line_start: 108
        source_file: /src/rnp/src/lib/crypto/ed25519_ed448.cpp
    - condition: (pub.size() == key_len)
      pos:
        line_end: 110
        line_start: 110
        source_file: /src/rnp/src/lib/crypto/ed25519_ed448.cpp
    constantsTouched: []
    func_position:
      end: 115
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 115
    functionName: generate_ed448_native
    functionSourceFile: /src/rnp/src/lib/crypto/ed25519_ed448.cpp
    functionUses: 2
    functionsReached:
    - std::vector<uint8_t>
    - auto::begin
    - auto::size
    - rnpffi::Key::unlock
    - Botan::Ed448_PrivateKey::public_key_bits
    - Botan::Ed448_PrivateKey::raw_private_key_bits
    - assert
    - rnp::RNG*::obj
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t generate_ed448_native(rnp::RNG *            rng,\n                      std::vector<uint8_t>
      &privkey,\n                      std::vector<uint8_t> &pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:124,1
    - Dst: std::vector<uint8_t>::begin
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:124,1
    - Dst: std::vector<uint8_t>::end
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:124,1
    - Dst: Botan::PK_Signer
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:125,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:125,1
    - Dst: auto::sign_message
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:126,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 5
    argNames:
    - rng
    - '      sig_out'
    - key
    - hash
    - hash_len
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 128
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 128
    functionName: ed448_sign_native
    functionSourceFile: /src/rnp/src/lib/crypto/ed25519_ed448.cpp
    functionUses: 4
    functionsReached:
    - auto::sign_message
    - std::vector<uint8_t>::end
    - Botan::PK_Signer
    - std::vector<uint8_t>::begin
    - Botan::secure_vector<uint8_t>
    - rnp::RNG*::obj
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ed448_sign_native(rnp::RNG *                  rng,\n
      \                 std::vector<uint8_t> &      sig_out,\n                  const
      std::vector<uint8_t> &key,\n                  const uint8_t *             hash,\n
      \                 size_t                      hash_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Botan::PK_Verifier
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:137,1
    - Dst: auto::verify_message
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:138,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:138,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:138,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - sig
    - key
    - hash
    - hash_len
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 130
    functionDepth: 1
    functionLinenumber: 130
    functionLinenumberEnd: 142
    functionName: ed448_verify_native
    functionSourceFile: /src/rnp/src/lib/crypto/ed25519_ed448.cpp
    functionUses: 4
    functionsReached:
    - std::vector<uint8_t>::size
    - std::vector<uint8_t>::data
    - auto::verify_message
    - Botan::PK_Verifier
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ed448_verify_native(const std::vector<uint8_t> &sig,\n
      \                   const std::vector<uint8_t> &key,\n                    const
      uint8_t *             hash,\n                    size_t                      hash_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Ed448_PublicKey::check_key
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:148,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:148,1
    - Dst: Botan::secure_vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:153,1
    - Dst: pgp_ed448_key_t*::priv::begin
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:153,1
    - Dst: pgp_ed448_key_t*::priv::end
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:153,1
    - Dst: Botan::Ed448_PrivateKey::check_key
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:154,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/ed25519_ed448.cpp:154,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG*
    - pgp_ed448_key_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 144
    functionDepth: 1
    functionLinenumber: 144
    functionLinenumberEnd: 159
    functionName: ed448_validate_key_native
    functionSourceFile: /src/rnp/src/lib/crypto/ed25519_ed448.cpp
    functionUses: 2
    functionsReached:
    - Botan::Ed448_PrivateKey::check_key
    - rnp::RNG*::obj
    - pgp_ed448_key_t*::priv::end
    - Botan::Ed448_PublicKey::check_key
    - pgp_ed448_key_t*::priv::begin
    - Botan::secure_vector<uint8_t>
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t ed448_validate_key_native(rnp::RNG *rng, const pgp_ed448_key_t
      *key, bool secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_scrub_mem
      Src: /src/rnp/src/lib/crypto/mem.cpp:36,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - vp
    - size
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 37
    functionName: secure_clear
    functionSourceFile: /src/rnp/src/lib/crypto/mem.cpp
    functionUses: 19
    functionsReached:
    - botan_scrub_mem
    linkageType: ''
    returnType: void
    signature: void secure_clear(void *vp, size_t size)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: botan_hex_encode
      Src: /src/rnp/src/lib/crypto/mem.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - buf
    - buf_len
    - hex
    - hex_len
    - format
    argTypes:
    - uint8_t*
    - size_t
    - char*
    - size_t
    - HexFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 51
    functionName: rnp::hex_encode
    functionSourceFile: /src/rnp/src/lib/crypto/mem.cpp
    functionUses: 7
    functionsReached:
    - botan_hex_encode
    linkageType: ''
    returnType: bool
    signature: bool hex_encode(const uint8_t *buf, size_t buf_len, char *hex, size_t
      hex_len, HexFormat format)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/rnp/src/lib/crypto/mem.cpp:56,1
    - Dst: botan_hex_decode
      Src: /src/rnp/src/lib/crypto/mem.cpp:63,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/mem.cpp:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - hex
    - buf
    - buf_len
    argTypes:
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 68
    functionName: rnp::hex_decode
    functionSourceFile: /src/rnp/src/lib/crypto/mem.cpp
    functionUses: 8
    functionsReached:
    - RNP_LOG
    - botan_hex_decode
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t hex_decode(const char *hex, uint8_t *buf, size_t buf_len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: botan_hex_encode
      Src: /src/rnp/src/lib/crypto/mem.cpp:50,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 5
    argNames:
    - buf
    - buf_len
    - hex
    - hex_len
    - format
    argTypes:
    - uint8_t*
    - size_t
    - char*
    - size_t
    - HexFormat
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 51
    functionName: rnp::hex_encode
    functionSourceFile: /src/rnp/src/lib/crypto/mem.cpp
    functionUses: 7
    functionsReached:
    - botan_hex_encode
    linkageType: ''
    returnType: bool
    signature: bool hex_encode(const uint8_t *buf, size_t buf_len, char *hex, size_t
      hex_len, HexFormat format)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strlen
      Src: /src/rnp/src/lib/crypto/mem.cpp:56,1
    - Dst: botan_hex_decode
      Src: /src/rnp/src/lib/crypto/mem.cpp:63,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/mem.cpp:64,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 10
    argCount: 3
    argNames:
    - hex
    - buf
    - buf_len
    argTypes:
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 68
    functionName: rnp::hex_decode
    functionSourceFile: /src/rnp/src/lib/crypto/mem.cpp
    functionUses: 8
    functionsReached:
    - RNP_LOG
    - botan_hex_decode
    - strlen
    linkageType: ''
    returnType: size_t
    signature: size_t hex_decode(const char *hex, uint8_t *buf, size_t buf_len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - dilithium_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: dilithium_alg_name
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      dilithium_alg_name(dilithium_parameter_e param)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:57,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:58,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:58,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:58,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:61,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:61,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:66,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:66,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:67,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:67,1
    - Dst: rnp::ossl::Param::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:67,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:70,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - pub
    - param
    argTypes:
    - std::vector<uint8_t>
    - dilithium_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 71
    functionName: load_dilithium_pubkey
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_ossl.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - rnp::ossl::evp::PKey
    - rnp::ossl::ParamBld::get
    - EVP_PKEY_fromdata
    - OSSL_PARAM_BLD_push_octet_string
    - EVP_PKEY_fromdata_init
    - rnp::ossl::Param::get
    - OSSL_PARAM_BLD_to_param
    - std::vector<uint8_t>::data
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_dilithium_pubkey(const std::vector<uint8_t>
      &pub, dilithium_parameter_e param)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:82,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:83,1
    - Dst: rnp::SecureBytes::data
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:83,1
    - Dst: rnp::SecureBytes::size
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:83,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:86,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:86,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:91,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:91,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:92,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:92,1
    - Dst: rnp::ossl::Param::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:92,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:95,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - seed
    - param
    argTypes:
    - rnp::SecureBytes
    - dilithium_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 96
    functionName: load_dilithium_privkey
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::ossl::evp::PKey
    - rnp::ossl::ParamBld::get
    - EVP_PKEY_fromdata
    - OSSL_PARAM_BLD_push_octet_string
    - rnp::SecureBytes::data
    - rnp::SecureBytes::size
    - EVP_PKEY_fromdata_init
    - rnp::ossl::Param::get
    - OSSL_PARAM_BLD_to_param
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_dilithium_privkey(const rnp::SecureBytes
      &seed, dilithium_parameter_e param)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - param
    argTypes:
    - dilithium_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 46
    functionName: dilithium_alg_name
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      dilithium_alg_name(dilithium_parameter_e param)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:57,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:58,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:58,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:58,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:61,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:61,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:66,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:66,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:67,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:67,1
    - Dst: rnp::ossl::Param::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:67,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:70,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - pub
    - param
    argTypes:
    - std::vector<uint8_t>
    - dilithium_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 48
    functionDepth: 1
    functionLinenumber: 48
    functionLinenumberEnd: 71
    functionName: load_dilithium_pubkey
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_ossl.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - rnp::ossl::evp::PKey
    - rnp::ossl::ParamBld::get
    - EVP_PKEY_fromdata
    - OSSL_PARAM_BLD_push_octet_string
    - EVP_PKEY_fromdata_init
    - rnp::ossl::Param::get
    - OSSL_PARAM_BLD_to_param
    - std::vector<uint8_t>::data
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_dilithium_pubkey(const std::vector<uint8_t>
      &pub, dilithium_parameter_e param)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:82,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:83,1
    - Dst: rnp::SecureBytes::data
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:83,1
    - Dst: rnp::SecureBytes::size
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:83,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:86,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:86,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:91,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:91,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:92,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:92,1
    - Dst: rnp::ossl::Param::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:92,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:95,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - seed
    - param
    argTypes:
    - rnp::SecureBytes
    - dilithium_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 96
    functionName: load_dilithium_privkey
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::ossl::evp::PKey
    - rnp::ossl::ParamBld::get
    - EVP_PKEY_fromdata
    - OSSL_PARAM_BLD_push_octet_string
    - rnp::SecureBytes::data
    - rnp::SecureBytes::size
    - EVP_PKEY_fromdata_init
    - rnp::ossl::Param::get
    - OSSL_PARAM_BLD_to_param
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_dilithium_privkey(const rnp::SecureBytes
      &seed, dilithium_parameter_e param)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:105,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:105,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:106,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:106,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:107,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:110,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:110,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:111,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:111,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:112,1
    - Dst: EVP_PKEY_get_raw_public_key
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:117,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:117,1
    - Dst: EVP_PKEY_get_raw_public_key
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:119,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:119,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:119,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:120,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:120,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:121,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:125,1
    - Dst: EVP_PKEY_get_params
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:128,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:128,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:129,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:129,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:130,1
    - Dst: std::make_pair
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:135,1
    - Dst: pgp_dilithium_public_key_t
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:135,1
    - Dst: pgp_dilithium_private_key_t
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:136,1
    - Dst: rnp::secure_wipe
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:137,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - rng
    - dilithium_param
    argTypes:
    - rnp::RNG*
    - dilithium_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 139
    functionName: dilithium_generate_keypair
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_keygen
    - EVP_PKEY_get_raw_public_key
    - rnp::secure_wipe
    - pgp_dilithium_public_key_t
    - rnp::ossl::latest_err
    - OSSL_PARAM_construct_octet_string
    - EVP_PKEY_get_params
    - pgp_dilithium_private_key_t
    - rnp::ossl::evp::PKey::get
    - std::make_pair
    - rnp::rnp_exception::rnp_exception
    - EVP_PKEY_keygen_init
    - rnp::ossl::evp::PKeyCtx::get
    - std::vector::data
    linkageType: ''
    returnType: std::pair<pgp_dilithium_public_key_t, pgp_dilithium_private_key_t>
    signature: std::pair<pgp_dilithium_public_key_t, pgp_dilithium_private_key_t>
      dilithium_generate_keypair(rnp::RNG *rng, dilithium_parameter_e dilithium_param)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:144,1
    - Dst: load_dilithium_privkey
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:145,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:147,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:147,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:148,1
    - Dst: EVP_DigestSignInit_ex
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:152,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:152,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:152,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:153,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:153,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:154,1
    - Dst: EVP_DigestSign
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:157,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:157,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:158,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:158,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:159,1
    - Dst: EVP_DigestSign
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:162,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:162,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:162,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:163,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:163,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:164,1
    - Dst: std::vector::resize
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:166,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 3
    argNames:
    - rng
    - msg
    - msg_len
    argTypes:
    - rnp::RNG*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (is_initialized_)
      pos:
        line_end: 143
        line_start: 143
        source_file: /src/rnp/src/lib/crypto/dilithium_ossl.cpp
    constantsTouched: []
    func_position:
      end: 168
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 168
    functionName: pgp_dilithium_private_key_t::sign
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::ossl::evp::MDCtx::get
    - EVP_DigestSignInit_ex
    - rnp::ossl::latest_err
    - EVP_DigestSign
    - assert
    - load_dilithium_privkey
    - rnp::rnp_exception::rnp_exception
    - auto::get
    - std::vector::resize
    - std::vector::data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pgp_dilithium_private_key_t::sign(rnp::RNG *rng,
      const uint8_t *msg, size_t msg_len) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:176,1
    - Dst: load_dilithium_pubkey
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:177,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:179,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:179,1
    - Dst: EVP_DigestVerifyInit_ex
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:184,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:184,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:184,1
    - Dst: EVP_DigestVerify
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:187,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:187,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 4
    argNames:
    - msg
    - msg_len
    - signature
    - signature_len
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (is_initialized_)
      pos:
        line_end: 175
        line_start: 175
        source_file: /src/rnp/src/lib/crypto/dilithium_ossl.cpp
    constantsTouched: []
    func_position:
      end: 188
      start: 170
    functionDepth: 2
    functionLinenumber: 170
    functionLinenumberEnd: 188
    functionName: pgp_dilithium_public_key_t::verify_signature
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - load_dilithium_pubkey
    - rnp::ossl::evp::MDCtx::get
    - EVP_DigestVerifyInit_ex
    - rnp::ossl::latest_err
    - assert
    - auto::get
    - EVP_DigestVerify
    linkageType: ''
    returnType: bool
    signature: "bool pgp_dilithium_public_key_t::verify_signature(const uint8_t *msg,\n
      \                                            size_t         msg_len,\n                                             const
      uint8_t *signature,\n                                             size_t         signature_len)
      const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load_dilithium_pubkey
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:196,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 190
    functionDepth: 2
    functionLinenumber: 190
    functionLinenumberEnd: 197
    functionName: pgp_dilithium_public_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_ossl.cpp
    functionUses: 0
    functionsReached:
    - load_dilithium_pubkey
    linkageType: ''
    returnType: bool
    signature: bool pgp_dilithium_public_key_t::is_valid(rnp::RNG *rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load_dilithium_privkey
      Src: /src/rnp/src/lib/crypto/dilithium_ossl.cpp:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 199
    functionDepth: 2
    functionLinenumber: 199
    functionLinenumberEnd: 206
    functionName: pgp_dilithium_private_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_ossl.cpp
    functionUses: 0
    functionsReached:
    - load_dilithium_privkey
    linkageType: ''
    returnType: bool
    signature: bool pgp_dilithium_private_key_t::is_valid(rnp::RNG *rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hash_alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: rnp::Hkdf_Botan::Hkdf_Botan
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf_botan.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hkdf_Botan::Hkdf_Botan(pgp_hash_alg_t hash_alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Hkdf_Botan>
      Src: /src/rnp/src/lib/crypto/hkdf_botan.cpp:43,1
    - Dst: Hkdf_Botan::Hkdf_Botan
      Src: /src/rnp/src/lib/crypto/hkdf_botan.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: rnp::Hkdf_Botan::create
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf_botan.cpp
    functionUses: 0
    functionsReached:
    - Hkdf_Botan::Hkdf_Botan
    - std::unique_ptr<Hkdf_Botan>
    linkageType: ''
    returnType: std::unique_ptr<Hkdf_Botan>
    signature: std::unique_ptr<Hkdf_Botan> Hkdf_Botan::create(pgp_hash_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string
      Src: /src/rnp/src/lib/crypto/hkdf_botan.cpp:49,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/hkdf_botan.cpp:49,1
    - Dst: rnp::Hkdf::alg
      Src: /src/rnp/src/lib/crypto/hkdf_botan.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: rnp::Hkdf_Botan::alg
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf_botan.cpp
    functionUses: 0
    functionsReached:
    - rnp::Hkdf::alg
    - string
    - rnp::Hash_Botan::name_backend
    linkageType: ''
    returnType: std::string
    signature: std::string Hkdf_Botan::alg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KDF::create_or_throw
      Src: /src/rnp/src/lib/crypto/hkdf_botan.cpp:62,1
    - Dst: rnp::Hkdf_Botan::alg
      Src: /src/rnp/src/lib/crypto/hkdf_botan.cpp:62,1
    - Dst: std::unique_ptr::derive_key
      Src: /src/rnp/src/lib/crypto/hkdf_botan.cpp:65,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/hkdf_botan.cpp:67,1
    - Dst: rnpffi::Key::unlock
      Src: /src/rnp/src/lib/crypto/hkdf_botan.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - salt
    - salt_len
    - ikm
    - ikm_len
    - info
    - info_len
    - output_buf
    - output_length
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 68
    functionName: rnp::Hkdf_Botan::extract_expand
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf_botan.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - Botan::KDF::create_or_throw
    - rnpffi::Key::unlock
    - std::unique_ptr::derive_key
    - rnp::Hkdf_Botan::alg
    linkageType: ''
    returnType: void
    signature: "void Hkdf_Botan::extract_expand(const uint8_t *salt,\n                           size_t
      \        salt_len,\n                           const uint8_t *ikm,\n                           size_t
      \        ikm_len,\n                           const uint8_t *info,\n                           size_t
      \        info_len,\n                           uint8_t *      output_buf,\n
      \                          size_t         output_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Hkdf_Botan::~Hkdf_Botan()
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf_botan.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hkdf_Botan::~Hkdf_Botan()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hash_alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 36
    functionDepth: 0
    functionLinenumber: 36
    functionLinenumberEnd: 38
    functionName: rnp::Hkdf_Botan::Hkdf_Botan
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf_botan.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hkdf_Botan::Hkdf_Botan(pgp_hash_alg_t hash_alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Hkdf_Botan>
      Src: /src/rnp/src/lib/crypto/hkdf_botan.cpp:43,1
    - Dst: Hkdf_Botan::Hkdf_Botan
      Src: /src/rnp/src/lib/crypto/hkdf_botan.cpp:43,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: rnp::Hkdf_Botan::create
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf_botan.cpp
    functionUses: 0
    functionsReached:
    - Hkdf_Botan::Hkdf_Botan
    - std::unique_ptr<Hkdf_Botan>
    linkageType: ''
    returnType: std::unique_ptr<Hkdf_Botan>
    signature: std::unique_ptr<Hkdf_Botan> Hkdf_Botan::create(pgp_hash_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string
      Src: /src/rnp/src/lib/crypto/hkdf_botan.cpp:49,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/hkdf_botan.cpp:49,1
    - Dst: rnp::Hkdf::alg
      Src: /src/rnp/src/lib/crypto/hkdf_botan.cpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 50
    functionName: rnp::Hkdf_Botan::alg
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf_botan.cpp
    functionUses: 1
    functionsReached:
    - rnp::Hkdf::alg
    - string
    - rnp::Hash_Botan::name_backend
    linkageType: ''
    returnType: std::string
    signature: std::string Hkdf_Botan::alg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::KDF::create_or_throw
      Src: /src/rnp/src/lib/crypto/hkdf_botan.cpp:62,1
    - Dst: rnp::Hkdf_Botan::alg
      Src: /src/rnp/src/lib/crypto/hkdf_botan.cpp:62,1
    - Dst: std::unique_ptr::derive_key
      Src: /src/rnp/src/lib/crypto/hkdf_botan.cpp:65,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/hkdf_botan.cpp:67,1
    - Dst: rnpffi::Key::unlock
      Src: /src/rnp/src/lib/crypto/hkdf_botan.cpp:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 8
    argNames:
    - salt
    - salt_len
    - ikm
    - ikm_len
    - info
    - info_len
    - output_buf
    - output_length
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 52
    functionDepth: 2
    functionLinenumber: 52
    functionLinenumberEnd: 68
    functionName: rnp::Hkdf_Botan::extract_expand
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf_botan.cpp
    functionUses: 0
    functionsReached:
    - memcpy
    - Botan::KDF::create_or_throw
    - rnpffi::Key::unlock
    - std::unique_ptr::derive_key
    - rnp::Hkdf_Botan::alg
    linkageType: ''
    returnType: void
    signature: "void Hkdf_Botan::extract_expand(const uint8_t *salt,\n                           size_t
      \        salt_len,\n                           const uint8_t *ikm,\n                           size_t
      \        ikm_len,\n                           const uint8_t *info,\n                           size_t
      \        info_len,\n                           uint8_t *      output_buf,\n
      \                          size_t         output_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Hkdf_Botan::~Hkdf_Botan()
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf_botan.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hkdf_Botan::~Hkdf_Botan()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: pgp::ec::is_raw_key
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_raw_key(const pgp_curve_t curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Key::generate
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: pgp::ec::Key::generate_x25519
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 0
    functionsReached:
    - pgp::ec::Key::generate
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate_x25519(rnp::RNG &rng)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::alg_allows
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:63,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:66,1
    - Dst: OBJ_sn2nid
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:70,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:73,1
    - Dst: pgp::ec::is_raw_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:77,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:78,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:81,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:81,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:85,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:85,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:87,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:87,1
    - Dst: EVP_PKEY_CTX_set_ec_paramgen_curve_nid
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:91,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:91,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:93,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:93,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:98,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:98,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:99,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:99,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:101,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - alg_id
    - curve
    argTypes:
    - pgp_pubkey_alg_t
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 102
    functionName: pgp::ec::generate_pkey
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::ossl::evp::PKey
    - EVP_PKEY_keygen
    - EVP_PKEY_keygen_init
    - pgp::ec::Curve::alg_allows
    - pgp::ec::Curve::get
    - OBJ_sn2nid
    - EVP_PKEY_CTX_new_id
    - ERR_peek_last_error
    - pgp::ec::is_raw_key
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_set_ec_paramgen_curve_nid
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey generate_pkey(const pgp_pubkey_alg_t alg_id, const
      pgp_curve_t curve)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:109,1
    - Dst: EVP_PKEY_get_raw_private_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:110,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:110,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:110,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:112,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:112,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:116,1
    - Dst: std::vector::resize
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:117,1
    - Dst: EVP_PKEY_id
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:118,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:118,1
    - Dst: std::reverse
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:120,1
    - Dst: std::vector::begin
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:120,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:120,1
    - Dst: ec::Key::x::assign
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:122,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:122,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - rnp::ossl::evp::PKey
    - ec::Key
    assertStmts:
    - condition: (rlen == 32)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/rnp/src/lib/crypto/ec_ossl.cpp
    constantsTouched: []
    func_position:
      end: 124
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 124
    functionName: pgp::ec::write_raw_seckey
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - ERR_peek_last_error
    - EVP_PKEY_id
    - assert
    - rnp::ossl::evp::PKey::get
    - std::vector::begin
    - std::vector::end
    - std::reverse
    - ec::Key::x::assign
    - std::vector::size
    - std::vector::resize
    - std::vector::data
    - EVP_PKEY_get_raw_private_key
    linkageType: ''
    returnType: bool
    signature: bool write_raw_seckey(const rnp::ossl::evp::PKey &pkey, ec::Key &key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:130,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:131,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:131,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:131,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:131,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:133,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:133,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:136,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:136,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - rnp::ossl::evp::PKey
    - mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 146
    functionName: pgp::ec::write_seckey
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - ERR_peek_last_error
    - EVP_PKEY_get_bn_param
    - rnp::bn::ptr
    - rnp::ossl::evp::PKey::get
    - rnp::bn::mpi
    - EVP_PKEY_get0_EC_KEY
    linkageType: ''
    returnType: bool
    signature: bool write_seckey(rnp::ossl::evp::PKey &pkey, mpi &key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: generate_pkey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:151,1
    - Dst: is_raw_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:155,1
    - Dst: write_pubkey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:156,1
    - Dst: write_raw_seckey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:156,1
    - Dst: write_pubkey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:161,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:163,1
    - Dst: write_seckey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:167,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:169,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - rng
    - alg_id
    - curve
    argTypes:
    - rnp::RNG
    - pgp_pubkey_alg_t
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 174
    functionName: pgp::ec::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - write_pubkey
    - generate_pkey
    - is_raw_key
    - write_seckey
    - write_raw_seckey
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, const pgp_pubkey_alg_t alg_id,
      const pgp_curve_t curve)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:181,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:182,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:182,1
    - Dst: EVP_PKEY_new_raw_public_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:186,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:186,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:188,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:188,1
    - Dst: mpi*::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:195,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:196,1
    - Dst: mpi*::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:200,1
    - Dst: mpi*::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:200,1
    - Dst: mpi*::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:200,1
    - Dst: std::reverse
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:201,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:201,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:201,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:202,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:202,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:202,1
    - Dst: mpi*::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:204,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:205,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:210,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:210,1
    - Dst: mpi*::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:210,1
    - Dst: mpi*::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:210,1
    - Dst: mpi*::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:210,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:211,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:211,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:214,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:214,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:216,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - keyp
    - keyx
    - nid
    argTypes:
    - mpi
    - mpi*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 217
    functionName: pgp::ec::load_raw_key
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::ossl::evp::PKey
    - rnp::secure_bytes::size
    - memcpy
    - rnp::secure_array::data
    - EVP_PKEY_new_raw_public_key
    - mpi*::data
    - rnp::secure_bytes::begin
    - mpi*::size
    - std::reverse
    - EVP_PKEY_new_raw_private_key
    - ERR_peek_last_error
    - rnp::secure_bytes::end
    - rnp::secure_bytes::data
    - mpi::size
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_raw_key(const mpi &keyp, const mpi *keyx,
      int nid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_utf8_string
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:228,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:228,1
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:229,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:230,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:230,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:230,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:231,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:231,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:231,1
    - Dst: rnp::ossl::Param
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:234,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:234,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - p
    - x
    - curve
    argTypes:
    - mpi
    - mpi*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 235
    functionName: pgp::ec::build_params
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::ossl::Param
    - rnp::ossl::ParamBld::get
    - OSSL_PARAM_BLD_push_BN
    - OSSL_PARAM_BLD_push_octet_string
    - OSSL_PARAM_BLD_push_utf8_string
    - mpi::data
    - OSSL_PARAM_BLD_to_param
    - rnp::bn::get
    - mpi::size
    linkageType: ''
    returnType: rnp::ossl::Param
    signature: rnp::ossl::Param build_params(const mpi &p, const mpi *x, const char
      *curve)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::build_params
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:240,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:243,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:250,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:256,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:256,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:257,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:257,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:257,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:259,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - keyp
    - keyx
    - curv_desc
    argTypes:
    - mpi
    - mpi*
    - Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 265
    functionName: pgp::ec::load_key_openssl3
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::ec::build_params
    - rnp::ossl::evp::PKey
    - EVP_PKEY_fromdata
    - EVP_PKEY_fromdata_init
    - auto::get
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_key_openssl3(const mpi &keyp, const mpi *keyx,
      const Curve &curv_desc)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:271,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:273,1
    - Dst: pgp::ec::Curve::is_supported
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:276,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:277,1
    - Dst: OBJ_sn2nid
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:280,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:283,1
    - Dst: pgp::ec::is_raw_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:288,1
    - Dst: pgp::ec::load_raw_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:289,1
    - Dst: pgp::ec::load_key_openssl3
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:292,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:297,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:299,1
    - Dst: EC_KEY_get0_group
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:304,1
    - Dst: rnp::ossl::ECKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:304,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:308,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:308,1
    - Dst: EC_POINT_oct2point
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:312,1
    - Dst: rnp::ossl::ECPoint::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:312,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:312,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:312,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:314,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:314,1
    - Dst: EC_KEY_set_public_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:318,1
    - Dst: rnp::ossl::ECKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:318,1
    - Dst: rnp::ossl::ECPoint::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:318,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:320,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:320,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:328,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:328,1
    - Dst: EVP_PKEY_set1_EC_KEY
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:333,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:333,1
    - Dst: rnp::ossl::ECKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:333,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:344,1
    - Dst: EC_KEY_set_private_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:348,1
    - Dst: rnp::ossl::ECKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:348,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:348,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:350,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:350,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 3
    argNames:
    - keyp
    - keyx
    - curve
    argTypes:
    - mpi
    - mpi*
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 356
    functionName: pgp::ec::load_key
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 9
    functionsReached:
    - rnp::ossl::latest_err
    - OBJ_sn2nid
    - mpi::data
    - mpi::size
    - EC_KEY_set_private_key
    - pgp::ec::Curve::is_supported
    - EC_POINT_oct2point
    - pgp::ec::Curve::get
    - rnp::ossl::evp::PKey::get
    - pgp::ec::is_raw_key
    - rnp::bn::get
    - RNP_LOG
    - pgp::ec::load_raw_key
    - pgp::ec::load_key_openssl3
    - rnp::ossl::ECKey::get
    - ERR_peek_last_error
    - EC_KEY_set_public_key
    - EVP_PKEY_set1_EC_KEY
    - rnp::ossl::ECPoint::get
    - EC_KEY_get0_group
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_key(const mpi &keyp, const mpi *keyx, pgp_curve_t
      curve)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Key::p::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:364,1
    - Dst: Key::x::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:367,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:372,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:376,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:376,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:379,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:379,1
    - Dst: EVP_PKEY_check
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:383,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:383,1
    - Dst: EVP_PKEY_public_check
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:383,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:383,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:386,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:387,1
    - Dst: ERR_reason_error_string
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:387,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - key
    - secret
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 358
    functionDepth: 4
    functionLinenumber: 358
    functionLinenumberEnd: 394
    functionName: pgp::ec::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_public_check
    - Key::x::size
    - pgp::ec::load_key
    - Key::p::size
    - EVP_PKEY_check
    - ERR_reason_error_string
    - auto::get
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(const Key &key, bool secret)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::is_raw_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:399,1
    - Dst: mpi::resize
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:401,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:402,1
    - Dst: EVP_PKEY_get_raw_public_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:403,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:403,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:405,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:405,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:409,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:413,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:417,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:419,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:422,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:422,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:422,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:423,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:423,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:423,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:427,1
    - Dst: bytes
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:428,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:429,1
    - Dst: mpi::resize
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:430,1
    - Dst: rnp::bn::bin
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:432,1
    - Dst: bin
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:432,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:434,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:434,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:437,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:437,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:441,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:444,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:444,1
    - Dst: mpi::resize
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:449,1
    - Dst: EC_POINT_point2oct
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:450,1
    - Dst: EC_KEY_get0_group
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:451,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:451,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:451,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:453,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:453,1
    - Dst: mpi::resize
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:455,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - pkey
    - mpi
    - curve
    argTypes:
    - rnp::ossl::evp::PKey
    - mpi
    - pgp_curve_t
    assertStmts:
    - condition: (mlen == 32)
      pos:
        line_end: 408
        line_start: 408
        source_file: /src/rnp/src/lib/crypto/ec_ossl.cpp
    - condition: ((xlen <= flen) && (ylen <= flen))
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/rnp/src/lib/crypto/ec_ossl.cpp
    constantsTouched: []
    func_position:
      end: 458
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 458
    functionName: pgp::ec::write_pubkey
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 2
    functionsReached:
    - EVP_PKEY_get_raw_public_key
    - mpi::data
    - mpi::size
    - mpi::resize
    - rnp::bn::bin
    - EC_KEY_get0_public_key
    - EVP_PKEY_get_bn_param
    - pgp::ec::Curve::get
    - rnp::ossl::evp::PKey::get
    - pgp::ec::is_raw_key
    - rnp::bn::bytes
    - RNP_LOG
    - EC_POINT_point2oct
    - bytes
    - assert
    - ERR_peek_last_error
    - auto::bytes
    - rnp::bn::bn
    - rnp::bn::ptr
    - ptr
    - EC_KEY_get0_group
    - bin
    - EVP_PKEY_get0_EC_KEY
    linkageType: ''
    returnType: bool
    signature: bool write_pubkey(const rnp::ossl::evp::PKey &pkey, mpi &mpi, pgp_curve_t
      curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: pgp::ec::is_raw_key
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_raw_key(const pgp_curve_t curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Key::generate
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: pgp::ec::Key::generate_x25519
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 0
    functionsReached:
    - pgp::ec::Key::generate
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate_x25519(rnp::RNG &rng)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::alg_allows
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:63,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:66,1
    - Dst: OBJ_sn2nid
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:70,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:73,1
    - Dst: pgp::ec::is_raw_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:77,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:78,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:81,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:81,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:85,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:85,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:87,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:87,1
    - Dst: EVP_PKEY_CTX_set_ec_paramgen_curve_nid
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:91,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:91,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:93,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:93,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:98,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:98,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:99,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:99,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:101,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - alg_id
    - curve
    argTypes:
    - pgp_pubkey_alg_t
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 102
    functionName: pgp::ec::generate_pkey
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::ossl::evp::PKey
    - EVP_PKEY_keygen
    - EVP_PKEY_keygen_init
    - pgp::ec::Curve::alg_allows
    - pgp::ec::Curve::get
    - OBJ_sn2nid
    - EVP_PKEY_CTX_new_id
    - ERR_peek_last_error
    - pgp::ec::is_raw_key
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_set_ec_paramgen_curve_nid
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey generate_pkey(const pgp_pubkey_alg_t alg_id, const
      pgp_curve_t curve)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:109,1
    - Dst: EVP_PKEY_get_raw_private_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:110,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:110,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:110,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:112,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:112,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:116,1
    - Dst: std::vector::resize
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:117,1
    - Dst: EVP_PKEY_id
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:118,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:118,1
    - Dst: std::reverse
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:120,1
    - Dst: std::vector::begin
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:120,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:120,1
    - Dst: ec::Key::x::assign
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:122,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:122,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - rnp::ossl::evp::PKey
    - ec::Key
    assertStmts:
    - condition: (rlen == 32)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/rnp/src/lib/crypto/ec_ossl.cpp
    constantsTouched: []
    func_position:
      end: 124
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 124
    functionName: pgp::ec::write_raw_seckey
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - ERR_peek_last_error
    - EVP_PKEY_id
    - assert
    - rnp::ossl::evp::PKey::get
    - std::vector::begin
    - std::vector::end
    - std::reverse
    - ec::Key::x::assign
    - std::vector::size
    - std::vector::resize
    - std::vector::data
    - EVP_PKEY_get_raw_private_key
    linkageType: ''
    returnType: bool
    signature: bool write_raw_seckey(const rnp::ossl::evp::PKey &pkey, ec::Key &key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:130,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:131,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:131,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:131,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:131,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:133,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:133,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:136,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:136,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - rnp::ossl::evp::PKey
    - mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 146
    functionName: pgp::ec::write_seckey
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - ERR_peek_last_error
    - EVP_PKEY_get_bn_param
    - rnp::bn::ptr
    - rnp::ossl::evp::PKey::get
    - rnp::bn::mpi
    - EVP_PKEY_get0_EC_KEY
    linkageType: ''
    returnType: bool
    signature: bool write_seckey(rnp::ossl::evp::PKey &pkey, mpi &key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: generate_pkey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:151,1
    - Dst: is_raw_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:155,1
    - Dst: write_pubkey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:156,1
    - Dst: write_raw_seckey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:156,1
    - Dst: write_pubkey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:161,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:163,1
    - Dst: write_seckey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:167,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:169,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - rng
    - alg_id
    - curve
    argTypes:
    - rnp::RNG
    - pgp_pubkey_alg_t
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 174
    functionName: pgp::ec::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - write_pubkey
    - generate_pkey
    - is_raw_key
    - write_seckey
    - write_raw_seckey
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, const pgp_pubkey_alg_t alg_id,
      const pgp_curve_t curve)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:181,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:182,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:182,1
    - Dst: EVP_PKEY_new_raw_public_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:186,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:186,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:188,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:188,1
    - Dst: mpi*::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:195,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:196,1
    - Dst: mpi*::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:200,1
    - Dst: mpi*::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:200,1
    - Dst: mpi*::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:200,1
    - Dst: std::reverse
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:201,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:201,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:201,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:202,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:202,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:202,1
    - Dst: mpi*::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:204,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:205,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:210,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:210,1
    - Dst: mpi*::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:210,1
    - Dst: mpi*::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:210,1
    - Dst: mpi*::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:210,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:211,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:211,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:214,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:214,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:216,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - keyp
    - keyx
    - nid
    argTypes:
    - mpi
    - mpi*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 217
    functionName: pgp::ec::load_raw_key
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::ossl::evp::PKey
    - rnp::secure_bytes::size
    - memcpy
    - rnp::secure_array::data
    - EVP_PKEY_new_raw_public_key
    - mpi*::data
    - rnp::secure_bytes::begin
    - mpi*::size
    - std::reverse
    - EVP_PKEY_new_raw_private_key
    - ERR_peek_last_error
    - rnp::secure_bytes::end
    - rnp::secure_bytes::data
    - mpi::size
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_raw_key(const mpi &keyp, const mpi *keyx,
      int nid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_utf8_string
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:228,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:228,1
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:229,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:230,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:230,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:230,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:231,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:231,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:231,1
    - Dst: rnp::ossl::Param
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:234,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:234,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - p
    - x
    - curve
    argTypes:
    - mpi
    - mpi*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 235
    functionName: pgp::ec::build_params
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 1
    functionsReached:
    - rnp::ossl::Param
    - rnp::ossl::ParamBld::get
    - OSSL_PARAM_BLD_push_BN
    - OSSL_PARAM_BLD_push_octet_string
    - OSSL_PARAM_BLD_push_utf8_string
    - mpi::data
    - OSSL_PARAM_BLD_to_param
    - rnp::bn::get
    - mpi::size
    linkageType: ''
    returnType: rnp::ossl::Param
    signature: rnp::ossl::Param build_params(const mpi &p, const mpi *x, const char
      *curve)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::build_params
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:240,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:243,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:250,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:256,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:256,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:257,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:257,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:257,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:259,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - keyp
    - keyx
    - curv_desc
    argTypes:
    - mpi
    - mpi*
    - Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 265
    functionName: pgp::ec::load_key_openssl3
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - pgp::ec::build_params
    - rnp::ossl::evp::PKey
    - EVP_PKEY_fromdata
    - EVP_PKEY_fromdata_init
    - auto::get
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_key_openssl3(const mpi &keyp, const mpi *keyx,
      const Curve &curv_desc)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:271,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:273,1
    - Dst: pgp::ec::Curve::is_supported
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:276,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:277,1
    - Dst: OBJ_sn2nid
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:280,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:283,1
    - Dst: pgp::ec::is_raw_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:288,1
    - Dst: pgp::ec::load_raw_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:289,1
    - Dst: pgp::ec::load_key_openssl3
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:292,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:297,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:299,1
    - Dst: EC_KEY_get0_group
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:304,1
    - Dst: rnp::ossl::ECKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:304,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:308,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:308,1
    - Dst: EC_POINT_oct2point
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:312,1
    - Dst: rnp::ossl::ECPoint::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:312,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:312,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:312,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:314,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:314,1
    - Dst: EC_KEY_set_public_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:318,1
    - Dst: rnp::ossl::ECKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:318,1
    - Dst: rnp::ossl::ECPoint::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:318,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:320,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:320,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:328,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:328,1
    - Dst: EVP_PKEY_set1_EC_KEY
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:333,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:333,1
    - Dst: rnp::ossl::ECKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:333,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:344,1
    - Dst: EC_KEY_set_private_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:348,1
    - Dst: rnp::ossl::ECKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:348,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:348,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:350,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:350,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 3
    argNames:
    - keyp
    - keyx
    - curve
    argTypes:
    - mpi
    - mpi*
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 356
    functionName: pgp::ec::load_key
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 10
    functionsReached:
    - rnp::ossl::latest_err
    - OBJ_sn2nid
    - mpi::data
    - mpi::size
    - EC_KEY_set_private_key
    - pgp::ec::Curve::is_supported
    - EC_POINT_oct2point
    - pgp::ec::Curve::get
    - rnp::ossl::evp::PKey::get
    - pgp::ec::is_raw_key
    - rnp::bn::get
    - RNP_LOG
    - pgp::ec::load_raw_key
    - pgp::ec::load_key_openssl3
    - rnp::ossl::ECKey::get
    - ERR_peek_last_error
    - EC_KEY_set_public_key
    - EVP_PKEY_set1_EC_KEY
    - rnp::ossl::ECPoint::get
    - EC_KEY_get0_group
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_key(const mpi &keyp, const mpi *keyx, pgp_curve_t
      curve)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Key::p::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:364,1
    - Dst: Key::x::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:367,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:372,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:376,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:376,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:379,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:379,1
    - Dst: EVP_PKEY_check
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:383,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:383,1
    - Dst: EVP_PKEY_public_check
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:383,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:383,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:386,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:387,1
    - Dst: ERR_reason_error_string
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:387,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - key
    - secret
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 358
    functionDepth: 4
    functionLinenumber: 358
    functionLinenumberEnd: 394
    functionName: pgp::ec::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_public_check
    - Key::x::size
    - pgp::ec::load_key
    - Key::p::size
    - EVP_PKEY_check
    - ERR_reason_error_string
    - auto::get
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(const Key &key, bool secret)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::is_raw_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:399,1
    - Dst: mpi::resize
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:401,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:402,1
    - Dst: EVP_PKEY_get_raw_public_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:403,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:403,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:405,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:405,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:409,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:413,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:417,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:419,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:422,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:422,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:422,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:423,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:423,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:423,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:427,1
    - Dst: bytes
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:428,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:429,1
    - Dst: mpi::resize
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:430,1
    - Dst: rnp::bn::bin
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:432,1
    - Dst: bin
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:432,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:434,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:434,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:437,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:437,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:441,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:444,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:444,1
    - Dst: mpi::resize
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:449,1
    - Dst: EC_POINT_point2oct
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:450,1
    - Dst: EC_KEY_get0_group
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:451,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:451,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:451,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:453,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:453,1
    - Dst: mpi::resize
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:455,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - pkey
    - mpi
    - curve
    argTypes:
    - rnp::ossl::evp::PKey
    - mpi
    - pgp_curve_t
    assertStmts:
    - condition: (mlen == 32)
      pos:
        line_end: 408
        line_start: 408
        source_file: /src/rnp/src/lib/crypto/ec_ossl.cpp
    - condition: ((xlen <= flen) && (ylen <= flen))
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/rnp/src/lib/crypto/ec_ossl.cpp
    constantsTouched: []
    func_position:
      end: 458
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 458
    functionName: pgp::ec::write_pubkey
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 2
    functionsReached:
    - EVP_PKEY_get_raw_public_key
    - mpi::data
    - mpi::size
    - mpi::resize
    - rnp::bn::bin
    - EC_KEY_get0_public_key
    - EVP_PKEY_get_bn_param
    - pgp::ec::Curve::get
    - rnp::ossl::evp::PKey::get
    - pgp::ec::is_raw_key
    - rnp::bn::bytes
    - RNP_LOG
    - EC_POINT_point2oct
    - bytes
    - assert
    - ERR_peek_last_error
    - auto::bytes
    - rnp::bn::bn
    - rnp::bn::ptr
    - ptr
    - EC_KEY_get0_group
    - bin
    - EVP_PKEY_get0_EC_KEY
    linkageType: ''
    returnType: bool
    signature: bool write_pubkey(const rnp::ossl::evp::PKey &pkey, mpi &mpi, pgp_curve_t
      curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: pgp::ec::is_raw_key
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_raw_key(const pgp_curve_t curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Key::generate
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: pgp::ec::Key::generate_x25519
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 0
    functionsReached:
    - pgp::ec::Key::generate
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate_x25519(rnp::RNG &rng)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::alg_allows
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:63,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:66,1
    - Dst: OBJ_sn2nid
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:70,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:73,1
    - Dst: pgp::ec::is_raw_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:77,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:78,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:81,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:81,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:85,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:85,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:87,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:87,1
    - Dst: EVP_PKEY_CTX_set_ec_paramgen_curve_nid
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:91,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:91,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:93,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:93,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:98,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:98,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:99,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:99,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:101,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - alg_id
    - curve
    argTypes:
    - pgp_pubkey_alg_t
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 102
    functionName: pgp::ec::generate_pkey
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::ossl::evp::PKey
    - EVP_PKEY_keygen
    - EVP_PKEY_keygen_init
    - pgp::ec::Curve::alg_allows
    - pgp::ec::Curve::get
    - OBJ_sn2nid
    - EVP_PKEY_CTX_new_id
    - ERR_peek_last_error
    - pgp::ec::is_raw_key
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_set_ec_paramgen_curve_nid
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey generate_pkey(const pgp_pubkey_alg_t alg_id, const
      pgp_curve_t curve)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:109,1
    - Dst: EVP_PKEY_get_raw_private_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:110,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:110,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:110,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:112,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:112,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:116,1
    - Dst: std::vector::resize
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:117,1
    - Dst: EVP_PKEY_id
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:118,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:118,1
    - Dst: std::reverse
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:120,1
    - Dst: std::vector::begin
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:120,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:120,1
    - Dst: ec::Key::x::assign
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:122,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:122,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - rnp::ossl::evp::PKey
    - ec::Key
    assertStmts:
    - condition: (rlen == 32)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/rnp/src/lib/crypto/ec_ossl.cpp
    constantsTouched: []
    func_position:
      end: 124
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 124
    functionName: pgp::ec::write_raw_seckey
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - ERR_peek_last_error
    - EVP_PKEY_id
    - assert
    - rnp::ossl::evp::PKey::get
    - std::vector::begin
    - std::vector::end
    - std::reverse
    - ec::Key::x::assign
    - std::vector::size
    - std::vector::resize
    - std::vector::data
    - EVP_PKEY_get_raw_private_key
    linkageType: ''
    returnType: bool
    signature: bool write_raw_seckey(const rnp::ossl::evp::PKey &pkey, ec::Key &key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:130,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:131,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:131,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:131,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:131,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:133,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:133,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:136,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:136,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - rnp::ossl::evp::PKey
    - mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 146
    functionName: pgp::ec::write_seckey
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - ERR_peek_last_error
    - EVP_PKEY_get_bn_param
    - rnp::bn::ptr
    - rnp::ossl::evp::PKey::get
    - rnp::bn::mpi
    - EVP_PKEY_get0_EC_KEY
    linkageType: ''
    returnType: bool
    signature: bool write_seckey(rnp::ossl::evp::PKey &pkey, mpi &key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: generate_pkey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:151,1
    - Dst: is_raw_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:155,1
    - Dst: write_pubkey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:156,1
    - Dst: write_raw_seckey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:156,1
    - Dst: write_pubkey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:161,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:163,1
    - Dst: write_seckey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:167,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:169,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - rng
    - alg_id
    - curve
    argTypes:
    - rnp::RNG
    - pgp_pubkey_alg_t
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 174
    functionName: pgp::ec::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - write_pubkey
    - generate_pkey
    - is_raw_key
    - write_seckey
    - write_raw_seckey
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, const pgp_pubkey_alg_t alg_id,
      const pgp_curve_t curve)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:181,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:182,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:182,1
    - Dst: EVP_PKEY_new_raw_public_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:186,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:186,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:188,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:188,1
    - Dst: mpi*::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:195,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:196,1
    - Dst: mpi*::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:200,1
    - Dst: mpi*::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:200,1
    - Dst: mpi*::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:200,1
    - Dst: std::reverse
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:201,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:201,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:201,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:202,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:202,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:202,1
    - Dst: mpi*::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:204,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:205,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:210,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:210,1
    - Dst: mpi*::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:210,1
    - Dst: mpi*::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:210,1
    - Dst: mpi*::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:210,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:211,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:211,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:214,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:214,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:216,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - keyp
    - keyx
    - nid
    argTypes:
    - mpi
    - mpi*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 217
    functionName: pgp::ec::load_raw_key
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - rnp::ossl::evp::PKey
    - rnp::secure_bytes::size
    - memcpy
    - rnp::secure_array::data
    - EVP_PKEY_new_raw_public_key
    - mpi*::data
    - rnp::secure_bytes::begin
    - mpi*::size
    - std::reverse
    - EVP_PKEY_new_raw_private_key
    - ERR_peek_last_error
    - rnp::secure_bytes::end
    - rnp::secure_bytes::data
    - mpi::size
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_raw_key(const mpi &keyp, const mpi *keyx,
      int nid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_utf8_string
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:228,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:228,1
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:229,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:230,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:230,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:230,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:231,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:231,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:231,1
    - Dst: rnp::ossl::Param
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:234,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:234,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - p
    - x
    - curve
    argTypes:
    - mpi
    - mpi*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 235
    functionName: pgp::ec::build_params
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 2
    functionsReached:
    - rnp::ossl::Param
    - rnp::ossl::ParamBld::get
    - OSSL_PARAM_BLD_push_BN
    - OSSL_PARAM_BLD_push_octet_string
    - OSSL_PARAM_BLD_push_utf8_string
    - mpi::data
    - OSSL_PARAM_BLD_to_param
    - rnp::bn::get
    - mpi::size
    linkageType: ''
    returnType: rnp::ossl::Param
    signature: rnp::ossl::Param build_params(const mpi &p, const mpi *x, const char
      *curve)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::build_params
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:240,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:243,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:250,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:256,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:256,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:257,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:257,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:257,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:259,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - keyp
    - keyx
    - curv_desc
    argTypes:
    - mpi
    - mpi*
    - Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 265
    functionName: pgp::ec::load_key_openssl3
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - pgp::ec::build_params
    - rnp::ossl::evp::PKey
    - EVP_PKEY_fromdata
    - EVP_PKEY_fromdata_init
    - auto::get
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_key_openssl3(const mpi &keyp, const mpi *keyx,
      const Curve &curv_desc)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:271,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:273,1
    - Dst: pgp::ec::Curve::is_supported
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:276,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:277,1
    - Dst: OBJ_sn2nid
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:280,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:283,1
    - Dst: pgp::ec::is_raw_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:288,1
    - Dst: pgp::ec::load_raw_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:289,1
    - Dst: pgp::ec::load_key_openssl3
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:292,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:297,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:299,1
    - Dst: EC_KEY_get0_group
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:304,1
    - Dst: rnp::ossl::ECKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:304,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:308,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:308,1
    - Dst: EC_POINT_oct2point
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:312,1
    - Dst: rnp::ossl::ECPoint::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:312,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:312,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:312,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:314,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:314,1
    - Dst: EC_KEY_set_public_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:318,1
    - Dst: rnp::ossl::ECKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:318,1
    - Dst: rnp::ossl::ECPoint::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:318,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:320,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:320,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:328,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:328,1
    - Dst: EVP_PKEY_set1_EC_KEY
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:333,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:333,1
    - Dst: rnp::ossl::ECKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:333,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:344,1
    - Dst: EC_KEY_set_private_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:348,1
    - Dst: rnp::ossl::ECKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:348,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:348,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:350,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:350,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 3
    argNames:
    - keyp
    - keyx
    - curve
    argTypes:
    - mpi
    - mpi*
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 356
    functionName: pgp::ec::load_key
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 11
    functionsReached:
    - rnp::ossl::latest_err
    - OBJ_sn2nid
    - mpi::data
    - mpi::size
    - EC_KEY_set_private_key
    - pgp::ec::Curve::is_supported
    - EC_POINT_oct2point
    - pgp::ec::Curve::get
    - rnp::ossl::evp::PKey::get
    - pgp::ec::is_raw_key
    - rnp::bn::get
    - RNP_LOG
    - pgp::ec::load_raw_key
    - pgp::ec::load_key_openssl3
    - rnp::ossl::ECKey::get
    - ERR_peek_last_error
    - EC_KEY_set_public_key
    - EVP_PKEY_set1_EC_KEY
    - rnp::ossl::ECPoint::get
    - EC_KEY_get0_group
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_key(const mpi &keyp, const mpi *keyx, pgp_curve_t
      curve)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Key::p::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:364,1
    - Dst: Key::x::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:367,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:372,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:376,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:376,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:379,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:379,1
    - Dst: EVP_PKEY_check
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:383,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:383,1
    - Dst: EVP_PKEY_public_check
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:383,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:383,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:386,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:387,1
    - Dst: ERR_reason_error_string
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:387,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - key
    - secret
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 358
    functionDepth: 4
    functionLinenumber: 358
    functionLinenumberEnd: 394
    functionName: pgp::ec::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_public_check
    - Key::x::size
    - pgp::ec::load_key
    - Key::p::size
    - EVP_PKEY_check
    - ERR_reason_error_string
    - auto::get
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(const Key &key, bool secret)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::is_raw_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:399,1
    - Dst: mpi::resize
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:401,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:402,1
    - Dst: EVP_PKEY_get_raw_public_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:403,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:403,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:405,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:405,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:409,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:413,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:417,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:419,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:422,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:422,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:422,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:423,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:423,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:423,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:427,1
    - Dst: bytes
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:428,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:429,1
    - Dst: mpi::resize
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:430,1
    - Dst: rnp::bn::bin
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:432,1
    - Dst: bin
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:432,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:434,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:434,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:437,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:437,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:441,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:444,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:444,1
    - Dst: mpi::resize
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:449,1
    - Dst: EC_POINT_point2oct
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:450,1
    - Dst: EC_KEY_get0_group
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:451,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:451,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:451,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:453,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:453,1
    - Dst: mpi::resize
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:455,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - pkey
    - mpi
    - curve
    argTypes:
    - rnp::ossl::evp::PKey
    - mpi
    - pgp_curve_t
    assertStmts:
    - condition: (mlen == 32)
      pos:
        line_end: 408
        line_start: 408
        source_file: /src/rnp/src/lib/crypto/ec_ossl.cpp
    - condition: ((xlen <= flen) && (ylen <= flen))
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/rnp/src/lib/crypto/ec_ossl.cpp
    constantsTouched: []
    func_position:
      end: 458
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 458
    functionName: pgp::ec::write_pubkey
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 2
    functionsReached:
    - EVP_PKEY_get_raw_public_key
    - mpi::data
    - mpi::size
    - mpi::resize
    - rnp::bn::bin
    - EC_KEY_get0_public_key
    - EVP_PKEY_get_bn_param
    - pgp::ec::Curve::get
    - rnp::ossl::evp::PKey::get
    - pgp::ec::is_raw_key
    - rnp::bn::bytes
    - RNP_LOG
    - EC_POINT_point2oct
    - bytes
    - assert
    - ERR_peek_last_error
    - auto::bytes
    - rnp::bn::bn
    - rnp::bn::ptr
    - ptr
    - EC_KEY_get0_group
    - bin
    - EVP_PKEY_get0_EC_KEY
    linkageType: ''
    returnType: bool
    signature: bool write_pubkey(const rnp::ossl::evp::PKey &pkey, mpi &mpi, pgp_curve_t
      curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 52
    functionName: pgp::ec::is_raw_key
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_raw_key(const pgp_curve_t curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Key::generate
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: pgp::ec::Key::generate_x25519
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 0
    functionsReached:
    - pgp::ec::Key::generate
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate_x25519(rnp::RNG &rng)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::alg_allows
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:63,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:66,1
    - Dst: OBJ_sn2nid
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:70,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:73,1
    - Dst: pgp::ec::is_raw_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:77,1
    - Dst: EVP_PKEY_CTX_new_id
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:78,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:81,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:81,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:85,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:85,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:87,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:87,1
    - Dst: EVP_PKEY_CTX_set_ec_paramgen_curve_nid
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:91,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:91,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:93,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:93,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:98,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:98,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:99,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:99,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:101,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 2
    argNames:
    - alg_id
    - curve
    argTypes:
    - pgp_pubkey_alg_t
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 102
    functionName: pgp::ec::generate_pkey
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::ossl::evp::PKey
    - EVP_PKEY_keygen
    - EVP_PKEY_keygen_init
    - pgp::ec::Curve::alg_allows
    - pgp::ec::Curve::get
    - OBJ_sn2nid
    - EVP_PKEY_CTX_new_id
    - ERR_peek_last_error
    - pgp::ec::is_raw_key
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_set_ec_paramgen_curve_nid
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey generate_pkey(const pgp_pubkey_alg_t alg_id, const
      pgp_curve_t curve)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:109,1
    - Dst: EVP_PKEY_get_raw_private_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:110,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:110,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:110,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:112,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:112,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:116,1
    - Dst: std::vector::resize
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:117,1
    - Dst: EVP_PKEY_id
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:118,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:118,1
    - Dst: std::reverse
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:120,1
    - Dst: std::vector::begin
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:120,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:120,1
    - Dst: ec::Key::x::assign
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:122,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:122,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - rnp::ossl::evp::PKey
    - ec::Key
    assertStmts:
    - condition: (rlen == 32)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/rnp/src/lib/crypto/ec_ossl.cpp
    constantsTouched: []
    func_position:
      end: 124
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 124
    functionName: pgp::ec::write_raw_seckey
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - ERR_peek_last_error
    - EVP_PKEY_id
    - assert
    - rnp::ossl::evp::PKey::get
    - std::vector::begin
    - std::vector::end
    - std::reverse
    - ec::Key::x::assign
    - std::vector::size
    - std::vector::resize
    - std::vector::data
    - EVP_PKEY_get_raw_private_key
    linkageType: ''
    returnType: bool
    signature: bool write_raw_seckey(const rnp::ossl::evp::PKey &pkey, ec::Key &key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:130,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:131,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:131,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:131,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:131,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:133,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:133,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:136,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:136,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:144,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - rnp::ossl::evp::PKey
    - mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 146
      start: 126
    functionDepth: 1
    functionLinenumber: 126
    functionLinenumberEnd: 146
    functionName: pgp::ec::write_seckey
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - ERR_peek_last_error
    - EVP_PKEY_get_bn_param
    - rnp::bn::ptr
    - rnp::ossl::evp::PKey::get
    - rnp::bn::mpi
    - EVP_PKEY_get0_EC_KEY
    linkageType: ''
    returnType: bool
    signature: bool write_seckey(rnp::ossl::evp::PKey &pkey, mpi &key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: generate_pkey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:151,1
    - Dst: is_raw_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:155,1
    - Dst: write_pubkey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:156,1
    - Dst: write_raw_seckey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:156,1
    - Dst: write_pubkey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:161,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:163,1
    - Dst: write_seckey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:167,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:169,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - rng
    - alg_id
    - curve
    argTypes:
    - rnp::RNG
    - pgp_pubkey_alg_t
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 174
      start: 148
    functionDepth: 1
    functionLinenumber: 148
    functionLinenumberEnd: 174
    functionName: pgp::ec::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - write_pubkey
    - generate_pkey
    - is_raw_key
    - write_seckey
    - write_raw_seckey
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, const pgp_pubkey_alg_t alg_id,
      const pgp_curve_t curve)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:181,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:182,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:182,1
    - Dst: EVP_PKEY_new_raw_public_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:186,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:186,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:188,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:188,1
    - Dst: mpi*::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:195,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:196,1
    - Dst: mpi*::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:200,1
    - Dst: mpi*::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:200,1
    - Dst: mpi*::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:200,1
    - Dst: std::reverse
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:201,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:201,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:201,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:202,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:202,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:202,1
    - Dst: mpi*::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:204,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:205,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:210,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:210,1
    - Dst: mpi*::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:210,1
    - Dst: mpi*::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:210,1
    - Dst: mpi*::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:210,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:211,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:211,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:214,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:214,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:216,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 30
    argCount: 3
    argNames:
    - keyp
    - keyx
    - nid
    argTypes:
    - mpi
    - mpi*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 176
    functionDepth: 1
    functionLinenumber: 176
    functionLinenumberEnd: 217
    functionName: pgp::ec::load_raw_key
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - rnp::ossl::evp::PKey
    - rnp::secure_bytes::size
    - memcpy
    - rnp::secure_array::data
    - EVP_PKEY_new_raw_public_key
    - mpi*::data
    - rnp::secure_bytes::begin
    - mpi*::size
    - std::reverse
    - EVP_PKEY_new_raw_private_key
    - ERR_peek_last_error
    - rnp::secure_bytes::end
    - rnp::secure_bytes::data
    - mpi::size
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_raw_key(const mpi &keyp, const mpi *keyx,
      int nid)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_utf8_string
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:228,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:228,1
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:229,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:230,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:230,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:230,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:231,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:231,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:231,1
    - Dst: rnp::ossl::Param
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:234,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:234,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:234,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 8
    argCount: 3
    argNames:
    - p
    - x
    - curve
    argTypes:
    - mpi
    - mpi*
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 220
    functionDepth: 1
    functionLinenumber: 220
    functionLinenumberEnd: 235
    functionName: pgp::ec::build_params
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 3
    functionsReached:
    - rnp::ossl::Param
    - rnp::ossl::ParamBld::get
    - OSSL_PARAM_BLD_push_BN
    - OSSL_PARAM_BLD_push_octet_string
    - OSSL_PARAM_BLD_push_utf8_string
    - mpi::data
    - OSSL_PARAM_BLD_to_param
    - rnp::bn::get
    - mpi::size
    linkageType: ''
    returnType: rnp::ossl::Param
    signature: rnp::ossl::Param build_params(const mpi &p, const mpi *x, const char
      *curve)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::build_params
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:240,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:243,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:250,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:256,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:256,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:257,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:257,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:257,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:259,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:264,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - keyp
    - keyx
    - curv_desc
    argTypes:
    - mpi
    - mpi*
    - Curve
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 265
      start: 237
    functionDepth: 2
    functionLinenumber: 237
    functionLinenumberEnd: 265
    functionName: pgp::ec::load_key_openssl3
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - pgp::ec::build_params
    - rnp::ossl::evp::PKey
    - EVP_PKEY_fromdata
    - EVP_PKEY_fromdata_init
    - auto::get
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_key_openssl3(const mpi &keyp, const mpi *keyx,
      const Curve &curv_desc)
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:271,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:273,1
    - Dst: pgp::ec::Curve::is_supported
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:276,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:277,1
    - Dst: OBJ_sn2nid
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:280,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:283,1
    - Dst: pgp::ec::is_raw_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:288,1
    - Dst: pgp::ec::load_raw_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:289,1
    - Dst: pgp::ec::load_key_openssl3
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:292,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:297,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:299,1
    - Dst: EC_KEY_get0_group
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:304,1
    - Dst: rnp::ossl::ECKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:304,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:308,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:308,1
    - Dst: EC_POINT_oct2point
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:312,1
    - Dst: rnp::ossl::ECPoint::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:312,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:312,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:312,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:314,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:314,1
    - Dst: EC_KEY_set_public_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:318,1
    - Dst: rnp::ossl::ECKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:318,1
    - Dst: rnp::ossl::ECPoint::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:318,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:320,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:320,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:328,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:328,1
    - Dst: EVP_PKEY_set1_EC_KEY
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:333,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:333,1
    - Dst: rnp::ossl::ECKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:333,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:344,1
    - Dst: EC_KEY_set_private_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:348,1
    - Dst: rnp::ossl::ECKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:348,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:348,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:350,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:350,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 52
    argCount: 3
    argNames:
    - keyp
    - keyx
    - curve
    argTypes:
    - mpi
    - mpi*
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 356
      start: 268
    functionDepth: 3
    functionLinenumber: 268
    functionLinenumberEnd: 356
    functionName: pgp::ec::load_key
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 12
    functionsReached:
    - rnp::ossl::latest_err
    - OBJ_sn2nid
    - mpi::data
    - mpi::size
    - EC_KEY_set_private_key
    - pgp::ec::Curve::is_supported
    - EC_POINT_oct2point
    - pgp::ec::Curve::get
    - rnp::ossl::evp::PKey::get
    - pgp::ec::is_raw_key
    - rnp::bn::get
    - RNP_LOG
    - pgp::ec::load_raw_key
    - pgp::ec::load_key_openssl3
    - rnp::ossl::ECKey::get
    - ERR_peek_last_error
    - EC_KEY_set_public_key
    - EVP_PKEY_set1_EC_KEY
    - rnp::ossl::ECPoint::get
    - EC_KEY_get0_group
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_key(const mpi &keyp, const mpi *keyx, pgp_curve_t
      curve)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: Key::p::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:364,1
    - Dst: Key::x::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:367,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:372,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:376,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:376,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:379,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:379,1
    - Dst: EVP_PKEY_check
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:383,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:383,1
    - Dst: EVP_PKEY_public_check
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:383,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:383,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:386,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:387,1
    - Dst: ERR_reason_error_string
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:387,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 24
    argCount: 2
    argNames:
    - key
    - secret
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 358
    functionDepth: 4
    functionLinenumber: 358
    functionLinenumberEnd: 394
    functionName: pgp::ec::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_public_check
    - Key::x::size
    - pgp::ec::load_key
    - Key::p::size
    - EVP_PKEY_check
    - ERR_reason_error_string
    - auto::get
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(const Key &key, bool secret)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::is_raw_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:399,1
    - Dst: mpi::resize
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:401,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:402,1
    - Dst: EVP_PKEY_get_raw_public_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:403,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:403,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:405,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:405,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:409,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:413,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:417,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:419,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:422,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:422,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:422,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:423,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:423,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:423,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:427,1
    - Dst: bytes
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:428,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:429,1
    - Dst: mpi::resize
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:430,1
    - Dst: rnp::bn::bin
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:432,1
    - Dst: bin
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:432,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:434,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:434,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:437,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:437,1
    - Dst: EC_KEY_get0_public_key
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:441,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:444,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:444,1
    - Dst: mpi::resize
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:449,1
    - Dst: EC_POINT_point2oct
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:450,1
    - Dst: EC_KEY_get0_group
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:451,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:451,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:451,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:453,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:453,1
    - Dst: mpi::resize
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:455,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 35
    argCount: 3
    argNames:
    - pkey
    - mpi
    - curve
    argTypes:
    - rnp::ossl::evp::PKey
    - mpi
    - pgp_curve_t
    assertStmts:
    - condition: (mlen == 32)
      pos:
        line_end: 408
        line_start: 408
        source_file: /src/rnp/src/lib/crypto/ec_ossl.cpp
    - condition: ((xlen <= flen) && (ylen <= flen))
      pos:
        line_end: 428
        line_start: 428
        source_file: /src/rnp/src/lib/crypto/ec_ossl.cpp
    constantsTouched: []
    func_position:
      end: 458
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 458
    functionName: pgp::ec::write_pubkey
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 2
    functionsReached:
    - EVP_PKEY_get_raw_public_key
    - mpi::data
    - mpi::size
    - mpi::resize
    - rnp::bn::bin
    - EC_KEY_get0_public_key
    - EVP_PKEY_get_bn_param
    - pgp::ec::Curve::get
    - rnp::ossl::evp::PKey::get
    - pgp::ec::is_raw_key
    - rnp::bn::bytes
    - RNP_LOG
    - EC_POINT_point2oct
    - bytes
    - assert
    - ERR_peek_last_error
    - auto::bytes
    - rnp::bn::bn
    - rnp::bn::ptr
    - ptr
    - EC_KEY_get0_group
    - bin
    - EVP_PKEY_get0_EC_KEY
    linkageType: ''
    returnType: bool
    signature: bool write_pubkey(const rnp::ossl::evp::PKey &pkey, mpi &mpi, pgp_curve_t
      curve)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::generate_pkey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:475,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:477,1
    - Dst: pgp::ec::write_pubkey
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:481,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:482,1
    - Dst: std::vector<uint8_t>::assign
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:485,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:485,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:485,1
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:485,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:488,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:489,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:489,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:489,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:490,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:491,1
    - Dst: EVP_PKEY_get0_EC_KEY
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:496,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:496,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:498,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:498,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:502,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:503,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:508,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:512,1
    - Dst: std::vector<uint8_t>::assign
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:513,1
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:514,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:516,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:519,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:519,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:519,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 33
    argCount: 4
    argNames:
    - rng
    - privkey
    - pubkey
    - curve
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 521
      start: 469
    functionDepth: 2
    functionLinenumber: 469
    functionLinenumberEnd: 521
    functionName: ec_generate_generic_native
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>::assign
    - rnp::bn::bn
    - rnp::bn::mpi
    - pgp::ec::write_pubkey
    - memcpy
    - pgp::mpi::data
    - EVP_PKEY_get_bn_param
    - auto::bytes
    - pgp::ec::Curve::get
    - rnp::bn::ptr
    - pgp::ec::generate_pkey
    - std::vector<uint8_t>::data
    - auto::get
    - ERR_peek_last_error
    - pgp::mpi::size
    - EVP_PKEY_get0_EC_KEY
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ec_generate_generic_native(rnp::RNG *            rng,\n
      \                          std::vector<uint8_t> &privkey,\n                           std::vector<uint8_t>
      &pubkey,\n                           pgp_curve_t           curve)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: generate_x25519_native
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:531,1
    - Dst: generate_ed25519_native
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:533,1
    - Dst: generate_x448_native
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:536,1
    - Dst: generate_ed448_native
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:538,1
    - Dst: ec_generate_generic_native
      Src: /src/rnp/src/lib/crypto/ec_ossl.cpp:543,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - rng
    - privkey
    - pubkey
    - curve
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 544
      start: 523
    functionDepth: 0
    functionLinenumber: 523
    functionLinenumberEnd: 544
    functionName: ec_generate_native
    functionSourceFile: /src/rnp/src/lib/crypto/ec_ossl.cpp
    functionUses: 4
    functionsReached:
    - generate_x25519_native
    - ec_generate_generic_native
    - generate_ed448_native
    - generate_ed25519_native
    - generate_x448_native
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ec_generate_native(rnp::RNG *            rng,\n                   std::vector<uint8_t>
      &privkey,\n                   std::vector<uint8_t> &pubkey,\n                   pgp_curve_t
      \          curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG_NO_POS_INFO
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:42,1
    - Dst: RNP_LOG_U8VEC
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:43,1
    - Dst: RNP_LOG_U8VEC
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:44,1
    - Dst: RNP_LOG_U8VEC
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:45,1
    - Dst: RNP_LOG_U8VEC
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:46,1
    - Dst: RNP_LOG_NO_POS_INFO
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:47,1
    - Dst: RNP_LOG_NO_POS_INFO
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:48,1
    - Dst: RNP_LOG_U8VEC
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:49,1
    - Dst: rnp::PqcKemCombiner::domSeparation
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:49,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:53,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:54,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:55,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:56,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:57,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:58,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:59,1
    - Dst: rnp::PqcKemCombiner::domSeparation
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:59,1
    - Dst: std::vector::resize
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:61,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:61,1
    - Dst: auto::finish
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:62,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:62,1
    - Dst: RNP_LOG_U8VEC
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 5
    argNames:
    - mlkem_key_share
    - ecc_key_share
    - ecc_ciphertext
    - ecc_pub_key
    - alg_id
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 68
    functionName: rnp::PqcKemCombiner::compute
    functionSourceFile: /src/rnp/src/lib/crypto/kem_combiner.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG_NO_POS_INFO
    - RNP_LOG_U8VEC
    - rnp::Hash::size
    - rnp::PqcKemCombiner::domSeparation
    - rnp::Hash::create
    - std::vector::resize
    - std::vector::data
    - auto::add
    - auto::finish
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> PqcKemCombiner::compute(const std::vector<uint8_t>
      &mlkem_key_share,\n                        const std::vector<uint8_t> &ecc_key_share,\n
      \                       const std::vector<uint8_t> &ecc_ciphertext,\n                        const
      std::vector<uint8_t> &ecc_pub_key,\n                        const pgp_pubkey_alg_t
      \     alg_id)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG_NO_POS_INFO
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:42,1
    - Dst: RNP_LOG_U8VEC
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:43,1
    - Dst: RNP_LOG_U8VEC
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:44,1
    - Dst: RNP_LOG_U8VEC
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:45,1
    - Dst: RNP_LOG_U8VEC
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:46,1
    - Dst: RNP_LOG_NO_POS_INFO
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:47,1
    - Dst: RNP_LOG_NO_POS_INFO
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:48,1
    - Dst: RNP_LOG_U8VEC
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:49,1
    - Dst: rnp::PqcKemCombiner::domSeparation
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:49,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:53,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:54,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:55,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:56,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:57,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:58,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:59,1
    - Dst: rnp::PqcKemCombiner::domSeparation
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:59,1
    - Dst: std::vector::resize
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:61,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:61,1
    - Dst: auto::finish
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:62,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:62,1
    - Dst: RNP_LOG_U8VEC
      Src: /src/rnp/src/lib/crypto/kem_combiner.cpp:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 19
    argCount: 5
    argNames:
    - mlkem_key_share
    - ecc_key_share
    - ecc_ciphertext
    - ecc_pub_key
    - alg_id
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 68
    functionName: rnp::PqcKemCombiner::compute
    functionSourceFile: /src/rnp/src/lib/crypto/kem_combiner.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG_NO_POS_INFO
    - RNP_LOG_U8VEC
    - rnp::Hash::size
    - rnp::PqcKemCombiner::domSeparation
    - rnp::Hash::create
    - std::vector::resize
    - std::vector::data
    - auto::add
    - auto::finish
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> PqcKemCombiner::compute(const std::vector<uint8_t>
      &mlkem_key_share,\n                        const std::vector<uint8_t> &ecc_key_share,\n
      \                       const std::vector<uint8_t> &ecc_ciphertext,\n                        const
      std::vector<uint8_t> &ecc_pub_key,\n                        const pgp_pubkey_alg_t
      \     alg_id)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:52,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:53,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:64,1
    - Dst: rnp::botan::op::KeyAgreement::KeyAgreement
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:65,1
    - Dst: botan_pk_op_key_agreement_create
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:66,1
    - Dst: rnp::botan::op::KeyAgreement::get
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:66,1
    - Dst: get
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:66,1
    - Dst: botan_pk_op_key_agreement
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:67,1
    - Dst: rnp::botan::op::KeyAgreement::get
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:67,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:67,1
    - Dst: snprintf
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:72,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:73,1
    - Dst: botan_kdf
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:74,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:75,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:75,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:75,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 7
    argNames:
    - kek
    - kek_len
    - other_info
    - curve_desc
    - '                 ec_pubkey'
    - ' ec_prvkey'
    - hash_alg
    argTypes:
    - uint8_t*
    - size_t
    - std::vector<uint8_t>
    - ec::Curve*
    - mpi
    - rnp::botan::Privkey
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 43
    functionDepth: 1
    functionLinenumber: 43
    functionLinenumberEnd: 76
    functionName: compute_kek
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - data
    - rnp::secure_bytes::size
    - rnp::botan::op::KeyAgreement::get
    - botan_pk_op_key_agreement_create
    - botan_pk_op_key_agreement
    - botan_kdf
    - rnp::botan::op::KeyAgreement::KeyAgreement
    - rnp::Hash_Botan::name_backend
    - get
    - std::vector<uint8_t>::data
    - rnp::secure_bytes::data
    - snprintf
    - size
    linkageType: ''
    returnType: bool
    signature: "bool compute_kek(uint8_t *                   kek,\n            size_t
      \                     kek_len,\n            const std::vector<uint8_t> &other_info,\n
      \           const ec::Curve *           curve_desc,\n            const mpi &
      \                ec_pubkey,\n            const rnp::botan::Privkey & ec_prvkey,\n
      \           const pgp_hash_alg_t        hash_alg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:81,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:83,1
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:88,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:92,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:92,1
    - Dst: ec::Key::p::data
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:92,1
    - Dst: botan_pubkey_load_x25519
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:93,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:93,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:93,1
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:96,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:97,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:101,1
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:102,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:103,1
    - Dst: botan_pubkey_load_ecdh
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:113,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:113,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:113,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:113,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:116,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 28
    argCount: 2
    argNames:
    - pubkey
    - key
    argTypes:
    - rnp::botan::Pubkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 118
    functionName: load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - botan_pubkey_load_ecdh
    - memcpy
    - rnp::botan::Pubkey::get
    - rnp::secure_array::data
    - botan_pubkey_load_x25519
    - ec::Key::p::size
    - pgp::ec::Curve::get
    - auto::bytes
    - rnp::bn::get
    - ec::Key::p::data
    linkageType: ''
    returnType: bool
    signature: bool load_public_key(rnp::botan::Pubkey &pubkey, const ec::Key &key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:123,1
    - Dst: ec::Key::x::size
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:129,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:130,1
    - Dst: botan_privkey_load_x25519
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:138,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:138,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:138,1
    - Dst: botan_privkey_load_ecdh
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:142,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:142,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:142,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 2
    argNames:
    - seckey
    - key
    argTypes:
    - rnp::botan::Privkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 143
    functionName: load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - botan_privkey_load_x25519
    - ec::Key::x::size
    - rnp::secure_array::data
    - rnp::botan::Privkey::get
    - pgp::ec::Curve::get
    - rnp::bn::get
    - botan_privkey_load_ecdh
    linkageType: ''
    returnType: bool
    signature: bool load_secret_key(rnp::botan::Privkey &seckey, const ec::Key &key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:148,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:153,1
    - Dst: load_public_key
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:154,1
    - Dst: botan_pubkey_check_key
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:154,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:154,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:154,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:161,1
    - Dst: load_secret_key
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:162,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:163,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:163,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:163,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 167
      start: 145
    functionDepth: 2
    functionLinenumber: 145
    functionLinenumberEnd: 167
    functionName: validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh.cpp
    functionUses: 20
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::get
    - botan_privkey_check_key
    - rnp::RNG::handle
    - load_public_key
    - load_secret_key
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - pgp::ec::Curve::get
    - botan_pubkey_check_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::x::size
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:260,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:264,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:266,1
    - Dst: pgp_is_sa_aes
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:273,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:274,1
    - Dst: kdf_other_info_serialize
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:279,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:280,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:280,1
    - Dst: auto::OID::size
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:280,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:282,1
    - Dst: load_secret_key
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:283,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:284,1
    - Dst: pgp_key_size
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:294,1
    - Dst: compute_kek
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:295,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:295,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:300,1
    - Dst: snprintf
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:303,1
    - Dst: botan_nist_kw_dec
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:304,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:305,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:305,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:305,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:305,1
    - Dst: botan_key_unwrap3394
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:307,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:308,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:308,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:308,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:308,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:312,1
    - Dst: unpad_pkcs7
      Src: /src/rnp/src/lib/crypto/ecdh.cpp:313,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 3
    argNames:
    - out
    - in
    - key
    argTypes:
    - rnp::secure_bytes
    - Encrypted
    - ec::Key
    assertStmts:
    - condition: (other_info.size() == curve_desc->OID.size() + 46)
      pos:
        line_end: 279
        line_start: 279
        source_file: /src/rnp/src/lib/crypto/ecdh.cpp
    constantsTouched: []
    func_position:
      end: 320
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 320
    functionName: decrypt_pkcs5
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh.cpp
    functionUses: 2
    functionsReached:
    - botan_key_unwrap3394
    - unpad_pkcs7
    - auto::OID::size
    - rnp::secure_bytes::data
    - rnp::secure_array::data
    - pgp::ec::Curve::get
    - rnp::secure_bytes::resize
    - snprintf
    - RNP_LOG
    - ec::Key::x::size
    - load_secret_key
    - botan_nist_kw_dec
    - kdf_other_info_serialize
    - assert
    - pgp_key_size
    - Encrypted::m::size
    - rnp::botan::Privkey::Privkey
    - auto::size
    - pgp_is_sa_aes
    - Encrypted::m::data
    - compute_kek
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t decrypt_pkcs5(rnp::secure_bytes &out, const Encrypted
      &in, const ec::Key &key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:46,1
    - Dst: ec::Key::x::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 53
    functionName: pgp::eddsa::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - ec::Key::x::size
    - ec::Key::p::size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::generate
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - rng
    - key
    argTypes:
    - rnp::RNG
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: pgp::eddsa::generate
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - ec::Key::generate
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t generate(rnp::RNG &rng, ec::Key &key)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ec::Signature::r::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:68,1
    - Dst: ec::Signature::s::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:68,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:69,1
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:72,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:73,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:77,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:79,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:86,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:86,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:91,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:91,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:91,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:92,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:92,1
    - Dst: ec::Signature::r::copy
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:96,1
    - Dst: ec::Signature::r::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:96,1
    - Dst: ec::Signature::s::copy
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:97,1
    - Dst: ec::Signature::s::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:97,1
    - Dst: EVP_DigestVerify
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:99,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:99,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:99,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:99,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:99,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - sig
    - hash
    - key
    argTypes:
    - ec::Signature
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 103
    functionName: pgp::eddsa::verify
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - ec::Signature::r::copy
    - std::array::data
    - rnp::secure_bytes::size
    - rnp::ossl::evp::MDCtx::get
    - pgp::ec::load_key
    - ec::Signature::r::size
    - ec::Key::p::size
    - ec::Signature::s::size
    - EVP_DigestVerifyInit
    - EVP_DigestVerify
    - auto::get
    - ERR_peek_last_error
    - ec::Signature::s::copy
    - rnp::secure_bytes::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t verify(const ec::Signature &sig, const rnp::secure_bytes
      &hash, const ec::Key &key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::x::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:108,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:109,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:112,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:114,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:114,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:121,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:121,1
    - Dst: EVP_DigestSignInit
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:126,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:126,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:126,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:127,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:127,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:131,1
    - Dst: EVP_DigestSign
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:132,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:132,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:132,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:132,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:132,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:133,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:133,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:136,1
    - Dst: ec::Signature::r::assign
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:137,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:137,1
    - Dst: ec::Signature::s::assign
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:138,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - rng
    - sig
    - hash
    - key
    argTypes:
    - rnp::RNG
    - ec::Signature
    - rnp::secure_bytes
    - ec::Key
    assertStmts:
    - condition: (siglen == 64)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/rnp/src/lib/crypto/eddsa_ossl.cpp
    constantsTouched: []
    func_position:
      end: 140
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 140
    functionName: pgp::eddsa::sign
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - std::array::data
    - ec::Signature::s::assign
    - rnp::secure_bytes::size
    - ec::Key::x::size
    - rnp::ossl::evp::MDCtx::get
    - pgp::ec::load_key
    - EVP_DigestSign
    - assert
    - ec::Signature::r::assign
    - auto::get
    - ERR_peek_last_error
    - EVP_DigestSignInit
    - rnp::secure_bytes::data
    - std::array::size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t sign(rnp::RNG &rng, ec::Signature &sig, const rnp::secure_bytes
      &hash, const ec::Key &key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:46,1
    - Dst: ec::Key::x::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 53
    functionName: pgp::eddsa::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - ec::Key::x::size
    - ec::Key::p::size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::generate
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - rng
    - key
    argTypes:
    - rnp::RNG
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: pgp::eddsa::generate
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - ec::Key::generate
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t generate(rnp::RNG &rng, ec::Key &key)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ec::Signature::r::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:68,1
    - Dst: ec::Signature::s::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:68,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:69,1
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:72,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:73,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:77,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:79,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:86,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:86,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:91,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:91,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:91,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:92,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:92,1
    - Dst: ec::Signature::r::copy
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:96,1
    - Dst: ec::Signature::r::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:96,1
    - Dst: ec::Signature::s::copy
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:97,1
    - Dst: ec::Signature::s::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:97,1
    - Dst: EVP_DigestVerify
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:99,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:99,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:99,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:99,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:99,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - sig
    - hash
    - key
    argTypes:
    - ec::Signature
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 103
    functionName: pgp::eddsa::verify
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - ec::Signature::r::copy
    - std::array::data
    - rnp::secure_bytes::size
    - rnp::ossl::evp::MDCtx::get
    - pgp::ec::load_key
    - ec::Signature::r::size
    - ec::Key::p::size
    - ec::Signature::s::size
    - EVP_DigestVerifyInit
    - EVP_DigestVerify
    - auto::get
    - ERR_peek_last_error
    - ec::Signature::s::copy
    - rnp::secure_bytes::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t verify(const ec::Signature &sig, const rnp::secure_bytes
      &hash, const ec::Key &key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::x::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:108,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:109,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:112,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:114,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:114,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:121,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:121,1
    - Dst: EVP_DigestSignInit
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:126,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:126,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:126,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:127,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:127,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:131,1
    - Dst: EVP_DigestSign
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:132,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:132,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:132,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:132,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:132,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:133,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:133,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:136,1
    - Dst: ec::Signature::r::assign
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:137,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:137,1
    - Dst: ec::Signature::s::assign
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:138,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - rng
    - sig
    - hash
    - key
    argTypes:
    - rnp::RNG
    - ec::Signature
    - rnp::secure_bytes
    - ec::Key
    assertStmts:
    - condition: (siglen == 64)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/rnp/src/lib/crypto/eddsa_ossl.cpp
    constantsTouched: []
    func_position:
      end: 140
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 140
    functionName: pgp::eddsa::sign
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - std::array::data
    - ec::Signature::s::assign
    - rnp::secure_bytes::size
    - ec::Key::x::size
    - rnp::ossl::evp::MDCtx::get
    - pgp::ec::load_key
    - EVP_DigestSign
    - assert
    - ec::Signature::r::assign
    - auto::get
    - ERR_peek_last_error
    - EVP_DigestSignInit
    - rnp::secure_bytes::data
    - std::array::size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t sign(rnp::RNG &rng, ec::Signature &sig, const rnp::secure_bytes
      &hash, const ec::Key &key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:46,1
    - Dst: ec::Key::x::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 53
    functionName: pgp::eddsa::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - ec::Key::x::size
    - ec::Key::p::size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::generate
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - rng
    - key
    argTypes:
    - rnp::RNG
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: pgp::eddsa::generate
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - ec::Key::generate
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t generate(rnp::RNG &rng, ec::Key &key)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ec::Signature::r::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:68,1
    - Dst: ec::Signature::s::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:68,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:69,1
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:72,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:73,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:77,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:79,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:86,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:86,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:91,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:91,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:91,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:92,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:92,1
    - Dst: ec::Signature::r::copy
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:96,1
    - Dst: ec::Signature::r::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:96,1
    - Dst: ec::Signature::s::copy
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:97,1
    - Dst: ec::Signature::s::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:97,1
    - Dst: EVP_DigestVerify
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:99,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:99,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:99,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:99,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:99,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - sig
    - hash
    - key
    argTypes:
    - ec::Signature
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 103
    functionName: pgp::eddsa::verify
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - ec::Signature::r::copy
    - std::array::data
    - rnp::secure_bytes::size
    - rnp::ossl::evp::MDCtx::get
    - pgp::ec::load_key
    - ec::Signature::r::size
    - ec::Key::p::size
    - ec::Signature::s::size
    - EVP_DigestVerifyInit
    - EVP_DigestVerify
    - auto::get
    - ERR_peek_last_error
    - ec::Signature::s::copy
    - rnp::secure_bytes::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t verify(const ec::Signature &sig, const rnp::secure_bytes
      &hash, const ec::Key &key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::x::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:108,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:109,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:112,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:114,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:114,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:121,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:121,1
    - Dst: EVP_DigestSignInit
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:126,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:126,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:126,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:127,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:127,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:131,1
    - Dst: EVP_DigestSign
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:132,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:132,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:132,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:132,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:132,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:133,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:133,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:136,1
    - Dst: ec::Signature::r::assign
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:137,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:137,1
    - Dst: ec::Signature::s::assign
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:138,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - rng
    - sig
    - hash
    - key
    argTypes:
    - rnp::RNG
    - ec::Signature
    - rnp::secure_bytes
    - ec::Key
    assertStmts:
    - condition: (siglen == 64)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/rnp/src/lib/crypto/eddsa_ossl.cpp
    constantsTouched: []
    func_position:
      end: 140
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 140
    functionName: pgp::eddsa::sign
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - std::array::data
    - ec::Signature::s::assign
    - rnp::secure_bytes::size
    - ec::Key::x::size
    - rnp::ossl::evp::MDCtx::get
    - pgp::ec::load_key
    - EVP_DigestSign
    - assert
    - ec::Signature::r::assign
    - auto::get
    - ERR_peek_last_error
    - EVP_DigestSignInit
    - rnp::secure_bytes::data
    - std::array::size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t sign(rnp::RNG &rng, ec::Signature &sig, const rnp::secure_bytes
      &hash, const ec::Key &key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:46,1
    - Dst: ec::Key::x::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 53
    functionName: pgp::eddsa::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - ec::Key::x::size
    - ec::Key::p::size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::generate
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - rng
    - key
    argTypes:
    - rnp::RNG
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 63
    functionName: pgp::eddsa::generate
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - ec::Key::generate
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t generate(rnp::RNG &rng, ec::Key &key)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: ec::Signature::r::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:68,1
    - Dst: ec::Signature::s::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:68,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:69,1
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:72,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:73,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:77,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:79,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:86,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:86,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:91,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:91,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:91,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:92,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:92,1
    - Dst: ec::Signature::r::copy
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:96,1
    - Dst: ec::Signature::r::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:96,1
    - Dst: ec::Signature::s::copy
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:97,1
    - Dst: ec::Signature::s::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:97,1
    - Dst: EVP_DigestVerify
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:99,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:99,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:99,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:99,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:99,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - sig
    - hash
    - key
    argTypes:
    - ec::Signature
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 65
    functionDepth: 4
    functionLinenumber: 65
    functionLinenumberEnd: 103
    functionName: pgp::eddsa::verify
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - ec::Signature::r::copy
    - std::array::data
    - rnp::secure_bytes::size
    - rnp::ossl::evp::MDCtx::get
    - pgp::ec::load_key
    - ec::Signature::r::size
    - ec::Key::p::size
    - ec::Signature::s::size
    - EVP_DigestVerifyInit
    - EVP_DigestVerify
    - auto::get
    - ERR_peek_last_error
    - ec::Signature::s::copy
    - rnp::secure_bytes::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t verify(const ec::Signature &sig, const rnp::secure_bytes
      &hash, const ec::Key &key)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::x::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:108,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:109,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:112,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:114,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:114,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:121,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:121,1
    - Dst: EVP_DigestSignInit
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:126,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:126,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:126,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:127,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:127,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:131,1
    - Dst: EVP_DigestSign
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:132,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:132,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:132,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:132,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:132,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:133,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:133,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:136,1
    - Dst: ec::Signature::r::assign
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:137,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:137,1
    - Dst: ec::Signature::s::assign
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:138,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/crypto/eddsa_ossl.cpp:138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 4
    argNames:
    - rng
    - sig
    - hash
    - key
    argTypes:
    - rnp::RNG
    - ec::Signature
    - rnp::secure_bytes
    - ec::Key
    assertStmts:
    - condition: (siglen == 64)
      pos:
        line_end: 135
        line_start: 135
        source_file: /src/rnp/src/lib/crypto/eddsa_ossl.cpp
    constantsTouched: []
    func_position:
      end: 140
      start: 105
    functionDepth: 4
    functionLinenumber: 105
    functionLinenumberEnd: 140
    functionName: pgp::eddsa::sign
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - std::array::data
    - ec::Signature::s::assign
    - rnp::secure_bytes::size
    - ec::Key::x::size
    - rnp::ossl::evp::MDCtx::get
    - pgp::ec::load_key
    - EVP_DigestSign
    - assert
    - ec::Signature::r::assign
    - auto::get
    - ERR_peek_last_error
    - EVP_DigestSignInit
    - rnp::secure_bytes::data
    - std::array::size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t sign(rnp::RNG &rng, ec::Signature &sig, const rnp::secure_bytes
      &hash, const ec::Key &key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - kyber_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: kyber_alg_name
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      kyber_alg_name(kyber_parameter_e mode)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:57,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:58,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:58,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:58,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:61,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:61,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:66,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:66,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:67,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:67,1
    - Dst: rnp::ossl::Param::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:67,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:70,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - pub
    - mode
    argTypes:
    - std::vector<uint8_t>
    - kyber_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 71
    functionName: load_mlkem_pubkey
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ossl.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - rnp::ossl::evp::PKey
    - rnp::ossl::ParamBld::get
    - EVP_PKEY_fromdata
    - OSSL_PARAM_BLD_push_octet_string
    - EVP_PKEY_fromdata_init
    - rnp::ossl::Param::get
    - OSSL_PARAM_BLD_to_param
    - std::vector<uint8_t>::data
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_mlkem_pubkey(const std::vector<uint8_t> &pub,
      kyber_parameter_e mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:81,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:82,1
    - Dst: rnp::SecureBytes::data
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:82,1
    - Dst: rnp::SecureBytes::size
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:82,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:85,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:85,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:90,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:90,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:91,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:91,1
    - Dst: rnp::ossl::Param::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:91,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:94,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - seed
    - mode
    argTypes:
    - rnp::SecureBytes
    - kyber_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 95
    functionName: load_mlkem_privkey
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::ossl::evp::PKey
    - rnp::ossl::ParamBld::get
    - EVP_PKEY_fromdata
    - OSSL_PARAM_BLD_push_octet_string
    - rnp::SecureBytes::data
    - rnp::SecureBytes::size
    - EVP_PKEY_fromdata_init
    - rnp::ossl::Param::get
    - OSSL_PARAM_BLD_to_param
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_mlkem_privkey(const rnp::SecureBytes &seed,
      kyber_parameter_e mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mode
    argTypes:
    - kyber_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 47
      start: 43
    functionDepth: 0
    functionLinenumber: 43
    functionLinenumberEnd: 47
    functionName: kyber_alg_name
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      kyber_alg_name(kyber_parameter_e mode)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:57,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:58,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:58,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:58,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:61,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:61,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:66,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:66,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:67,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:67,1
    - Dst: rnp::ossl::Param::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:67,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:70,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - pub
    - mode
    argTypes:
    - std::vector<uint8_t>
    - kyber_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 71
    functionName: load_mlkem_pubkey
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ossl.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - rnp::ossl::evp::PKey
    - rnp::ossl::ParamBld::get
    - EVP_PKEY_fromdata
    - OSSL_PARAM_BLD_push_octet_string
    - EVP_PKEY_fromdata_init
    - rnp::ossl::Param::get
    - OSSL_PARAM_BLD_to_param
    - std::vector<uint8_t>::data
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_mlkem_pubkey(const std::vector<uint8_t> &pub,
      kyber_parameter_e mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_octet_string
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:81,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:82,1
    - Dst: rnp::SecureBytes::data
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:82,1
    - Dst: rnp::SecureBytes::size
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:82,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:85,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:85,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:90,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:90,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:91,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:91,1
    - Dst: rnp::ossl::Param::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:91,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:94,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 2
    argNames:
    - seed
    - mode
    argTypes:
    - rnp::SecureBytes
    - kyber_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 95
    functionName: load_mlkem_privkey
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::ossl::evp::PKey
    - rnp::ossl::ParamBld::get
    - EVP_PKEY_fromdata
    - OSSL_PARAM_BLD_push_octet_string
    - rnp::SecureBytes::data
    - rnp::SecureBytes::size
    - EVP_PKEY_fromdata_init
    - rnp::ossl::Param::get
    - OSSL_PARAM_BLD_to_param
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_mlkem_privkey(const rnp::SecureBytes &seed,
      kyber_parameter_e mode)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:104,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:104,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:105,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:105,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:106,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:109,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:109,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:110,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:110,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:111,1
    - Dst: EVP_PKEY_get_raw_public_key
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:116,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:116,1
    - Dst: EVP_PKEY_get_raw_public_key
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:118,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:118,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:118,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:119,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:119,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:120,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:124,1
    - Dst: EVP_PKEY_get_params
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:127,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:127,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:128,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:128,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:129,1
    - Dst: std::make_pair
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:133,1
    - Dst: pgp_kyber_public_key_t
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:133,1
    - Dst: pgp_kyber_private_key_t
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:134,1
    - Dst: rnp::secure_wipe
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:135,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 2
    argNames:
    - rng
    - kyber_param
    argTypes:
    - rnp::RNG*
    - kyber_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 99
    functionDepth: 1
    functionLinenumber: 99
    functionLinenumberEnd: 137
    functionName: kyber_generate_keypair
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - pgp_kyber_public_key_t
    - EVP_PKEY_keygen
    - EVP_PKEY_get_raw_public_key
    - rnp::secure_wipe
    - rnp::ossl::latest_err
    - OSSL_PARAM_construct_octet_string
    - EVP_PKEY_get_params
    - rnp::ossl::evp::PKey::get
    - std::make_pair
    - rnp::rnp_exception::rnp_exception
    - EVP_PKEY_keygen_init
    - rnp::ossl::evp::PKeyCtx::get
    - pgp_kyber_private_key_t
    - std::vector::data
    linkageType: ''
    returnType: std::pair<pgp_kyber_public_key_t, pgp_kyber_private_key_t>
    signature: std::pair<pgp_kyber_public_key_t, pgp_kyber_private_key_t> kyber_generate_keypair(rnp::RNG
      *rng, kyber_parameter_e kyber_param)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:142,1
    - Dst: load_mlkem_pubkey
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:143,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:145,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:145,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:146,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:148,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:148,1
    - Dst: EVP_PKEY_encapsulate_init
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:149,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:149,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:150,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:150,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:151,1
    - Dst: EVP_PKEY_encapsulate
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:154,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:154,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:155,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:155,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:156,1
    - Dst: kyber_encap_result_t::ciphertext::resize
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:159,1
    - Dst: kyber_encap_result_t::symmetric_key::resize
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:160,1
    - Dst: EVP_PKEY_encapsulate
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:161,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:161,1
    - Dst: kyber_encap_result_t::ciphertext::data
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:162,1
    - Dst: kyber_encap_result_t::symmetric_key::data
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:164,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:166,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:166,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:167,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 21
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts:
    - condition: (is_initialized_)
      pos:
        line_end: 141
        line_start: 141
        source_file: /src/rnp/src/lib/crypto/kyber_ossl.cpp
    constantsTouched: []
    func_position:
      end: 170
      start: 139
    functionDepth: 2
    functionLinenumber: 139
    functionLinenumberEnd: 170
    functionName: pgp_kyber_public_key_t::encapsulate
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_encapsulate_init
    - load_mlkem_pubkey
    - kyber_encap_result_t::symmetric_key::resize
    - kyber_encap_result_t::symmetric_key::data
    - EVP_PKEY_CTX_new_from_pkey
    - rnp::ossl::latest_err
    - assert
    - EVP_PKEY_encapsulate
    - kyber_encap_result_t::ciphertext::resize
    - kyber_encap_result_t::ciphertext::data
    - rnp::rnp_exception::rnp_exception
    - auto::get
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: kyber_encap_result_t
    signature: kyber_encap_result_t pgp_kyber_public_key_t::encapsulate(rnp::RNG *rng)
      const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:177,1
    - Dst: load_mlkem_privkey
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:178,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:180,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:180,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:181,1
    - Dst: EVP_PKEY_CTX_new_from_pkey
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:183,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:183,1
    - Dst: EVP_PKEY_decapsulate_init
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:184,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:184,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:185,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:185,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:186,1
    - Dst: EVP_PKEY_decapsulate
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:189,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:189,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:190,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:190,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:191,1
    - Dst: EVP_PKEY_decapsulate
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:194,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:194,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:194,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:196,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:196,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:197,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 19
    argCount: 3
    argNames:
    - rng
    - ciphertext
    - ciphertext_len
    argTypes:
    - rnp::RNG*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (is_initialized_)
      pos:
        line_end: 176
        line_start: 176
        source_file: /src/rnp/src/lib/crypto/kyber_ossl.cpp
    constantsTouched: []
    func_position:
      end: 200
      start: 172
    functionDepth: 2
    functionLinenumber: 172
    functionLinenumberEnd: 200
    functionName: pgp_kyber_private_key_t::decapsulate
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - std::vector::data
    - EVP_PKEY_CTX_new_from_pkey
    - rnp::ossl::latest_err
    - load_mlkem_privkey
    - assert
    - EVP_PKEY_decapsulate
    - rnp::rnp_exception::rnp_exception
    - auto::get
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_decapsulate_init
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> pgp_kyber_private_key_t::decapsulate(rnp::RNG
      *     rng,\n                                     const uint8_t *ciphertext,\n
      \                                    size_t         ciphertext_len)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load_mlkem_pubkey
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:208,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 209
    functionName: pgp_kyber_public_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ossl.cpp
    functionUses: 0
    functionsReached:
    - load_mlkem_pubkey
    linkageType: ''
    returnType: bool
    signature: bool pgp_kyber_public_key_t::is_valid(rnp::RNG *rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load_mlkem_privkey
      Src: /src/rnp/src/lib/crypto/kyber_ossl.cpp:217,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 218
      start: 211
    functionDepth: 2
    functionLinenumber: 211
    functionLinenumberEnd: 218
    functionName: pgp_kyber_private_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ossl.cpp
    functionUses: 0
    functionsReached:
    - load_mlkem_privkey
    linkageType: ''
    returnType: bool
    signature: bool pgp_kyber_private_key_t::is_valid(rnp::RNG *rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 33
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 33
    functionName: pgp_dilithium_exdsa_composite_key_t::~pgp_dilithium_exdsa_composite_key_t()
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_dilithium_exdsa_composite_key_t::~pgp_dilithium_exdsa_composite_key_t()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_dilithium_exdsa_composite_key_t::is_initialized
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:38,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:39,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:40,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 42
    functionName: pgp_dilithium_exdsa_composite_key_t::initialized_or_throw
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp_dilithium_exdsa_composite_key_t::is_initialized
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void pgp_dilithium_exdsa_composite_key_t::initialized_or_throw() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_dilithium_exdsa_composite_key_t::pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:50,1
    - Dst: pgp_dilithium_exdsa_composite_key_t::pk_alg_to_dilithium_id
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:51,1
    - Dst: ec_key_t::generate_exdsa_key_pair
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:55,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:57,1
    - Dst: dilithium_generate_keypair
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:61,1
    - Dst: pgp_dilithium_exdsa_composite_private_key_t
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:63,1
    - Dst: exdsa_key_t::priv::get_encoded
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:64,1
    - Dst: auto::second::get_encoded
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:64,1
    - Dst: pgp_dilithium_exdsa_composite_public_key_t
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:65,1
    - Dst: exdsa_key_t::pub::get_encoded
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:66,1
    - Dst: auto::first::get_encoded
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:66,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 3
    argNames:
    - rng
    - key
    - alg
    argTypes:
    - rnp::RNG*
    - pgp_dilithium_exdsa_key_t*
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 69
    functionName: pgp_dilithium_exdsa_composite_key_t::gen_keypair
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - dilithium_generate_keypair
    - auto::second::get_encoded
    - pgp_dilithium_exdsa_composite_key_t::pk_alg_to_curve_id
    - pgp_dilithium_exdsa_composite_public_key_t
    - ec_key_t::generate_exdsa_key_pair
    - exdsa_key_t::priv::get_encoded
    - exdsa_key_t::pub::get_encoded
    - auto::first::get_encoded
    - pgp_dilithium_exdsa_composite_private_key_t
    - pgp_dilithium_exdsa_composite_key_t::pk_alg_to_dilithium_id
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t pgp_dilithium_exdsa_composite_key_t::gen_keypair(rnp::RNG
      *                 rng,\n                                                 pgp_dilithium_exdsa_key_t
      *key,\n                                                 pgp_pubkey_alg_t           alg)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:88,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:89,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - curve
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 71
    functionDepth: 1
    functionLinenumber: 71
    functionLinenumberEnd: 91
    functionName: pgp_dilithium_exdsa_composite_key_t::exdsa_curve_privkey_size
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_dilithium_exdsa_composite_key_t::exdsa_curve_privkey_size(pgp_curve_t
      curve)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:110,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:111,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - curve
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 113
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 113
    functionName: pgp_dilithium_exdsa_composite_key_t::exdsa_curve_pubkey_size
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_dilithium_exdsa_composite_key_t::exdsa_curve_pubkey_size(pgp_curve_t
      curve)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:132,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:133,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - curve
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 115
    functionDepth: 1
    functionLinenumber: 115
    functionLinenumberEnd: 135
    functionName: pgp_dilithium_exdsa_composite_key_t::exdsa_curve_signature_size
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_dilithium_exdsa_composite_key_t::exdsa_curve_signature_size(pgp_curve_t
      curve)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:154,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:155,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - pk_alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 137
    functionDepth: 1
    functionLinenumber: 137
    functionLinenumberEnd: 157
    functionName: pgp_dilithium_exdsa_composite_key_t::pk_alg_to_dilithium_id
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: dilithium_parameter_e
    signature: dilithium_parameter_e pgp_dilithium_exdsa_composite_key_t::pk_alg_to_dilithium_id(pgp_pubkey_alg_t
      pk_alg)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:176,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:177,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 18
    argCount: 1
    argNames:
    - pk_alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 159
    functionDepth: 1
    functionLinenumber: 159
    functionLinenumberEnd: 179
    functionName: pgp_dilithium_exdsa_composite_key_t::pk_alg_to_curve_id
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t pgp_dilithium_exdsa_composite_key_t::pk_alg_to_curve_id(pgp_pubkey_alg_t
      pk_alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_dilithium_exdsa_composite_public_key_t::parse_component_keys
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:185,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key_encoded
    - key_encoded_len
    - pk_alg
    argTypes:
    - uint8_t*
    - size_t
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 186
    functionName: pgp_dilithium_exdsa_composite_public_key_t::pgp_dilithium_exdsa_composite_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    - pgp_dilithium_exdsa_composite_public_key_t::parse_component_keys
    linkageType: ''
    returnType: void
    signature: "void pgp_dilithium_exdsa_composite_public_key_t::pgp_dilithium_exdsa_composite_public_key_t(\n
      \ const uint8_t *key_encoded, size_t key_encoded_len, pgp_pubkey_alg_t pk_alg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_dilithium_exdsa_composite_public_key_t::parse_component_keys
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key_encoded
    - pk_alg
    argTypes:
    - std::vector<uint8_t>
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 193
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 193
    functionName: pgp_dilithium_exdsa_composite_public_key_t::pgp_dilithium_exdsa_composite_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 0
    functionsReached:
    - pgp_dilithium_exdsa_composite_public_key_t::parse_component_keys
    linkageType: ''
    returnType: void
    signature: "void pgp_dilithium_exdsa_composite_public_key_t::pgp_dilithium_exdsa_composite_public_key_t(\n
      \ std::vector<uint8_t> const &key_encoded, pgp_pubkey_alg_t pk_alg)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pk_alg_to_dilithium_id
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:199,1
    - Dst: pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:200,1
    - Dst: exdsa_curve_pubkey_size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:202,1
    - Dst: pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:202,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:202,1
    - Dst: dilithium_pubkey_size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:203,1
    - Dst: pk_alg_to_dilithium_id
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:203,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:204,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:205,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:206,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 3
    argNames:
    - exdsa_key_encoded
    - dilithium_key_encoded
    - pk_alg
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 195
    functionDepth: 1
    functionLinenumber: 195
    functionLinenumberEnd: 209
    functionName: pgp_dilithium_exdsa_composite_public_key_t::pgp_dilithium_exdsa_composite_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>::size
    - pk_alg_to_curve_id
    - pk_alg_to_dilithium_id
    - dilithium_pubkey_size
    - exdsa_curve_pubkey_size
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: "void pgp_dilithium_exdsa_composite_public_key_t::pgp_dilithium_exdsa_composite_public_key_t(\n
      \ std::vector<uint8_t> const &exdsa_key_encoded,\n  std::vector<uint8_t> const
      &dilithium_key_encoded,\n  pgp_pubkey_alg_t            pk_alg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_dilithium_exdsa_composite_private_key_t::parse_component_keys
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:215,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key_encoded
    - key_encoded_len
    - pk_alg
    argTypes:
    - uint8_t*
    - size_t
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: pgp_dilithium_exdsa_composite_private_key_t::pgp_dilithium_exdsa_composite_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    - pgp_dilithium_exdsa_composite_private_key_t::parse_component_keys
    linkageType: ''
    returnType: void
    signature: "void pgp_dilithium_exdsa_composite_private_key_t::pgp_dilithium_exdsa_composite_private_key_t(\n
      \ const uint8_t *key_encoded, size_t key_encoded_len, pgp_pubkey_alg_t pk_alg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_dilithium_exdsa_composite_private_key_t::parse_component_keys
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key_encoded
    - pk_alg
    argTypes:
    - std::vector<uint8_t>
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 223
    functionName: pgp_dilithium_exdsa_composite_private_key_t::pgp_dilithium_exdsa_composite_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 0
    functionsReached:
    - pgp_dilithium_exdsa_composite_private_key_t::parse_component_keys
    linkageType: ''
    returnType: void
    signature: "void pgp_dilithium_exdsa_composite_private_key_t::pgp_dilithium_exdsa_composite_private_key_t(\n
      \ std::vector<uint8_t> const &key_encoded, pgp_pubkey_alg_t pk_alg)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp_dilithium_exdsa_composite_key_t::operator=
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:231,1
    - Dst: pgp_dilithium_exdsa_composite_private_key_t::is_initialized
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:233,1
    - Dst: std::unique_ptr<pgp_dilithium_private_key_t>
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:235,1
    - Dst: pgp_dilithium_exdsa_composite_private_key_t::dilithium_key_::get_encoded
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:236,1
    - Dst: pgp_dilithium_exdsa_composite_private_key_t::dilithium_key_::param
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:236,1
    - Dst: pgp_dilithium_private_key_t::pgp_dilithium_private_key_t
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:235,1
    - Dst: pgp_dilithium_exdsa_composite_private_key_t::is_initialized
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:238,1
    - Dst: std::unique_ptr<exdsa_private_key_t>
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:239,1
    - Dst: pgp_dilithium_exdsa_composite_private_key_t::exdsa_key_::get_encoded
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:240,1
    - Dst: pgp_dilithium_exdsa_composite_private_key_t::exdsa_key_::get_curve
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:240,1
    - Dst: exdsa_private_key_t::exdsa_private_key_t
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:239,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - other
    argTypes:
    - pgp_dilithium_exdsa_composite_private_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 244
    functionName: "&\npgp_dilithium_exdsa_composite_private_key_t::operator=(\n  const
      pgp_dilithium_exdsa_composite_private_key_t &other)"
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 0
    functionsReached:
    - pgp_dilithium_private_key_t::pgp_dilithium_private_key_t
    - pgp_dilithium_exdsa_composite_key_t::operator=
    - pgp_dilithium_exdsa_composite_private_key_t::exdsa_key_::get_curve
    - pgp_dilithium_exdsa_composite_private_key_t::is_initialized
    - pgp_dilithium_exdsa_composite_private_key_t::exdsa_key_::get_encoded
    - exdsa_private_key_t::exdsa_private_key_t
    - pgp_dilithium_exdsa_composite_private_key_t::dilithium_key_::get_encoded
    - std::unique_ptr<pgp_dilithium_private_key_t>
    - pgp_dilithium_exdsa_composite_private_key_t::dilithium_key_::param
    - std::unique_ptr<exdsa_private_key_t>
    linkageType: ''
    returnType: pgp_dilithium_exdsa_composite_private_key_t
    signature: "pgp_dilithium_exdsa_composite_private_key_t &\npgp_dilithium_exdsa_composite_private_key_t::operator=(\n
      \ const pgp_dilithium_exdsa_composite_private_key_t &other)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - other
    argTypes:
    - pgp_dilithium_exdsa_composite_private_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 246
    functionDepth: 0
    functionLinenumber: 246
    functionLinenumberEnd: 250
    functionName: pgp_dilithium_exdsa_composite_private_key_t::pgp_dilithium_exdsa_composite_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void pgp_dilithium_exdsa_composite_private_key_t::pgp_dilithium_exdsa_composite_private_key_t(\n
      \ const pgp_dilithium_exdsa_composite_private_key_t &other)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: exdsa_curve_privkey_size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:258,1
    - Dst: pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:258,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:258,1
    - Dst: dilithium_privkey_size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:259,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:259,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:260,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:261,1
    - Dst: std::unique_ptr<pgp_dilithium_private_key_t>
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:264,1
    - Dst: pk_alg_to_dilithium_id
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:265,1
    - Dst: pgp_dilithium_private_key_t::pgp_dilithium_private_key_t
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:265,1
    - Dst: std::unique_ptr<exdsa_private_key_t>
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:266,1
    - Dst: pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:267,1
    - Dst: exdsa_private_key_t::exdsa_private_key_t
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:267,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 3
    argNames:
    - exdsa_key_encoded
    - dilithium_key_encoded
    - pk_alg
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 252
    functionDepth: 1
    functionLinenumber: 252
    functionLinenumberEnd: 269
    functionName: pgp_dilithium_exdsa_composite_private_key_t::pgp_dilithium_exdsa_composite_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>::size
    - dilithium_privkey_size
    - pk_alg_to_curve_id
    - pgp_dilithium_private_key_t::pgp_dilithium_private_key_t
    - pk_alg_to_dilithium_id
    - exdsa_private_key_t::exdsa_private_key_t
    - std::unique_ptr<pgp_dilithium_private_key_t>
    - rnp::rnp_exception::rnp_exception
    - exdsa_curve_privkey_size
    - std::unique_ptr<exdsa_private_key_t>
    linkageType: ''
    returnType: void
    signature: "void pgp_dilithium_exdsa_composite_private_key_t::pgp_dilithium_exdsa_composite_private_key_t(\n
      \ std::vector<uint8_t> const &exdsa_key_encoded,\n  std::vector<uint8_t> const
      &dilithium_key_encoded,\n  pgp_pubkey_alg_t            pk_alg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:274,1
    - Dst: exdsa_curve_privkey_size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:275,1
    - Dst: dilithium_privkey_size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pk_alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 271
    functionDepth: 1
    functionLinenumber: 271
    functionLinenumberEnd: 276
    functionName: pgp_dilithium_exdsa_composite_private_key_t::encoded_size
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 0
    functionsReached:
    - dilithium_privkey_size
    - pk_alg_to_curve_id
    - exdsa_curve_privkey_size
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_dilithium_exdsa_composite_private_key_t::encoded_size(pgp_pubkey_alg_t
      pk_alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:282,1
    - Dst: pgp_dilithium_exdsa_composite_private_key_t::encoded_size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:282,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:283,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:284,1
    - Dst: pk_alg_to_dilithium_id
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:287,1
    - Dst: pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:288,1
    - Dst: exdsa_curve_privkey_size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:289,1
    - Dst: pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:289,1
    - Dst: std::unique_ptr<pgp_dilithium_private_key_t>
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:292,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:293,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:293,1
    - Dst: pgp_dilithium_private_key_t::pgp_dilithium_private_key_t
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:292,1
    - Dst: std::unique_ptr<exdsa_private_key_t>
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:294,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:295,1
    - Dst: exdsa_private_key_t::exdsa_private_key_t
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:295,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - key_encoded
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 298
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 298
    functionName: pgp_dilithium_exdsa_composite_private_key_t::parse_component_keys
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>::size
    - pgp_dilithium_private_key_t::pgp_dilithium_private_key_t
    - pk_alg_to_curve_id
    - pk_alg_to_dilithium_id
    - pgp_dilithium_exdsa_composite_private_key_t::encoded_size
    - exdsa_private_key_t::exdsa_private_key_t
    - exdsa_curve_privkey_size
    - std::unique_ptr<pgp_dilithium_private_key_t>
    - rnp::rnp_exception::rnp_exception
    - std::vector<uint8_t>::data
    - std::unique_ptr<exdsa_private_key_t>
    linkageType: ''
    returnType: void
    signature: "void pgp_dilithium_exdsa_composite_private_key_t::parse_component_keys(\n
      \ std::vector<uint8_t> key_encoded)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initialized_or_throw
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:303,1
    - Dst: pgp_dilithium_exdsa_composite_private_key_t::get_encoded
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:305,1
    - Dst: pgp_dilithium_exdsa_composite_private_key_t::get_encoded
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:306,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:308,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:308,1
    - Dst: begin
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:308,1
    - Dst: end
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:308,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:309,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:310,1
    - Dst: begin
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:310,1
    - Dst: end
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:310,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 312
      start: 300
    functionDepth: 1
    functionLinenumber: 300
    functionLinenumberEnd: 312
    functionName: pgp_dilithium_exdsa_composite_private_key_t::get_encoded
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 1
    functionsReached:
    - std::vector::insert
    - end
    - pgp_dilithium_exdsa_composite_private_key_t::get_encoded
    - initialized_or_throw
    - std::vector::end
    - begin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pgp_dilithium_exdsa_composite_private_key_t::get_encoded()
      const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: initialized_or_throw
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:321,1
    - Dst: pgp_dilithium_exdsa_composite_private_key_t::sign
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:327,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:329,1
    - Dst: what
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:329,1
    - Dst: pgp_dilithium_exdsa_composite_private_key_t::sign
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:332,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:334,1
    - Dst: pgp_dilithium_exdsa_signature_t*::sig::assign
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:338,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:338,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:338,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:338,1
    - Dst: pgp_dilithium_exdsa_signature_t*::sig::insert
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:339,1
    - Dst: pgp_dilithium_exdsa_signature_t*::sig::end
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:339,1
    - Dst: std::vector::begin
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:339,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:339,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 5
    argNames:
    - rng
    - sig
    - hash_alg
    - msg
    - msg_len
    argTypes:
    - rnp::RNG*
    - pgp_dilithium_exdsa_signature_t*
    - pgp_hash_alg_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 342
      start: 314
    functionDepth: 1
    functionLinenumber: 314
    functionLinenumberEnd: 342
    functionName: pgp_dilithium_exdsa_composite_private_key_t::sign
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - what
    - pgp_dilithium_exdsa_signature_t*::sig::assign
    - pgp_dilithium_exdsa_composite_private_key_t::sign
    - pgp_dilithium_exdsa_signature_t*::sig::insert
    - initialized_or_throw
    - std::vector::begin
    - pgp_dilithium_exdsa_signature_t*::sig::end
    - std::vector::end
    - std::vector::size
    - std::vector::data
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t pgp_dilithium_exdsa_composite_private_key_t::sign(rnp::RNG
      *                       rng,\n                                                  pgp_dilithium_exdsa_signature_t
      *sig,\n                                                  pgp_hash_alg_t                   hash_alg,\n
      \                                                 const uint8_t *                  msg,\n
      \                                                 size_t msg_len) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:349,1
    - Dst: reset
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 352
      start: 344
    functionDepth: 1
    functionLinenumber: 344
    functionLinenumberEnd: 352
    functionName: pgp_dilithium_exdsa_composite_private_key_t::secure_clear
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 0
    functionsReached:
    - reset
    linkageType: ''
    returnType: void
    signature: void pgp_dilithium_exdsa_composite_private_key_t::secure_clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pk_alg_to_dilithium_id
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:357,1
    - Dst: pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:358,1
    - Dst: exdsa_curve_pubkey_size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:359,1
    - Dst: dilithium_pubkey_size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:359,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pk_alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 360
      start: 354
    functionDepth: 1
    functionLinenumber: 354
    functionLinenumberEnd: 360
    functionName: pgp_dilithium_exdsa_composite_public_key_t::encoded_size
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 3
    functionsReached:
    - exdsa_curve_pubkey_size
    - pk_alg_to_curve_id
    - dilithium_pubkey_size
    - pk_alg_to_dilithium_id
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_dilithium_exdsa_composite_public_key_t::encoded_size(pgp_pubkey_alg_t
      pk_alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:366,1
    - Dst: pgp_dilithium_exdsa_composite_public_key_t::encoded_size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:366,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:367,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:368,1
    - Dst: pk_alg_to_dilithium_id
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:371,1
    - Dst: pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:372,1
    - Dst: exdsa_curve_pubkey_size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:373,1
    - Dst: pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:373,1
    - Dst: pgp_dilithium_public_key_t
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:375,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:376,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:376,1
    - Dst: exdsa_public_key_t
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:377,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:377,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - key_encoded
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 380
      start: 362
    functionDepth: 2
    functionLinenumber: 362
    functionLinenumberEnd: 380
    functionName: pgp_dilithium_exdsa_composite_public_key_t::parse_component_keys
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>::size
    - pk_alg_to_curve_id
    - pk_alg_to_dilithium_id
    - pgp_dilithium_exdsa_composite_public_key_t::encoded_size
    - pgp_dilithium_public_key_t
    - exdsa_curve_pubkey_size
    - exdsa_public_key_t
    - rnp::rnp_exception::rnp_exception
    - std::vector<uint8_t>::data
    linkageType: ''
    returnType: void
    signature: "void pgp_dilithium_exdsa_composite_public_key_t::parse_component_keys(\n
      \ std::vector<uint8_t> key_encoded)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: initialized_or_throw
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:385,1
    - Dst: pgp_dilithium_exdsa_composite_public_key_t::get_encoded
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:387,1
    - Dst: pgp_dilithium_exdsa_composite_public_key_t::get_encoded
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:388,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:390,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:390,1
    - Dst: begin
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:390,1
    - Dst: end
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:390,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:391,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:392,1
    - Dst: begin
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:392,1
    - Dst: end
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:392,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 394
      start: 382
    functionDepth: 1
    functionLinenumber: 382
    functionLinenumberEnd: 394
    functionName: pgp_dilithium_exdsa_composite_public_key_t::get_encoded
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 1
    functionsReached:
    - pgp_dilithium_exdsa_composite_public_key_t::get_encoded
    - std::vector::insert
    - end
    - initialized_or_throw
    - std::vector::end
    - begin
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pgp_dilithium_exdsa_composite_public_key_t::get_encoded()
      const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: initialized_or_throw
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:402,1
    - Dst: pgp_dilithium_exdsa_signature_t*::sig::size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:406,1
    - Dst: pgp_dilithium_exdsa_signature_t*::composite_signature_size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:406,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:407,1
    - Dst: exdsa_curve_signature_size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:411,1
    - Dst: pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:411,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:412,1
    - Dst: pgp_dilithium_exdsa_signature_t*::sig::data
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:412,1
    - Dst: pgp_dilithium_exdsa_signature_t*::sig::data
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:412,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:414,1
    - Dst: pgp_dilithium_exdsa_signature_t*::sig::data
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:414,1
    - Dst: pgp_dilithium_exdsa_signature_t*::sig::data
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:414,1
    - Dst: pgp_dilithium_exdsa_signature_t*::sig::size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:414,1
    - Dst: pgp_dilithium_exdsa_composite_public_key_t::verify
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:416,1
    - Dst: verify_signature
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:417,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:418,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:418,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:419,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 13
    argCount: 4
    argNames:
    - sig
    - hash_alg
    - hash
    - hash_len
    argTypes:
    - pgp_dilithium_exdsa_signature_t*
    - pgp_hash_alg_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 424
    functionName: pgp_dilithium_exdsa_composite_public_key_t::verify
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - pgp_dilithium_exdsa_composite_public_key_t::verify
    - std::vector<uint8_t>
    - pk_alg_to_curve_id
    - exdsa_curve_signature_size
    - pgp_dilithium_exdsa_signature_t*::composite_signature_size
    - pgp_dilithium_exdsa_signature_t*::sig::size
    - initialized_or_throw
    - pgp_dilithium_exdsa_signature_t*::sig::data
    - verify_signature
    - std::vector::size
    - std::vector::data
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t pgp_dilithium_exdsa_composite_public_key_t::verify(const
      pgp_dilithium_exdsa_signature_t *sig,\n                                                   pgp_hash_alg_t
      hash_alg,\n                                                   const uint8_t
      *hash,\n                                                   size_t         hash_len)
      const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_initialized
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:429,1
    - Dst: pgp_dilithium_exdsa_composite_public_key_t::is_valid
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:432,1
    - Dst: pgp_dilithium_exdsa_composite_public_key_t::is_valid
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:432,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 433
      start: 426
    functionDepth: 1
    functionLinenumber: 426
    functionLinenumberEnd: 433
    functionName: pgp_dilithium_exdsa_composite_public_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 1
    functionsReached:
    - is_initialized
    - pgp_dilithium_exdsa_composite_public_key_t::is_valid
    linkageType: ''
    returnType: bool
    signature: bool pgp_dilithium_exdsa_composite_public_key_t::is_valid(rnp::RNG
      *rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_initialized
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:438,1
    - Dst: pgp_dilithium_exdsa_composite_private_key_t::is_valid
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:441,1
    - Dst: pgp_dilithium_exdsa_composite_private_key_t::is_valid
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:441,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 442
      start: 435
    functionDepth: 1
    functionLinenumber: 435
    functionLinenumberEnd: 442
    functionName: pgp_dilithium_exdsa_composite_private_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 1
    functionsReached:
    - is_initialized
    - pgp_dilithium_exdsa_composite_private_key_t::is_valid
    linkageType: ''
    returnType: bool
    signature: bool pgp_dilithium_exdsa_composite_private_key_t::is_valid(rnp::RNG
      *rng) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp_dilithium_exdsa_key_t*::pub::is_valid
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:449,1
    - Dst: pgp_dilithium_exdsa_key_t*::priv::is_valid
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp:451,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG*
    - pgp_dilithium_exdsa_key_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 444
    functionDepth: 0
    functionLinenumber: 444
    functionLinenumberEnd: 458
    functionName: dilithium_exdsa_validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
    functionUses: 2
    functionsReached:
    - pgp_dilithium_exdsa_key_t*::pub::is_valid
    - pgp_dilithium_exdsa_key_t*::priv::is_valid
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t dilithium_exdsa_validate_key(rnp::RNG *rng, const pgp_dilithium_exdsa_key_t
      *key, bool secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/dsa.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: pgp::dsa::Key::clear_secret
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.h
    functionUses: 0
    functionsReached:
    - forget
    linkageType: ''
    returnType: void
    signature: void clear_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_secret
      Src: /src/rnp/src/lib/crypto/dsa.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: ~Key()
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.h
    functionUses: 0
    functionsReached:
    - clear_secret
    linkageType: ''
    returnType: void
    signature: void ~Key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/dsa.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: pgp::dsa::Key::clear_secret
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.h
    functionUses: 0
    functionsReached:
    - forget
    linkageType: ''
    returnType: void
    signature: void clear_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_secret
      Src: /src/rnp/src/lib/crypto/dsa.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: ~Key()
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.h
    functionUses: 0
    functionsReached:
    - clear_secret
    linkageType: ''
    returnType: void
    signature: void ~Key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/dsa.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: pgp::dsa::Key::clear_secret
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.h
    functionUses: 0
    functionsReached:
    - forget
    linkageType: ''
    returnType: void
    signature: void clear_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_secret
      Src: /src/rnp/src/lib/crypto/dsa.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: ~Key()
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.h
    functionUses: 0
    functionsReached:
    - clear_secret
    linkageType: ''
    returnType: void
    signature: void ~Key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/dsa.h:57,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: pgp::dsa::Key::clear_secret
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.h
    functionUses: 0
    functionsReached:
    - forget
    linkageType: ''
    returnType: void
    signature: void clear_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_secret
      Src: /src/rnp/src/lib/crypto/dsa.h:62,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 60
    functionDepth: 1
    functionLinenumber: 60
    functionLinenumberEnd: 63
    functionName: ~Key()
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.h
    functionUses: 0
    functionsReached:
    - clear_secret
    linkageType: ''
    returnType: void
    signature: void ~Key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/kem_combiner.hpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: rnp::PqcKemCombiner::domSeparation
    functionSourceFile: /src/rnp/src/lib/crypto/kem_combiner.hpp
    functionUses: 2
    functionsReached:
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> domSeparation()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/kem_combiner.hpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: rnp::PqcKemCombiner::domSeparation
    functionSourceFile: /src/rnp/src/lib/crypto/kem_combiner.hpp
    functionUses: 2
    functionsReached:
    - std::vector<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> domSeparation()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: rnp::Hash::alg
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t Hash::alg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: rnp::Hash::size
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 24
    functionsReached:
    - rnp::Hash::size
    linkageType: ''
    returnType: size_t
    signature: size_t Hash::size() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash_SHA1CD::create
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:76,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:80,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:81,1
    - Dst: rnp::Hash_OpenSSL::create
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:85,1
    - Dst: rnp::Hash_Botan::create
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 91
    functionName: rnp::Hash::create
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 23
    functionsReached:
    - RNP_LOG
    - rnp::Hash_SHA1CD::create
    - rnp::Hash_OpenSSL::create
    - rnp::Hash_Botan::create
    - rnp_exception
    linkageType: ''
    returnType: std::unique_ptr<Hash>
    signature: std::unique_ptr<Hash> Hash::create(pgp_hash_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::CRC24_RNP::create
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:97,1
    - Dst: rnp::CRC24_Botan::create
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: rnp::CRC24::create
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 2
    functionsReached:
    - rnp::CRC24_RNP::create
    - rnp::CRC24_Botan::create
    linkageType: ''
    returnType: std::unique_ptr<CRC24>
    signature: std::unique_ptr<CRC24> CRC24::create()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:108,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:108,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: rnp::Hash::add
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 20
    functionsReached:
    - std::vector<uint8_t>::size
    - std::vector<uint8_t>::data
    - rnp::Hash::add
    linkageType: ''
    returnType: void
    signature: void Hash::add(const std::vector<uint8_t> &val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_uint32
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:115,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: rnp::Hash::add
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 21
    functionsReached:
    - rnp::Hash::add
    - write_uint32
    linkageType: ''
    returnType: void
    signature: void Hash::add(uint32_t val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:122,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:129,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:133,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:136,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:138,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - val
    argTypes:
    - pgp::mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 139
    functionName: rnp::Hash::add
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 22
    functionsReached:
    - pgp::mpi::size
    - rnp::Hash::add
    - pgp::mpi::data
    linkageType: ''
    returnType: void
    signature: void Hash::add(const pgp::mpi &val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::finish
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:145,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: rnp::Hash::finish
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 1
    functionsReached:
    - rnp::Hash::finish
    - std::vector::data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Hash::finish()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::finish
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:153,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: rnp::Hash::sec_finish
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 0
    functionsReached:
    - rnp::Hash::finish
    - rnp::secure_bytes::data
    linkageType: ''
    returnType: rnp::secure_bytes
    signature: rnp::secure_bytes Hash::sec_finish()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: Hash::~Hash()
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash::~Hash()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:167,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 173
    functionName: rnp::Hash::alg
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - rnp::str_case_eq
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t Hash::alg(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_LOOKUP_BY_ID
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: rnp::Hash::name
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 3
    functionsReached:
    - ARRAY_LOOKUP_BY_ID
    linkageType: ''
    returnType: char
    signature: 'char *

      Hash::name(pgp_hash_alg_t alg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_LOOKUP_BY_ID
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: rnp::Hash::size
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 24
    functionsReached:
    - ARRAY_LOOKUP_BY_ID
    linkageType: ''
    returnType: size_t
    signature: size_t Hash::size(pgp_hash_alg_t alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::HashList::get
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:194,1
    - Dst: emplace_back
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:195,1
    - Dst: std::make_pair
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:195,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:195,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 197
    functionName: rnp::HashList::add_alg
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    - emplace_back
    - rnp::HashList::get
    - std::make_pair
    - rnp::Hash::create
    linkageType: ''
    returnType: void
    signature: void HashList::add_alg(pgp_hash_alg_t alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: first::alg
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:203,1
    - Dst: second::empty
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:203,1
    - Dst: first::get
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 208
    functionName: rnp::HashList::get
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 1
    functionsReached:
    - second::empty
    - first::get
    - first::alg
    linkageType: ''
    returnType: Hash
    signature: 'Hash *

      HashList::get(pgp_hash_alg_t alg) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: first::add
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: rnp::HashList::add
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 0
    functionsReached:
    - first::add
    linkageType: ''
    returnType: void
    signature: void HashList::add(const void *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::set::insert
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:223,1
    - Dst: first::alg
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:223,1
    - Dst: std::copy
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:227,1
    - Dst: std::set::begin
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:227,1
    - Dst: std::set::end
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:227,1
    - Dst: std::back_inserter
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 229
    functionName: rnp::HashList::hash_algs
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 0
    functionsReached:
    - std::back_inserter
    - first::alg
    - std::copy
    - std::set::insert
    - std::set::begin
    - std::set::end
    linkageType: ''
    returnType: std::vector<pgp_hash_alg_t>
    signature: std::vector<pgp_hash_alg_t> HashList::hash_algs() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::HashList::get
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:235,1
    - Dst: emplace_back
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:236,1
    - Dst: std::make_pair
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:236,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:236,1
    - Dst: back
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:237,1
    - Dst: rnp::HashList::add
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - alg
    - salt
    argTypes:
    - pgp_hash_alg_t
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 239
    functionName: rnp::HashList::add_alg
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 0
    functionsReached:
    - rnp::HashList::add
    - emplace_back
    - rnp::HashList::get
    - back
    - std::make_pair
    - rnp::Hash::create
    linkageType: ''
    returnType: void
    signature: void HashList::add_alg(pgp_hash_alg_t alg, std::vector<uint8_t> salt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: first::alg
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:245,1
    - Dst: first::get
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - alg
    - salt
    argTypes:
    - pgp_hash_alg_t
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 250
    functionName: rnp::HashList::get
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 2
    functionsReached:
    - first::get
    - first::alg
    linkageType: ''
    returnType: Hash
    signature: 'Hash *

      HashList::get(pgp_hash_alg_t alg, std::vector<uint8_t> salt) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: rnp::Hash::alg
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t Hash::alg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 70
    functionName: rnp::Hash::size
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 25
    functionsReached:
    - rnp::Hash::size
    linkageType: ''
    returnType: size_t
    signature: size_t Hash::size() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash_SHA1CD::create
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:76,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:80,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:81,1
    - Dst: rnp::Hash_OpenSSL::create
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:85,1
    - Dst: rnp::Hash_Botan::create
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:87,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 91
    functionName: rnp::Hash::create
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 25
    functionsReached:
    - RNP_LOG
    - rnp::Hash_SHA1CD::create
    - rnp::Hash_OpenSSL::create
    - rnp::Hash_Botan::create
    - rnp_exception
    linkageType: ''
    returnType: std::unique_ptr<Hash>
    signature: std::unique_ptr<Hash> Hash::create(pgp_hash_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::CRC24_RNP::create
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:97,1
    - Dst: rnp::CRC24_Botan::create
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 103
    functionName: rnp::CRC24::create
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 2
    functionsReached:
    - rnp::CRC24_RNP::create
    - rnp::CRC24_Botan::create
    linkageType: ''
    returnType: std::unique_ptr<CRC24>
    signature: std::unique_ptr<CRC24> CRC24::create()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:108,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:108,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 1
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: rnp::Hash::add
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 23
    functionsReached:
    - std::vector<uint8_t>::size
    - std::vector<uint8_t>::data
    - rnp::Hash::add
    linkageType: ''
    returnType: void
    signature: void Hash::add(const std::vector<uint8_t> &val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_uint32
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:115,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 111
    functionDepth: 1
    functionLinenumber: 111
    functionLinenumberEnd: 117
    functionName: rnp::Hash::add
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 24
    functionsReached:
    - rnp::Hash::add
    - write_uint32
    linkageType: ''
    returnType: void
    signature: void Hash::add(uint32_t val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::mpi::size
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:122,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:129,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:133,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:136,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:138,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:138,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 1
    argNames:
    - val
    argTypes:
    - pgp::mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 119
    functionDepth: 0
    functionLinenumber: 119
    functionLinenumberEnd: 139
    functionName: rnp::Hash::add
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 25
    functionsReached:
    - pgp::mpi::size
    - rnp::Hash::add
    - pgp::mpi::data
    linkageType: ''
    returnType: void
    signature: void Hash::add(const pgp::mpi &val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::finish
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:145,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:145,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 147
    functionName: rnp::Hash::finish
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 3
    functionsReached:
    - rnp::Hash::finish
    - std::vector::data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> Hash::finish()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::finish
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:153,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:153,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 155
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 155
    functionName: rnp::Hash::sec_finish
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 0
    functionsReached:
    - rnp::Hash::finish
    - rnp::secure_bytes::data
    linkageType: ''
    returnType: rnp::secure_bytes
    signature: rnp::secure_bytes Hash::sec_finish()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 157
    functionDepth: 0
    functionLinenumber: 157
    functionLinenumberEnd: 159
    functionName: Hash::~Hash()
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash::~Hash()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:167,1
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:168,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 173
      start: 161
    functionDepth: 1
    functionLinenumber: 161
    functionLinenumberEnd: 173
    functionName: rnp::Hash::alg
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 1
    functionsReached:
    - ARRAY_SIZE
    - rnp::str_case_eq
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t Hash::alg(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_LOOKUP_BY_ID
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:179,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 175
    functionDepth: 1
    functionLinenumber: 175
    functionLinenumberEnd: 181
    functionName: rnp::Hash::name
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 3
    functionsReached:
    - ARRAY_LOOKUP_BY_ID
    linkageType: ''
    returnType: char
    signature: 'char *

      Hash::name(pgp_hash_alg_t alg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_LOOKUP_BY_ID
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 189
      start: 183
    functionDepth: 1
    functionLinenumber: 183
    functionLinenumberEnd: 189
    functionName: rnp::Hash::size
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 25
    functionsReached:
    - ARRAY_LOOKUP_BY_ID
    linkageType: ''
    returnType: size_t
    signature: size_t Hash::size(pgp_hash_alg_t alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::HashList::get
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:194,1
    - Dst: emplace_back
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:195,1
    - Dst: std::make_pair
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:195,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:195,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:195,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 191
    functionDepth: 1
    functionLinenumber: 191
    functionLinenumberEnd: 197
    functionName: rnp::HashList::add_alg
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>
    - emplace_back
    - rnp::HashList::get
    - std::make_pair
    - rnp::Hash::create
    linkageType: ''
    returnType: void
    signature: void HashList::add_alg(pgp_hash_alg_t alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: first::alg
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:203,1
    - Dst: second::empty
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:203,1
    - Dst: first::get
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:204,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 199
    functionDepth: 1
    functionLinenumber: 199
    functionLinenumberEnd: 208
    functionName: rnp::HashList::get
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 3
    functionsReached:
    - second::empty
    - first::get
    - first::alg
    linkageType: ''
    returnType: Hash
    signature: 'Hash *

      HashList::get(pgp_hash_alg_t alg) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: first::add
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 210
    functionDepth: 1
    functionLinenumber: 210
    functionLinenumberEnd: 216
    functionName: rnp::HashList::add
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 1
    functionsReached:
    - first::add
    linkageType: ''
    returnType: void
    signature: void HashList::add(const void *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::set::insert
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:223,1
    - Dst: first::alg
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:223,1
    - Dst: std::copy
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:227,1
    - Dst: std::set::begin
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:227,1
    - Dst: std::set::end
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:227,1
    - Dst: std::back_inserter
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 229
      start: 218
    functionDepth: 1
    functionLinenumber: 218
    functionLinenumberEnd: 229
    functionName: rnp::HashList::hash_algs
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 0
    functionsReached:
    - std::back_inserter
    - first::alg
    - std::copy
    - std::set::insert
    - std::set::begin
    - std::set::end
    linkageType: ''
    returnType: std::vector<pgp_hash_alg_t>
    signature: std::vector<pgp_hash_alg_t> HashList::hash_algs() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::HashList::get
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:235,1
    - Dst: emplace_back
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:236,1
    - Dst: std::make_pair
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:236,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:236,1
    - Dst: back
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:237,1
    - Dst: rnp::HashList::add
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:237,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - alg
    - salt
    argTypes:
    - pgp_hash_alg_t
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 239
      start: 232
    functionDepth: 1
    functionLinenumber: 232
    functionLinenumberEnd: 239
    functionName: rnp::HashList::add_alg
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 0
    functionsReached:
    - rnp::HashList::add
    - emplace_back
    - rnp::HashList::get
    - back
    - std::make_pair
    - rnp::Hash::create
    linkageType: ''
    returnType: void
    signature: void HashList::add_alg(pgp_hash_alg_t alg, std::vector<uint8_t> salt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: first::alg
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:245,1
    - Dst: first::get
      Src: /src/rnp/src/lib/crypto/hash_common.cpp:246,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - alg
    - salt
    argTypes:
    - pgp_hash_alg_t
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 250
      start: 241
    functionDepth: 1
    functionLinenumber: 241
    functionLinenumberEnd: 250
    functionName: rnp::HashList::get
    functionSourceFile: /src/rnp/src/lib/crypto/hash_common.cpp
    functionUses: 4
    functionsReached:
    - first::get
    - first::alg
    linkageType: ''
    returnType: Hash
    signature: 'Hash *

      HashList::get(pgp_hash_alg_t alg, std::vector<uint8_t> salt) const'
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 37
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 37
    functionName: kyber_privkey_size
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_common.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t kyber_privkey_size()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_common.cpp:48,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_common.cpp:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - parameter
    argTypes:
    - kyber_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 51
    functionName: kyber_pubkey_size
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_common.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: size_t
    signature: size_t kyber_pubkey_size(kyber_parameter_e parameter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/kyber_common.cpp:62,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/kyber_common.cpp:63,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - parameter
    argTypes:
    - kyber_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 65
    functionName: kyber_ciphertext_size
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_common.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: size_t
    signature: size_t kyber_ciphertext_size(kyber_parameter_e parameter)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - key_encoded
    - key_encoded_len
    - mode
    argTypes:
    - uint8_t*
    - size_t
    - kyber_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 73
    functionName: pgp_kyber_public_key_t::pgp_kyber_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_common.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void pgp_kyber_public_key_t::pgp_kyber_public_key_t(const uint8_t
      *   key_encoded,\n                                               size_t            key_encoded_len,\n
      \                                              kyber_parameter_e mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key_encoded
    - mode
    argTypes:
    - std::vector<uint8_t>
    - kyber_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: pgp_kyber_public_key_t::pgp_kyber_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_common.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void pgp_kyber_public_key_t::pgp_kyber_public_key_t(std::vector<uint8_t>
      const &key_encoded,\n                                               kyber_parameter_e
      \          mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - key_encoded
    - key_encoded_len
    - mode
    argTypes:
    - uint8_t*
    - size_t
    - kyber_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: pgp_kyber_private_key_t::pgp_kyber_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_common.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void pgp_kyber_private_key_t::pgp_kyber_private_key_t(const uint8_t
      *   key_encoded,\n                                                 size_t            key_encoded_len,\n
      \                                                kyber_parameter_e mode)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key_encoded
    - mode
    argTypes:
    - std::vector<uint8_t>
    - kyber_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 93
    functionName: pgp_kyber_private_key_t::pgp_kyber_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_common.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void pgp_kyber_private_key_t::pgp_kyber_private_key_t(std::vector<uint8_t>
      const &key_encoded,\n                                                 kyber_parameter_e
      \          mode)"
  - 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: pgp_kyber_private_key_t::pgp_kyber_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/kyber.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_kyber_private_key_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlock
      Src: /src/rnp/src/lib/crypto/kyber.h:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 62
    functionName: pgp_kyber_private_key_t::get_encoded
    functionSourceFile: /src/rnp/src/lib/crypto/kyber.h
    functionUses: 0
    functionsReached:
    - unlock
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_encoded() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 68
    functionName: pgp_kyber_private_key_t::param
    functionSourceFile: /src/rnp/src/lib/crypto/kyber.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: kyber_parameter_e
    signature: kyber_parameter_e param() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 82
    functionName: pgp_kyber_public_key_t::pgp_kyber_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/kyber.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_kyber_public_key_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - pgp_kyber_public_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 89
    functionName: operator==(const pgp_kyber_public_key_t &rhs) const
    functionSourceFile: /src/rnp/src/lib/crypto/kyber.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const pgp_kyber_public_key_t &rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: pgp_kyber_public_key_t::get_encoded
    functionSourceFile: /src/rnp/src/lib/crypto/kyber.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_encoded() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/hash.hpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: rnp::Hash::Hash
    functionSourceFile: /src/rnp/src/lib/crypto/hash.hpp
    functionUses: 1
    functionsReached:
    - rnp::Hash::size
    linkageType: ''
    returnType: void
    signature: void Hash(pgp_hash_alg_t alg)
  - 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: rnp::CRC24::CRC24
    functionSourceFile: /src/rnp/src/lib/crypto/hash.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CRC24()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: ~CRC24()
    functionSourceFile: /src/rnp/src/lib/crypto/hash.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~CRC24()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/hash.hpp:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 51
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 51
    functionName: rnp::Hash::Hash
    functionSourceFile: /src/rnp/src/lib/crypto/hash.hpp
    functionUses: 1
    functionsReached:
    - rnp::Hash::size
    linkageType: ''
    returnType: void
    signature: void Hash(pgp_hash_alg_t alg)
  - 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: rnp::CRC24::CRC24
    functionSourceFile: /src/rnp/src/lib/crypto/hash.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CRC24()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 89
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 89
    functionName: ~CRC24()
    functionSourceFile: /src/rnp/src/lib/crypto/hash.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~CRC24()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - crc
    - data
    argTypes:
    - uint32_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 193
    functionDepth: 0
    functionLinenumber: 193
    functionLinenumberEnd: 197
    functionName: process8
    functionSourceFile: /src/rnp/src/lib/crypto/hash_crc24.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t process8(uint32_t crc, uint8_t data)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - crc
    - word
    argTypes:
    - uint32_t
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 209
      start: 202
    functionDepth: 0
    functionLinenumber: 202
    functionLinenumberEnd: 209
    functionName: process32
    functionSourceFile: /src/rnp/src/lib/crypto/hash_crc24.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t process32(uint32_t crc, uint32_t word)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<uint32_t>
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:215,1
    - Dst: static_cast<uint32_t>
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:215,1
    - Dst: static_cast<uint32_t>
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:216,1
    - Dst: static_cast<uint32_t>
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - x
    - y
    argTypes:
    - uint32_t
    - uint8_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 212
    functionDepth: 0
    functionLinenumber: 212
    functionLinenumberEnd: 217
    functionName: LOAD32LE
    functionSourceFile: /src/rnp/src/lib/crypto/hash_crc24.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint32_t>
    linkageType: ''
    returnType: void
    signature: void LOAD32LE(uint32_t &x, const uint8_t y[4])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: LOAD32LE
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:225,1
    - Dst: LOAD32LE
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:226,1
    - Dst: LOAD32LE
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:227,1
    - Dst: LOAD32LE
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:228,1
    - Dst: process32
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:230,1
    - Dst: process32
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:231,1
    - Dst: process32
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:232,1
    - Dst: process32
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:233,1
    - Dst: process8
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:240,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 17
    argCount: 3
    argNames:
    - crc
    - in
    - length
    argTypes:
    - uint32_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 244
      start: 219
    functionDepth: 1
    functionLinenumber: 219
    functionLinenumberEnd: 244
    functionName: crc24_update
    functionSourceFile: /src/rnp/src/lib/crypto/hash_crc24.cpp
    functionUses: 0
    functionsReached:
    - LOAD32LE
    - process8
    - process32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t crc24_update(uint32_t crc, const uint8_t *in, size_t length)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 249
      start: 248
    functionDepth: 0
    functionLinenumber: 248
    functionLinenumberEnd: 249
    functionName: BSWAP32
    functionSourceFile: /src/rnp/src/lib/crypto/hash_crc24.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 253
    functionName: BSWAP32
    functionSourceFile: /src/rnp/src/lib/crypto/hash_crc24.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: BSWAP32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BSWAP32
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:258,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - crc
    argTypes:
    - uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 259
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 259
    functionName: crc24_final
    functionSourceFile: /src/rnp/src/lib/crypto/hash_crc24.cpp
    functionUses: 0
    functionsReached:
    - BSWAP32
    linkageType: ''
    returnType: uint32_t
    signature: uint32_t crc24_final(uint32_t crc)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: rnp::CRC24_RNP::CRC24_RNP
    functionSourceFile: /src/rnp/src/lib/crypto/hash_crc24.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CRC24_RNP::CRC24_RNP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 270
    functionName: CRC24_RNP::~CRC24_RNP()
    functionSourceFile: /src/rnp/src/lib/crypto/hash_crc24.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CRC24_RNP::~CRC24_RNP()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<CRC24_RNP>
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:275,1
    - Dst: CRC24_RNP::CRC24_RNP
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: rnp::CRC24_RNP::create
    functionSourceFile: /src/rnp/src/lib/crypto/hash_crc24.cpp
    functionUses: 2
    functionsReached:
    - std::unique_ptr<CRC24_RNP>
    - CRC24_RNP::CRC24_RNP
    linkageType: ''
    returnType: std::unique_ptr<CRC24_RNP>
    signature: std::unique_ptr<CRC24_RNP> CRC24_RNP::create()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crc24_update
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:281,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: rnp::CRC24_RNP::add
    functionSourceFile: /src/rnp/src/lib/crypto/hash_crc24.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const uint8_t *>
    - crc24_update
    linkageType: ''
    returnType: void
    signature: void CRC24_RNP::add(const void *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crc24_final
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 294
    functionName: rnp::CRC24_RNP::finish
    functionSourceFile: /src/rnp/src/lib/crypto/hash_crc24.cpp
    functionUses: 0
    functionsReached:
    - crc24_final
    linkageType: ''
    returnType: std::array<uint8_t, 3>
    signature: std::array<uint8_t, 3> CRC24_RNP::finish()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 263
    functionDepth: 0
    functionLinenumber: 263
    functionLinenumberEnd: 266
    functionName: rnp::CRC24_RNP::CRC24_RNP
    functionSourceFile: /src/rnp/src/lib/crypto/hash_crc24.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CRC24_RNP::CRC24_RNP()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 270
    functionName: CRC24_RNP::~CRC24_RNP()
    functionSourceFile: /src/rnp/src/lib/crypto/hash_crc24.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CRC24_RNP::~CRC24_RNP()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<CRC24_RNP>
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:275,1
    - Dst: CRC24_RNP::CRC24_RNP
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 276
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 276
    functionName: rnp::CRC24_RNP::create
    functionSourceFile: /src/rnp/src/lib/crypto/hash_crc24.cpp
    functionUses: 2
    functionsReached:
    - std::unique_ptr<CRC24_RNP>
    - CRC24_RNP::CRC24_RNP
    linkageType: ''
    returnType: std::unique_ptr<CRC24_RNP>
    signature: std::unique_ptr<CRC24_RNP> CRC24_RNP::create()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crc24_update
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:281,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 2
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: rnp::CRC24_RNP::add
    functionSourceFile: /src/rnp/src/lib/crypto/hash_crc24.cpp
    functionUses: 0
    functionsReached:
    - static_cast<const uint8_t *>
    - crc24_update
    linkageType: ''
    returnType: void
    signature: void CRC24_RNP::add(const void *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crc24_final
      Src: /src/rnp/src/lib/crypto/hash_crc24.cpp:287,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 294
      start: 284
    functionDepth: 2
    functionLinenumber: 284
    functionLinenumberEnd: 294
    functionName: rnp::CRC24_RNP::finish
    functionSourceFile: /src/rnp/src/lib/crypto/hash_crc24.cpp
    functionUses: 0
    functionsReached:
    - crc24_final
    linkageType: ''
    returnType: std::array<uint8_t, 3>
    signature: std::array<uint8_t, 3> CRC24_RNP::finish()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash_OpenSSL::name_backend
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:55,1
    - Dst: EVP_get_digestbyname
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:56,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:58,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:59,1
    - Dst: EVP_MD_CTX_new
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:61,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:63,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:64,1
    - Dst: EVP_DigestInit_ex
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:66,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:68,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:68,1
    - Dst: EVP_MD_CTX_free
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:69,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:70,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:72,1
    - Dst: EVP_MD_size
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:72,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts:
    - condition: (size_ == (size_t) EVP_MD_size(hash_tp))
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/rnp/src/lib/crypto/hash_ossl.cpp
    constantsTouched: []
    func_position:
      end: 73
      start: 53
    functionDepth: 1
    functionLinenumber: 53
    functionLinenumberEnd: 73
    functionName: rnp::Hash_OpenSSL::Hash_OpenSSL
    functionSourceFile: /src/rnp/src/lib/crypto/hash_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_MD_CTX_free
    - ERR_peek_last_error
    - EVP_MD_size
    - EVP_MD_CTX_new
    - assert
    - rnp::Hash_OpenSSL::name_backend
    - EVP_get_digestbyname
    - rnp_exception
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: void
    signature: void Hash_OpenSSL::Hash_OpenSSL(pgp_hash_alg_t alg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:78,1
    - Dst: EVP_MD_CTX_new
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:81,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:83,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:84,1
    - Dst: EVP_MD_CTX_copy
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:87,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:89,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:89,1
    - Dst: EVP_MD_CTX_free
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:90,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:91,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - src
    argTypes:
    - Hash_OpenSSL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 93
    functionName: rnp::Hash_OpenSSL::Hash_OpenSSL
    functionSourceFile: /src/rnp/src/lib/crypto/hash_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_MD_CTX_copy
    - EVP_MD_CTX_free
    - EVP_MD_CTX_new
    - ERR_peek_last_error
    - rnp_exception
    linkageType: ''
    returnType: void
    signature: void Hash_OpenSSL::Hash_OpenSSL(const Hash_OpenSSL &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Hash_OpenSSL>
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:98,1
    - Dst: Hash_OpenSSL::Hash_OpenSSL
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: rnp::Hash_OpenSSL::create
    functionSourceFile: /src/rnp/src/lib/crypto/hash_ossl.cpp
    functionUses: 2
    functionsReached:
    - std::unique_ptr<Hash_OpenSSL>
    - Hash_OpenSSL::Hash_OpenSSL
    linkageType: ''
    returnType: std::unique_ptr<Hash_OpenSSL>
    signature: std::unique_ptr<Hash_OpenSSL> Hash_OpenSSL::create(pgp_hash_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Hash>
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:104,1
    - Dst: Hash_OpenSSL::Hash_OpenSSL
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: rnp::Hash_OpenSSL::clone
    functionSourceFile: /src/rnp/src/lib/crypto/hash_ossl.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Hash>
    - Hash_OpenSSL::Hash_OpenSSL
    linkageType: ''
    returnType: std::unique_ptr<Hash>
    signature: std::unique_ptr<Hash> Hash_OpenSSL::clone() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:111,1
    - Dst: EVP_DigestUpdate
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:113,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:115,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:115,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 118
    functionName: rnp::Hash_OpenSSL::add
    functionSourceFile: /src/rnp/src/lib/crypto/hash_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - ERR_peek_last_error
    - rnp_exception
    - EVP_DigestUpdate
    linkageType: ''
    returnType: void
    signature: void Hash_OpenSSL::add(const void *buf, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:123,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:127,1
    - Dst: EVP_MD_CTX_free
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:128,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:131,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - digest
    argTypes:
    - uint8_t*
    assertStmts:
    - condition: (fn_)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/rnp/src/lib/crypto/hash_ossl.cpp
    constantsTouched: []
    func_position:
      end: 135
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 135
    functionName: rnp::Hash_OpenSSL::finish
    functionSourceFile: /src/rnp/src/lib/crypto/hash_ossl.cpp
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - RNP_LOG
    - assert
    - EVP_DigestFinal_ex
    - ERR_peek_last_error
    linkageType: ''
    returnType: void
    signature: void Hash_OpenSSL::finish(uint8_t *digest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_free
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: Hash_OpenSSL::~Hash_OpenSSL()
    functionSourceFile: /src/rnp/src/lib/crypto/hash_ossl.cpp
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: void
    signature: void Hash_OpenSSL::~Hash_OpenSSL()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: rnp::Hash_OpenSSL::name_backend
    functionSourceFile: /src/rnp/src/lib/crypto/hash_ossl.cpp
    functionUses: 1
    functionsReached:
    - id_str_pair::lookup
    linkageType: ''
    returnType: char
    signature: 'char *

      Hash_OpenSSL::name_backend(pgp_hash_alg_t alg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash_OpenSSL::name_backend
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:55,1
    - Dst: EVP_get_digestbyname
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:56,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:58,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:59,1
    - Dst: EVP_MD_CTX_new
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:61,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:63,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:64,1
    - Dst: EVP_DigestInit_ex
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:66,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:68,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:68,1
    - Dst: EVP_MD_CTX_free
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:69,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:70,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:72,1
    - Dst: EVP_MD_size
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:72,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts:
    - condition: (size_ == (size_t) EVP_MD_size(hash_tp))
      pos:
        line_end: 71
        line_start: 71
        source_file: /src/rnp/src/lib/crypto/hash_ossl.cpp
    constantsTouched: []
    func_position:
      end: 73
      start: 53
    functionDepth: 2
    functionLinenumber: 53
    functionLinenumberEnd: 73
    functionName: rnp::Hash_OpenSSL::Hash_OpenSSL
    functionSourceFile: /src/rnp/src/lib/crypto/hash_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_MD_CTX_free
    - ERR_peek_last_error
    - EVP_MD_size
    - EVP_MD_CTX_new
    - assert
    - rnp::Hash_OpenSSL::name_backend
    - EVP_get_digestbyname
    - rnp_exception
    - EVP_DigestInit_ex
    linkageType: ''
    returnType: void
    signature: void Hash_OpenSSL::Hash_OpenSSL(pgp_hash_alg_t alg)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:78,1
    - Dst: EVP_MD_CTX_new
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:81,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:83,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:84,1
    - Dst: EVP_MD_CTX_copy
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:87,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:89,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:89,1
    - Dst: EVP_MD_CTX_free
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:90,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:91,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - src
    argTypes:
    - Hash_OpenSSL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 75
    functionDepth: 1
    functionLinenumber: 75
    functionLinenumberEnd: 93
    functionName: rnp::Hash_OpenSSL::Hash_OpenSSL
    functionSourceFile: /src/rnp/src/lib/crypto/hash_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_MD_CTX_copy
    - EVP_MD_CTX_free
    - EVP_MD_CTX_new
    - ERR_peek_last_error
    - rnp_exception
    linkageType: ''
    returnType: void
    signature: void Hash_OpenSSL::Hash_OpenSSL(const Hash_OpenSSL &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Hash_OpenSSL>
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:98,1
    - Dst: Hash_OpenSSL::Hash_OpenSSL
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:98,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 95
    functionDepth: 0
    functionLinenumber: 95
    functionLinenumberEnd: 99
    functionName: rnp::Hash_OpenSSL::create
    functionSourceFile: /src/rnp/src/lib/crypto/hash_ossl.cpp
    functionUses: 2
    functionsReached:
    - std::unique_ptr<Hash_OpenSSL>
    - Hash_OpenSSL::Hash_OpenSSL
    linkageType: ''
    returnType: std::unique_ptr<Hash_OpenSSL>
    signature: std::unique_ptr<Hash_OpenSSL> Hash_OpenSSL::create(pgp_hash_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Hash>
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:104,1
    - Dst: Hash_OpenSSL::Hash_OpenSSL
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 105
      start: 101
    functionDepth: 0
    functionLinenumber: 101
    functionLinenumberEnd: 105
    functionName: rnp::Hash_OpenSSL::clone
    functionSourceFile: /src/rnp/src/lib/crypto/hash_ossl.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Hash>
    - Hash_OpenSSL::Hash_OpenSSL
    linkageType: ''
    returnType: std::unique_ptr<Hash>
    signature: std::unique_ptr<Hash> Hash_OpenSSL::clone() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:111,1
    - Dst: EVP_DigestUpdate
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:113,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:115,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:115,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:116,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 118
    functionName: rnp::Hash_OpenSSL::add
    functionSourceFile: /src/rnp/src/lib/crypto/hash_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - ERR_peek_last_error
    - rnp_exception
    - EVP_DigestUpdate
    linkageType: ''
    returnType: void
    signature: void Hash_OpenSSL::add(const void *buf, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:123,1
    - Dst: EVP_DigestFinal_ex
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:127,1
    - Dst: EVP_MD_CTX_free
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:128,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:131,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:131,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - digest
    argTypes:
    - uint8_t*
    assertStmts:
    - condition: (fn_)
      pos:
        line_end: 122
        line_start: 122
        source_file: /src/rnp/src/lib/crypto/hash_ossl.cpp
    constantsTouched: []
    func_position:
      end: 135
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 135
    functionName: rnp::Hash_OpenSSL::finish
    functionSourceFile: /src/rnp/src/lib/crypto/hash_ossl.cpp
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    - RNP_LOG
    - assert
    - EVP_DigestFinal_ex
    - ERR_peek_last_error
    linkageType: ''
    returnType: void
    signature: void Hash_OpenSSL::finish(uint8_t *digest)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_free
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:142,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 143
    functionName: Hash_OpenSSL::~Hash_OpenSSL()
    functionSourceFile: /src/rnp/src/lib/crypto/hash_ossl.cpp
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: void
    signature: void Hash_OpenSSL::~Hash_OpenSSL()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/crypto/hash_ossl.cpp:148,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: rnp::Hash_OpenSSL::name_backend
    functionSourceFile: /src/rnp/src/lib/crypto/hash_ossl.cpp
    functionUses: 2
    functionsReached:
    - id_str_pair::lookup
    linkageType: ''
    returnType: char
    signature: 'char *

      Hash_OpenSSL::name_backend(pgp_hash_alg_t alg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_DSA_SIG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:47,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:49,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:49,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:52,1
    - Dst: DSA_SIG_get0
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:53,1
    - Dst: rnp::ossl::DSASig::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:53,1
    - Dst: rnp::bn::cptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:53,1
    - Dst: cptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:53,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:54,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - data
    - len
    - sig
    argTypes:
    - uint8_t*
    - size_t
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: pgp::dsa::decode_sig
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::bn::bn
    - rnp::bn::mpi
    - rnp::ossl::DSASig::get
    - d2i_DSA_SIG
    - DSA_SIG_get0
    - cptr
    - mpi
    - ERR_peek_last_error
    - rnp::bn::cptr
    linkageType: ''
    returnType: bool
    signature: bool decode_sig(const uint8_t *data, size_t len, Signature &sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:64,1
    - Dst: DSA_SIG_set0
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:67,1
    - Dst: rnp::ossl::DSASig::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:67,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:67,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:67,1
    - Dst: i2d_DSA_SIG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:68,1
    - Dst: rnp::ossl::DSASig::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:68,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - data
    - len
    - sig
    argTypes:
    - uint8_t*
    - size_t*
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 75
    functionName: pgp::dsa::encode_sig
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::ossl::DSASig::get
    - rnp::bn::own
    - i2d_DSA_SIG
    - DSA_SIG_set0
    linkageType: ''
    returnType: bool
    signature: bool encode_sig(uint8_t *data, size_t *len, const Signature &sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:82,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:82,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:82,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:83,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:83,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:83,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:84,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:84,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:84,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:85,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:85,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:85,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:86,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:86,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:86,1
    - Dst: rnp::ossl::Param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:89,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:89,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:89,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 5
    argNames:
    - p
    - q
    - g
    - y
    - x
    argTypes:
    - rnp::bn
    - rnp::bn
    - rnp::bn
    - rnp::bn
    - rnp::bn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: pgp::dsa::build_params
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::ossl::Param
    - rnp::ossl::ParamBld::get
    - OSSL_PARAM_BLD_push_BN
    - OSSL_PARAM_BLD_to_param
    - rnp::bn::get
    linkageType: ''
    returnType: rnp::ossl::Param
    signature: rnp::ossl::Param build_params(rnp::bn &p, rnp::bn &q, rnp::bn &g, rnp::bn
      &y, rnp::bn &x)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:104,1
    - Dst: pgp::dsa::build_params
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:110,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:113,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:120,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:125,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:125,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:126,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:126,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:129,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:130,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:133,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:138,1
    - Dst: DSA_set0_pqg
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:142,1
    - Dst: rnp::ossl::DSA::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:142,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:142,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:142,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:142,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:144,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:144,1
    - Dst: DSA_set0_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:148,1
    - Dst: rnp::ossl::DSA::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:148,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:148,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:148,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:150,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:150,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:158,1
    - Dst: EVP_PKEY_set1_DSA
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:162,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:162,1
    - Dst: rnp::ossl::DSA::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:162,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:164,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:164,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 170
    functionName: pgp::dsa::load_key
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_set1_DSA
    - rnp::ossl::evp::PKey
    - rnp::ossl::DSA::get
    - ERR_peek_last_error
    - EVP_PKEY_fromdata
    - rnp::bn::own
    - DSA_set0_key
    - rnp::ossl::evp::PKey::get
    - EVP_PKEY_fromdata_init
    - auto::get
    - pgp::dsa::build_params
    - DSA_set0_pqg
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_key(const Key &key, bool secret = false)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dl_load_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:176,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:178,1
    - Dst: dl_validate_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - rng
    - secret
    argTypes:
    - rnp::RNG
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 182
    functionName: pgp::dsa::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - dl_validate_key
    - dl_load_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::validate(rnp::RNG &rng, bool secret) const noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:187,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:188,1
    - Dst: load_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:193,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:195,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:200,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:200,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:203,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:203,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:207,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:207,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:208,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:208,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:212,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:213,1
    - Dst: EVP_PKEY_sign
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:214,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:214,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:214,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:214,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:214,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:215,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:215,1
    - Dst: decode_sig
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:218,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:218,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:219,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:219,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - rng
    - sig
    - hash
    argTypes:
    - rnp::RNG
    - Signature
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 223
    functionName: pgp::dsa::Key::sign
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - std::vector::size
    - EVP_PKEY_sign_init
    - rnp::secure_bytes::size
    - rnp::secure_bytes::data
    - size
    - decode_sig
    - EVP_PKEY_sign
    - load_key
    - auto::get
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - std::vector::data
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::sign(rnp::RNG &rng, Signature &sig, const rnp::secure_bytes
      &hash) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: load_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:229,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:231,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:236,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:236,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:239,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:239,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:243,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:243,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:244,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:244,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:248,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:249,1
    - Dst: encode_sig
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:250,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:250,1
    - Dst: EVP_PKEY_verify
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:253,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:253,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:253,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:253,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - sig
    - hash
    argTypes:
    - Signature
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 257
    functionName: pgp::dsa::Key::verify
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - encode_sig
    - std::vector::size
    - EVP_PKEY_verify
    - rnp::secure_bytes::size
    - EVP_PKEY_verify_init
    - rnp::secure_bytes::data
    - size
    - load_key
    - auto::get
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - std::vector::data
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::verify(const Signature &sig, const rnp::secure_bytes
      &hash) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:263,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:264,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:264,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:264,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:265,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:265,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:265,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:266,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:266,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:266,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:267,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:267,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:267,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:268,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:268,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:268,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:269,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:269,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:269,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:269,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:269,1
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:271,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:271,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:273,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:273,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:286,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:286,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:286,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:286,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:286,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 10
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - rnp::ossl::evp::PKey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 288
    functionName: pgp::dsa::extract_key
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - ERR_peek_last_error
    - EVP_PKEY_get_bn_param
    - ptr
    - rnp::bn::ptr
    - mpi
    - EVP_PKEY_get0_DSA
    - rnp::ossl::evp::PKey::get
    - rnp::bn::mpi
    linkageType: ''
    returnType: bool
    signature: bool extract_key(rnp::ossl::evp::PKey &pkey, Key &key)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:301,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:301,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:305,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:305,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:307,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:307,1
    - Dst: EVP_PKEY_CTX_set_dsa_paramgen_bits
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:311,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:311,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:312,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:312,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:316,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:316,1
    - Dst: EVP_PKEY_CTX_set_dsa_paramgen_q_bits
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:323,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:323,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:324,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:324,1
    - Dst: EVP_PKEY_paramgen
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:329,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:329,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:330,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:330,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:335,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:335,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:337,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:337,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:340,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:340,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:341,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:341,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:345,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:345,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:346,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:346,1
    - Dst: extract_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:350,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 3
    argNames:
    - rng
    - keylen
    - qbits
    argTypes:
    - rnp::RNG
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 354
    functionName: pgp::dsa::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_keygen
    - EVP_PKEY_paramgen_init
    - EVP_PKEY_paramgen
    - EVP_PKEY_CTX_ctrl
    - EVP_PKEY_keygen_init
    - EVP_PKEY_CTX_set_dsa_paramgen_q_bits
    - rnp::ossl::evp::PKey::get
    - extract_key
    - EVP_PKEY_CTX_set_dsa_paramgen_bits
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t keylen, size_t qbits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_DSA_SIG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:47,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:49,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:49,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:52,1
    - Dst: DSA_SIG_get0
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:53,1
    - Dst: rnp::ossl::DSASig::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:53,1
    - Dst: rnp::bn::cptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:53,1
    - Dst: cptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:53,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:54,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - data
    - len
    - sig
    argTypes:
    - uint8_t*
    - size_t
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: pgp::dsa::decode_sig
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::bn::bn
    - rnp::bn::mpi
    - rnp::ossl::DSASig::get
    - d2i_DSA_SIG
    - DSA_SIG_get0
    - cptr
    - mpi
    - ERR_peek_last_error
    - rnp::bn::cptr
    linkageType: ''
    returnType: bool
    signature: bool decode_sig(const uint8_t *data, size_t len, Signature &sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:64,1
    - Dst: DSA_SIG_set0
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:67,1
    - Dst: rnp::ossl::DSASig::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:67,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:67,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:67,1
    - Dst: i2d_DSA_SIG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:68,1
    - Dst: rnp::ossl::DSASig::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:68,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - data
    - len
    - sig
    argTypes:
    - uint8_t*
    - size_t*
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 75
    functionName: pgp::dsa::encode_sig
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::ossl::DSASig::get
    - rnp::bn::own
    - i2d_DSA_SIG
    - DSA_SIG_set0
    linkageType: ''
    returnType: bool
    signature: bool encode_sig(uint8_t *data, size_t *len, const Signature &sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:82,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:82,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:82,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:83,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:83,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:83,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:84,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:84,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:84,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:85,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:85,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:85,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:86,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:86,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:86,1
    - Dst: rnp::ossl::Param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:89,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:89,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:89,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 5
    argNames:
    - p
    - q
    - g
    - y
    - x
    argTypes:
    - rnp::bn
    - rnp::bn
    - rnp::bn
    - rnp::bn
    - rnp::bn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: pgp::dsa::build_params
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 1
    functionsReached:
    - rnp::ossl::Param
    - rnp::ossl::ParamBld::get
    - OSSL_PARAM_BLD_push_BN
    - OSSL_PARAM_BLD_to_param
    - rnp::bn::get
    linkageType: ''
    returnType: rnp::ossl::Param
    signature: rnp::ossl::Param build_params(rnp::bn &p, rnp::bn &q, rnp::bn &g, rnp::bn
      &y, rnp::bn &x)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:104,1
    - Dst: pgp::dsa::build_params
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:110,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:113,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:120,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:125,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:125,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:126,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:126,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:129,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:130,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:133,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:138,1
    - Dst: DSA_set0_pqg
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:142,1
    - Dst: rnp::ossl::DSA::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:142,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:142,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:142,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:142,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:144,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:144,1
    - Dst: DSA_set0_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:148,1
    - Dst: rnp::ossl::DSA::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:148,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:148,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:148,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:150,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:150,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:158,1
    - Dst: EVP_PKEY_set1_DSA
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:162,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:162,1
    - Dst: rnp::ossl::DSA::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:162,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:164,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:164,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 170
    functionName: pgp::dsa::load_key
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_set1_DSA
    - rnp::ossl::evp::PKey
    - rnp::ossl::DSA::get
    - ERR_peek_last_error
    - EVP_PKEY_fromdata
    - rnp::bn::own
    - DSA_set0_key
    - rnp::ossl::evp::PKey::get
    - EVP_PKEY_fromdata_init
    - auto::get
    - pgp::dsa::build_params
    - DSA_set0_pqg
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_key(const Key &key, bool secret = false)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dl_load_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:176,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:178,1
    - Dst: dl_validate_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - rng
    - secret
    argTypes:
    - rnp::RNG
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 182
    functionName: pgp::dsa::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - dl_validate_key
    - dl_load_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::validate(rnp::RNG &rng, bool secret) const noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:187,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:188,1
    - Dst: load_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:193,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:195,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:200,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:200,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:203,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:203,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:207,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:207,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:208,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:208,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:212,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:213,1
    - Dst: EVP_PKEY_sign
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:214,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:214,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:214,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:214,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:214,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:215,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:215,1
    - Dst: decode_sig
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:218,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:218,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:219,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:219,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - rng
    - sig
    - hash
    argTypes:
    - rnp::RNG
    - Signature
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 223
    functionName: pgp::dsa::Key::sign
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - std::vector::size
    - EVP_PKEY_sign_init
    - rnp::secure_bytes::size
    - rnp::secure_bytes::data
    - size
    - decode_sig
    - EVP_PKEY_sign
    - load_key
    - auto::get
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - std::vector::data
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::sign(rnp::RNG &rng, Signature &sig, const rnp::secure_bytes
      &hash) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: load_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:229,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:231,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:236,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:236,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:239,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:239,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:243,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:243,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:244,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:244,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:248,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:249,1
    - Dst: encode_sig
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:250,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:250,1
    - Dst: EVP_PKEY_verify
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:253,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:253,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:253,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:253,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - sig
    - hash
    argTypes:
    - Signature
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 257
    functionName: pgp::dsa::Key::verify
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - encode_sig
    - std::vector::size
    - EVP_PKEY_verify
    - rnp::secure_bytes::size
    - EVP_PKEY_verify_init
    - rnp::secure_bytes::data
    - size
    - load_key
    - auto::get
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - std::vector::data
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::verify(const Signature &sig, const rnp::secure_bytes
      &hash) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:263,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:264,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:264,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:264,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:265,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:265,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:265,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:266,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:266,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:266,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:267,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:267,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:267,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:268,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:268,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:268,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:269,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:269,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:269,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:269,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:269,1
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:271,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:271,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:273,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:273,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:286,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:286,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:286,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:286,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:286,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 10
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - rnp::ossl::evp::PKey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 288
    functionName: pgp::dsa::extract_key
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - ERR_peek_last_error
    - EVP_PKEY_get_bn_param
    - ptr
    - rnp::bn::ptr
    - mpi
    - EVP_PKEY_get0_DSA
    - rnp::ossl::evp::PKey::get
    - rnp::bn::mpi
    linkageType: ''
    returnType: bool
    signature: bool extract_key(rnp::ossl::evp::PKey &pkey, Key &key)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:301,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:301,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:305,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:305,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:307,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:307,1
    - Dst: EVP_PKEY_CTX_set_dsa_paramgen_bits
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:311,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:311,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:312,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:312,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:316,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:316,1
    - Dst: EVP_PKEY_CTX_set_dsa_paramgen_q_bits
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:323,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:323,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:324,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:324,1
    - Dst: EVP_PKEY_paramgen
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:329,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:329,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:330,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:330,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:335,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:335,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:337,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:337,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:340,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:340,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:341,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:341,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:345,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:345,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:346,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:346,1
    - Dst: extract_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:350,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 3
    argNames:
    - rng
    - keylen
    - qbits
    argTypes:
    - rnp::RNG
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 354
    functionName: pgp::dsa::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_keygen
    - EVP_PKEY_paramgen_init
    - EVP_PKEY_paramgen
    - EVP_PKEY_CTX_ctrl
    - EVP_PKEY_keygen_init
    - EVP_PKEY_CTX_set_dsa_paramgen_q_bits
    - rnp::ossl::evp::PKey::get
    - extract_key
    - EVP_PKEY_CTX_set_dsa_paramgen_bits
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t keylen, size_t qbits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_DSA_SIG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:47,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:49,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:49,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:52,1
    - Dst: DSA_SIG_get0
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:53,1
    - Dst: rnp::ossl::DSASig::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:53,1
    - Dst: rnp::bn::cptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:53,1
    - Dst: cptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:53,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:54,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - data
    - len
    - sig
    argTypes:
    - uint8_t*
    - size_t
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: pgp::dsa::decode_sig
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::bn::bn
    - rnp::bn::mpi
    - rnp::ossl::DSASig::get
    - d2i_DSA_SIG
    - DSA_SIG_get0
    - cptr
    - mpi
    - ERR_peek_last_error
    - rnp::bn::cptr
    linkageType: ''
    returnType: bool
    signature: bool decode_sig(const uint8_t *data, size_t len, Signature &sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:64,1
    - Dst: DSA_SIG_set0
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:67,1
    - Dst: rnp::ossl::DSASig::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:67,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:67,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:67,1
    - Dst: i2d_DSA_SIG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:68,1
    - Dst: rnp::ossl::DSASig::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:68,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - data
    - len
    - sig
    argTypes:
    - uint8_t*
    - size_t*
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 75
    functionName: pgp::dsa::encode_sig
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::ossl::DSASig::get
    - rnp::bn::own
    - i2d_DSA_SIG
    - DSA_SIG_set0
    linkageType: ''
    returnType: bool
    signature: bool encode_sig(uint8_t *data, size_t *len, const Signature &sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:82,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:82,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:82,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:83,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:83,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:83,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:84,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:84,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:84,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:85,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:85,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:85,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:86,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:86,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:86,1
    - Dst: rnp::ossl::Param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:89,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:89,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:89,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 5
    argNames:
    - p
    - q
    - g
    - y
    - x
    argTypes:
    - rnp::bn
    - rnp::bn
    - rnp::bn
    - rnp::bn
    - rnp::bn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: pgp::dsa::build_params
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - rnp::ossl::Param
    - rnp::ossl::ParamBld::get
    - OSSL_PARAM_BLD_push_BN
    - OSSL_PARAM_BLD_to_param
    - rnp::bn::get
    linkageType: ''
    returnType: rnp::ossl::Param
    signature: rnp::ossl::Param build_params(rnp::bn &p, rnp::bn &q, rnp::bn &g, rnp::bn
      &y, rnp::bn &x)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:104,1
    - Dst: pgp::dsa::build_params
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:110,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:113,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:120,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:125,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:125,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:126,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:126,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:129,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:130,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:133,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:138,1
    - Dst: DSA_set0_pqg
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:142,1
    - Dst: rnp::ossl::DSA::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:142,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:142,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:142,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:142,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:144,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:144,1
    - Dst: DSA_set0_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:148,1
    - Dst: rnp::ossl::DSA::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:148,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:148,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:148,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:150,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:150,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:158,1
    - Dst: EVP_PKEY_set1_DSA
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:162,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:162,1
    - Dst: rnp::ossl::DSA::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:162,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:164,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:164,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 170
    functionName: pgp::dsa::load_key
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_set1_DSA
    - rnp::ossl::evp::PKey
    - rnp::ossl::DSA::get
    - ERR_peek_last_error
    - EVP_PKEY_fromdata
    - rnp::bn::own
    - DSA_set0_key
    - rnp::ossl::evp::PKey::get
    - EVP_PKEY_fromdata_init
    - auto::get
    - pgp::dsa::build_params
    - DSA_set0_pqg
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_key(const Key &key, bool secret = false)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dl_load_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:176,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:178,1
    - Dst: dl_validate_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - rng
    - secret
    argTypes:
    - rnp::RNG
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 182
    functionName: pgp::dsa::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - dl_validate_key
    - dl_load_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::validate(rnp::RNG &rng, bool secret) const noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:187,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:188,1
    - Dst: load_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:193,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:195,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:200,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:200,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:203,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:203,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:207,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:207,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:208,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:208,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:212,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:213,1
    - Dst: EVP_PKEY_sign
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:214,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:214,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:214,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:214,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:214,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:215,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:215,1
    - Dst: decode_sig
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:218,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:218,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:219,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:219,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - rng
    - sig
    - hash
    argTypes:
    - rnp::RNG
    - Signature
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 223
    functionName: pgp::dsa::Key::sign
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - std::vector::size
    - EVP_PKEY_sign_init
    - rnp::secure_bytes::size
    - rnp::secure_bytes::data
    - size
    - decode_sig
    - EVP_PKEY_sign
    - load_key
    - auto::get
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - std::vector::data
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::sign(rnp::RNG &rng, Signature &sig, const rnp::secure_bytes
      &hash) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: load_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:229,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:231,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:236,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:236,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:239,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:239,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:243,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:243,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:244,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:244,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:248,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:249,1
    - Dst: encode_sig
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:250,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:250,1
    - Dst: EVP_PKEY_verify
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:253,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:253,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:253,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:253,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - sig
    - hash
    argTypes:
    - Signature
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 257
    functionName: pgp::dsa::Key::verify
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - encode_sig
    - std::vector::size
    - EVP_PKEY_verify
    - rnp::secure_bytes::size
    - EVP_PKEY_verify_init
    - rnp::secure_bytes::data
    - size
    - load_key
    - auto::get
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - std::vector::data
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::verify(const Signature &sig, const rnp::secure_bytes
      &hash) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:263,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:264,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:264,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:264,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:265,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:265,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:265,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:266,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:266,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:266,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:267,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:267,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:267,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:268,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:268,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:268,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:269,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:269,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:269,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:269,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:269,1
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:271,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:271,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:273,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:273,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:286,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:286,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:286,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:286,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:286,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 10
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - rnp::ossl::evp::PKey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 288
    functionName: pgp::dsa::extract_key
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - ERR_peek_last_error
    - EVP_PKEY_get_bn_param
    - ptr
    - rnp::bn::ptr
    - mpi
    - EVP_PKEY_get0_DSA
    - rnp::ossl::evp::PKey::get
    - rnp::bn::mpi
    linkageType: ''
    returnType: bool
    signature: bool extract_key(rnp::ossl::evp::PKey &pkey, Key &key)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:301,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:301,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:305,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:305,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:307,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:307,1
    - Dst: EVP_PKEY_CTX_set_dsa_paramgen_bits
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:311,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:311,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:312,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:312,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:316,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:316,1
    - Dst: EVP_PKEY_CTX_set_dsa_paramgen_q_bits
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:323,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:323,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:324,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:324,1
    - Dst: EVP_PKEY_paramgen
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:329,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:329,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:330,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:330,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:335,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:335,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:337,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:337,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:340,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:340,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:341,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:341,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:345,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:345,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:346,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:346,1
    - Dst: extract_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:350,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 3
    argNames:
    - rng
    - keylen
    - qbits
    argTypes:
    - rnp::RNG
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 354
    functionName: pgp::dsa::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_keygen
    - EVP_PKEY_paramgen_init
    - EVP_PKEY_paramgen
    - EVP_PKEY_CTX_ctrl
    - EVP_PKEY_keygen_init
    - EVP_PKEY_CTX_set_dsa_paramgen_q_bits
    - rnp::ossl::evp::PKey::get
    - extract_key
    - EVP_PKEY_CTX_set_dsa_paramgen_bits
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t keylen, size_t qbits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: d2i_DSA_SIG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:47,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:49,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:49,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:52,1
    - Dst: DSA_SIG_get0
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:53,1
    - Dst: rnp::ossl::DSASig::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:53,1
    - Dst: rnp::bn::cptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:53,1
    - Dst: cptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:53,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:54,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:54,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 3
    argNames:
    - data
    - len
    - sig
    argTypes:
    - uint8_t*
    - size_t
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 55
    functionName: pgp::dsa::decode_sig
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::bn::bn
    - rnp::bn::mpi
    - rnp::ossl::DSASig::get
    - d2i_DSA_SIG
    - DSA_SIG_get0
    - cptr
    - mpi
    - ERR_peek_last_error
    - rnp::bn::cptr
    linkageType: ''
    returnType: bool
    signature: bool decode_sig(const uint8_t *data, size_t len, Signature &sig)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:64,1
    - Dst: DSA_SIG_set0
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:67,1
    - Dst: rnp::ossl::DSASig::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:67,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:67,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:67,1
    - Dst: i2d_DSA_SIG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:68,1
    - Dst: rnp::ossl::DSASig::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:68,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:70,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 3
    argNames:
    - data
    - len
    - sig
    argTypes:
    - uint8_t*
    - size_t*
    - Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 75
    functionName: pgp::dsa::encode_sig
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::ossl::DSASig::get
    - rnp::bn::own
    - i2d_DSA_SIG
    - DSA_SIG_set0
    linkageType: ''
    returnType: bool
    signature: bool encode_sig(uint8_t *data, size_t *len, const Signature &sig)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:82,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:82,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:82,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:83,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:83,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:83,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:84,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:84,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:84,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:85,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:85,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:85,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:86,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:86,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:86,1
    - Dst: rnp::ossl::Param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:89,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:89,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:89,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 5
    argCount: 5
    argNames:
    - p
    - q
    - g
    - y
    - x
    argTypes:
    - rnp::bn
    - rnp::bn
    - rnp::bn
    - rnp::bn
    - rnp::bn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 90
    functionName: pgp::dsa::build_params
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 3
    functionsReached:
    - rnp::ossl::Param
    - rnp::ossl::ParamBld::get
    - OSSL_PARAM_BLD_push_BN
    - OSSL_PARAM_BLD_to_param
    - rnp::bn::get
    linkageType: ''
    returnType: rnp::ossl::Param
    signature: rnp::ossl::Param build_params(rnp::bn &p, rnp::bn &q, rnp::bn &g, rnp::bn
      &y, rnp::bn &x)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:104,1
    - Dst: pgp::dsa::build_params
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:110,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:113,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:120,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:125,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:125,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:126,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:126,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:129,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:130,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:133,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:138,1
    - Dst: DSA_set0_pqg
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:142,1
    - Dst: rnp::ossl::DSA::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:142,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:142,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:142,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:142,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:144,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:144,1
    - Dst: DSA_set0_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:148,1
    - Dst: rnp::ossl::DSA::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:148,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:148,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:148,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:150,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:150,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:158,1
    - Dst: EVP_PKEY_set1_DSA
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:162,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:162,1
    - Dst: rnp::ossl::DSA::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:162,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:164,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:164,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 39
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 93
    functionDepth: 2
    functionLinenumber: 93
    functionLinenumberEnd: 170
    functionName: pgp::dsa::load_key
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_set1_DSA
    - rnp::ossl::evp::PKey
    - rnp::ossl::DSA::get
    - ERR_peek_last_error
    - EVP_PKEY_fromdata
    - rnp::bn::own
    - DSA_set0_key
    - rnp::ossl::evp::PKey::get
    - EVP_PKEY_fromdata_init
    - auto::get
    - pgp::dsa::build_params
    - DSA_set0_pqg
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_key(const Key &key, bool secret = false)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dl_load_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:176,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:178,1
    - Dst: dl_validate_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:181,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - rng
    - secret
    argTypes:
    - rnp::RNG
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 182
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 182
    functionName: pgp::dsa::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - dl_validate_key
    - dl_load_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::validate(rnp::RNG &rng, bool secret) const noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:187,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:188,1
    - Dst: load_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:193,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:195,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:200,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:200,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:203,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:203,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:207,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:207,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:208,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:208,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:212,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:213,1
    - Dst: EVP_PKEY_sign
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:214,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:214,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:214,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:214,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:214,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:215,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:215,1
    - Dst: decode_sig
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:218,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:218,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:219,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:219,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 26
    argCount: 3
    argNames:
    - rng
    - sig
    - hash
    argTypes:
    - rnp::RNG
    - Signature
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 223
      start: 184
    functionDepth: 1
    functionLinenumber: 184
    functionLinenumberEnd: 223
    functionName: pgp::dsa::Key::sign
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - std::vector::size
    - EVP_PKEY_sign_init
    - rnp::secure_bytes::size
    - rnp::secure_bytes::data
    - size
    - decode_sig
    - EVP_PKEY_sign
    - load_key
    - auto::get
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - std::vector::data
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::sign(rnp::RNG &rng, Signature &sig, const rnp::secure_bytes
      &hash) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: load_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:229,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:231,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:236,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:236,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:239,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:239,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:243,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:243,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:244,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:244,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:248,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:249,1
    - Dst: encode_sig
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:250,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:250,1
    - Dst: EVP_PKEY_verify
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:253,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:253,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:253,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:253,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:253,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 2
    argNames:
    - sig
    - hash
    argTypes:
    - Signature
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 225
    functionDepth: 1
    functionLinenumber: 225
    functionLinenumberEnd: 257
    functionName: pgp::dsa::Key::verify
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - encode_sig
    - std::vector::size
    - EVP_PKEY_verify
    - rnp::secure_bytes::size
    - EVP_PKEY_verify_init
    - rnp::secure_bytes::data
    - size
    - load_key
    - auto::get
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - std::vector::data
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::verify(const Signature &sig, const rnp::secure_bytes
      &hash) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:263,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:264,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:264,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:264,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:265,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:265,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:265,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:266,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:266,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:266,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:267,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:267,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:267,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:268,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:268,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:268,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:269,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:269,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:269,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:269,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:269,1
    - Dst: EVP_PKEY_get0_DSA
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:271,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:271,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:273,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:273,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:286,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:286,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:286,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:286,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:286,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 10
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - rnp::ossl::evp::PKey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 288
      start: 259
    functionDepth: 1
    functionLinenumber: 259
    functionLinenumberEnd: 288
    functionName: pgp::dsa::extract_key
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - ERR_peek_last_error
    - EVP_PKEY_get_bn_param
    - ptr
    - rnp::bn::ptr
    - mpi
    - EVP_PKEY_get0_DSA
    - rnp::ossl::evp::PKey::get
    - rnp::bn::mpi
    linkageType: ''
    returnType: bool
    signature: bool extract_key(rnp::ossl::evp::PKey &pkey, Key &key)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:301,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:301,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:305,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:305,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:307,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:307,1
    - Dst: EVP_PKEY_CTX_set_dsa_paramgen_bits
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:311,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:311,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:312,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:312,1
    - Dst: EVP_PKEY_CTX_ctrl
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:316,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:316,1
    - Dst: EVP_PKEY_CTX_set_dsa_paramgen_q_bits
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:323,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:323,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:324,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:324,1
    - Dst: EVP_PKEY_paramgen
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:329,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:329,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:330,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:330,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:335,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:335,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:337,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:337,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:340,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:340,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:341,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:341,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:345,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:345,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:346,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:346,1
    - Dst: extract_key
      Src: /src/rnp/src/lib/crypto/dsa_ossl.cpp:350,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 41
    argCount: 3
    argNames:
    - rng
    - keylen
    - qbits
    argTypes:
    - rnp::RNG
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 290
    functionDepth: 1
    functionLinenumber: 290
    functionLinenumberEnd: 354
    functionName: pgp::dsa::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_keygen
    - EVP_PKEY_paramgen_init
    - EVP_PKEY_paramgen
    - EVP_PKEY_CTX_ctrl
    - EVP_PKEY_keygen_init
    - EVP_PKEY_CTX_set_dsa_paramgen_q_bits
    - rnp::ossl::evp::PKey::get
    - extract_key
    - EVP_PKEY_CTX_set_dsa_paramgen_bits
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t keylen, size_t qbits)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::validate_key
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: pgp::ecdh::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 2
    functionsReached:
    - pgp::ec::validate_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:63,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:65,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:70,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:74,1
    - Dst: pgp::ecdh::kdf_other_info_serialize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:79,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:81,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:81,1
    - Dst: auto::OID::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:81,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:84,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:85,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:89,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:95,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:96,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:97,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:97,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:97,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:98,1
    - Dst: auto::finish
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:99,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:99,1
    - Dst: std::min
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:100,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:100,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:101,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:101,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - '         x'
    - '             key'
    - fp
    - '         kek'
    argTypes:
    - rnp::secure_bytes
    - ec::Key
    - std::vector<uint8_t>
    - rnp::secure_bytes
    assertStmts:
    - condition: (hash_len <= PGP_MAX_HASH_SIZE)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    - condition: (other_info.size() == curve_desc->OID.size() + 46)
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    constantsTouched: []
    func_position:
      end: 105
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 105
    functionName: pgp::ecdh::derive_kek
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - data
    - memcpy
    - auto::size
    - rnp::Hash::size
    - auto::OID::size
    - rnp::secure_array::data
    - pgp::ec::Curve::get
    - assert
    - std::min
    - auto::add
    - rnp::Hash::create
    - auto::finish
    - size
    - pgp::ecdh::kdf_other_info_serialize
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t derive_kek(rnp::secure_bytes &         x,\n           const
      ec::Key &             key,\n           const std::vector<uint8_t> &fp,\n           rnp::secure_bytes
      &         kek)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_LOOKUP_BY_ID
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:115,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:118,1
    - Dst: EVP_get_cipherbyname
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:122,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:125,1
    - Dst: rnp::ossl::evp::CipherCtx::reset
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:129,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:129,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:132,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:132,1
    - Dst: EVP_CIPHER_CTX_set_flags
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:136,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:136,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:137,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:137,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:137,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:138,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:138,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:138,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:141,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:141,1
    - Dst: rnp::ossl::evp::CipherCtx::reset
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - ctx
    - wrap_alg
    - '  key'
    - decrypt
    argTypes:
    - rnp::ossl::evp::CipherCtx
    - pgp_symm_alg_t
    - rnp::secure_bytes
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 147
    functionName: pgp::ecdh::rfc3394_wrap_ctx
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::ossl::evp::CipherCtx::reset
    - EVP_CIPHER_CTX_set_flags
    - EVP_get_cipherbyname
    - data
    - EVP_DecryptInit_ex
    - ARRAY_LOOKUP_BY_ID
    - EVP_EncryptInit_ex
    - rnp::ossl::evp::CipherCtx::get
    - EVP_CIPHER_CTX_new
    - ERR_peek_last_error
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t rfc3394_wrap_ctx(rnp::ossl::evp::CipherCtx &ctx,\n                 pgp_symm_alg_t
      \            wrap_alg,\n                 const rnp::secure_bytes &  key,\n                 bool
      \                      decrypt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ecdh::rfc3394_wrap_ctx
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:156,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:159,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:163,1
    - Dst: EVP_EncryptUpdate
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:165,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:165,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:165,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:165,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:165,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:167,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:167,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - '   out'
    - in
    - key
    - wrap_alg
    argTypes:
    - std::vector<uint8_t>
    - rnp::secure_bytes
    - rnp::secure_bytes
    - pgp_symm_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 172
    functionName: pgp::ecdh::rfc3394_wrap
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - data
    - rnp::secure_bytes::size
    - resize
    - rnp::ossl::evp::CipherCtx::get
    - pgp::ecdh::rfc3394_wrap_ctx
    - ERR_peek_last_error
    - rnp::secure_bytes::data
    - size
    - EVP_EncryptUpdate
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t rfc3394_wrap(std::vector<uint8_t> &   out,\n             const
      rnp::secure_bytes &in,\n             const rnp::secure_bytes &key,\n             pgp_symm_alg_t
      \          wrap_alg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:180,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:180,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:181,1
    - Dst: pgp::ecdh::rfc3394_wrap_ctx
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:185,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:188,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:192,1
    - Dst: EVP_DecryptUpdate
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:194,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:194,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:194,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:194,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:194,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:196,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:196,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - '         out'
    - in
    - '   key'
    - wrap_alg
    argTypes:
    - rnp::secure_bytes
    - std::vector<uint8_t>
    - rnp::secure_bytes
    - pgp_symm_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 201
    functionName: pgp::ecdh::rfc3394_unwrap
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>::size
    - data
    - EVP_DecryptUpdate
    - resize
    - pgp::ecdh::rfc3394_wrap_ctx
    - rnp::ossl::evp::CipherCtx::get
    - ERR_peek_last_error
    - std::vector<uint8_t>::data
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t rfc3394_unwrap(rnp::secure_bytes &         out,\n               const
      std::vector<uint8_t> &in,\n               const rnp::secure_bytes &   key,\n
      \              pgp_symm_alg_t              wrap_alg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:206,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:206,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:209,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:209,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:213,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:213,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:215,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:215,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:219,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:219,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:219,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:221,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:221,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:225,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:226,1
    - Dst: EVP_PKEY_derive
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:227,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:227,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:227,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:229,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:229,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:233,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - sec
    - peer
    - x
    argTypes:
    - rnp::ossl::evp::PKey
    - rnp::ossl::evp::PKey
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 235
    functionName: pgp::ecdh::derive_secret
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - ERR_peek_last_error
    - rnp::secure_bytes::size
    - EVP_PKEY_derive
    - EVP_PKEY_derive_set_peer
    - EVP_PKEY_derive_init
    - rnp::secure_bytes::resize
    - rnp::secure_bytes::data
    - rnp::ossl::evp::PKey::get
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: bool
    signature: bool derive_secret(rnp::ossl::evp::PKey &sec, rnp::ossl::evp::PKey
      &peer, rnp::secure_bytes &x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - wrap_alg
    argTypes:
    - pgp_symm_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 248
    functionName: pgp::ecdh::ecdh_kek_len
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 0
    functionsReached:
    - pgp_key_size
    linkageType: ''
    returnType: size_t
    signature: size_t ecdh_kek_len(pgp_symm_alg_t wrap_alg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:253,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:258,1
    - Dst: pgp::ecdh::ecdh_kek_len
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:263,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:266,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:271,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:274,1
    - Dst: pgp::ec::generate_pkey
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:280,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:283,1
    - Dst: pgp::ecdh::derive_secret
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:289,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:291,1
    - Dst: pgp::ecdh::derive_kek
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:297,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:300,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:305,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:306,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:306,1
    - Dst: pgp::ecdh::pad_pkcs7
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:307,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:307,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:309,1
    - Dst: pgp::ecdh::rfc3394_wrap
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:310,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:313,1
    - Dst: pgp::ec::write_pubkey
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:318,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:320,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 4
    argNames:
    - rng
    - out
    - in
    - key
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 250
    functionDepth: 4
    functionLinenumber: 250
    functionLinenumberEnd: 325
    functionName: pgp::ecdh::encrypt_pkcs5
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - pgp::ecdh::pad_pkcs7
    - pgp::ec::write_pubkey
    - rnp::secure_bytes::size
    - pgp::ec::load_key
    - pgp::ecdh::ecdh_kek_len
    - pgp::ecdh::rfc3394_wrap
    - Encrypted::m::resize
    - pgp::ecdh::derive_kek
    - pgp::ec::generate_pkey
    - rnp::secure_bytes::begin
    - pgp::ecdh::derive_secret
    - rnp::secure_bytes::end
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t encrypt_pkcs5(rnp::RNG &rng, Encrypted &out, const rnp::secure_bytes
      &in, const ec::Key &key)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::x::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:330,1
    - Dst: pgp::ecdh::ecdh_kek_len
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:335,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:337,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:341,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:343,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:347,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:350,1
    - Dst: pgp::ecdh::derive_secret
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:356,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:358,1
    - Dst: pgp::ecdh::derive_kek
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:364,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:367,1
    - Dst: pgp::ecdh::rfc3394_unwrap
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:373,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:376,1
    - Dst: pgp::ecdh::unpad_pkcs7
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:381,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:383,1
    - Dst: rnp::secure_bytes::assign
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:387,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:387,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:387,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - out
    - in
    - key
    argTypes:
    - rnp::secure_bytes
    - Encrypted
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 327
    functionDepth: 4
    functionLinenumber: 327
    functionLinenumberEnd: 389
    functionName: pgp::ecdh::decrypt_pkcs5
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - ec::Key::x::size
    - pgp::ec::load_key
    - rnp::secure_bytes::assign
    - pgp::ecdh::ecdh_kek_len
    - pgp::ecdh::derive_kek
    - pgp::ecdh::rfc3394_unwrap
    - rnp::secure_bytes::begin
    - rnp::secure_bytes::end
    - pgp::ecdh::derive_secret
    - pgp::ecdh::unpad_pkcs7
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t decrypt_pkcs5(rnp::secure_bytes &out, const Encrypted
      &in, const ec::Key &key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::validate_key
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: pgp::ecdh::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 2
    functionsReached:
    - pgp::ec::validate_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:63,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:65,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:70,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:74,1
    - Dst: pgp::ecdh::kdf_other_info_serialize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:79,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:81,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:81,1
    - Dst: auto::OID::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:81,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:84,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:85,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:89,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:95,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:96,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:97,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:97,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:97,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:98,1
    - Dst: auto::finish
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:99,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:99,1
    - Dst: std::min
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:100,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:100,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:101,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:101,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - '         x'
    - '             key'
    - fp
    - '         kek'
    argTypes:
    - rnp::secure_bytes
    - ec::Key
    - std::vector<uint8_t>
    - rnp::secure_bytes
    assertStmts:
    - condition: (hash_len <= PGP_MAX_HASH_SIZE)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    - condition: (other_info.size() == curve_desc->OID.size() + 46)
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    constantsTouched: []
    func_position:
      end: 105
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 105
    functionName: pgp::ecdh::derive_kek
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - data
    - memcpy
    - auto::size
    - rnp::Hash::size
    - auto::OID::size
    - rnp::secure_array::data
    - pgp::ec::Curve::get
    - assert
    - std::min
    - auto::add
    - rnp::Hash::create
    - auto::finish
    - size
    - pgp::ecdh::kdf_other_info_serialize
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t derive_kek(rnp::secure_bytes &         x,\n           const
      ec::Key &             key,\n           const std::vector<uint8_t> &fp,\n           rnp::secure_bytes
      &         kek)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_LOOKUP_BY_ID
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:115,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:118,1
    - Dst: EVP_get_cipherbyname
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:122,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:125,1
    - Dst: rnp::ossl::evp::CipherCtx::reset
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:129,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:129,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:132,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:132,1
    - Dst: EVP_CIPHER_CTX_set_flags
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:136,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:136,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:137,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:137,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:137,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:138,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:138,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:138,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:141,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:141,1
    - Dst: rnp::ossl::evp::CipherCtx::reset
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - ctx
    - wrap_alg
    - '  key'
    - decrypt
    argTypes:
    - rnp::ossl::evp::CipherCtx
    - pgp_symm_alg_t
    - rnp::secure_bytes
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 147
    functionName: pgp::ecdh::rfc3394_wrap_ctx
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - rnp::ossl::evp::CipherCtx::reset
    - EVP_CIPHER_CTX_set_flags
    - EVP_get_cipherbyname
    - data
    - EVP_DecryptInit_ex
    - ARRAY_LOOKUP_BY_ID
    - EVP_EncryptInit_ex
    - rnp::ossl::evp::CipherCtx::get
    - EVP_CIPHER_CTX_new
    - ERR_peek_last_error
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t rfc3394_wrap_ctx(rnp::ossl::evp::CipherCtx &ctx,\n                 pgp_symm_alg_t
      \            wrap_alg,\n                 const rnp::secure_bytes &  key,\n                 bool
      \                      decrypt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ecdh::rfc3394_wrap_ctx
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:156,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:159,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:163,1
    - Dst: EVP_EncryptUpdate
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:165,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:165,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:165,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:165,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:165,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:167,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:167,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - '   out'
    - in
    - key
    - wrap_alg
    argTypes:
    - std::vector<uint8_t>
    - rnp::secure_bytes
    - rnp::secure_bytes
    - pgp_symm_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 172
    functionName: pgp::ecdh::rfc3394_wrap
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - data
    - rnp::secure_bytes::size
    - resize
    - rnp::ossl::evp::CipherCtx::get
    - pgp::ecdh::rfc3394_wrap_ctx
    - ERR_peek_last_error
    - rnp::secure_bytes::data
    - size
    - EVP_EncryptUpdate
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t rfc3394_wrap(std::vector<uint8_t> &   out,\n             const
      rnp::secure_bytes &in,\n             const rnp::secure_bytes &key,\n             pgp_symm_alg_t
      \          wrap_alg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:180,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:180,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:181,1
    - Dst: pgp::ecdh::rfc3394_wrap_ctx
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:185,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:188,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:192,1
    - Dst: EVP_DecryptUpdate
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:194,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:194,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:194,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:194,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:194,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:196,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:196,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - '         out'
    - in
    - '   key'
    - wrap_alg
    argTypes:
    - rnp::secure_bytes
    - std::vector<uint8_t>
    - rnp::secure_bytes
    - pgp_symm_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 201
    functionName: pgp::ecdh::rfc3394_unwrap
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>::size
    - data
    - EVP_DecryptUpdate
    - resize
    - pgp::ecdh::rfc3394_wrap_ctx
    - rnp::ossl::evp::CipherCtx::get
    - ERR_peek_last_error
    - std::vector<uint8_t>::data
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t rfc3394_unwrap(rnp::secure_bytes &         out,\n               const
      std::vector<uint8_t> &in,\n               const rnp::secure_bytes &   key,\n
      \              pgp_symm_alg_t              wrap_alg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:206,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:206,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:209,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:209,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:213,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:213,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:215,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:215,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:219,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:219,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:219,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:221,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:221,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:225,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:226,1
    - Dst: EVP_PKEY_derive
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:227,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:227,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:227,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:229,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:229,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:233,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - sec
    - peer
    - x
    argTypes:
    - rnp::ossl::evp::PKey
    - rnp::ossl::evp::PKey
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 235
    functionName: pgp::ecdh::derive_secret
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - ERR_peek_last_error
    - rnp::secure_bytes::size
    - EVP_PKEY_derive
    - EVP_PKEY_derive_set_peer
    - EVP_PKEY_derive_init
    - rnp::secure_bytes::resize
    - rnp::secure_bytes::data
    - rnp::ossl::evp::PKey::get
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: bool
    signature: bool derive_secret(rnp::ossl::evp::PKey &sec, rnp::ossl::evp::PKey
      &peer, rnp::secure_bytes &x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - wrap_alg
    argTypes:
    - pgp_symm_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 248
    functionName: pgp::ecdh::ecdh_kek_len
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 2
    functionsReached:
    - pgp_key_size
    linkageType: ''
    returnType: size_t
    signature: size_t ecdh_kek_len(pgp_symm_alg_t wrap_alg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:253,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:258,1
    - Dst: pgp::ecdh::ecdh_kek_len
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:263,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:266,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:271,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:274,1
    - Dst: pgp::ec::generate_pkey
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:280,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:283,1
    - Dst: pgp::ecdh::derive_secret
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:289,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:291,1
    - Dst: pgp::ecdh::derive_kek
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:297,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:300,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:305,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:306,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:306,1
    - Dst: pgp::ecdh::pad_pkcs7
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:307,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:307,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:309,1
    - Dst: pgp::ecdh::rfc3394_wrap
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:310,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:313,1
    - Dst: pgp::ec::write_pubkey
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:318,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:320,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 4
    argNames:
    - rng
    - out
    - in
    - key
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 250
    functionDepth: 4
    functionLinenumber: 250
    functionLinenumberEnd: 325
    functionName: pgp::ecdh::encrypt_pkcs5
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - pgp::ecdh::pad_pkcs7
    - pgp::ec::write_pubkey
    - rnp::secure_bytes::size
    - pgp::ec::load_key
    - pgp::ecdh::ecdh_kek_len
    - pgp::ecdh::rfc3394_wrap
    - Encrypted::m::resize
    - pgp::ecdh::derive_kek
    - pgp::ec::generate_pkey
    - rnp::secure_bytes::begin
    - pgp::ecdh::derive_secret
    - rnp::secure_bytes::end
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t encrypt_pkcs5(rnp::RNG &rng, Encrypted &out, const rnp::secure_bytes
      &in, const ec::Key &key)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::x::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:330,1
    - Dst: pgp::ecdh::ecdh_kek_len
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:335,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:337,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:341,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:343,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:347,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:350,1
    - Dst: pgp::ecdh::derive_secret
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:356,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:358,1
    - Dst: pgp::ecdh::derive_kek
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:364,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:367,1
    - Dst: pgp::ecdh::rfc3394_unwrap
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:373,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:376,1
    - Dst: pgp::ecdh::unpad_pkcs7
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:381,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:383,1
    - Dst: rnp::secure_bytes::assign
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:387,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:387,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:387,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - out
    - in
    - key
    argTypes:
    - rnp::secure_bytes
    - Encrypted
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 327
    functionDepth: 4
    functionLinenumber: 327
    functionLinenumberEnd: 389
    functionName: pgp::ecdh::decrypt_pkcs5
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - ec::Key::x::size
    - pgp::ec::load_key
    - rnp::secure_bytes::assign
    - pgp::ecdh::ecdh_kek_len
    - pgp::ecdh::derive_kek
    - pgp::ecdh::rfc3394_unwrap
    - rnp::secure_bytes::begin
    - rnp::secure_bytes::end
    - pgp::ecdh::derive_secret
    - pgp::ecdh::unpad_pkcs7
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t decrypt_pkcs5(rnp::secure_bytes &out, const Encrypted
      &in, const ec::Key &key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::validate_key
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: pgp::ecdh::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 2
    functionsReached:
    - pgp::ec::validate_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:63,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:65,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:70,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:74,1
    - Dst: pgp::ecdh::kdf_other_info_serialize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:79,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:81,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:81,1
    - Dst: auto::OID::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:81,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:84,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:85,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:89,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:95,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:96,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:97,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:97,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:97,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:98,1
    - Dst: auto::finish
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:99,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:99,1
    - Dst: std::min
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:100,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:100,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:101,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:101,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - '         x'
    - '             key'
    - fp
    - '         kek'
    argTypes:
    - rnp::secure_bytes
    - ec::Key
    - std::vector<uint8_t>
    - rnp::secure_bytes
    assertStmts:
    - condition: (hash_len <= PGP_MAX_HASH_SIZE)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    - condition: (other_info.size() == curve_desc->OID.size() + 46)
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    constantsTouched: []
    func_position:
      end: 105
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 105
    functionName: pgp::ecdh::derive_kek
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - data
    - memcpy
    - auto::size
    - rnp::Hash::size
    - auto::OID::size
    - rnp::secure_array::data
    - pgp::ec::Curve::get
    - assert
    - std::min
    - auto::add
    - rnp::Hash::create
    - auto::finish
    - size
    - pgp::ecdh::kdf_other_info_serialize
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t derive_kek(rnp::secure_bytes &         x,\n           const
      ec::Key &             key,\n           const std::vector<uint8_t> &fp,\n           rnp::secure_bytes
      &         kek)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_LOOKUP_BY_ID
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:115,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:118,1
    - Dst: EVP_get_cipherbyname
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:122,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:125,1
    - Dst: rnp::ossl::evp::CipherCtx::reset
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:129,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:129,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:132,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:132,1
    - Dst: EVP_CIPHER_CTX_set_flags
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:136,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:136,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:137,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:137,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:137,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:138,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:138,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:138,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:141,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:141,1
    - Dst: rnp::ossl::evp::CipherCtx::reset
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - ctx
    - wrap_alg
    - '  key'
    - decrypt
    argTypes:
    - rnp::ossl::evp::CipherCtx
    - pgp_symm_alg_t
    - rnp::secure_bytes
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 147
    functionName: pgp::ecdh::rfc3394_wrap_ctx
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - rnp::ossl::evp::CipherCtx::reset
    - EVP_CIPHER_CTX_set_flags
    - EVP_get_cipherbyname
    - data
    - EVP_DecryptInit_ex
    - ARRAY_LOOKUP_BY_ID
    - EVP_EncryptInit_ex
    - rnp::ossl::evp::CipherCtx::get
    - EVP_CIPHER_CTX_new
    - ERR_peek_last_error
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t rfc3394_wrap_ctx(rnp::ossl::evp::CipherCtx &ctx,\n                 pgp_symm_alg_t
      \            wrap_alg,\n                 const rnp::secure_bytes &  key,\n                 bool
      \                      decrypt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ecdh::rfc3394_wrap_ctx
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:156,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:159,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:163,1
    - Dst: EVP_EncryptUpdate
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:165,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:165,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:165,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:165,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:165,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:167,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:167,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - '   out'
    - in
    - key
    - wrap_alg
    argTypes:
    - std::vector<uint8_t>
    - rnp::secure_bytes
    - rnp::secure_bytes
    - pgp_symm_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 172
    functionName: pgp::ecdh::rfc3394_wrap
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - data
    - rnp::secure_bytes::size
    - resize
    - rnp::ossl::evp::CipherCtx::get
    - pgp::ecdh::rfc3394_wrap_ctx
    - ERR_peek_last_error
    - rnp::secure_bytes::data
    - size
    - EVP_EncryptUpdate
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t rfc3394_wrap(std::vector<uint8_t> &   out,\n             const
      rnp::secure_bytes &in,\n             const rnp::secure_bytes &key,\n             pgp_symm_alg_t
      \          wrap_alg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:180,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:180,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:181,1
    - Dst: pgp::ecdh::rfc3394_wrap_ctx
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:185,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:188,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:192,1
    - Dst: EVP_DecryptUpdate
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:194,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:194,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:194,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:194,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:194,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:196,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:196,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - '         out'
    - in
    - '   key'
    - wrap_alg
    argTypes:
    - rnp::secure_bytes
    - std::vector<uint8_t>
    - rnp::secure_bytes
    - pgp_symm_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 201
    functionName: pgp::ecdh::rfc3394_unwrap
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>::size
    - data
    - EVP_DecryptUpdate
    - resize
    - pgp::ecdh::rfc3394_wrap_ctx
    - rnp::ossl::evp::CipherCtx::get
    - ERR_peek_last_error
    - std::vector<uint8_t>::data
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t rfc3394_unwrap(rnp::secure_bytes &         out,\n               const
      std::vector<uint8_t> &in,\n               const rnp::secure_bytes &   key,\n
      \              pgp_symm_alg_t              wrap_alg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:206,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:206,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:209,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:209,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:213,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:213,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:215,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:215,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:219,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:219,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:219,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:221,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:221,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:225,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:226,1
    - Dst: EVP_PKEY_derive
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:227,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:227,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:227,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:229,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:229,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:233,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - sec
    - peer
    - x
    argTypes:
    - rnp::ossl::evp::PKey
    - rnp::ossl::evp::PKey
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 235
    functionName: pgp::ecdh::derive_secret
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - ERR_peek_last_error
    - rnp::secure_bytes::size
    - EVP_PKEY_derive
    - EVP_PKEY_derive_set_peer
    - EVP_PKEY_derive_init
    - rnp::secure_bytes::resize
    - rnp::secure_bytes::data
    - rnp::ossl::evp::PKey::get
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: bool
    signature: bool derive_secret(rnp::ossl::evp::PKey &sec, rnp::ossl::evp::PKey
      &peer, rnp::secure_bytes &x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - wrap_alg
    argTypes:
    - pgp_symm_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 248
    functionName: pgp::ecdh::ecdh_kek_len
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 4
    functionsReached:
    - pgp_key_size
    linkageType: ''
    returnType: size_t
    signature: size_t ecdh_kek_len(pgp_symm_alg_t wrap_alg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:253,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:258,1
    - Dst: pgp::ecdh::ecdh_kek_len
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:263,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:266,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:271,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:274,1
    - Dst: pgp::ec::generate_pkey
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:280,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:283,1
    - Dst: pgp::ecdh::derive_secret
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:289,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:291,1
    - Dst: pgp::ecdh::derive_kek
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:297,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:300,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:305,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:306,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:306,1
    - Dst: pgp::ecdh::pad_pkcs7
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:307,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:307,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:309,1
    - Dst: pgp::ecdh::rfc3394_wrap
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:310,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:313,1
    - Dst: pgp::ec::write_pubkey
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:318,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:320,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 4
    argNames:
    - rng
    - out
    - in
    - key
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 250
    functionDepth: 4
    functionLinenumber: 250
    functionLinenumberEnd: 325
    functionName: pgp::ecdh::encrypt_pkcs5
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - pgp::ecdh::pad_pkcs7
    - pgp::ec::write_pubkey
    - rnp::secure_bytes::size
    - pgp::ec::load_key
    - pgp::ecdh::ecdh_kek_len
    - pgp::ecdh::rfc3394_wrap
    - Encrypted::m::resize
    - pgp::ecdh::derive_kek
    - pgp::ec::generate_pkey
    - rnp::secure_bytes::begin
    - pgp::ecdh::derive_secret
    - rnp::secure_bytes::end
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t encrypt_pkcs5(rnp::RNG &rng, Encrypted &out, const rnp::secure_bytes
      &in, const ec::Key &key)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::x::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:330,1
    - Dst: pgp::ecdh::ecdh_kek_len
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:335,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:337,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:341,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:343,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:347,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:350,1
    - Dst: pgp::ecdh::derive_secret
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:356,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:358,1
    - Dst: pgp::ecdh::derive_kek
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:364,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:367,1
    - Dst: pgp::ecdh::rfc3394_unwrap
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:373,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:376,1
    - Dst: pgp::ecdh::unpad_pkcs7
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:381,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:383,1
    - Dst: rnp::secure_bytes::assign
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:387,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:387,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:387,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - out
    - in
    - key
    argTypes:
    - rnp::secure_bytes
    - Encrypted
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 327
    functionDepth: 4
    functionLinenumber: 327
    functionLinenumberEnd: 389
    functionName: pgp::ecdh::decrypt_pkcs5
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - ec::Key::x::size
    - pgp::ec::load_key
    - rnp::secure_bytes::assign
    - pgp::ecdh::ecdh_kek_len
    - pgp::ecdh::derive_kek
    - pgp::ecdh::rfc3394_unwrap
    - rnp::secure_bytes::begin
    - rnp::secure_bytes::end
    - pgp::ecdh::derive_secret
    - pgp::ecdh::unpad_pkcs7
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t decrypt_pkcs5(rnp::secure_bytes &out, const Encrypted
      &in, const ec::Key &key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::validate_key
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:54,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 55
    functionName: pgp::ecdh::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 2
    functionsReached:
    - pgp::ec::validate_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:63,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:65,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:70,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:74,1
    - Dst: pgp::ecdh::kdf_other_info_serialize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:79,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:81,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:81,1
    - Dst: auto::OID::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:81,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:84,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:85,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:89,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:95,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:96,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:97,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:97,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:97,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:98,1
    - Dst: auto::finish
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:99,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:99,1
    - Dst: std::min
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:100,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:100,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:101,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:101,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:101,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 4
    argNames:
    - '         x'
    - '             key'
    - fp
    - '         kek'
    argTypes:
    - rnp::secure_bytes
    - ec::Key
    - std::vector<uint8_t>
    - rnp::secure_bytes
    assertStmts:
    - condition: (hash_len <= PGP_MAX_HASH_SIZE)
      pos:
        line_end: 83
        line_start: 83
        source_file: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    - condition: (other_info.size() == curve_desc->OID.size() + 46)
      pos:
        line_end: 80
        line_start: 80
        source_file: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    constantsTouched: []
    func_position:
      end: 105
      start: 57
    functionDepth: 1
    functionLinenumber: 57
    functionLinenumberEnd: 105
    functionName: pgp::ecdh::derive_kek
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 6
    functionsReached:
    - RNP_LOG
    - data
    - memcpy
    - auto::size
    - rnp::Hash::size
    - auto::OID::size
    - rnp::secure_array::data
    - pgp::ec::Curve::get
    - assert
    - std::min
    - auto::add
    - rnp::Hash::create
    - auto::finish
    - size
    - pgp::ecdh::kdf_other_info_serialize
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t derive_kek(rnp::secure_bytes &         x,\n           const
      ec::Key &             key,\n           const std::vector<uint8_t> &fp,\n           rnp::secure_bytes
      &         kek)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_LOOKUP_BY_ID
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:115,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:118,1
    - Dst: EVP_get_cipherbyname
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:122,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:125,1
    - Dst: rnp::ossl::evp::CipherCtx::reset
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:129,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:129,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:132,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:132,1
    - Dst: EVP_CIPHER_CTX_set_flags
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:136,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:136,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:137,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:137,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:137,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:138,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:138,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:138,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:141,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:141,1
    - Dst: rnp::ossl::evp::CipherCtx::reset
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:142,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 4
    argNames:
    - ctx
    - wrap_alg
    - '  key'
    - decrypt
    argTypes:
    - rnp::ossl::evp::CipherCtx
    - pgp_symm_alg_t
    - rnp::secure_bytes
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 147
    functionName: pgp::ecdh::rfc3394_wrap_ctx
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 6
    functionsReached:
    - RNP_LOG
    - rnp::ossl::evp::CipherCtx::reset
    - EVP_CIPHER_CTX_set_flags
    - EVP_get_cipherbyname
    - data
    - EVP_DecryptInit_ex
    - ARRAY_LOOKUP_BY_ID
    - EVP_EncryptInit_ex
    - rnp::ossl::evp::CipherCtx::get
    - EVP_CIPHER_CTX_new
    - ERR_peek_last_error
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t rfc3394_wrap_ctx(rnp::ossl::evp::CipherCtx &ctx,\n                 pgp_symm_alg_t
      \            wrap_alg,\n                 const rnp::secure_bytes &  key,\n                 bool
      \                      decrypt)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ecdh::rfc3394_wrap_ctx
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:156,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:159,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:163,1
    - Dst: EVP_EncryptUpdate
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:165,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:165,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:165,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:165,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:165,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:167,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:167,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:170,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 4
    argNames:
    - '   out'
    - in
    - key
    - wrap_alg
    argTypes:
    - std::vector<uint8_t>
    - rnp::secure_bytes
    - rnp::secure_bytes
    - pgp_symm_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 149
    functionDepth: 2
    functionLinenumber: 149
    functionLinenumberEnd: 172
    functionName: pgp::ecdh::rfc3394_wrap
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - data
    - rnp::secure_bytes::size
    - resize
    - rnp::ossl::evp::CipherCtx::get
    - pgp::ecdh::rfc3394_wrap_ctx
    - ERR_peek_last_error
    - rnp::secure_bytes::data
    - size
    - EVP_EncryptUpdate
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t rfc3394_wrap(std::vector<uint8_t> &   out,\n             const
      rnp::secure_bytes &in,\n             const rnp::secure_bytes &key,\n             pgp_symm_alg_t
      \          wrap_alg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:180,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:180,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:181,1
    - Dst: pgp::ecdh::rfc3394_wrap_ctx
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:185,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:188,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:192,1
    - Dst: EVP_DecryptUpdate
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:194,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:194,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:194,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:194,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:194,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:196,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:196,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 4
    argNames:
    - '         out'
    - in
    - '   key'
    - wrap_alg
    argTypes:
    - rnp::secure_bytes
    - std::vector<uint8_t>
    - rnp::secure_bytes
    - pgp_symm_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 174
    functionDepth: 2
    functionLinenumber: 174
    functionLinenumberEnd: 201
    functionName: pgp::ecdh::rfc3394_unwrap
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>::size
    - data
    - EVP_DecryptUpdate
    - resize
    - pgp::ecdh::rfc3394_wrap_ctx
    - rnp::ossl::evp::CipherCtx::get
    - ERR_peek_last_error
    - std::vector<uint8_t>::data
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t rfc3394_unwrap(rnp::secure_bytes &         out,\n               const
      std::vector<uint8_t> &in,\n               const rnp::secure_bytes &   key,\n
      \              pgp_symm_alg_t              wrap_alg)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:206,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:206,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:209,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:209,1
    - Dst: EVP_PKEY_derive_init
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:213,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:213,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:215,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:215,1
    - Dst: EVP_PKEY_derive_set_peer
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:219,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:219,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:219,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:221,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:221,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:225,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:226,1
    - Dst: EVP_PKEY_derive
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:227,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:227,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:227,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:229,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:229,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:233,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 3
    argNames:
    - sec
    - peer
    - x
    argTypes:
    - rnp::ossl::evp::PKey
    - rnp::ossl::evp::PKey
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 235
      start: 203
    functionDepth: 1
    functionLinenumber: 203
    functionLinenumberEnd: 235
    functionName: pgp::ecdh::derive_secret
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 6
    functionsReached:
    - RNP_LOG
    - ERR_peek_last_error
    - rnp::secure_bytes::size
    - EVP_PKEY_derive
    - EVP_PKEY_derive_set_peer
    - EVP_PKEY_derive_init
    - rnp::secure_bytes::resize
    - rnp::secure_bytes::data
    - rnp::ossl::evp::PKey::get
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: bool
    signature: bool derive_secret(rnp::ossl::evp::PKey &sec, rnp::ossl::evp::PKey
      &peer, rnp::secure_bytes &x)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp_key_size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 1
    argNames:
    - wrap_alg
    argTypes:
    - pgp_symm_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 248
      start: 237
    functionDepth: 1
    functionLinenumber: 237
    functionLinenumberEnd: 248
    functionName: pgp::ecdh::ecdh_kek_len
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 6
    functionsReached:
    - pgp_key_size
    linkageType: ''
    returnType: size_t
    signature: size_t ecdh_kek_len(pgp_symm_alg_t wrap_alg)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:253,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:258,1
    - Dst: pgp::ecdh::ecdh_kek_len
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:263,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:266,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:271,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:274,1
    - Dst: pgp::ec::generate_pkey
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:280,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:283,1
    - Dst: pgp::ecdh::derive_secret
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:289,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:291,1
    - Dst: pgp::ecdh::derive_kek
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:297,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:300,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:305,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:306,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:306,1
    - Dst: pgp::ecdh::pad_pkcs7
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:307,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:307,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:309,1
    - Dst: pgp::ecdh::rfc3394_wrap
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:310,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:313,1
    - Dst: pgp::ec::write_pubkey
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:318,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:320,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 40
    argCount: 4
    argNames:
    - rng
    - out
    - in
    - key
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 325
      start: 250
    functionDepth: 4
    functionLinenumber: 250
    functionLinenumberEnd: 325
    functionName: pgp::ecdh::encrypt_pkcs5
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - pgp::ecdh::pad_pkcs7
    - pgp::ec::write_pubkey
    - rnp::secure_bytes::size
    - pgp::ec::load_key
    - pgp::ecdh::ecdh_kek_len
    - pgp::ecdh::rfc3394_wrap
    - Encrypted::m::resize
    - pgp::ecdh::derive_kek
    - pgp::ec::generate_pkey
    - rnp::secure_bytes::begin
    - pgp::ecdh::derive_secret
    - rnp::secure_bytes::end
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t encrypt_pkcs5(rnp::RNG &rng, Encrypted &out, const rnp::secure_bytes
      &in, const ec::Key &key)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::x::size
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:330,1
    - Dst: pgp::ecdh::ecdh_kek_len
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:335,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:337,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:341,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:343,1
    - Dst: pgp::ec::load_key
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:347,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:350,1
    - Dst: pgp::ecdh::derive_secret
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:356,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:358,1
    - Dst: pgp::ecdh::derive_kek
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:364,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:367,1
    - Dst: pgp::ecdh::rfc3394_unwrap
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:373,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:376,1
    - Dst: pgp::ecdh::unpad_pkcs7
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:381,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:383,1
    - Dst: rnp::secure_bytes::assign
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:387,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:387,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/ecdh_ossl.cpp:387,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 35
    argCount: 3
    argNames:
    - out
    - in
    - key
    argTypes:
    - rnp::secure_bytes
    - Encrypted
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 327
    functionDepth: 4
    functionLinenumber: 327
    functionLinenumberEnd: 389
    functionName: pgp::ecdh::decrypt_pkcs5
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - ec::Key::x::size
    - pgp::ec::load_key
    - rnp::secure_bytes::assign
    - pgp::ecdh::ecdh_kek_len
    - pgp::ecdh::derive_kek
    - pgp::ecdh::rfc3394_unwrap
    - rnp::secure_bytes::begin
    - rnp::secure_bytes::end
    - pgp::ecdh::derive_secret
    - pgp::ecdh::unpad_pkcs7
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t decrypt_pkcs5(rnp::secure_bytes &out, const Encrypted
      &in, const ec::Key &key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:61,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:61,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:66,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:66,1
    - Dst: OID::size
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:66,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:67,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:67,1
    - Dst: OID::begin
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:67,1
    - Dst: OID::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:67,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:68,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:70,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:72,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:74,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:76,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:84,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:84,1
    - Dst: std::array::begin
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:84,1
    - Dst: std::array::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:84,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:86,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:86,1
    - Dst: std::vector<uint8_t>::begin
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:86,1
    - Dst: std::vector<uint8_t>::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - '           curve'
    - fp
    - kdf_hash
    - wrap_alg
    argTypes:
    - ec::Curve
    - std::vector<uint8_t>
    - pgp_hash_alg_t
    - pgp_symm_alg_t
    assertStmts:
    - condition: (fp.size() >= 20)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    constantsTouched: []
    func_position:
      end: 88
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 88
    functionName: pgp::ecdh::kdf_other_info_serialize
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    functionUses: 4
    functionsReached:
    - std::vector<uint8_t>::size
    - OID::begin
    - std::vector::insert
    - std::vector<uint8_t>::end
    - std::vector::push_back
    - OID::size
    - std::array::begin
    - assert
    - OID::end
    - std::vector::end
    - std::vector<uint8_t>::begin
    - std::array::end
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> kdf_other_info_serialize(const ec::Curve &           curve,\n
      \                        const std::vector<uint8_t> &fp,\n                         const
      pgp_hash_alg_t        kdf_hash,\n                         const pgp_symm_alg_t
      \       wrap_alg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::secure_bytes::insert
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:93,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - padding
    argTypes:
    - rnp::secure_bytes
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: pgp::ecdh::pad_pkcs7
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    functionUses: 4
    functionsReached:
    - rnp::secure_bytes::insert
    - rnp::secure_bytes::end
    linkageType: ''
    returnType: void
    signature: void pad_pkcs7(rnp::secure_bytes &buf, uint8_t padding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::secure_bytes::empty
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:99,1
    - Dst: rnp::secure_bytes::back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:104,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:105,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:108,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:112,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 117
    functionName: pgp::ecdh::unpad_pkcs7
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    functionUses: 4
    functionsReached:
    - rnp::secure_bytes::empty
    - rnp::secure_bytes::resize
    - rnp::secure_bytes::back
    - rnp::secure_bytes::size
    linkageType: ''
    returnType: bool
    signature: bool unpad_pkcs7(rnp::secure_bytes &buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - key
    - curve_id
    argTypes:
    - ec::Key
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 131
    functionName: pgp::ecdh::set_params
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    functionUses: 2
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: bool
    signature: bool set_params(ec::Key &key, pgp_curve_t curve_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:61,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:61,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:66,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:66,1
    - Dst: OID::size
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:66,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:67,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:67,1
    - Dst: OID::begin
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:67,1
    - Dst: OID::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:67,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:68,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:70,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:72,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:74,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:76,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:84,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:84,1
    - Dst: std::array::begin
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:84,1
    - Dst: std::array::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:84,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:86,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:86,1
    - Dst: std::vector<uint8_t>::begin
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:86,1
    - Dst: std::vector<uint8_t>::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - '           curve'
    - fp
    - kdf_hash
    - wrap_alg
    argTypes:
    - ec::Curve
    - std::vector<uint8_t>
    - pgp_hash_alg_t
    - pgp_symm_alg_t
    assertStmts:
    - condition: (fp.size() >= 20)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    constantsTouched: []
    func_position:
      end: 88
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 88
    functionName: pgp::ecdh::kdf_other_info_serialize
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    functionUses: 4
    functionsReached:
    - std::vector<uint8_t>::size
    - OID::begin
    - std::vector::insert
    - std::vector<uint8_t>::end
    - std::vector::push_back
    - OID::size
    - std::array::begin
    - assert
    - OID::end
    - std::vector::end
    - std::vector<uint8_t>::begin
    - std::array::end
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> kdf_other_info_serialize(const ec::Curve &           curve,\n
      \                        const std::vector<uint8_t> &fp,\n                         const
      pgp_hash_alg_t        kdf_hash,\n                         const pgp_symm_alg_t
      \       wrap_alg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::secure_bytes::insert
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:93,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - padding
    argTypes:
    - rnp::secure_bytes
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: pgp::ecdh::pad_pkcs7
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    functionUses: 4
    functionsReached:
    - rnp::secure_bytes::insert
    - rnp::secure_bytes::end
    linkageType: ''
    returnType: void
    signature: void pad_pkcs7(rnp::secure_bytes &buf, uint8_t padding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::secure_bytes::empty
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:99,1
    - Dst: rnp::secure_bytes::back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:104,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:105,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:108,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:112,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 117
    functionName: pgp::ecdh::unpad_pkcs7
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    functionUses: 4
    functionsReached:
    - rnp::secure_bytes::empty
    - rnp::secure_bytes::resize
    - rnp::secure_bytes::back
    - rnp::secure_bytes::size
    linkageType: ''
    returnType: bool
    signature: bool unpad_pkcs7(rnp::secure_bytes &buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - key
    - curve_id
    argTypes:
    - ec::Key
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 131
    functionName: pgp::ecdh::set_params
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    functionUses: 2
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: bool
    signature: bool set_params(ec::Key &key, pgp_curve_t curve_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:61,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:61,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:66,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:66,1
    - Dst: OID::size
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:66,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:67,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:67,1
    - Dst: OID::begin
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:67,1
    - Dst: OID::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:67,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:68,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:70,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:72,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:74,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:76,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:84,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:84,1
    - Dst: std::array::begin
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:84,1
    - Dst: std::array::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:84,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:86,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:86,1
    - Dst: std::vector<uint8_t>::begin
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:86,1
    - Dst: std::vector<uint8_t>::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - '           curve'
    - fp
    - kdf_hash
    - wrap_alg
    argTypes:
    - ec::Curve
    - std::vector<uint8_t>
    - pgp_hash_alg_t
    - pgp_symm_alg_t
    assertStmts:
    - condition: (fp.size() >= 20)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    constantsTouched: []
    func_position:
      end: 88
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 88
    functionName: pgp::ecdh::kdf_other_info_serialize
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    functionUses: 4
    functionsReached:
    - std::vector<uint8_t>::size
    - OID::begin
    - std::vector::insert
    - std::vector<uint8_t>::end
    - std::vector::push_back
    - OID::size
    - std::array::begin
    - assert
    - OID::end
    - std::vector::end
    - std::vector<uint8_t>::begin
    - std::array::end
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> kdf_other_info_serialize(const ec::Curve &           curve,\n
      \                        const std::vector<uint8_t> &fp,\n                         const
      pgp_hash_alg_t        kdf_hash,\n                         const pgp_symm_alg_t
      \       wrap_alg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::secure_bytes::insert
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:93,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - padding
    argTypes:
    - rnp::secure_bytes
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: pgp::ecdh::pad_pkcs7
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    functionUses: 4
    functionsReached:
    - rnp::secure_bytes::insert
    - rnp::secure_bytes::end
    linkageType: ''
    returnType: void
    signature: void pad_pkcs7(rnp::secure_bytes &buf, uint8_t padding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::secure_bytes::empty
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:99,1
    - Dst: rnp::secure_bytes::back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:104,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:105,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:108,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:112,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 117
    functionName: pgp::ecdh::unpad_pkcs7
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    functionUses: 4
    functionsReached:
    - rnp::secure_bytes::empty
    - rnp::secure_bytes::resize
    - rnp::secure_bytes::back
    - rnp::secure_bytes::size
    linkageType: ''
    returnType: bool
    signature: bool unpad_pkcs7(rnp::secure_bytes &buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - key
    - curve_id
    argTypes:
    - ec::Key
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 131
    functionName: pgp::ecdh::set_params
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    functionUses: 2
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: bool
    signature: bool set_params(ec::Key &key, pgp_curve_t curve_id)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:61,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:61,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:66,1
    - Dst: static_cast<uint8_t>
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:66,1
    - Dst: OID::size
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:66,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:67,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:67,1
    - Dst: OID::begin
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:67,1
    - Dst: OID::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:67,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:68,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:70,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:72,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:74,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:76,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:84,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:84,1
    - Dst: std::array::begin
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:84,1
    - Dst: std::array::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:84,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:86,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:86,1
    - Dst: std::vector<uint8_t>::begin
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:86,1
    - Dst: std::vector<uint8_t>::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 12
    argCount: 4
    argNames:
    - '           curve'
    - fp
    - kdf_hash
    - wrap_alg
    argTypes:
    - ec::Curve
    - std::vector<uint8_t>
    - pgp_hash_alg_t
    - pgp_symm_alg_t
    assertStmts:
    - condition: (fp.size() >= 20)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    constantsTouched: []
    func_position:
      end: 88
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 88
    functionName: pgp::ecdh::kdf_other_info_serialize
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    functionUses: 4
    functionsReached:
    - std::vector<uint8_t>::size
    - OID::begin
    - std::vector::insert
    - std::vector<uint8_t>::end
    - std::vector::push_back
    - OID::size
    - std::array::begin
    - assert
    - OID::end
    - std::vector::end
    - std::vector<uint8_t>::begin
    - std::array::end
    - static_cast<uint8_t>
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: "std::vector<uint8_t> kdf_other_info_serialize(const ec::Curve &           curve,\n
      \                        const std::vector<uint8_t> &fp,\n                         const
      pgp_hash_alg_t        kdf_hash,\n                         const pgp_symm_alg_t
      \       wrap_alg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::secure_bytes::insert
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:93,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:93,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - padding
    argTypes:
    - rnp::secure_bytes
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 94
    functionName: pgp::ecdh::pad_pkcs7
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    functionUses: 4
    functionsReached:
    - rnp::secure_bytes::insert
    - rnp::secure_bytes::end
    linkageType: ''
    returnType: void
    signature: void pad_pkcs7(rnp::secure_bytes &buf, uint8_t padding)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::secure_bytes::empty
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:99,1
    - Dst: rnp::secure_bytes::back
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:104,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:105,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:108,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:112,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:115,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 1
    argNames:
    - buf
    argTypes:
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 117
    functionName: pgp::ecdh::unpad_pkcs7
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    functionUses: 4
    functionsReached:
    - rnp::secure_bytes::empty
    - rnp::secure_bytes::resize
    - rnp::secure_bytes::back
    - rnp::secure_bytes::size
    linkageType: ''
    returnType: bool
    signature: bool unpad_pkcs7(rnp::secure_bytes &buf)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ARRAY_SIZE
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:122,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 2
    argNames:
    - key
    - curve_id
    argTypes:
    - ec::Key
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 119
    functionDepth: 1
    functionLinenumber: 119
    functionLinenumberEnd: 131
    functionName: pgp::ecdh::set_params
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    functionUses: 2
    functionsReached:
    - ARRAY_SIZE
    linkageType: ''
    returnType: bool
    signature: bool set_params(ec::Key &key, pgp_curve_t curve_id)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Key::x::size
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - key
    argTypes:
    - pgp::ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 147
    functionName: x25519_tweak_bits
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    functionUses: 3
    functionsReached:
    - pgp::ec::Key::x::size
    linkageType: ''
    returnType: bool
    signature: bool x25519_tweak_bits(pgp::ec::Key &key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Key::x::size
      Src: /src/rnp/src/lib/crypto/ecdh_utils.cpp:152,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 1
    argNames:
    - key
    argTypes:
    - pgp::ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 149
    functionDepth: 1
    functionLinenumber: 149
    functionLinenumberEnd: 156
    functionName: x25519_bits_tweaked
    functionSourceFile: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    functionUses: 5
    functionsReached:
    - pgp::ec::Key::x::size
    linkageType: ''
    returnType: bool
    signature: bool x25519_bits_tweaked(const pgp::ec::Key &key)
  - 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: rnp::SecureBytes::SecureBytes
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SecureBytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: rnp::SecureBytes::SecureBytes
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SecureBytes(const uint8_t *first, const uint8_t *last)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: rnp::SecureBytes::SecureBytes
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SecureBytes(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: rnp::SecureBytes::SecureBytes
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SecureBytes(const std::vector<uint8_t> &v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: rnp::SecureBytes::SecureBytes
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void SecureBytes(std::vector<uint8_t> &&v) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::secure_wipe
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:64,1
    - Dst: rnp::data
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:64,1
    - Dst: rnp::size
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: ~SecureBytes()
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 0
    functionsReached:
    - rnp::data
    - rnp::secure_wipe
    - rnp::size
    linkageType: ''
    returnType: void
    signature: void ~SecureBytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: rnp::SecureBytes::SecureBytes
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SecureBytes(const SecureBytes &)
  - 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: '&operator=(const SecureBytes &)'
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SecureBytes
    signature: SecureBytes &operator=(const SecureBytes &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - o
    argTypes:
    - SecureBytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: rnp::SecureBytes::SecureBytes
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void SecureBytes(SecureBytes &&o) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::secure_wipe
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:76,1
    - Dst: rnp::data
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:76,1
    - Dst: rnp::size
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:76,1
    - Dst: std::move
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - o
    argTypes:
    - SecureBytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: "&\n    operator=(SecureBytes &&o) noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 0
    functionsReached:
    - rnp::data
    - rnp::secure_wipe
    - rnp::size
    - std::move
    linkageType: ''
    returnType: SecureBytes
    signature: "SecureBytes &\n    operator=(SecureBytes &&o) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecureBytes::data
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: rnp::SecureBytes::data
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 5
    functionsReached:
    - rnp::SecureBytes::data
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *\n    data() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecureBytes::data
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: rnp::SecureBytes::data
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 6
    functionsReached:
    - rnp::SecureBytes::data
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *\n    data() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecureBytes::size
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: rnp::SecureBytes::size
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 5
    functionsReached:
    - rnp::SecureBytes::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecureBytes::empty
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: rnp::SecureBytes::empty
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 1
    functionsReached:
    - rnp::SecureBytes::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecureBytes::begin
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: rnp::SecureBytes::begin
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 1
    functionsReached:
    - rnp::SecureBytes::begin
    linkageType: ''
    returnType: std::vector<uint8_t>::iterator
    signature: std::vector<uint8_t>::iterator begin() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecureBytes::begin
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: rnp::SecureBytes::begin
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 2
    functionsReached:
    - rnp::SecureBytes::begin
    linkageType: ''
    returnType: std::vector<uint8_t>::const_iterator
    signature: std::vector<uint8_t>::const_iterator begin() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecureBytes::end
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: rnp::SecureBytes::end
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 1
    functionsReached:
    - rnp::SecureBytes::end
    linkageType: ''
    returnType: std::vector<uint8_t>::iterator
    signature: std::vector<uint8_t>::iterator end() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecureBytes::end
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:120,1
    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: rnp::SecureBytes::end
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 2
    functionsReached:
    - rnp::SecureBytes::end
    linkageType: ''
    returnType: std::vector<uint8_t>::const_iterator
    signature: std::vector<uint8_t>::const_iterator end() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: rnp::SecureBytes::unlock
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> unlock() 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: rnp::SecureBytes::SecureBytes
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SecureBytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 50
    functionName: rnp::SecureBytes::SecureBytes
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SecureBytes(const uint8_t *first, const uint8_t *last)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 51
    functionDepth: 0
    functionLinenumber: 51
    functionLinenumberEnd: 53
    functionName: rnp::SecureBytes::SecureBytes
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SecureBytes(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 57
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 57
    functionName: rnp::SecureBytes::SecureBytes
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SecureBytes(const std::vector<uint8_t> &v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:58,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 58
    functionDepth: 1
    functionLinenumber: 58
    functionLinenumberEnd: 60
    functionName: rnp::SecureBytes::SecureBytes
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void SecureBytes(std::vector<uint8_t> &&v) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secure_wipe
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:64,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:64,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:64,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 62
    functionDepth: 1
    functionLinenumber: 62
    functionLinenumberEnd: 65
    functionName: ~SecureBytes()
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 0
    functionsReached:
    - secure_wipe
    - data
    - size
    linkageType: ''
    returnType: void
    signature: void ~SecureBytes()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 67
    functionDepth: 0
    functionLinenumber: 67
    functionLinenumberEnd: 67
    functionName: rnp::SecureBytes::SecureBytes
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SecureBytes(const SecureBytes &)
  - 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: '&operator=(const SecureBytes &)'
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: SecureBytes
    signature: SecureBytes &operator=(const SecureBytes &)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:70,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - o
    argTypes:
    - SecureBytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 1
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: rnp::SecureBytes::SecureBytes
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void SecureBytes(SecureBytes &&o) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secure_wipe
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:76,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:76,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:76,1
    - Dst: std::move
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:77,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - o
    argTypes:
    - SecureBytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 79
    functionName: "&\n    operator=(SecureBytes &&o) noexcept"
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 0
    functionsReached:
    - secure_wipe
    - data
    - size
    - std::move
    linkageType: ''
    returnType: SecureBytes
    signature: "SecureBytes &\n    operator=(SecureBytes &&o) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecureBytes::data
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:84,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 85
    functionName: rnp::SecureBytes::data
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 7
    functionsReached:
    - rnp::SecureBytes::data
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *\n    data() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecureBytes::data
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 90
    functionName: rnp::SecureBytes::data
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 8
    functionsReached:
    - rnp::SecureBytes::data
    linkageType: ''
    returnType: uint8_t
    signature: "uint8_t *\n    data() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecureBytes::size
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 91
    functionDepth: 0
    functionLinenumber: 91
    functionLinenumberEnd: 95
    functionName: rnp::SecureBytes::size
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 6
    functionsReached:
    - rnp::SecureBytes::size
    linkageType: ''
    returnType: size_t
    signature: size_t size() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecureBytes::empty
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: rnp::SecureBytes::empty
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 2
    functionsReached:
    - rnp::SecureBytes::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecureBytes::begin
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 102
    functionDepth: 0
    functionLinenumber: 102
    functionLinenumberEnd: 106
    functionName: rnp::SecureBytes::begin
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 3
    functionsReached:
    - rnp::SecureBytes::begin
    linkageType: ''
    returnType: std::vector<uint8_t>::iterator
    signature: std::vector<uint8_t>::iterator begin() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecureBytes::begin
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 111
    functionName: rnp::SecureBytes::begin
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 4
    functionsReached:
    - rnp::SecureBytes::begin
    linkageType: ''
    returnType: std::vector<uint8_t>::const_iterator
    signature: std::vector<uint8_t>::const_iterator begin() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecureBytes::end
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: rnp::SecureBytes::end
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 3
    functionsReached:
    - rnp::SecureBytes::end
    linkageType: ''
    returnType: std::vector<uint8_t>::iterator
    signature: std::vector<uint8_t>::iterator end() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecureBytes::end
      Src: /src/rnp/src/lib/crypto/secure_bytes.h:120,1
    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: rnp::SecureBytes::end
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 4
    functionsReached:
    - rnp::SecureBytes::end
    linkageType: ''
    returnType: std::vector<uint8_t>::const_iterator
    signature: std::vector<uint8_t>::const_iterator end() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: rnp::SecureBytes::unlock
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> unlock() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:60,1
    - Dst: std::ceil
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:65,1
    - Dst: std::log2
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:65,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:66,1
    - Dst: EVP_KDF_fetch
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:70,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:72,1
    - Dst: EVP_KDF_CTX_new
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:75,1
    - Dst: EVP_KDF_free
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:76,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:78,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:93,1
    - Dst: std::strlen
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:94,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:96,1
    - Dst: OSSL_PARAM_construct_uint32
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:97,1
    - Dst: OSSL_PARAM_construct_uint32
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:98,1
    - Dst: OSSL_PARAM_construct_uint32
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:99,1
    - Dst: OSSL_PARAM_construct_uint32
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:100,1
    - Dst: OSSL_PARAM_construct_uint32
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:101,1
    - Dst: EVP_KDF_derive
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:104,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:105,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:107,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 7
    argNames:
    - out
    - output_len
    - password
    - salt
    - t
    - p
    - encoded_m
    argTypes:
    - uint8_t*
    - size_t
    - char*
    - uint8_t*
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 111
    functionName: pgp_s2k_argon2
    functionSourceFile: /src/rnp/src/lib/crypto/s2k_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_KDF_derive
    - EVP_KDF_CTX_new
    - EVP_KDF_CTX_free
    - std::strlen
    - OSSL_PARAM_construct_octet_string
    - EVP_KDF_fetch
    - std::ceil
    - std::log2
    - OSSL_PARAM_construct_uint32
    - EVP_KDF_free
    linkageType: ''
    returnType: int
    signature: "int pgp_s2k_argon2(uint8_t *      out,\n               size_t         output_len,\n
      \              const char *   password,\n               const uint8_t *salt,\n
      \              uint8_t        t,\n               uint8_t        p,\n               uint8_t
      \       encoded_m)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:123,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:126,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:128,1
    - Dst: strlen
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:132,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:137,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:137,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:139,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:139,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:144,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:146,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:146,1
    - Dst: rnp::secure_bytes::empty
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:147,1
    - Dst: std::max
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:149,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:149,1
    - Dst: std::min
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:151,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:151,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:152,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:152,1
    - Dst: auto::sec_finish
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:156,1
    - Dst: std::min
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:157,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:157,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:158,1
    - Dst: auto::data
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:158,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:165,1
    - Dst: what
      Src: /src/rnp/src/lib/crypto/s2k_ossl.cpp:165,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 32
    argCount: 6
    argNames:
    - alg
    - out
    - output_len
    - password
    - salt
    - iterations
    argTypes:
    - pgp_hash_alg_t
    - uint8_t*
    - size_t
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 114
    functionDepth: 1
    functionLinenumber: 114
    functionLinenumberEnd: 168
    functionName: pgp_s2k_iterated
    functionSourceFile: /src/rnp/src/lib/crypto/s2k_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - auto::sec_finish
    - std::vector<uint8_t>
    - what
    - memcpy
    - rnp::secure_bytes::size
    - auto::size
    - rnp::Hash::size
    - auto::data
    - rnp::secure_bytes::empty
    - std::min
    - strlen
    - rnp::Hash::create
    - rnp::secure_bytes::data
    - std::max
    - auto::add
    linkageType: ''
    returnType: int
    signature: "int pgp_s2k_iterated(pgp_hash_alg_t alg,\n                 uint8_t
      *      out,\n                 size_t         output_len,\n                 const
      char *   password,\n                 const uint8_t *salt,\n                 size_t
      \        iterations)"
  - 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: rnp::bn::bn
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bn(BIGNUM *val = NULL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: rnp::bn::bn
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bn(const BIGNUM *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - pgp::mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: rnp::bn::bn
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bn(const pgp::mpi &val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:74,1
    - Dst: BN_bin2bn
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:75,1
    - Dst: pgp::mpi*::data
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:75,1
    - Dst: pgp::mpi*::size
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:75,1
    - Dst: BN_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - val
    argTypes:
    - pgp::mpi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: rnp::bn::bn
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 26
    functionsReached:
    - pgp::mpi*::data
    - BN_bin2bn
    - BN_free
    - pgp::mpi*::size
    - BN_new
    linkageType: ''
    returnType: void
    signature: void bn(const pgp::mpi *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - src
    argTypes:
    - bn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: rnp::bn::bn
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bn(bn &&src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - src
    argTypes:
    - bn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: "&\n    operator=(bn &&src)"
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: bn
    signature: "bn &\n    operator=(bn &&src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: ~bn()
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: void
    signature: void ~bn()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_get
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: operator bool() const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - c_get
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: rnp::bn::ptr
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 13
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM **\n    ptr() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: rnp::bn::cptr
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM **\n    cptr() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: rnp::bn::get
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: rnp::bn::c_get
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *\n    c_get() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: rnp::bn::own
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *\n    own() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:150,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp: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: rnp::bn::bytes
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 10
    functionsReached:
    - rnp::bn::c_get
    - BN_num_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t bytes() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_bn2bin
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:156,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: rnp::bn::bin
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 4
    functionsReached:
    - rnp::bn::c_get
    - BN_bn2bin
    linkageType: ''
    returnType: bool
    signature: bool bin(uint8_t *b) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:162,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:163,1
    - Dst: pgp::mpi::resize
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:164,1
    - Dst: BN_bn2bin
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:165,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - num
    - mpi
    argTypes:
    - BIGNUM*
    - pgp::mpi
    assertStmts:
    - condition: (bytes <= PGP_MPINT_SIZE)
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    constantsTouched: []
    func_position:
      end: 169
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 169
    functionName: rnp::bn::mpi
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 21
    functionsReached:
    - pgp::mpi::resize
    - BN_bn2bin
    - pgp::mpi::data
    - assert
    - BN_num_bytes
    linkageType: ''
    returnType: bool
    signature: bool mpi(const BIGNUM *num, pgp::mpi &mpi) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:174,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mpi
    argTypes:
    - pgp::mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: rnp::bn::mpi
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 22
    functionsReached:
    - rnp::bn::mpi
    - rnp::bn::c_get
    linkageType: ''
    returnType: bool
    signature: bool mpi(pgp::mpi &mpi) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: operator()(BN_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(BN_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_RECP_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - BN_RECP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: operator()(BN_RECP_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - BN_RECP_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(BN_RECP_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: operator()(BN_MONT_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - BN_MONT_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(BN_MONT_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: operator()(EVP_PKEY *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_PKEY *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: operator()(EVP_PKEY_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_PKEY_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: operator()(EVP_CIPHER_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_CIPHER_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: operator()(EVP_MD_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_MD_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: operator()(EVP_PKEY *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_PKEY *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: operator()(EVP_PKEY_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_PKEY_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: operator()(EVP_CIPHER_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_CIPHER_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: operator()(EVP_MD_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_MD_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA_SIG_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - DSA_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 258
    functionName: operator()(DSA_SIG *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - DSA_SIG_free
    linkageType: ''
    returnType: void
    signature: void operator()(DSA_SIG *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_SIG_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::ECDSA_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 268
    functionName: operator()(::ECDSA_SIG *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - ECDSA_SIG_free
    linkageType: ''
    returnType: void
    signature: void operator()(::ECDSA_SIG *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: operator()(::RSA *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - RSA_free
    linkageType: ''
    returnType: void
    signature: void operator()(::RSA *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: operator()(::DSA *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - DSA_free
    linkageType: ''
    returnType: void
    signature: void operator()(::DSA *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DH_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: operator()(::DH *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - DH_free
    linkageType: ''
    returnType: void
    signature: void operator()(::DH *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: operator()(::EC_KEY *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EC_KEY_free
    linkageType: ''
    returnType: void
    signature: void operator()(::EC_KEY *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 319
    functionName: operator()(::EC_POINT *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EC_POINT_free
    linkageType: ''
    returnType: void
    signature: void operator()(::EC_POINT *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: operator()(OSSL_PARAM *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_free
    linkageType: ''
    returnType: void
    signature: void operator()(OSSL_PARAM *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - OSSL_PARAM_BLD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 339
    functionName: operator()(OSSL_PARAM_BLD *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_BLD_free
    linkageType: ''
    returnType: void
    signature: void operator()(OSSL_PARAM_BLD *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_error_string
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:348,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: rnp::ossl::latest_err
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 12
    functionsReached:
    - ERR_peek_last_error
    - ERR_error_string
    linkageType: ''
    returnType: char
    signature: 'char *

      latest_err()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: operator()(BN_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(BN_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_RECP_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - BN_RECP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: operator()(BN_RECP_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - BN_RECP_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(BN_RECP_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: operator()(BN_MONT_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - BN_MONT_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(BN_MONT_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: operator()(EVP_PKEY *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_PKEY *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: operator()(EVP_PKEY_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_PKEY_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: operator()(EVP_CIPHER_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_CIPHER_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: operator()(EVP_MD_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_MD_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: operator()(EVP_PKEY *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_PKEY *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: operator()(EVP_PKEY_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_PKEY_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: operator()(EVP_CIPHER_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_CIPHER_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: operator()(EVP_MD_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_MD_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA_SIG_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - DSA_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 258
    functionName: operator()(DSA_SIG *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - DSA_SIG_free
    linkageType: ''
    returnType: void
    signature: void operator()(DSA_SIG *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_SIG_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::ECDSA_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 268
    functionName: operator()(::ECDSA_SIG *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - ECDSA_SIG_free
    linkageType: ''
    returnType: void
    signature: void operator()(::ECDSA_SIG *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: operator()(::RSA *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - RSA_free
    linkageType: ''
    returnType: void
    signature: void operator()(::RSA *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: operator()(::DSA *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - DSA_free
    linkageType: ''
    returnType: void
    signature: void operator()(::DSA *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DH_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: operator()(::DH *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - DH_free
    linkageType: ''
    returnType: void
    signature: void operator()(::DH *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: operator()(::EC_KEY *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EC_KEY_free
    linkageType: ''
    returnType: void
    signature: void operator()(::EC_KEY *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 319
    functionName: operator()(::EC_POINT *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EC_POINT_free
    linkageType: ''
    returnType: void
    signature: void operator()(::EC_POINT *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: operator()(OSSL_PARAM *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_free
    linkageType: ''
    returnType: void
    signature: void operator()(OSSL_PARAM *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - OSSL_PARAM_BLD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 339
    functionName: operator()(OSSL_PARAM_BLD *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_BLD_free
    linkageType: ''
    returnType: void
    signature: void operator()(OSSL_PARAM_BLD *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_error_string
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:348,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: rnp::ossl::latest_err
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 12
    functionsReached:
    - ERR_peek_last_error
    - ERR_error_string
    linkageType: ''
    returnType: char
    signature: 'char *

      latest_err()'
  - 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: rnp::bn::bn
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bn(BIGNUM *val = NULL)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - BIGNUM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 62
    functionName: rnp::bn::bn
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bn(const BIGNUM *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - val
    argTypes:
    - pgp::mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 64
    functionDepth: 0
    functionLinenumber: 64
    functionLinenumberEnd: 66
    functionName: rnp::bn::bn
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bn(const pgp::mpi &val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: BN_new
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:74,1
    - Dst: BN_bin2bn
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:75,1
    - Dst: pgp::mpi*::data
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:75,1
    - Dst: pgp::mpi*::size
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:75,1
    - Dst: BN_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:76,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - val
    argTypes:
    - pgp::mpi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: rnp::bn::bn
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 26
    functionsReached:
    - pgp::mpi*::data
    - BN_bin2bn
    - BN_free
    - pgp::mpi*::size
    - BN_new
    linkageType: ''
    returnType: void
    signature: void bn(const pgp::mpi *val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - src
    argTypes:
    - bn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 87
    functionName: rnp::bn::bn
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 26
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void bn(bn &&src)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - src
    argTypes:
    - bn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 89
    functionDepth: 0
    functionLinenumber: 89
    functionLinenumberEnd: 101
    functionName: "&\n    operator=(bn &&src)"
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: bn
    signature: "bn &\n    operator=(bn &&src)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:105,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 0
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: ~bn()
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: void
    signature: void ~bn()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: c_get
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:110,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 108
    functionDepth: 0
    functionLinenumber: 108
    functionLinenumberEnd: 111
    functionName: operator bool() const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - c_get
    linkageType: ''
    returnType: void
    signature: void operator bool() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:116,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 113
    functionDepth: 0
    functionLinenumber: 113
    functionLinenumberEnd: 119
    functionName: rnp::bn::ptr
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 13
    functionsReached:
    - BN_free
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM **\n    ptr() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: rnp::bn::cptr
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 9
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM **\n    cptr() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: rnp::bn::get
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 27
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *\n    get() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: rnp::bn::c_get
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *\n    c_get() const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 145
    functionName: rnp::bn::own
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: BIGNUM
    signature: "BIGNUM *\n    own() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:150,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp: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: rnp::bn::bytes
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 10
    functionsReached:
    - rnp::bn::c_get
    - BN_num_bytes
    linkageType: ''
    returnType: size_t
    signature: size_t bytes() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_bn2bin
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:156,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:156,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 157
    functionName: rnp::bn::bin
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 4
    functionsReached:
    - rnp::bn::c_get
    - BN_bn2bin
    linkageType: ''
    returnType: bool
    signature: bool bin(uint8_t *b) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BN_num_bytes
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:162,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:163,1
    - Dst: pgp::mpi::resize
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:164,1
    - Dst: BN_bn2bin
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:165,1
    - Dst: pgp::mpi::data
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:165,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - num
    - mpi
    argTypes:
    - BIGNUM*
    - pgp::mpi
    assertStmts:
    - condition: (bytes <= PGP_MPINT_SIZE)
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    constantsTouched: []
    func_position:
      end: 169
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 169
    functionName: rnp::bn::mpi
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 22
    functionsReached:
    - pgp::mpi::resize
    - BN_bn2bin
    - pgp::mpi::data
    - assert
    - BN_num_bytes
    linkageType: ''
    returnType: bool
    signature: bool mpi(const BIGNUM *num, pgp::mpi &mpi) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:174,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:174,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - mpi
    argTypes:
    - pgp::mpi
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 175
    functionName: rnp::bn::mpi
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 23
    functionsReached:
    - rnp::bn::mpi
    - rnp::bn::c_get
    linkageType: ''
    returnType: bool
    signature: bool mpi(pgp::mpi &mpi) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: operator()(BN_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(BN_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_RECP_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - BN_RECP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: operator()(BN_RECP_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - BN_RECP_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(BN_RECP_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: operator()(BN_MONT_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - BN_MONT_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(BN_MONT_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: operator()(EVP_PKEY *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_PKEY *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: operator()(EVP_PKEY_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_PKEY_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: operator()(EVP_CIPHER_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_CIPHER_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: operator()(EVP_MD_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_MD_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: operator()(EVP_PKEY *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_PKEY *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: operator()(EVP_PKEY_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_PKEY_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: operator()(EVP_CIPHER_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_CIPHER_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: operator()(EVP_MD_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_MD_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA_SIG_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - DSA_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 258
    functionName: operator()(DSA_SIG *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - DSA_SIG_free
    linkageType: ''
    returnType: void
    signature: void operator()(DSA_SIG *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_SIG_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::ECDSA_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 268
    functionName: operator()(::ECDSA_SIG *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - ECDSA_SIG_free
    linkageType: ''
    returnType: void
    signature: void operator()(::ECDSA_SIG *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: operator()(::RSA *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - RSA_free
    linkageType: ''
    returnType: void
    signature: void operator()(::RSA *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: operator()(::DSA *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - DSA_free
    linkageType: ''
    returnType: void
    signature: void operator()(::DSA *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DH_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: operator()(::DH *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - DH_free
    linkageType: ''
    returnType: void
    signature: void operator()(::DH *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: operator()(::EC_KEY *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EC_KEY_free
    linkageType: ''
    returnType: void
    signature: void operator()(::EC_KEY *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 319
    functionName: operator()(::EC_POINT *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EC_POINT_free
    linkageType: ''
    returnType: void
    signature: void operator()(::EC_POINT *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: operator()(OSSL_PARAM *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_free
    linkageType: ''
    returnType: void
    signature: void operator()(OSSL_PARAM *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - OSSL_PARAM_BLD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 339
    functionName: operator()(OSSL_PARAM_BLD *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_BLD_free
    linkageType: ''
    returnType: void
    signature: void operator()(OSSL_PARAM_BLD *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_error_string
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:348,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: rnp::ossl::latest_err
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 12
    functionsReached:
    - ERR_peek_last_error
    - ERR_error_string
    linkageType: ''
    returnType: char
    signature: 'char *

      latest_err()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - BN_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 0
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: operator()(BN_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - BN_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(BN_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_RECP_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - BN_RECP_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 195
    functionName: operator()(BN_RECP_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - BN_RECP_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(BN_RECP_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BN_MONT_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - BN_MONT_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 205
    functionName: operator()(BN_MONT_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - BN_MONT_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(BN_MONT_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: operator()(EVP_PKEY *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_PKEY *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: operator()(EVP_PKEY_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_PKEY_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: operator()(EVP_CIPHER_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_CIPHER_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: operator()(EVP_MD_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_MD_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:216,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_PKEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 217
      start: 213
    functionDepth: 0
    functionLinenumber: 213
    functionLinenumberEnd: 217
    functionName: operator()(EVP_PKEY *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_PKEY_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_PKEY *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:226,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_PKEY_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 227
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 227
    functionName: operator()(EVP_PKEY_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_PKEY_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_PKEY_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_CIPHER_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 237
      start: 233
    functionDepth: 0
    functionLinenumber: 233
    functionLinenumberEnd: 237
    functionName: operator()(EVP_CIPHER_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_CIPHER_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_MD_CTX_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:246,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - EVP_MD_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 243
    functionDepth: 0
    functionLinenumber: 243
    functionLinenumberEnd: 247
    functionName: operator()(EVP_MD_CTX *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EVP_MD_CTX_free
    linkageType: ''
    returnType: void
    signature: void operator()(EVP_MD_CTX *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA_SIG_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:257,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - DSA_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 258
      start: 254
    functionDepth: 0
    functionLinenumber: 254
    functionLinenumberEnd: 258
    functionName: operator()(DSA_SIG *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - DSA_SIG_free
    linkageType: ''
    returnType: void
    signature: void operator()(DSA_SIG *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ECDSA_SIG_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::ECDSA_SIG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 264
    functionDepth: 0
    functionLinenumber: 264
    functionLinenumberEnd: 268
    functionName: operator()(::ECDSA_SIG *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - ECDSA_SIG_free
    linkageType: ''
    returnType: void
    signature: void operator()(::ECDSA_SIG *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: RSA_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::RSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 275
    functionDepth: 0
    functionLinenumber: 275
    functionLinenumberEnd: 279
    functionName: operator()(::RSA *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - RSA_free
    linkageType: ''
    returnType: void
    signature: void operator()(::RSA *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DSA_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::DSA*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 285
    functionDepth: 0
    functionLinenumber: 285
    functionLinenumberEnd: 289
    functionName: operator()(::DSA *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - DSA_free
    linkageType: ''
    returnType: void
    signature: void operator()(::DSA *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: DH_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::DH*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 295
    functionDepth: 0
    functionLinenumber: 295
    functionLinenumberEnd: 299
    functionName: operator()(::DH *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - DH_free
    linkageType: ''
    returnType: void
    signature: void operator()(::DH *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_KEY_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:308,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::EC_KEY*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 309
      start: 305
    functionDepth: 0
    functionLinenumber: 305
    functionLinenumberEnd: 309
    functionName: operator()(::EC_KEY *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EC_KEY_free
    linkageType: ''
    returnType: void
    signature: void operator()(::EC_KEY *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EC_POINT_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - ::EC_POINT*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 315
    functionDepth: 0
    functionLinenumber: 315
    functionLinenumberEnd: 319
    functionName: operator()(::EC_POINT *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - EC_POINT_free
    linkageType: ''
    returnType: void
    signature: void operator()(::EC_POINT *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - OSSL_PARAM*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 329
      start: 325
    functionDepth: 0
    functionLinenumber: 325
    functionLinenumberEnd: 329
    functionName: operator()(OSSL_PARAM *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_free
    linkageType: ''
    returnType: void
    signature: void operator()(OSSL_PARAM *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_free
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - OSSL_PARAM_BLD*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 339
      start: 335
    functionDepth: 0
    functionLinenumber: 335
    functionLinenumberEnd: 339
    functionName: operator()(OSSL_PARAM_BLD *ptr) const
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 0
    functionsReached:
    - OSSL_PARAM_BLD_free
    linkageType: ''
    returnType: void
    signature: void operator()(OSSL_PARAM_BLD *ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ERR_error_string
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:348,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ossl_utils.hpp:348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 349
    functionName: rnp::ossl::latest_err
    functionSourceFile: /src/rnp/src/lib/crypto/ossl_utils.hpp
    functionUses: 12
    functionsReached:
    - ERR_peek_last_error
    - ERR_error_string
    linkageType: ''
    returnType: char
    signature: 'char *

      latest_err()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hkdf_OpenSSL::create
      Src: /src/rnp/src/lib/crypto/hkdf.cpp:46,1
    - Dst: rnp::Hkdf_Botan::create
      Src: /src/rnp/src/lib/crypto/hkdf.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: rnp::Hkdf::create
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf.cpp
    functionUses: 6
    functionsReached:
    - rnp::Hkdf_OpenSSL::create
    - rnp::Hkdf_Botan::create
    linkageType: ''
    returnType: std::unique_ptr<Hkdf>
    signature: std::unique_ptr<Hkdf> Hkdf::create(pgp_hash_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: rnp::Hkdf::size
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Hkdf::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: rnp::Hkdf::alg
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t Hkdf::alg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Hkdf::~Hkdf()
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hkdf::~Hkdf()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hkdf_OpenSSL::create
      Src: /src/rnp/src/lib/crypto/hkdf.cpp:46,1
    - Dst: rnp::Hkdf_Botan::create
      Src: /src/rnp/src/lib/crypto/hkdf.cpp:48,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 42
    functionDepth: 0
    functionLinenumber: 42
    functionLinenumberEnd: 52
    functionName: rnp::Hkdf::create
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf.cpp
    functionUses: 6
    functionsReached:
    - rnp::Hkdf_OpenSSL::create
    - rnp::Hkdf_Botan::create
    linkageType: ''
    returnType: std::unique_ptr<Hkdf>
    signature: std::unique_ptr<Hkdf> Hkdf::create(pgp_hash_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: rnp::Hkdf::size
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Hkdf::size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: rnp::Hkdf::alg
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t Hkdf::alg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Hkdf::~Hkdf()
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hkdf::~Hkdf()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:58,1
    - Dst: BN_CTX_start
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:62,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:62,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:65,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:65,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:66,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:66,1
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: BN_value_one
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:74,1
    - Dst: BN_copy
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:78,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:78,1
    - Dst: BN_sub_word
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:78,1
    - Dst: BN_mod_exp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:79,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:79,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:79,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:79,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:80,1
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:83,1
    - Dst: BN_value_one
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:83,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:84,1
    - Dst: BN_RECP_CTX_set
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: rnp::ossl::BNRecpCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: BN_copy
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:90,1
    - Dst: BN_mod_mul_reciprocal
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:94,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:94,1
    - Dst: rnp::ossl::BNRecpCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:94,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:94,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:96,1
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:100,1
    - Dst: BN_value_one
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:100,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:101,1
    - Dst: BN_mod_exp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 42
    argCount: 1
    argNames:
    - secret
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 115
    functionName: pgp::eg::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::ossl::BNCtx::get
    - BN_copy
    - BN_mod_mul_reciprocal
    - BN_cmp
    - BN_value_one
    - BN_CTX_start
    - BN_sub_word
    - rnp::bn::get
    - BN_CTX_get
    - BN_mod_exp
    - rnp::ossl::BNRecpCtx::get
    - BN_RECP_CTX_set
    linkageType: ''
    returnType: bool
    signature: bool Key::validate(bool secret) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:120,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:120,1
    - Dst: mpi::resize
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:121,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:124,1
    - Dst: RAND_bytes
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:126,1
    - Dst: RAND_bytes
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:132,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:136,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:141,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:141,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:141,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - out
    - psize
    - in
    argTypes:
    - mpi
    - size_t
    - rnp::secure_bytes
    assertStmts:
    - condition: (psize >= in.size() + 11)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    constantsTouched: []
    func_position:
      end: 143
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 143
    functionName: pgp::eg::pkcs1v15_pad
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - mpi::resize
    - rnp::secure_bytes::size
    - memcpy
    - assert
    - RAND_bytes
    - mpi::data
    - rnp::secure_bytes::data
    linkageType: ''
    returnType: bool
    signature: bool pkcs1v15_pad(mpi &out, size_t psize, const rnp::secure_bytes &in)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:148,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:158,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:161,1
    - Dst: rnp::secure_bytes::assign
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:164,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:164,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:164,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:164,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - in
    - out
    - skip0
    argTypes:
    - mpi
    - rnp::secure_bytes
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 166
    functionName: pgp::eg::pkcs1v15_unpad
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::secure_bytes::assign
    - mpi::size
    - mpi::data
    linkageType: ''
    returnType: bool
    signature: bool pkcs1v15_unpad(const mpi &in, rnp::secure_bytes &out, bool skip0)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pkcs1v15_pad
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:172,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:172,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:174,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:181,1
    - Dst: BN_CTX_start
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:189,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:189,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:190,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:190,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:191,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:191,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:195,1
    - Dst: BN_MONT_CTX_set
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:201,1
    - Dst: rnp::ossl::BNMontCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:201,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:201,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:201,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:203,1
    - Dst: BN_rshift1
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:208,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:208,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:209,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:212,1
    - Dst: BN_rand_range
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:217,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:217,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:219,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: rnp::ossl::BNMontCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:227,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: rnp::ossl::BNMontCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:235,1
    - Dst: BN_mod_mul
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:239,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:239,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:239,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:239,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:241,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:245,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:245,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:246,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    assertStmts:
    - condition: (res == 1)
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    - condition: (res == 1)
      pos:
        line_end: 245
        line_start: 245
        source_file: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    constantsTouched: []
    func_position:
      end: 248
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 248
    functionName: pgp::eg::Key::encrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::ossl::BNCtx::get
    - BN_rand_range
    - rnp::ossl::BNMontCtx::get
    - BN_mod_mul
    - BN_mod_exp_mont_consttime
    - BN_MONT_CTX_set
    - BN_rshift1
    - assert
    - BN_CTX_start
    - rnp::bn::mpi
    - rnp::bn::get
    - BN_CTX_get
    - size
    - pkcs1v15_pad
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::encrypt_pkcs1(rnp::RNG &rng, Encrypted &out, const
      rnp::secure_bytes &in) const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:253,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:254,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:260,1
    - Dst: BN_CTX_start
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:269,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:269,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:270,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:270,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:274,1
    - Dst: BN_MONT_CTX_set
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:280,1
    - Dst: rnp::ossl::BNMontCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:280,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:280,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:280,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:282,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: rnp::ossl::BNMontCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:290,1
    - Dst: BN_set_flags
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:295,1
    - Dst: BN_mod_inverse
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:296,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:296,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:296,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:298,1
    - Dst: BN_mod_mul
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:303,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:303,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:303,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:303,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:303,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:305,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:310,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:311,1
    - Dst: pkcs1v15_unpad
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:316,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:316,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:316,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:317,1
    - Dst: mpi::forget
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:320,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - rnp::secure_bytes
    - Encrypted
    assertStmts:
    - condition: (res)
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    constantsTouched: []
    func_position:
      end: 322
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 322
    functionName: pgp::eg::Key::decrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - mpi::forget
    - rnp::ossl::BNCtx::get
    - rnp::ossl::BNMontCtx::get
    - BN_mod_mul
    - BN_MONT_CTX_set
    - assert
    - pkcs1v15_unpad
    - BN_mod_inverse
    - BN_CTX_start
    - BN_set_flags
    - rnp::bn::mpi
    - rnp::bn::get
    - BN_CTX_get
    - mpi::size
    - size
    - BN_mod_exp_mont_consttime
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::decrypt_pkcs1(rnp::RNG &rng, rnp::secure_bytes &out,
      const Encrypted &in) const
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:335,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:335,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:339,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:339,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:341,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:341,1
    - Dst: EVP_PKEY_CTX_set_dh_paramgen_prime_len
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:345,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:345,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:347,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:347,1
    - Dst: EVP_PKEY_CTX_set_dh_paramgen_generator
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:353,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:353,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:355,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:355,1
    - Dst: EVP_PKEY_paramgen
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:360,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:360,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:362,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:362,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:369,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:369,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:372,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:372,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:376,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:376,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:378,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:378,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:383,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:383,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:385,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:385,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:391,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:392,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:392,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:392,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:394,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:394,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:398,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:398,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:403,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:404,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:404,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:404,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:405,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:405,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:405,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:406,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:406,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:406,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:407,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:407,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:407,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:407,1
    - Dst: EVP_PKEY_get0_DH
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:410,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:410,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:413,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:413,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:417,1
    - Dst: BN_num_bits
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:417,1
    - Dst: DH_get0_pub_key
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:417,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:417,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:429,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:430,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:431,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:432,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 61
    argCount: 2
    argNames:
    - rng
    - keybits
    argTypes:
    - rnp::RNG
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 436
    functionName: pgp::eg::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 1
    functionsReached:
    - EVP_PKEY_keygen
    - EVP_PKEY_get0_DH
    - EVP_PKEY_get_bn_param
    - EVP_PKEY_CTX_set_dh_paramgen_prime_len
    - rnp::ossl::evp::PKey::get
    - rnp::bn::mpi
    - rnp::bn::bytes
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    - RNP_LOG
    - DH_get0_pub_key
    - EVP_PKEY_paramgen_init
    - EVP_PKEY_CTX_set_dh_paramgen_generator
    - mpi
    - ERR_peek_last_error
    - rnp::bn::bn
    - BITS_TO_BYTES
    - BN_num_bits
    - rnp::bn::ptr
    - ptr
    - EVP_PKEY_keygen_init
    - EVP_PKEY_paramgen
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t keybits)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:58,1
    - Dst: BN_CTX_start
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:62,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:62,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:65,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:65,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:66,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:66,1
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: BN_value_one
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:74,1
    - Dst: BN_copy
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:78,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:78,1
    - Dst: BN_sub_word
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:78,1
    - Dst: BN_mod_exp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:79,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:79,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:79,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:79,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:80,1
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:83,1
    - Dst: BN_value_one
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:83,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:84,1
    - Dst: BN_RECP_CTX_set
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: rnp::ossl::BNRecpCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: BN_copy
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:90,1
    - Dst: BN_mod_mul_reciprocal
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:94,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:94,1
    - Dst: rnp::ossl::BNRecpCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:94,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:94,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:96,1
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:100,1
    - Dst: BN_value_one
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:100,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:101,1
    - Dst: BN_mod_exp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 42
    argCount: 1
    argNames:
    - secret
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 115
    functionName: pgp::eg::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::ossl::BNCtx::get
    - BN_copy
    - BN_mod_mul_reciprocal
    - BN_cmp
    - BN_value_one
    - BN_CTX_start
    - BN_sub_word
    - rnp::bn::get
    - BN_CTX_get
    - BN_mod_exp
    - rnp::ossl::BNRecpCtx::get
    - BN_RECP_CTX_set
    linkageType: ''
    returnType: bool
    signature: bool Key::validate(bool secret) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:120,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:120,1
    - Dst: mpi::resize
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:121,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:124,1
    - Dst: RAND_bytes
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:126,1
    - Dst: RAND_bytes
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:132,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:136,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:141,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:141,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:141,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - out
    - psize
    - in
    argTypes:
    - mpi
    - size_t
    - rnp::secure_bytes
    assertStmts:
    - condition: (psize >= in.size() + 11)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    constantsTouched: []
    func_position:
      end: 143
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 143
    functionName: pgp::eg::pkcs1v15_pad
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - mpi::resize
    - rnp::secure_bytes::size
    - memcpy
    - assert
    - RAND_bytes
    - mpi::data
    - rnp::secure_bytes::data
    linkageType: ''
    returnType: bool
    signature: bool pkcs1v15_pad(mpi &out, size_t psize, const rnp::secure_bytes &in)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:148,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:158,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:161,1
    - Dst: rnp::secure_bytes::assign
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:164,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:164,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:164,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:164,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - in
    - out
    - skip0
    argTypes:
    - mpi
    - rnp::secure_bytes
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 166
    functionName: pgp::eg::pkcs1v15_unpad
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::secure_bytes::assign
    - mpi::size
    - mpi::data
    linkageType: ''
    returnType: bool
    signature: bool pkcs1v15_unpad(const mpi &in, rnp::secure_bytes &out, bool skip0)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pkcs1v15_pad
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:172,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:172,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:174,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:181,1
    - Dst: BN_CTX_start
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:189,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:189,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:190,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:190,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:191,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:191,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:195,1
    - Dst: BN_MONT_CTX_set
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:201,1
    - Dst: rnp::ossl::BNMontCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:201,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:201,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:201,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:203,1
    - Dst: BN_rshift1
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:208,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:208,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:209,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:212,1
    - Dst: BN_rand_range
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:217,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:217,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:219,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: rnp::ossl::BNMontCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:227,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: rnp::ossl::BNMontCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:235,1
    - Dst: BN_mod_mul
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:239,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:239,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:239,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:239,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:241,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:245,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:245,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:246,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    assertStmts:
    - condition: (res == 1)
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    - condition: (res == 1)
      pos:
        line_end: 245
        line_start: 245
        source_file: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    constantsTouched: []
    func_position:
      end: 248
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 248
    functionName: pgp::eg::Key::encrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::ossl::BNCtx::get
    - BN_rand_range
    - rnp::ossl::BNMontCtx::get
    - BN_mod_mul
    - BN_mod_exp_mont_consttime
    - BN_MONT_CTX_set
    - BN_rshift1
    - assert
    - BN_CTX_start
    - rnp::bn::mpi
    - rnp::bn::get
    - BN_CTX_get
    - size
    - pkcs1v15_pad
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::encrypt_pkcs1(rnp::RNG &rng, Encrypted &out, const
      rnp::secure_bytes &in) const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:253,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:254,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:260,1
    - Dst: BN_CTX_start
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:269,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:269,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:270,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:270,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:274,1
    - Dst: BN_MONT_CTX_set
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:280,1
    - Dst: rnp::ossl::BNMontCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:280,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:280,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:280,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:282,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: rnp::ossl::BNMontCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:290,1
    - Dst: BN_set_flags
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:295,1
    - Dst: BN_mod_inverse
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:296,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:296,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:296,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:298,1
    - Dst: BN_mod_mul
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:303,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:303,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:303,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:303,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:303,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:305,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:310,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:311,1
    - Dst: pkcs1v15_unpad
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:316,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:316,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:316,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:317,1
    - Dst: mpi::forget
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:320,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - rnp::secure_bytes
    - Encrypted
    assertStmts:
    - condition: (res)
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    constantsTouched: []
    func_position:
      end: 322
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 322
    functionName: pgp::eg::Key::decrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - mpi::forget
    - rnp::ossl::BNCtx::get
    - rnp::ossl::BNMontCtx::get
    - BN_mod_mul
    - BN_MONT_CTX_set
    - assert
    - pkcs1v15_unpad
    - BN_mod_inverse
    - BN_CTX_start
    - BN_set_flags
    - rnp::bn::mpi
    - rnp::bn::get
    - BN_CTX_get
    - mpi::size
    - size
    - BN_mod_exp_mont_consttime
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::decrypt_pkcs1(rnp::RNG &rng, rnp::secure_bytes &out,
      const Encrypted &in) const
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:335,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:335,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:339,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:339,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:341,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:341,1
    - Dst: EVP_PKEY_CTX_set_dh_paramgen_prime_len
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:345,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:345,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:347,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:347,1
    - Dst: EVP_PKEY_CTX_set_dh_paramgen_generator
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:353,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:353,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:355,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:355,1
    - Dst: EVP_PKEY_paramgen
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:360,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:360,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:362,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:362,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:369,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:369,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:372,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:372,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:376,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:376,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:378,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:378,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:383,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:383,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:385,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:385,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:391,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:392,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:392,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:392,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:394,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:394,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:398,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:398,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:403,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:404,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:404,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:404,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:405,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:405,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:405,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:406,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:406,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:406,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:407,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:407,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:407,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:407,1
    - Dst: EVP_PKEY_get0_DH
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:410,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:410,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:413,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:413,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:417,1
    - Dst: BN_num_bits
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:417,1
    - Dst: DH_get0_pub_key
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:417,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:417,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:429,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:430,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:431,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:432,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 61
    argCount: 2
    argNames:
    - rng
    - keybits
    argTypes:
    - rnp::RNG
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 436
    functionName: pgp::eg::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 1
    functionsReached:
    - EVP_PKEY_keygen
    - EVP_PKEY_get0_DH
    - EVP_PKEY_get_bn_param
    - EVP_PKEY_CTX_set_dh_paramgen_prime_len
    - rnp::ossl::evp::PKey::get
    - rnp::bn::mpi
    - rnp::bn::bytes
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    - RNP_LOG
    - DH_get0_pub_key
    - EVP_PKEY_paramgen_init
    - EVP_PKEY_CTX_set_dh_paramgen_generator
    - mpi
    - ERR_peek_last_error
    - rnp::bn::bn
    - BITS_TO_BYTES
    - BN_num_bits
    - rnp::bn::ptr
    - ptr
    - EVP_PKEY_keygen_init
    - EVP_PKEY_paramgen
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t keybits)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:58,1
    - Dst: BN_CTX_start
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:62,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:62,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:65,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:65,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:66,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:66,1
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: BN_value_one
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:74,1
    - Dst: BN_copy
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:78,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:78,1
    - Dst: BN_sub_word
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:78,1
    - Dst: BN_mod_exp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:79,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:79,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:79,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:79,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:80,1
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:83,1
    - Dst: BN_value_one
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:83,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:84,1
    - Dst: BN_RECP_CTX_set
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: rnp::ossl::BNRecpCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: BN_copy
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:90,1
    - Dst: BN_mod_mul_reciprocal
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:94,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:94,1
    - Dst: rnp::ossl::BNRecpCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:94,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:94,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:96,1
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:100,1
    - Dst: BN_value_one
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:100,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:101,1
    - Dst: BN_mod_exp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 42
    argCount: 1
    argNames:
    - secret
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 115
    functionName: pgp::eg::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::ossl::BNCtx::get
    - BN_copy
    - BN_mod_mul_reciprocal
    - BN_cmp
    - BN_value_one
    - BN_CTX_start
    - BN_sub_word
    - rnp::bn::get
    - BN_CTX_get
    - BN_mod_exp
    - rnp::ossl::BNRecpCtx::get
    - BN_RECP_CTX_set
    linkageType: ''
    returnType: bool
    signature: bool Key::validate(bool secret) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:120,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:120,1
    - Dst: mpi::resize
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:121,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:124,1
    - Dst: RAND_bytes
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:126,1
    - Dst: RAND_bytes
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:132,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:136,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:141,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:141,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:141,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - out
    - psize
    - in
    argTypes:
    - mpi
    - size_t
    - rnp::secure_bytes
    assertStmts:
    - condition: (psize >= in.size() + 11)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    constantsTouched: []
    func_position:
      end: 143
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 143
    functionName: pgp::eg::pkcs1v15_pad
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - mpi::resize
    - rnp::secure_bytes::size
    - memcpy
    - assert
    - RAND_bytes
    - mpi::data
    - rnp::secure_bytes::data
    linkageType: ''
    returnType: bool
    signature: bool pkcs1v15_pad(mpi &out, size_t psize, const rnp::secure_bytes &in)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:148,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:158,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:161,1
    - Dst: rnp::secure_bytes::assign
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:164,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:164,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:164,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:164,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - in
    - out
    - skip0
    argTypes:
    - mpi
    - rnp::secure_bytes
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 166
    functionName: pgp::eg::pkcs1v15_unpad
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::secure_bytes::assign
    - mpi::size
    - mpi::data
    linkageType: ''
    returnType: bool
    signature: bool pkcs1v15_unpad(const mpi &in, rnp::secure_bytes &out, bool skip0)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pkcs1v15_pad
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:172,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:172,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:174,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:181,1
    - Dst: BN_CTX_start
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:189,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:189,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:190,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:190,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:191,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:191,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:195,1
    - Dst: BN_MONT_CTX_set
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:201,1
    - Dst: rnp::ossl::BNMontCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:201,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:201,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:201,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:203,1
    - Dst: BN_rshift1
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:208,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:208,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:209,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:212,1
    - Dst: BN_rand_range
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:217,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:217,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:219,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: rnp::ossl::BNMontCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:227,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: rnp::ossl::BNMontCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:235,1
    - Dst: BN_mod_mul
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:239,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:239,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:239,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:239,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:241,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:245,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:245,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:246,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    assertStmts:
    - condition: (res == 1)
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    - condition: (res == 1)
      pos:
        line_end: 245
        line_start: 245
        source_file: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    constantsTouched: []
    func_position:
      end: 248
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 248
    functionName: pgp::eg::Key::encrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::ossl::BNCtx::get
    - BN_rand_range
    - rnp::ossl::BNMontCtx::get
    - BN_mod_mul
    - BN_mod_exp_mont_consttime
    - BN_MONT_CTX_set
    - BN_rshift1
    - assert
    - BN_CTX_start
    - rnp::bn::mpi
    - rnp::bn::get
    - BN_CTX_get
    - size
    - pkcs1v15_pad
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::encrypt_pkcs1(rnp::RNG &rng, Encrypted &out, const
      rnp::secure_bytes &in) const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:253,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:254,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:260,1
    - Dst: BN_CTX_start
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:269,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:269,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:270,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:270,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:274,1
    - Dst: BN_MONT_CTX_set
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:280,1
    - Dst: rnp::ossl::BNMontCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:280,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:280,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:280,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:282,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: rnp::ossl::BNMontCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:290,1
    - Dst: BN_set_flags
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:295,1
    - Dst: BN_mod_inverse
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:296,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:296,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:296,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:298,1
    - Dst: BN_mod_mul
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:303,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:303,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:303,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:303,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:303,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:305,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:310,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:311,1
    - Dst: pkcs1v15_unpad
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:316,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:316,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:316,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:317,1
    - Dst: mpi::forget
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:320,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - rnp::secure_bytes
    - Encrypted
    assertStmts:
    - condition: (res)
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    constantsTouched: []
    func_position:
      end: 322
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 322
    functionName: pgp::eg::Key::decrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - mpi::forget
    - rnp::ossl::BNCtx::get
    - rnp::ossl::BNMontCtx::get
    - BN_mod_mul
    - BN_MONT_CTX_set
    - assert
    - pkcs1v15_unpad
    - BN_mod_inverse
    - BN_CTX_start
    - BN_set_flags
    - rnp::bn::mpi
    - rnp::bn::get
    - BN_CTX_get
    - mpi::size
    - size
    - BN_mod_exp_mont_consttime
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::decrypt_pkcs1(rnp::RNG &rng, rnp::secure_bytes &out,
      const Encrypted &in) const
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:335,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:335,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:339,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:339,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:341,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:341,1
    - Dst: EVP_PKEY_CTX_set_dh_paramgen_prime_len
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:345,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:345,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:347,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:347,1
    - Dst: EVP_PKEY_CTX_set_dh_paramgen_generator
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:353,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:353,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:355,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:355,1
    - Dst: EVP_PKEY_paramgen
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:360,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:360,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:362,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:362,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:369,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:369,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:372,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:372,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:376,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:376,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:378,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:378,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:383,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:383,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:385,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:385,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:391,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:392,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:392,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:392,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:394,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:394,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:398,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:398,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:403,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:404,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:404,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:404,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:405,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:405,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:405,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:406,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:406,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:406,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:407,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:407,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:407,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:407,1
    - Dst: EVP_PKEY_get0_DH
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:410,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:410,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:413,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:413,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:417,1
    - Dst: BN_num_bits
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:417,1
    - Dst: DH_get0_pub_key
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:417,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:417,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:429,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:430,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:431,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:432,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 61
    argCount: 2
    argNames:
    - rng
    - keybits
    argTypes:
    - rnp::RNG
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 436
    functionName: pgp::eg::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 1
    functionsReached:
    - EVP_PKEY_keygen
    - EVP_PKEY_get0_DH
    - EVP_PKEY_get_bn_param
    - EVP_PKEY_CTX_set_dh_paramgen_prime_len
    - rnp::ossl::evp::PKey::get
    - rnp::bn::mpi
    - rnp::bn::bytes
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    - RNP_LOG
    - DH_get0_pub_key
    - EVP_PKEY_paramgen_init
    - EVP_PKEY_CTX_set_dh_paramgen_generator
    - mpi
    - ERR_peek_last_error
    - rnp::bn::bn
    - BITS_TO_BYTES
    - BN_num_bits
    - rnp::bn::ptr
    - ptr
    - EVP_PKEY_keygen_init
    - EVP_PKEY_paramgen
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t keybits)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:58,1
    - Dst: BN_CTX_start
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:62,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:62,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:65,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:65,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:66,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:66,1
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: BN_value_one
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:73,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:74,1
    - Dst: BN_copy
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:78,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:78,1
    - Dst: BN_sub_word
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:78,1
    - Dst: BN_mod_exp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:79,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:79,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:79,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:79,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:80,1
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:83,1
    - Dst: BN_value_one
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:83,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:84,1
    - Dst: BN_RECP_CTX_set
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: rnp::ossl::BNRecpCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: BN_copy
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:89,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:90,1
    - Dst: BN_mod_mul_reciprocal
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:94,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:94,1
    - Dst: rnp::ossl::BNRecpCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:94,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:94,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:96,1
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:100,1
    - Dst: BN_value_one
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:100,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:101,1
    - Dst: BN_mod_exp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:114,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 42
    argCount: 1
    argNames:
    - secret
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 115
    functionName: pgp::eg::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::ossl::BNCtx::get
    - BN_copy
    - BN_mod_mul_reciprocal
    - BN_cmp
    - BN_value_one
    - BN_CTX_start
    - BN_sub_word
    - rnp::bn::get
    - BN_CTX_get
    - BN_mod_exp
    - rnp::ossl::BNRecpCtx::get
    - BN_RECP_CTX_set
    linkageType: ''
    returnType: bool
    signature: bool Key::validate(bool secret) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:120,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:120,1
    - Dst: mpi::resize
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:121,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:124,1
    - Dst: RAND_bytes
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:126,1
    - Dst: RAND_bytes
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:132,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:136,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:141,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:141,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:141,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - out
    - psize
    - in
    argTypes:
    - mpi
    - size_t
    - rnp::secure_bytes
    assertStmts:
    - condition: (psize >= in.size() + 11)
      pos:
        line_end: 119
        line_start: 119
        source_file: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    constantsTouched: []
    func_position:
      end: 143
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 143
    functionName: pgp::eg::pkcs1v15_pad
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - mpi::resize
    - rnp::secure_bytes::size
    - memcpy
    - assert
    - RAND_bytes
    - mpi::data
    - rnp::secure_bytes::data
    linkageType: ''
    returnType: bool
    signature: bool pkcs1v15_pad(mpi &out, size_t psize, const rnp::secure_bytes &in)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:148,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:158,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:161,1
    - Dst: rnp::secure_bytes::assign
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:164,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:164,1
    - Dst: mpi::data
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:164,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:164,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 3
    argNames:
    - in
    - out
    - skip0
    argTypes:
    - mpi
    - rnp::secure_bytes
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 166
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 166
    functionName: pgp::eg::pkcs1v15_unpad
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::secure_bytes::assign
    - mpi::size
    - mpi::data
    linkageType: ''
    returnType: bool
    signature: bool pkcs1v15_unpad(const mpi &in, rnp::secure_bytes &out, bool skip0)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pkcs1v15_pad
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:172,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:172,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:174,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:181,1
    - Dst: BN_CTX_start
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:189,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:189,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:190,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:190,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:191,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:191,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:195,1
    - Dst: BN_MONT_CTX_set
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:201,1
    - Dst: rnp::ossl::BNMontCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:201,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:201,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:201,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:203,1
    - Dst: BN_rshift1
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:208,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:208,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:209,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:212,1
    - Dst: BN_rand_range
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:217,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:217,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:219,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: rnp::ossl::BNMontCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:224,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:227,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: rnp::ossl::BNMontCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:232,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:235,1
    - Dst: BN_mod_mul
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:239,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:239,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:239,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:239,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:241,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:245,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:245,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:246,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 42
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    assertStmts:
    - condition: (res == 1)
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    - condition: (res == 1)
      pos:
        line_end: 245
        line_start: 245
        source_file: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    constantsTouched: []
    func_position:
      end: 248
      start: 168
    functionDepth: 1
    functionLinenumber: 168
    functionLinenumberEnd: 248
    functionName: pgp::eg::Key::encrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::ossl::BNCtx::get
    - BN_rand_range
    - rnp::ossl::BNMontCtx::get
    - BN_mod_mul
    - BN_mod_exp_mont_consttime
    - BN_MONT_CTX_set
    - BN_rshift1
    - assert
    - BN_CTX_start
    - rnp::bn::mpi
    - rnp::bn::get
    - BN_CTX_get
    - size
    - pkcs1v15_pad
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::encrypt_pkcs1(rnp::RNG &rng, Encrypted &out, const
      rnp::secure_bytes &in) const
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:253,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:254,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:260,1
    - Dst: BN_CTX_start
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:269,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:269,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:270,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:270,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:274,1
    - Dst: BN_MONT_CTX_set
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:280,1
    - Dst: rnp::ossl::BNMontCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:280,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:280,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:280,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:282,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: rnp::ossl::BNMontCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:287,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:290,1
    - Dst: BN_set_flags
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:295,1
    - Dst: BN_mod_inverse
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:296,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:296,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:296,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:298,1
    - Dst: BN_mod_mul
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:303,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:303,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:303,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:303,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:303,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:305,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:310,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:311,1
    - Dst: pkcs1v15_unpad
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:316,1
    - Dst: mpi::size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:316,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:316,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:317,1
    - Dst: mpi::forget
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:320,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 41
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - rnp::secure_bytes
    - Encrypted
    assertStmts:
    - condition: (res)
      pos:
        line_end: 310
        line_start: 310
        source_file: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    constantsTouched: []
    func_position:
      end: 322
      start: 250
    functionDepth: 1
    functionLinenumber: 250
    functionLinenumberEnd: 322
    functionName: pgp::eg::Key::decrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - mpi::forget
    - rnp::ossl::BNCtx::get
    - rnp::ossl::BNMontCtx::get
    - BN_mod_mul
    - BN_MONT_CTX_set
    - assert
    - pkcs1v15_unpad
    - BN_mod_inverse
    - BN_CTX_start
    - BN_set_flags
    - rnp::bn::mpi
    - rnp::bn::get
    - BN_CTX_get
    - mpi::size
    - size
    - BN_mod_exp_mont_consttime
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::decrypt_pkcs1(rnp::RNG &rng, rnp::secure_bytes &out,
      const Encrypted &in) const
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:335,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:335,1
    - Dst: EVP_PKEY_paramgen_init
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:339,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:339,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:341,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:341,1
    - Dst: EVP_PKEY_CTX_set_dh_paramgen_prime_len
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:345,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:345,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:347,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:347,1
    - Dst: EVP_PKEY_CTX_set_dh_paramgen_generator
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:353,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:353,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:355,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:355,1
    - Dst: EVP_PKEY_paramgen
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:360,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:360,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:362,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:362,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:369,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:369,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:372,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:372,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:376,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:376,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:378,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:378,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:383,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:383,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:385,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:385,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:391,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:392,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:392,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:392,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:394,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:394,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:398,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:398,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:403,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:404,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:404,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:404,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:405,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:405,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:405,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:406,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:406,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:406,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:407,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:407,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:407,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:407,1
    - Dst: EVP_PKEY_get0_DH
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:410,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:410,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:413,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:413,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:417,1
    - Dst: BN_num_bits
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:417,1
    - Dst: DH_get0_pub_key
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:417,1
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:417,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:429,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:430,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:431,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/elgamal_ossl.cpp:432,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 61
    argCount: 2
    argNames:
    - rng
    - keybits
    argTypes:
    - rnp::RNG
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 436
      start: 324
    functionDepth: 1
    functionLinenumber: 324
    functionLinenumberEnd: 436
    functionName: pgp::eg::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
    functionUses: 1
    functionsReached:
    - EVP_PKEY_keygen
    - EVP_PKEY_get0_DH
    - EVP_PKEY_get_bn_param
    - EVP_PKEY_CTX_set_dh_paramgen_prime_len
    - rnp::ossl::evp::PKey::get
    - rnp::bn::mpi
    - rnp::bn::bytes
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    - RNP_LOG
    - DH_get0_pub_key
    - EVP_PKEY_paramgen_init
    - EVP_PKEY_CTX_set_dh_paramgen_generator
    - mpi
    - ERR_peek_last_error
    - rnp::bn::bn
    - BITS_TO_BYTES
    - BN_num_bits
    - rnp::bn::ptr
    - ptr
    - EVP_PKEY_keygen_init
    - EVP_PKEY_paramgen
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t keybits)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:56,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:62,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:68,1
    - Dst: EVP_get_cipherbyname
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:72,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:72,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:74,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:74,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:77,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:79,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:79,1
    - Dst: EVP_CipherInit_ex
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:82,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:83,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:83,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:84,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:89,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:90,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:90,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:91,1
    - Dst: EVP_CIPHER_CTX_set_padding
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:96,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 37
    argCount: 5
    argNames:
    - alg
    - name
    - encrypt
    - tag_size
    - disable_padding
    argTypes:
    - pgp_symm_alg_t
    - std::string
    - bool
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 99
    functionName: Cipher_OpenSSL::create
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_CIPHER_CTX_ctrl
    - EVP_get_cipherbyname
    - EVP_CIPHER_CTX_set_padding
    - std::string::c_str
    - EVP_CIPHER_CTX_new
    - ERR_peek_last_error
    - EVP_CIPHER_CTX_free
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: EVP_CIPHER_CTX
    signature: "EVP_CIPHER_CTX *\nCipher_OpenSSL::create(pgp_symm_alg_t     alg,\n
      \                      const std::string &name,\n                       bool
      \              encrypt,\n                       size_t             tag_size,\n
      \                      bool               disable_padding)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:104,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:105,1
    - Dst: string
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - cipher
    - mode
    argTypes:
    - pgp_symm_alg_t
    - pgp_cipher_mode_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 101
    functionDepth: 1
    functionLinenumber: 101
    functionLinenumberEnd: 110
    functionName: make_name
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_ossl.cpp
    functionUses: 2
    functionsReached:
    - string
    - id_str_pair::lookup
    linkageType: ''
    returnType: std::string
    signature: std::string make_name(pgp_symm_alg_t cipher, pgp_cipher_mode_t mode)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Cipher_OpenSSL::create
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:119,1
    - Dst: make_name
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:119,1
    - Dst: std::unique_ptr<Cipher_OpenSSL>
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:123,1
    - Dst: Cipher_OpenSSL::Cipher_OpenSSL
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:123,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - cipher
    - mode
    - tag_size
    - disable_padding
    argTypes:
    - pgp_symm_alg_t
    - pgp_cipher_mode_t
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 125
    functionName: Cipher_OpenSSL::encryption
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_ossl.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Cipher_OpenSSL>
    - Cipher_OpenSSL::Cipher_OpenSSL
    - Cipher_OpenSSL::create
    - make_name
    linkageType: ''
    returnType: std::unique_ptr<Cipher_OpenSSL>
    signature: "std::unique_ptr<Cipher_OpenSSL> Cipher_OpenSSL::encryption(pgp_symm_alg_t
      \   cipher,\n                           pgp_cipher_mode_t mode,\n                           size_t
      \           tag_size,\n                           bool              disable_padding)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: Cipher_OpenSSL::create
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:134,1
    - Dst: make_name
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:134,1
    - Dst: std::unique_ptr<Cipher_OpenSSL>
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:138,1
    - Dst: Cipher_OpenSSL::Cipher_OpenSSL
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:139,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 4
    argNames:
    - cipher
    - mode
    - tag_size
    - disable_padding
    argTypes:
    - pgp_symm_alg_t
    - pgp_cipher_mode_t
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 127
    functionDepth: 1
    functionLinenumber: 127
    functionLinenumberEnd: 140
    functionName: Cipher_OpenSSL::decryption
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_ossl.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Cipher_OpenSSL>
    - Cipher_OpenSSL::Cipher_OpenSSL
    - Cipher_OpenSSL::create
    - make_name
    linkageType: ''
    returnType: std::unique_ptr<Cipher_OpenSSL>
    signature: "std::unique_ptr<Cipher_OpenSSL> Cipher_OpenSSL::decryption(pgp_symm_alg_t
      \   cipher,\n                           pgp_cipher_mode_t mode,\n                           size_t
      \           tag_size,\n                           bool              disable_padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:145,1
    - Dst: EVP_CIPHER_CTX_set_key_length
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:146,1
    - Dst: EVP_CipherInit_ex
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - key
    - key_length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (key_length <= INT_MAX)
      pos:
        line_end: 144
        line_start: 144
        source_file: /src/rnp/src/lib/crypto/cipher_ossl.cpp
    constantsTouched: []
    func_position:
      end: 148
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 148
    functionName: Cipher_OpenSSL::set_key
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_ossl.cpp
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_set_key_length
    - EVP_CipherInit_ex
    - assert
    linkageType: ''
    returnType: bool
    signature: bool Cipher_OpenSSL::set_key(const uint8_t *key, size_t key_length)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:153,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:156,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:157,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:157,1
    - Dst: EVP_CIPHER_CTX_iv_length
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:160,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:161,1
    - Dst: EVP_CipherInit_ex
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:164,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:165,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:165,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - iv
    - iv_length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (iv_length <= INT_MAX)
      pos:
        line_end: 152
        line_start: 152
        source_file: /src/rnp/src/lib/crypto/cipher_ossl.cpp
    constantsTouched: []
    func_position:
      end: 168
      start: 150
    functionDepth: 1
    functionLinenumber: 150
    functionLinenumberEnd: 168
    functionName: Cipher_OpenSSL::set_iv
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_CIPHER_CTX_ctrl
    - EVP_CIPHER_CTX_iv_length
    - assert
    - ERR_peek_last_error
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: bool
    signature: bool Cipher_OpenSSL::set_iv(const uint8_t *iv, size_t iv_length)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:173,1
    - Dst: EVP_CipherUpdate
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:175,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:176,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:176,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - ad
    - ad_length
    argTypes:
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (m_tag_size)
      pos:
        line_end: 172
        line_start: 172
        source_file: /src/rnp/src/lib/crypto/cipher_ossl.cpp
    constantsTouched: []
    func_position:
      end: 180
      start: 170
    functionDepth: 1
    functionLinenumber: 170
    functionLinenumberEnd: 180
    functionName: Cipher_OpenSSL::set_ad
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - ERR_peek_last_error
    - assert
    - EVP_CipherUpdate
    linkageType: ''
    returnType: bool
    signature: bool Cipher_OpenSSL::set_ad(const uint8_t *ad, size_t ad_length)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:185,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 182
    functionDepth: 0
    functionLinenumber: 182
    functionLinenumberEnd: 186
    functionName: Cipher_OpenSSL::update_granularity
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_ossl.cpp
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_block_size
    linkageType: ''
    returnType: size_t
    signature: size_t Cipher_OpenSSL::update_granularity() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CipherUpdate
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:205,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:206,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:206,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:209,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 17
    argCount: 6
    argNames:
    - output
    - output_length
    - output_written
    - input
    - input_length
    - input_consumed
    argTypes:
    - uint8_t*
    - size_t
    - size_t*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts:
    - condition: ((size_t) outl < output_length)
      pos:
        line_end: 208
        line_start: 208
        source_file: /src/rnp/src/lib/crypto/cipher_ossl.cpp
    constantsTouched: []
    func_position:
      end: 213
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 213
    functionName: Cipher_OpenSSL::update
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - ERR_peek_last_error
    - assert
    - EVP_CipherUpdate
    linkageType: ''
    returnType: bool
    signature: "bool Cipher_OpenSSL::update(uint8_t *      output,\n                       size_t
      \        output_length,\n                       size_t *       output_written,\n
      \                      const uint8_t *input,\n                       size_t
      \        input_length,\n                       size_t *       input_consumed)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:227,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:234,1
    - Dst: const_cast<uint8_t *>
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:237,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:239,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:239,1
    - Dst: std::min
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:242,1
    - Dst: EVP_CipherUpdate
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:247,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:248,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:248,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:255,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:256,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:256,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:263,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:264,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:264,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 40
    argCount: 6
    argNames:
    - output
    - output_length
    - output_written
    - input
    - input_length
    - input_consumed
    argTypes:
    - uint8_t*
    - size_t
    - size_t*
    - uint8_t*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 215
    functionDepth: 1
    functionLinenumber: 215
    functionLinenumberEnd: 270
    functionName: Cipher_OpenSSL::finish
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_CipherFinal_ex
    - EVP_CIPHER_CTX_ctrl
    - const_cast<uint8_t *>
    - EVP_CipherUpdate
    - std::min
    - ERR_peek_last_error
    linkageType: ''
    returnType: bool
    signature: "bool Cipher_OpenSSL::finish(uint8_t *      output,\n                       size_t
      \        output_length,\n                       size_t *       output_written,\n
      \                      const uint8_t *input,\n                       size_t
      \        input_length,\n                       size_t *       input_consumed)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_block_size
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - alg
    - ctx
    - tag_size
    - encrypt
    argTypes:
    - pgp_symm_alg_t
    - EVP_CIPHER_CTX*
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 279
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 279
    functionName: Cipher_OpenSSL::Cipher_OpenSSL
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_ossl.cpp
    functionUses: 2
    functionsReached:
    - EVP_CIPHER_CTX_block_size
    linkageType: ''
    returnType: void
    signature: "void Cipher_OpenSSL::Cipher_OpenSSL(pgp_symm_alg_t  alg,\n                               EVP_CIPHER_CTX
      *ctx,\n                               size_t          tag_size,\n                               bool
      \           encrypt)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/rnp/src/lib/crypto/cipher_ossl.cpp:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 284
      start: 281
    functionDepth: 0
    functionLinenumber: 281
    functionLinenumberEnd: 284
    functionName: Cipher_OpenSSL::~Cipher_OpenSSL()
    functionSourceFile: /src/rnp/src/lib/crypto/cipher_ossl.cpp
    functionUses: 0
    functionsReached:
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: void
    signature: void Cipher_OpenSSL::~Cipher_OpenSSL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - pgp::ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 35
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 35
    functionName: sm2_validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/sm2_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t sm2_validate_key(rnp::RNG &rng, const pgp::ec::Key &key,
      bool secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - '          rng'
    - sig
    - hash_alg
    - hash
    - hash_len
    - key
    argTypes:
    - rnp::RNG
    - pgp::ec::Signature
    - pgp_hash_alg_t
    - uint8_t*
    - size_t
    - pgp::ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 46
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 46
    functionName: sm2_sign
    functionSourceFile: /src/rnp/src/lib/crypto/sm2_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t sm2_sign(rnp::RNG &          rng,\n         pgp::ec::Signature
      &sig,\n         pgp_hash_alg_t      hash_alg,\n         const uint8_t *     hash,\n
      \        size_t              hash_len,\n         const pgp::ec::Key &key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - sig
    - hash_alg
    - hash
    - hash_len
    - '      key'
    argTypes:
    - pgp::ec::Signature
    - pgp_hash_alg_t
    - uint8_t*
    - size_t
    - pgp::ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 56
      start: 48
    functionDepth: 0
    functionLinenumber: 48
    functionLinenumberEnd: 56
    functionName: sm2_verify
    functionSourceFile: /src/rnp/src/lib/crypto/sm2_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t sm2_verify(const pgp::ec::Signature &sig,\n           pgp_hash_alg_t
      \           hash_alg,\n           const uint8_t *           hash,\n           size_t
      \                   hash_len,\n           const pgp::ec::Key &      key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 6
    argNames:
    - '           rng'
    - out
    - in
    - in_len
    - hash_algo
    - ' key'
    argTypes:
    - rnp::RNG
    - pgp_sm2_encrypted_t
    - uint8_t*
    - size_t
    - pgp_hash_alg_t
    - pgp::ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 67
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 67
    functionName: sm2_encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/sm2_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t sm2_encrypt(rnp::RNG &           rng,\n            pgp_sm2_encrypted_t
      &out,\n            const uint8_t *      in,\n            size_t               in_len,\n
      \           pgp_hash_alg_t       hash_algo,\n            const pgp::ec::Key
      & key)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - out
    - out_len
    - in
    - '       key'
    argTypes:
    - uint8_t*
    - size_t*
    - pgp_sm2_encrypted_t
    - pgp::ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 76
    functionName: sm2_decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/sm2_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t sm2_decrypt(uint8_t *                  out,\n            size_t
      *                   out_len,\n            const pgp_sm2_encrypted_t &in,\n            const
      pgp::ec::Key &       key)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: add
      Src: /src/rnp/src/lib/crypto/signatures.cpp:51,1
    - Dst: write_uint32
      Src: /src/rnp/src/lib/crypto/signatures.cpp:60,1
    - Dst: pgp::pkt::Signature::hashed_data::size
      Src: /src/rnp/src/lib/crypto/signatures.cpp:60,1
    - Dst: add
      Src: /src/rnp/src/lib/crypto/signatures.cpp:61,1
    - Dst: pgp::pkt::Signature::hashed_data::size
      Src: /src/rnp/src/lib/crypto/signatures.cpp:65,1
    - Dst: pgp::pkt::Signature::is_document
      Src: /src/rnp/src/lib/crypto/signatures.cpp:66,1
    - Dst: write_uint32
      Src: /src/rnp/src/lib/crypto/signatures.cpp:72,1
    - Dst: add
      Src: /src/rnp/src/lib/crypto/signatures.cpp:73,1
    - Dst: add
      Src: /src/rnp/src/lib/crypto/signatures.cpp:74,1
    - Dst: add
      Src: /src/rnp/src/lib/crypto/signatures.cpp:75,1
    - Dst: add
      Src: /src/rnp/src/lib/crypto/signatures.cpp:77,1
    - Dst: write_uint64
      Src: /src/rnp/src/lib/crypto/signatures.cpp:81,1
    - Dst: add
      Src: /src/rnp/src/lib/crypto/signatures.cpp:82,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/signatures.cpp:88,1
    - Dst: finish
      Src: /src/rnp/src/lib/crypto/signatures.cpp:89,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/signatures.cpp:89,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 32
    argCount: 3
    argNames:
    - sig
    - '                hash'
    - hdr
    argTypes:
    - pgp::pkt::Signature
    - rnp::Hash
    - pgp_literal_hdr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 46
    functionDepth: 1
    functionLinenumber: 46
    functionLinenumberEnd: 91
    functionName: signature_hash_finish
    functionSourceFile: /src/rnp/src/lib/crypto/signatures.cpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::hashed_data::size
    - pgp::pkt::Signature::is_document
    - write_uint32
    - write_uint64
    - finish
    - add
    - rnp::secure_bytes::data
    - size
    linkageType: ''
    returnType: rnp::secure_bytes
    signature: "rnp::secure_bytes signature_hash_finish(const pgp::pkt::Signature
      &sig,\n                      rnp::Hash &                hash,\n                      const
      pgp_literal_hdr_t *  hdr)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/lib/crypto/signatures.cpp:96,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/signatures.cpp:100,1
    - Dst: pgp_key_pkt_t::material::alg
      Src: /src/rnp/src/lib/crypto/signatures.cpp:104,1
    - Dst: dynamic_cast<pgp::SM2KeyMaterial &>
      Src: /src/rnp/src/lib/crypto/signatures.cpp:105,1
    - Dst: auto::compute_za
      Src: /src/rnp/src/lib/crypto/signatures.cpp:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - key
    - sig
    argTypes:
    - pgp_key_pkt_t
    - pgp::pkt::Signature
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 93
    functionDepth: 1
    functionLinenumber: 93
    functionLinenumberEnd: 109
    functionName: signature_init
    functionSourceFile: /src/rnp/src/lib/crypto/signatures.cpp
    functionUses: 3
    functionsReached:
    - auto::compute_za
    - pgp_key_pkt_t::material::alg
    - dynamic_cast<pgp::SM2KeyMaterial &>
    - rnp::Hash::create
    - auto::add
    linkageType: ''
    returnType: std::unique_ptr<rnp::Hash>
    signature: std::unique_ptr<rnp::Hash> signature_init(const pgp_key_pkt_t &key,
      const pgp::pkt::Signature &sig)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: signature_hash_finish
      Src: /src/rnp/src/lib/crypto/signatures.cpp:119,1
    - Dst: secret
      Src: /src/rnp/src/lib/crypto/signatures.cpp:120,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/signatures.cpp:121,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/signatures.cpp:122,1
    - Dst: alg
      Src: /src/rnp/src/lib/crypto/signatures.cpp:124,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/signatures.cpp:125,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/signatures.cpp:126,1
    - Dst: validate
      Src: /src/rnp/src/lib/crypto/signatures.cpp:129,1
    - Dst: valid
      Src: /src/rnp/src/lib/crypto/signatures.cpp:130,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/signatures.cpp:131,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/signatures.cpp:132,1
    - Dst: std::copy
      Src: /src/rnp/src/lib/crypto/signatures.cpp:136,1
    - Dst: auto::begin
      Src: /src/rnp/src/lib/crypto/signatures.cpp:136,1
    - Dst: auto::begin
      Src: /src/rnp/src/lib/crypto/signatures.cpp:136,1
    - Dst: lbits::begin
      Src: /src/rnp/src/lib/crypto/signatures.cpp:136,1
    - Dst: pgp::SigMaterial::create
      Src: /src/rnp/src/lib/crypto/signatures.cpp:139,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/signatures.cpp:141,1
    - Dst: sign
      Src: /src/rnp/src/lib/crypto/signatures.cpp:144,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/signatures.cpp:146,1
    - Dst: write_material
      Src: /src/rnp/src/lib/crypto/signatures.cpp:148,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 22
    argCount: 5
    argNames:
    - '    sig'
    - '       seckey'
    - '              hash'
    - '   ctx'
    - hdr
    argTypes:
    - pgp::pkt::Signature
    - pgp::KeyMaterial
    - rnp::Hash
    - rnp::SecurityContext
    - pgp_literal_hdr_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 149
    functionName: signature_calculate
    functionSourceFile: /src/rnp/src/lib/crypto/signatures.cpp
    functionUses: 9
    functionsReached:
    - RNP_LOG
    - validate
    - auto::begin
    - secret
    - signature_hash_finish
    - write_material
    - sign
    - valid
    - pgp::SigMaterial::create
    - std::copy
    - lbits::begin
    - rnp::rnp_exception::rnp_exception
    - alg
    linkageType: ''
    returnType: void
    signature: "void signature_calculate(pgp::pkt::Signature &    sig,\n                    pgp::KeyMaterial
      &       seckey,\n                    rnp::Hash &              hash,\n                    rnp::SecurityContext
      &   ctx,\n                    const pgp_literal_hdr_t *hdr)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SigValidity::SigValidity
      Src: /src/rnp/src/lib/crypto/signatures.cpp:158,1
    - Dst: alg
      Src: /src/rnp/src/lib/crypto/signatures.cpp:159,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/signatures.cpp:160,1
    - Dst: alg
      Src: /src/rnp/src/lib/crypto/signatures.cpp:161,1
    - Dst: rnp::SigValidity::add_error
      Src: /src/rnp/src/lib/crypto/signatures.cpp:162,1
    - Dst: is_document
      Src: /src/rnp/src/lib/crypto/signatures.cpp:167,1
    - Dst: rnp::SecurityContext::profile::hash_level
      Src: /src/rnp/src/lib/crypto/signatures.cpp:168,1
    - Dst: creation
      Src: /src/rnp/src/lib/crypto/signatures.cpp:168,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/signatures.cpp:170,1
    - Dst: rnp::SigValidity::add_error
      Src: /src/rnp/src/lib/crypto/signatures.cpp:171,1
    - Dst: sig_hash_allowed
      Src: /src/rnp/src/lib/crypto/signatures.cpp:175,1
    - Dst: alg
      Src: /src/rnp/src/lib/crypto/signatures.cpp:175,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/signatures.cpp:176,1
    - Dst: rnp::SigValidity::add_error
      Src: /src/rnp/src/lib/crypto/signatures.cpp:178,1
    - Dst: signature_hash_finish
      Src: /src/rnp/src/lib/crypto/signatures.cpp:182,1
    - Dst: memcmp
      Src: /src/rnp/src/lib/crypto/signatures.cpp:184,1
    - Dst: auto::data
      Src: /src/rnp/src/lib/crypto/signatures.cpp:184,1
    - Dst: lbits::data
      Src: /src/rnp/src/lib/crypto/signatures.cpp:184,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/signatures.cpp:185,1
    - Dst: rnp::SigValidity::add_error
      Src: /src/rnp/src/lib/crypto/signatures.cpp:186,1
    - Dst: parse_material
      Src: /src/rnp/src/lib/crypto/signatures.cpp:191,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/signatures.cpp:192,1
    - Dst: verify
      Src: /src/rnp/src/lib/crypto/signatures.cpp:193,1
    - Dst: rnp::SigValidity::add_error
      Src: /src/rnp/src/lib/crypto/signatures.cpp:195,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 22
    argCount: 5
    argNames:
    - ' sig'
    - '    key'
    - '                 hash'
    - ctx
    - hdr
    argTypes:
    - pgp::pkt::Signature
    - pgp::KeyMaterial
    - rnp::Hash
    - rnp::SecurityContext
    - pgp_literal_hdr_t*
    assertStmts:
    - condition: (material)
      pos:
        line_end: 191
        line_start: 191
        source_file: /src/rnp/src/lib/crypto/signatures.cpp
    constantsTouched: []
    func_position:
      end: 198
      start: 151
    functionDepth: 2
    functionLinenumber: 151
    functionLinenumberEnd: 198
    functionName: signature_validate
    functionSourceFile: /src/rnp/src/lib/crypto/signatures.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - lbits::data
    - is_document
    - parse_material
    - rnp::SigValidity::add_error
    - rnp::SecurityContext::profile::hash_level
    - auto::data
    - signature_hash_finish
    - memcmp
    - verify
    - assert
    - sig_hash_allowed
    - alg
    - rnp::SigValidity::SigValidity
    - creation
    linkageType: ''
    returnType: rnp::SigValidity
    signature: "rnp::SigValidity signature_validate(const pgp::pkt::Signature & sig,\n
      \                  const pgp::KeyMaterial &    key,\n                   rnp::Hash
      &                 hash,\n                   const rnp::SecurityContext &ctx,\n
      \                  const pgp_literal_hdr_t *   hdr)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:46,1
    - Dst: botan_pubkey_load_rsa
      Src: /src/rnp/src/lib/crypto/rsa.cpp:49,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:49,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:49,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bkey
    - key
    argTypes:
    - rnp::botan::Pubkey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: pgp::rsa::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - botan_pubkey_load_rsa
    - rnp::bn::get
    - rnp::botan::Pubkey::get
    linkageType: ''
    returnType: bool
    signature: bool load_public_key(rnp::botan::Pubkey &bkey, const Key &key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:60,1
    - Dst: botan_privkey_load_rsa
      Src: /src/rnp/src/lib/crypto/rsa.cpp:64,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:64,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:64,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:64,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - bkey
    - key
    argTypes:
    - rnp::botan::Privkey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: pgp::rsa::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::bn::get
    - rnp::botan::Privkey::get
    - botan_privkey_load_rsa
    linkageType: ''
    returnType: bool
    signature: bool load_secret_key(rnp::botan::Privkey &bkey, const Key &key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:71,1
    - Dst: load_public_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:72,1
    - Dst: botan_pubkey_check_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:72,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:72,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:72,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:81,1
    - Dst: load_secret_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:82,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:83,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:83,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - rng
    - secret
    argTypes:
    - rnp::RNG
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 87
    functionName: pgp::rsa::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::get
    - botan_privkey_check_key
    - rnp::RNG::handle
    - load_public_key
    - load_secret_key
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - botan_pubkey_check_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::validate(rnp::RNG &rng, bool secret) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:92,1
    - Dst: load_public_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:93,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:94,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:98,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:98,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:99,1
    - Dst: rnp::botan::op::Encrypt::Encrypt
      Src: /src/rnp/src/lib/crypto/rsa.cpp:100,1
    - Dst: botan_pk_op_encrypt_create
      Src: /src/rnp/src/lib/crypto/rsa.cpp:101,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:101,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:101,1
    - Dst: botan_pk_op_encrypt
      Src: /src/rnp/src/lib/crypto/rsa.cpp:102,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:103,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:103,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:103,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:103,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:103,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:104,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 109
    functionName: pgp::rsa::Key::encrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - Encrypted::m::size
    - botan_pk_op_encrypt_create
    - rnp::secure_bytes::size
    - rnp::botan::Pubkey::get
    - rnp::RNG::handle
    - load_public_key
    - Encrypted::m::resize
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_encrypt
    - rnp::botan::op::Encrypt::get
    - Encrypted::m::data
    - rnp::secure_bytes::data
    - size
    - rnp::botan::op::Encrypt::Encrypt
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::encrypt_pkcs1(rnp::RNG &rng, Encrypted &out, const
      rnp::secure_bytes &in) const noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:116,1
    - Dst: load_public_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:117,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:118,1
    - Dst: snprintf
      Src: /src/rnp/src/lib/crypto/rsa.cpp:123,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/rsa.cpp:124,1
    - Dst: rnp::botan::op::Verify::Verify
      Src: /src/rnp/src/lib/crypto/rsa.cpp:126,1
    - Dst: botan_pk_op_verify_create
      Src: /src/rnp/src/lib/crypto/rsa.cpp:127,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:127,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:127,1
    - Dst: botan_pk_op_verify_update
      Src: /src/rnp/src/lib/crypto/rsa.cpp:128,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:128,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:128,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:128,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:131,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:131,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:134,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:134,1
    - Dst: rnp::secure_bytes::insert
      Src: /src/rnp/src/lib/crypto/rsa.cpp:135,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa.cpp:135,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:135,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:135,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:135,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/rsa.cpp:136,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:136,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:136,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:136,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/rsa.cpp:141,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:141,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:141,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - '        sig'
    - hash_alg
    - hash
    argTypes:
    - Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 145
    functionName: pgp::rsa::Key::verify_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::botan::op::Verify::Verify
    - rnp::secure_bytes::size
    - rnp::botan::Pubkey::get
    - s::data
    - botan_pk_op_verify_update
    - load_public_key
    - size
    - rnp::secure_bytes::insert
    - botan_pk_op_verify_finish
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_verify_create
    - rnp::Hash_Botan::name_backend
    - s::size
    - rnp::secure_bytes::data
    - rnp::botan::op::Verify::get
    - rnp::secure_bytes::end
    - snprintf
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Key::verify_pkcs1(const Signature &        sig,\n                  pgp_hash_alg_t
      \          hash_alg,\n                  const rnp::secure_bytes &hash) const
      noexcept"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:153,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:154,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:158,1
    - Dst: load_secret_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:159,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:160,1
    - Dst: snprintf
      Src: /src/rnp/src/lib/crypto/rsa.cpp:165,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/rsa.cpp:166,1
    - Dst: s::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:168,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:168,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:169,1
    - Dst: rnp::botan::op::Sign::Sign
      Src: /src/rnp/src/lib/crypto/rsa.cpp:170,1
    - Dst: botan_pk_op_sign_create
      Src: /src/rnp/src/lib/crypto/rsa.cpp:171,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:171,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:171,1
    - Dst: botan_pk_op_sign_update
      Src: /src/rnp/src/lib/crypto/rsa.cpp:172,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:172,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:172,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:172,1
    - Dst: botan_pk_op_sign_finish
      Src: /src/rnp/src/lib/crypto/rsa.cpp:173,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:173,1
    - Dst: handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:173,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:173,1
    - Dst: s::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:174,1
    - Dst: s::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - '               rng'
    - '              sig'
    - hash_alg
    - hash
    argTypes:
    - rnp::RNG
    - Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 179
    functionName: pgp::rsa::Key::sign_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - handle
    - rnp::secure_bytes::size
    - s::data
    - load_secret_key
    - size
    - botan_pk_op_sign_create
    - rnp::botan::Privkey::get
    - rnp::botan::op::Sign::get
    - s::resize
    - botan_pk_op_sign_finish
    - s::size
    - rnp::Hash_Botan::name_backend
    - rnp::botan::op::Sign::Sign
    - botan_pk_op_sign_update
    - rnp::secure_bytes::data
    - snprintf
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Key::sign_pkcs1(rnp::RNG &               rng,\n                Signature
      &              sig,\n                pgp_hash_alg_t           hash_alg,\n                const
      rnp::secure_bytes &hash) const noexcept"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:184,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:185,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:189,1
    - Dst: load_secret_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:190,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:191,1
    - Dst: rnp::botan::op::Decrypt::Decrypt
      Src: /src/rnp/src/lib/crypto/rsa.cpp:195,1
    - Dst: botan_pk_op_decrypt_create
      Src: /src/rnp/src/lib/crypto/rsa.cpp:196,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:196,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:196,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:201,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:201,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:205,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:205,1
    - Dst: rnp::secure_bytes::assign
      Src: /src/rnp/src/lib/crypto/rsa.cpp:208,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:208,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:208,1
    - Dst: rnp::secure_bytes::insert
      Src: /src/rnp/src/lib/crypto/rsa.cpp:209,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa.cpp:209,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:209,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:209,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:209,1
    - Dst: rnp::secure_bytes::assign
      Src: /src/rnp/src/lib/crypto/rsa.cpp:211,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:211,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:211,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:211,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:213,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:213,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:214,1
    - Dst: botan_pk_op_decrypt
      Src: /src/rnp/src/lib/crypto/rsa.cpp:215,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:215,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:215,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:215,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:215,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:216,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:219,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - rnp::secure_bytes
    - Encrypted
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 221
    functionName: pgp::rsa::Key::decrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - Encrypted::m::size
    - rnp::botan::op::Decrypt::Decrypt
    - rnp::botan::Privkey::Privkey
    - rnp::secure_bytes::size
    - rnp::secure_bytes::assign
    - load_secret_key
    - rnp::botan::Privkey::get
    - rnp::secure_bytes::insert
    - rnp::botan::op::Decrypt::get
    - botan_pk_op_decrypt
    - rnp::secure_bytes::resize
    - Encrypted::m::data
    - botan_pk_op_decrypt_create
    - rnp::secure_bytes::data
    - rnp::secure_bytes::end
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::decrypt_pkcs1(rnp::RNG &rng, rnp::secure_bytes &out,
      const Encrypted &in) const noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:230,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:231,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:232,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:233,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:234,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:235,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:240,1
    - Dst: botan_privkey_create
      Src: /src/rnp/src/lib/crypto/rsa.cpp:241,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:242,1
    - Dst: to_string
      Src: /src/rnp/src/lib/crypto/rsa.cpp:242,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:242,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:243,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:243,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:243,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/rsa.cpp:247,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:247,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:247,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/rsa.cpp:248,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:248,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:248,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/rsa.cpp:249,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:249,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:249,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/rsa.cpp:250,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:250,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:250,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/rsa.cpp:251,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:251,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:251,1
    - Dst: botan_mp_cmp
      Src: /src/rnp/src/lib/crypto/rsa.cpp:257,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:257,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:257,1
    - Dst: botan_mp_swap
      Src: /src/rnp/src/lib/crypto/rsa.cpp:259,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:259,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:259,1
    - Dst: botan_mp_mod_inverse
      Src: /src/rnp/src/lib/crypto/rsa.cpp:262,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:262,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:262,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:262,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:263,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:267,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:268,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:269,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:270,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:271,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:272,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 28
    argCount: 2
    argNames:
    - rng
    - numbits
    argTypes:
    - rnp::RNG
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 274
    functionName: pgp::rsa::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - botan_privkey_check_key
    - botan_mp_mod_inverse
    - rnp::RNG::handle
    - rnp::botan::Privkey::get
    - botan_privkey_get_field
    - to_string
    - botan_mp_cmp
    - rnp::bn::mpi
    - rnp::bn::get
    - botan_privkey_create
    - botan_mp_swap
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t numbits) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:46,1
    - Dst: botan_pubkey_load_rsa
      Src: /src/rnp/src/lib/crypto/rsa.cpp:49,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:49,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:49,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bkey
    - key
    argTypes:
    - rnp::botan::Pubkey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: pgp::rsa::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - botan_pubkey_load_rsa
    - rnp::bn::get
    - rnp::botan::Pubkey::get
    linkageType: ''
    returnType: bool
    signature: bool load_public_key(rnp::botan::Pubkey &bkey, const Key &key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:60,1
    - Dst: botan_privkey_load_rsa
      Src: /src/rnp/src/lib/crypto/rsa.cpp:64,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:64,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:64,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:64,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - bkey
    - key
    argTypes:
    - rnp::botan::Privkey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: pgp::rsa::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::bn::get
    - rnp::botan::Privkey::get
    - botan_privkey_load_rsa
    linkageType: ''
    returnType: bool
    signature: bool load_secret_key(rnp::botan::Privkey &bkey, const Key &key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:71,1
    - Dst: load_public_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:72,1
    - Dst: botan_pubkey_check_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:72,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:72,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:72,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:81,1
    - Dst: load_secret_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:82,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:83,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:83,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - rng
    - secret
    argTypes:
    - rnp::RNG
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 87
    functionName: pgp::rsa::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::get
    - botan_privkey_check_key
    - rnp::RNG::handle
    - load_public_key
    - load_secret_key
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - botan_pubkey_check_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::validate(rnp::RNG &rng, bool secret) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:92,1
    - Dst: load_public_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:93,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:94,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:98,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:98,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:99,1
    - Dst: rnp::botan::op::Encrypt::Encrypt
      Src: /src/rnp/src/lib/crypto/rsa.cpp:100,1
    - Dst: botan_pk_op_encrypt_create
      Src: /src/rnp/src/lib/crypto/rsa.cpp:101,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:101,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:101,1
    - Dst: botan_pk_op_encrypt
      Src: /src/rnp/src/lib/crypto/rsa.cpp:102,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:103,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:103,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:103,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:103,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:103,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:104,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 109
    functionName: pgp::rsa::Key::encrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - Encrypted::m::size
    - botan_pk_op_encrypt_create
    - rnp::secure_bytes::size
    - rnp::botan::Pubkey::get
    - rnp::RNG::handle
    - load_public_key
    - Encrypted::m::resize
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_encrypt
    - rnp::botan::op::Encrypt::get
    - Encrypted::m::data
    - rnp::secure_bytes::data
    - size
    - rnp::botan::op::Encrypt::Encrypt
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::encrypt_pkcs1(rnp::RNG &rng, Encrypted &out, const
      rnp::secure_bytes &in) const noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:116,1
    - Dst: load_public_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:117,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:118,1
    - Dst: snprintf
      Src: /src/rnp/src/lib/crypto/rsa.cpp:123,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/rsa.cpp:124,1
    - Dst: rnp::botan::op::Verify::Verify
      Src: /src/rnp/src/lib/crypto/rsa.cpp:126,1
    - Dst: botan_pk_op_verify_create
      Src: /src/rnp/src/lib/crypto/rsa.cpp:127,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:127,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:127,1
    - Dst: botan_pk_op_verify_update
      Src: /src/rnp/src/lib/crypto/rsa.cpp:128,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:128,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:128,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:128,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:131,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:131,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:134,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:134,1
    - Dst: rnp::secure_bytes::insert
      Src: /src/rnp/src/lib/crypto/rsa.cpp:135,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa.cpp:135,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:135,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:135,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:135,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/rsa.cpp:136,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:136,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:136,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:136,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/rsa.cpp:141,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:141,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:141,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - '        sig'
    - hash_alg
    - hash
    argTypes:
    - Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 145
    functionName: pgp::rsa::Key::verify_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::botan::op::Verify::Verify
    - rnp::secure_bytes::size
    - rnp::botan::Pubkey::get
    - s::data
    - botan_pk_op_verify_update
    - load_public_key
    - size
    - rnp::secure_bytes::insert
    - botan_pk_op_verify_finish
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_verify_create
    - rnp::Hash_Botan::name_backend
    - s::size
    - rnp::secure_bytes::data
    - rnp::botan::op::Verify::get
    - rnp::secure_bytes::end
    - snprintf
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Key::verify_pkcs1(const Signature &        sig,\n                  pgp_hash_alg_t
      \          hash_alg,\n                  const rnp::secure_bytes &hash) const
      noexcept"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:153,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:154,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:158,1
    - Dst: load_secret_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:159,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:160,1
    - Dst: snprintf
      Src: /src/rnp/src/lib/crypto/rsa.cpp:165,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/rsa.cpp:166,1
    - Dst: s::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:168,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:168,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:169,1
    - Dst: rnp::botan::op::Sign::Sign
      Src: /src/rnp/src/lib/crypto/rsa.cpp:170,1
    - Dst: botan_pk_op_sign_create
      Src: /src/rnp/src/lib/crypto/rsa.cpp:171,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:171,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:171,1
    - Dst: botan_pk_op_sign_update
      Src: /src/rnp/src/lib/crypto/rsa.cpp:172,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:172,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:172,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:172,1
    - Dst: botan_pk_op_sign_finish
      Src: /src/rnp/src/lib/crypto/rsa.cpp:173,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:173,1
    - Dst: handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:173,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:173,1
    - Dst: s::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:174,1
    - Dst: s::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - '               rng'
    - '              sig'
    - hash_alg
    - hash
    argTypes:
    - rnp::RNG
    - Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 179
    functionName: pgp::rsa::Key::sign_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - handle
    - rnp::secure_bytes::size
    - s::data
    - load_secret_key
    - size
    - botan_pk_op_sign_create
    - rnp::botan::Privkey::get
    - rnp::botan::op::Sign::get
    - s::resize
    - botan_pk_op_sign_finish
    - s::size
    - rnp::Hash_Botan::name_backend
    - rnp::botan::op::Sign::Sign
    - botan_pk_op_sign_update
    - rnp::secure_bytes::data
    - snprintf
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Key::sign_pkcs1(rnp::RNG &               rng,\n                Signature
      &              sig,\n                pgp_hash_alg_t           hash_alg,\n                const
      rnp::secure_bytes &hash) const noexcept"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:184,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:185,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:189,1
    - Dst: load_secret_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:190,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:191,1
    - Dst: rnp::botan::op::Decrypt::Decrypt
      Src: /src/rnp/src/lib/crypto/rsa.cpp:195,1
    - Dst: botan_pk_op_decrypt_create
      Src: /src/rnp/src/lib/crypto/rsa.cpp:196,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:196,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:196,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:201,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:201,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:205,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:205,1
    - Dst: rnp::secure_bytes::assign
      Src: /src/rnp/src/lib/crypto/rsa.cpp:208,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:208,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:208,1
    - Dst: rnp::secure_bytes::insert
      Src: /src/rnp/src/lib/crypto/rsa.cpp:209,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa.cpp:209,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:209,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:209,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:209,1
    - Dst: rnp::secure_bytes::assign
      Src: /src/rnp/src/lib/crypto/rsa.cpp:211,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:211,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:211,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:211,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:213,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:213,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:214,1
    - Dst: botan_pk_op_decrypt
      Src: /src/rnp/src/lib/crypto/rsa.cpp:215,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:215,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:215,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:215,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:215,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:216,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:219,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - rnp::secure_bytes
    - Encrypted
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 221
    functionName: pgp::rsa::Key::decrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - Encrypted::m::size
    - rnp::botan::op::Decrypt::Decrypt
    - rnp::botan::Privkey::Privkey
    - rnp::secure_bytes::size
    - rnp::secure_bytes::assign
    - load_secret_key
    - rnp::botan::Privkey::get
    - rnp::secure_bytes::insert
    - rnp::botan::op::Decrypt::get
    - botan_pk_op_decrypt
    - rnp::secure_bytes::resize
    - Encrypted::m::data
    - botan_pk_op_decrypt_create
    - rnp::secure_bytes::data
    - rnp::secure_bytes::end
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::decrypt_pkcs1(rnp::RNG &rng, rnp::secure_bytes &out,
      const Encrypted &in) const noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:230,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:231,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:232,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:233,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:234,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:235,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:240,1
    - Dst: botan_privkey_create
      Src: /src/rnp/src/lib/crypto/rsa.cpp:241,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:242,1
    - Dst: to_string
      Src: /src/rnp/src/lib/crypto/rsa.cpp:242,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:242,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:243,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:243,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:243,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/rsa.cpp:247,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:247,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:247,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/rsa.cpp:248,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:248,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:248,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/rsa.cpp:249,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:249,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:249,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/rsa.cpp:250,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:250,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:250,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/rsa.cpp:251,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:251,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:251,1
    - Dst: botan_mp_cmp
      Src: /src/rnp/src/lib/crypto/rsa.cpp:257,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:257,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:257,1
    - Dst: botan_mp_swap
      Src: /src/rnp/src/lib/crypto/rsa.cpp:259,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:259,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:259,1
    - Dst: botan_mp_mod_inverse
      Src: /src/rnp/src/lib/crypto/rsa.cpp:262,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:262,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:262,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:262,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:263,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:267,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:268,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:269,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:270,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:271,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:272,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 28
    argCount: 2
    argNames:
    - rng
    - numbits
    argTypes:
    - rnp::RNG
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 274
    functionName: pgp::rsa::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - botan_privkey_check_key
    - botan_mp_mod_inverse
    - rnp::RNG::handle
    - rnp::botan::Privkey::get
    - botan_privkey_get_field
    - to_string
    - botan_mp_cmp
    - rnp::bn::mpi
    - rnp::bn::get
    - botan_privkey_create
    - botan_mp_swap
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t numbits) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:46,1
    - Dst: botan_pubkey_load_rsa
      Src: /src/rnp/src/lib/crypto/rsa.cpp:49,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:49,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:49,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bkey
    - key
    argTypes:
    - rnp::botan::Pubkey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: pgp::rsa::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - botan_pubkey_load_rsa
    - rnp::bn::get
    - rnp::botan::Pubkey::get
    linkageType: ''
    returnType: bool
    signature: bool load_public_key(rnp::botan::Pubkey &bkey, const Key &key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:60,1
    - Dst: botan_privkey_load_rsa
      Src: /src/rnp/src/lib/crypto/rsa.cpp:64,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:64,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:64,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:64,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - bkey
    - key
    argTypes:
    - rnp::botan::Privkey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: pgp::rsa::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::bn::get
    - rnp::botan::Privkey::get
    - botan_privkey_load_rsa
    linkageType: ''
    returnType: bool
    signature: bool load_secret_key(rnp::botan::Privkey &bkey, const Key &key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:71,1
    - Dst: load_public_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:72,1
    - Dst: botan_pubkey_check_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:72,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:72,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:72,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:81,1
    - Dst: load_secret_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:82,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:83,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:83,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - rng
    - secret
    argTypes:
    - rnp::RNG
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 87
    functionName: pgp::rsa::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::get
    - botan_privkey_check_key
    - rnp::RNG::handle
    - load_public_key
    - load_secret_key
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - botan_pubkey_check_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::validate(rnp::RNG &rng, bool secret) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:92,1
    - Dst: load_public_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:93,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:94,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:98,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:98,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:99,1
    - Dst: rnp::botan::op::Encrypt::Encrypt
      Src: /src/rnp/src/lib/crypto/rsa.cpp:100,1
    - Dst: botan_pk_op_encrypt_create
      Src: /src/rnp/src/lib/crypto/rsa.cpp:101,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:101,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:101,1
    - Dst: botan_pk_op_encrypt
      Src: /src/rnp/src/lib/crypto/rsa.cpp:102,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:103,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:103,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:103,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:103,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:103,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:104,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 109
    functionName: pgp::rsa::Key::encrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - Encrypted::m::size
    - botan_pk_op_encrypt_create
    - rnp::secure_bytes::size
    - rnp::botan::Pubkey::get
    - rnp::RNG::handle
    - load_public_key
    - Encrypted::m::resize
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_encrypt
    - rnp::botan::op::Encrypt::get
    - Encrypted::m::data
    - rnp::secure_bytes::data
    - size
    - rnp::botan::op::Encrypt::Encrypt
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::encrypt_pkcs1(rnp::RNG &rng, Encrypted &out, const
      rnp::secure_bytes &in) const noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:116,1
    - Dst: load_public_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:117,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:118,1
    - Dst: snprintf
      Src: /src/rnp/src/lib/crypto/rsa.cpp:123,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/rsa.cpp:124,1
    - Dst: rnp::botan::op::Verify::Verify
      Src: /src/rnp/src/lib/crypto/rsa.cpp:126,1
    - Dst: botan_pk_op_verify_create
      Src: /src/rnp/src/lib/crypto/rsa.cpp:127,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:127,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:127,1
    - Dst: botan_pk_op_verify_update
      Src: /src/rnp/src/lib/crypto/rsa.cpp:128,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:128,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:128,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:128,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:131,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:131,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:134,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:134,1
    - Dst: rnp::secure_bytes::insert
      Src: /src/rnp/src/lib/crypto/rsa.cpp:135,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa.cpp:135,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:135,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:135,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:135,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/rsa.cpp:136,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:136,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:136,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:136,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/rsa.cpp:141,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:141,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:141,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - '        sig'
    - hash_alg
    - hash
    argTypes:
    - Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 145
    functionName: pgp::rsa::Key::verify_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::botan::op::Verify::Verify
    - rnp::secure_bytes::size
    - rnp::botan::Pubkey::get
    - s::data
    - botan_pk_op_verify_update
    - load_public_key
    - size
    - rnp::secure_bytes::insert
    - botan_pk_op_verify_finish
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_verify_create
    - rnp::Hash_Botan::name_backend
    - s::size
    - rnp::secure_bytes::data
    - rnp::botan::op::Verify::get
    - rnp::secure_bytes::end
    - snprintf
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Key::verify_pkcs1(const Signature &        sig,\n                  pgp_hash_alg_t
      \          hash_alg,\n                  const rnp::secure_bytes &hash) const
      noexcept"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:153,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:154,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:158,1
    - Dst: load_secret_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:159,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:160,1
    - Dst: snprintf
      Src: /src/rnp/src/lib/crypto/rsa.cpp:165,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/rsa.cpp:166,1
    - Dst: s::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:168,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:168,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:169,1
    - Dst: rnp::botan::op::Sign::Sign
      Src: /src/rnp/src/lib/crypto/rsa.cpp:170,1
    - Dst: botan_pk_op_sign_create
      Src: /src/rnp/src/lib/crypto/rsa.cpp:171,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:171,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:171,1
    - Dst: botan_pk_op_sign_update
      Src: /src/rnp/src/lib/crypto/rsa.cpp:172,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:172,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:172,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:172,1
    - Dst: botan_pk_op_sign_finish
      Src: /src/rnp/src/lib/crypto/rsa.cpp:173,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:173,1
    - Dst: handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:173,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:173,1
    - Dst: s::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:174,1
    - Dst: s::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - '               rng'
    - '              sig'
    - hash_alg
    - hash
    argTypes:
    - rnp::RNG
    - Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 179
    functionName: pgp::rsa::Key::sign_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - handle
    - rnp::secure_bytes::size
    - s::data
    - load_secret_key
    - size
    - botan_pk_op_sign_create
    - rnp::botan::Privkey::get
    - rnp::botan::op::Sign::get
    - s::resize
    - botan_pk_op_sign_finish
    - s::size
    - rnp::Hash_Botan::name_backend
    - rnp::botan::op::Sign::Sign
    - botan_pk_op_sign_update
    - rnp::secure_bytes::data
    - snprintf
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Key::sign_pkcs1(rnp::RNG &               rng,\n                Signature
      &              sig,\n                pgp_hash_alg_t           hash_alg,\n                const
      rnp::secure_bytes &hash) const noexcept"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:184,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:185,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:189,1
    - Dst: load_secret_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:190,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:191,1
    - Dst: rnp::botan::op::Decrypt::Decrypt
      Src: /src/rnp/src/lib/crypto/rsa.cpp:195,1
    - Dst: botan_pk_op_decrypt_create
      Src: /src/rnp/src/lib/crypto/rsa.cpp:196,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:196,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:196,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:201,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:201,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:205,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:205,1
    - Dst: rnp::secure_bytes::assign
      Src: /src/rnp/src/lib/crypto/rsa.cpp:208,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:208,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:208,1
    - Dst: rnp::secure_bytes::insert
      Src: /src/rnp/src/lib/crypto/rsa.cpp:209,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa.cpp:209,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:209,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:209,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:209,1
    - Dst: rnp::secure_bytes::assign
      Src: /src/rnp/src/lib/crypto/rsa.cpp:211,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:211,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:211,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:211,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:213,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:213,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:214,1
    - Dst: botan_pk_op_decrypt
      Src: /src/rnp/src/lib/crypto/rsa.cpp:215,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:215,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:215,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:215,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:215,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:216,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:219,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - rnp::secure_bytes
    - Encrypted
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 221
    functionName: pgp::rsa::Key::decrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - Encrypted::m::size
    - rnp::botan::op::Decrypt::Decrypt
    - rnp::botan::Privkey::Privkey
    - rnp::secure_bytes::size
    - rnp::secure_bytes::assign
    - load_secret_key
    - rnp::botan::Privkey::get
    - rnp::secure_bytes::insert
    - rnp::botan::op::Decrypt::get
    - botan_pk_op_decrypt
    - rnp::secure_bytes::resize
    - Encrypted::m::data
    - botan_pk_op_decrypt_create
    - rnp::secure_bytes::data
    - rnp::secure_bytes::end
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::decrypt_pkcs1(rnp::RNG &rng, rnp::secure_bytes &out,
      const Encrypted &in) const noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:230,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:231,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:232,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:233,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:234,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:235,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:240,1
    - Dst: botan_privkey_create
      Src: /src/rnp/src/lib/crypto/rsa.cpp:241,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:242,1
    - Dst: to_string
      Src: /src/rnp/src/lib/crypto/rsa.cpp:242,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:242,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:243,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:243,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:243,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/rsa.cpp:247,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:247,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:247,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/rsa.cpp:248,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:248,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:248,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/rsa.cpp:249,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:249,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:249,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/rsa.cpp:250,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:250,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:250,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/rsa.cpp:251,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:251,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:251,1
    - Dst: botan_mp_cmp
      Src: /src/rnp/src/lib/crypto/rsa.cpp:257,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:257,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:257,1
    - Dst: botan_mp_swap
      Src: /src/rnp/src/lib/crypto/rsa.cpp:259,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:259,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:259,1
    - Dst: botan_mp_mod_inverse
      Src: /src/rnp/src/lib/crypto/rsa.cpp:262,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:262,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:262,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:262,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:263,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:267,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:268,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:269,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:270,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:271,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:272,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 28
    argCount: 2
    argNames:
    - rng
    - numbits
    argTypes:
    - rnp::RNG
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 274
    functionName: pgp::rsa::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - botan_privkey_check_key
    - botan_mp_mod_inverse
    - rnp::RNG::handle
    - rnp::botan::Privkey::get
    - botan_privkey_get_field
    - to_string
    - botan_mp_cmp
    - rnp::bn::mpi
    - rnp::bn::get
    - botan_privkey_create
    - botan_mp_swap
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t numbits) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:46,1
    - Dst: botan_pubkey_load_rsa
      Src: /src/rnp/src/lib/crypto/rsa.cpp:49,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:49,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:49,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:49,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - bkey
    - key
    argTypes:
    - rnp::botan::Pubkey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 50
    functionName: pgp::rsa::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - botan_pubkey_load_rsa
    - rnp::bn::get
    - rnp::botan::Pubkey::get
    linkageType: ''
    returnType: bool
    signature: bool load_public_key(rnp::botan::Pubkey &bkey, const Key &key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:60,1
    - Dst: botan_privkey_load_rsa
      Src: /src/rnp/src/lib/crypto/rsa.cpp:64,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:64,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:64,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:64,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:64,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 2
    argNames:
    - bkey
    - key
    argTypes:
    - rnp::botan::Privkey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 65
    functionName: pgp::rsa::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::bn::get
    - rnp::botan::Privkey::get
    - botan_privkey_load_rsa
    linkageType: ''
    returnType: bool
    signature: bool load_secret_key(rnp::botan::Privkey &bkey, const Key &key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:71,1
    - Dst: load_public_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:72,1
    - Dst: botan_pubkey_check_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:72,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:72,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:72,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:81,1
    - Dst: load_secret_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:82,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:83,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:83,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:83,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 2
    argNames:
    - rng
    - secret
    argTypes:
    - rnp::RNG
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 67
    functionDepth: 2
    functionLinenumber: 67
    functionLinenumberEnd: 87
    functionName: pgp::rsa::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::get
    - botan_privkey_check_key
    - rnp::RNG::handle
    - load_public_key
    - load_secret_key
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - botan_pubkey_check_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::validate(rnp::RNG &rng, bool secret) const noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:92,1
    - Dst: load_public_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:93,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:94,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:98,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:98,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:99,1
    - Dst: rnp::botan::op::Encrypt::Encrypt
      Src: /src/rnp/src/lib/crypto/rsa.cpp:100,1
    - Dst: botan_pk_op_encrypt_create
      Src: /src/rnp/src/lib/crypto/rsa.cpp:101,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:101,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:101,1
    - Dst: botan_pk_op_encrypt
      Src: /src/rnp/src/lib/crypto/rsa.cpp:102,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:103,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:103,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:103,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:103,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:103,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:104,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:107,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 89
    functionDepth: 2
    functionLinenumber: 89
    functionLinenumberEnd: 109
    functionName: pgp::rsa::Key::encrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - Encrypted::m::size
    - botan_pk_op_encrypt_create
    - rnp::secure_bytes::size
    - rnp::botan::Pubkey::get
    - rnp::RNG::handle
    - load_public_key
    - Encrypted::m::resize
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_encrypt
    - rnp::botan::op::Encrypt::get
    - Encrypted::m::data
    - rnp::secure_bytes::data
    - size
    - rnp::botan::op::Encrypt::Encrypt
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::encrypt_pkcs1(rnp::RNG &rng, Encrypted &out, const
      rnp::secure_bytes &in) const noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:116,1
    - Dst: load_public_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:117,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:118,1
    - Dst: snprintf
      Src: /src/rnp/src/lib/crypto/rsa.cpp:123,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/rsa.cpp:124,1
    - Dst: rnp::botan::op::Verify::Verify
      Src: /src/rnp/src/lib/crypto/rsa.cpp:126,1
    - Dst: botan_pk_op_verify_create
      Src: /src/rnp/src/lib/crypto/rsa.cpp:127,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:127,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:127,1
    - Dst: botan_pk_op_verify_update
      Src: /src/rnp/src/lib/crypto/rsa.cpp:128,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:128,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:128,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:128,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:131,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:131,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:134,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:134,1
    - Dst: rnp::secure_bytes::insert
      Src: /src/rnp/src/lib/crypto/rsa.cpp:135,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa.cpp:135,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:135,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:135,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:135,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/rsa.cpp:136,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:136,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:136,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:136,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/rsa.cpp:141,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:141,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:141,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:141,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 20
    argCount: 3
    argNames:
    - '        sig'
    - hash_alg
    - hash
    argTypes:
    - Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 111
    functionDepth: 2
    functionLinenumber: 111
    functionLinenumberEnd: 145
    functionName: pgp::rsa::Key::verify_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::botan::op::Verify::Verify
    - rnp::secure_bytes::size
    - rnp::botan::Pubkey::get
    - s::data
    - botan_pk_op_verify_update
    - load_public_key
    - size
    - rnp::secure_bytes::insert
    - botan_pk_op_verify_finish
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_verify_create
    - rnp::Hash_Botan::name_backend
    - s::size
    - rnp::secure_bytes::data
    - rnp::botan::op::Verify::get
    - rnp::secure_bytes::end
    - snprintf
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Key::verify_pkcs1(const Signature &        sig,\n                  pgp_hash_alg_t
      \          hash_alg,\n                  const rnp::secure_bytes &hash) const
      noexcept"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:153,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:154,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:158,1
    - Dst: load_secret_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:159,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:160,1
    - Dst: snprintf
      Src: /src/rnp/src/lib/crypto/rsa.cpp:165,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/rsa.cpp:166,1
    - Dst: s::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:168,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:168,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:169,1
    - Dst: rnp::botan::op::Sign::Sign
      Src: /src/rnp/src/lib/crypto/rsa.cpp:170,1
    - Dst: botan_pk_op_sign_create
      Src: /src/rnp/src/lib/crypto/rsa.cpp:171,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:171,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:171,1
    - Dst: botan_pk_op_sign_update
      Src: /src/rnp/src/lib/crypto/rsa.cpp:172,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:172,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:172,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:172,1
    - Dst: botan_pk_op_sign_finish
      Src: /src/rnp/src/lib/crypto/rsa.cpp:173,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:173,1
    - Dst: handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:173,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:173,1
    - Dst: s::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:174,1
    - Dst: s::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:177,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 4
    argNames:
    - '               rng'
    - '              sig'
    - hash_alg
    - hash
    argTypes:
    - rnp::RNG
    - Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 179
    functionName: pgp::rsa::Key::sign_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - handle
    - rnp::secure_bytes::size
    - s::data
    - load_secret_key
    - size
    - botan_pk_op_sign_create
    - rnp::botan::Privkey::get
    - rnp::botan::op::Sign::get
    - s::resize
    - botan_pk_op_sign_finish
    - s::size
    - rnp::Hash_Botan::name_backend
    - rnp::botan::op::Sign::Sign
    - botan_pk_op_sign_update
    - rnp::secure_bytes::data
    - snprintf
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Key::sign_pkcs1(rnp::RNG &               rng,\n                Signature
      &              sig,\n                pgp_hash_alg_t           hash_alg,\n                const
      rnp::secure_bytes &hash) const noexcept"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:184,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:185,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:189,1
    - Dst: load_secret_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:190,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:191,1
    - Dst: rnp::botan::op::Decrypt::Decrypt
      Src: /src/rnp/src/lib/crypto/rsa.cpp:195,1
    - Dst: botan_pk_op_decrypt_create
      Src: /src/rnp/src/lib/crypto/rsa.cpp:196,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:196,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:196,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:201,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:201,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:205,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:205,1
    - Dst: rnp::secure_bytes::assign
      Src: /src/rnp/src/lib/crypto/rsa.cpp:208,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:208,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:208,1
    - Dst: rnp::secure_bytes::insert
      Src: /src/rnp/src/lib/crypto/rsa.cpp:209,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa.cpp:209,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:209,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:209,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:209,1
    - Dst: rnp::secure_bytes::assign
      Src: /src/rnp/src/lib/crypto/rsa.cpp:211,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:211,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:211,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:211,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:213,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:213,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:214,1
    - Dst: botan_pk_op_decrypt
      Src: /src/rnp/src/lib/crypto/rsa.cpp:215,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:215,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:215,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa.cpp:215,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa.cpp:215,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:216,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa.cpp:219,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 28
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - rnp::secure_bytes
    - Encrypted
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 181
    functionDepth: 2
    functionLinenumber: 181
    functionLinenumberEnd: 221
    functionName: pgp::rsa::Key::decrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - Encrypted::m::size
    - rnp::botan::op::Decrypt::Decrypt
    - rnp::botan::Privkey::Privkey
    - rnp::secure_bytes::size
    - rnp::secure_bytes::assign
    - load_secret_key
    - rnp::botan::Privkey::get
    - rnp::secure_bytes::insert
    - rnp::botan::op::Decrypt::get
    - botan_pk_op_decrypt
    - rnp::secure_bytes::resize
    - Encrypted::m::data
    - botan_pk_op_decrypt_create
    - rnp::secure_bytes::data
    - rnp::secure_bytes::end
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::decrypt_pkcs1(rnp::RNG &rng, rnp::secure_bytes &out,
      const Encrypted &in) const noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:230,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:231,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:232,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:233,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:234,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa.cpp:235,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/rsa.cpp:240,1
    - Dst: botan_privkey_create
      Src: /src/rnp/src/lib/crypto/rsa.cpp:241,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:242,1
    - Dst: to_string
      Src: /src/rnp/src/lib/crypto/rsa.cpp:242,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:242,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/rsa.cpp:243,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:243,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/rsa.cpp:243,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/rsa.cpp:247,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:247,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:247,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/rsa.cpp:248,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:248,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:248,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/rsa.cpp:249,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:249,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:249,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/rsa.cpp:250,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:250,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:250,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/rsa.cpp:251,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:251,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:251,1
    - Dst: botan_mp_cmp
      Src: /src/rnp/src/lib/crypto/rsa.cpp:257,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:257,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:257,1
    - Dst: botan_mp_swap
      Src: /src/rnp/src/lib/crypto/rsa.cpp:259,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:259,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:259,1
    - Dst: botan_mp_mod_inverse
      Src: /src/rnp/src/lib/crypto/rsa.cpp:262,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:262,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:262,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa.cpp:262,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa.cpp:263,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:267,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:268,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:269,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:270,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:271,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa.cpp:272,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 28
    argCount: 2
    argNames:
    - rng
    - numbits
    argTypes:
    - rnp::RNG
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 274
      start: 223
    functionDepth: 1
    functionLinenumber: 223
    functionLinenumberEnd: 274
    functionName: pgp::rsa::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/rsa.cpp
    functionUses: 0
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - botan_privkey_check_key
    - botan_mp_mod_inverse
    - rnp::RNG::handle
    - rnp::botan::Privkey::get
    - botan_privkey_get_field
    - to_string
    - botan_mp_cmp
    - rnp::bn::mpi
    - rnp::bn::get
    - botan_privkey_create
    - botan_mp_swap
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t numbits) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/crypto/ec.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: pgp::ec::Curve::bytes
    functionSourceFile: /src/rnp/src/lib/crypto/ec.h
    functionUses: 0
    functionsReached:
    - BITS_TO_BYTES
    linkageType: ''
    returnType: size_t
    signature: size_t bytes() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/ec.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: pgp::ec::Key::clear_secret
    functionSourceFile: /src/rnp/src/lib/crypto/ec.h
    functionUses: 0
    functionsReached:
    - forget
    linkageType: ''
    returnType: void
    signature: void clear_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_secret
      Src: /src/rnp/src/lib/crypto/ec.h: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: ~Key()
    functionSourceFile: /src/rnp/src/lib/crypto/ec.h
    functionUses: 0
    functionsReached:
    - clear_secret
    linkageType: ''
    returnType: void
    signature: void ~Key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/crypto/ec.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: pgp::ec::Curve::bytes
    functionSourceFile: /src/rnp/src/lib/crypto/ec.h
    functionUses: 0
    functionsReached:
    - BITS_TO_BYTES
    linkageType: ''
    returnType: size_t
    signature: size_t bytes() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/ec.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: pgp::ec::Key::clear_secret
    functionSourceFile: /src/rnp/src/lib/crypto/ec.h
    functionUses: 0
    functionsReached:
    - forget
    linkageType: ''
    returnType: void
    signature: void clear_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_secret
      Src: /src/rnp/src/lib/crypto/ec.h: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: ~Key()
    functionSourceFile: /src/rnp/src/lib/crypto/ec.h
    functionUses: 0
    functionsReached:
    - clear_secret
    linkageType: ''
    returnType: void
    signature: void ~Key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/crypto/ec.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: pgp::ec::Curve::bytes
    functionSourceFile: /src/rnp/src/lib/crypto/ec.h
    functionUses: 0
    functionsReached:
    - BITS_TO_BYTES
    linkageType: ''
    returnType: size_t
    signature: size_t bytes() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/ec.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: pgp::ec::Key::clear_secret
    functionSourceFile: /src/rnp/src/lib/crypto/ec.h
    functionUses: 0
    functionsReached:
    - forget
    linkageType: ''
    returnType: void
    signature: void clear_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_secret
      Src: /src/rnp/src/lib/crypto/ec.h: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: ~Key()
    functionSourceFile: /src/rnp/src/lib/crypto/ec.h
    functionUses: 0
    functionsReached:
    - clear_secret
    linkageType: ''
    returnType: void
    signature: void ~Key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: BITS_TO_BYTES
      Src: /src/rnp/src/lib/crypto/ec.h:103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 104
      start: 100
    functionDepth: 1
    functionLinenumber: 100
    functionLinenumberEnd: 104
    functionName: pgp::ec::Curve::bytes
    functionSourceFile: /src/rnp/src/lib/crypto/ec.h
    functionUses: 0
    functionsReached:
    - BITS_TO_BYTES
    linkageType: ''
    returnType: size_t
    signature: size_t bytes() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/ec.h:126,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 127
    functionName: pgp::ec::Key::clear_secret
    functionSourceFile: /src/rnp/src/lib/crypto/ec.h
    functionUses: 0
    functionsReached:
    - forget
    linkageType: ''
    returnType: void
    signature: void clear_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_secret
      Src: /src/rnp/src/lib/crypto/ec.h: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: ~Key()
    functionSourceFile: /src/rnp/src/lib/crypto/ec.h
    functionUses: 0
    functionsReached:
    - clear_secret
    linkageType: ''
    returnType: void
    signature: void ~Key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secure_clear
      Src: /src/rnp/src/lib/crypto/ec.h:190,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ec.h:190,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/ec.h:190,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ec.h:191,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 192
      start: 187
    functionDepth: 1
    functionLinenumber: 187
    functionLinenumberEnd: 192
    functionName: clear_secret
    functionSourceFile: /src/rnp/src/lib/crypto/ec.h
    functionUses: 37
    functionsReached:
    - resize
    - data
    - size
    - secure_clear
    linkageType: ''
    returnType: void
    signature: void clear_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_secret
      Src: /src/rnp/src/lib/crypto/ec.h:196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 197
      start: 194
    functionDepth: 2
    functionLinenumber: 194
    functionLinenumberEnd: 197
    functionName: ~pgp_ed25519_key_t()
    functionSourceFile: /src/rnp/src/lib/crypto/ec.h
    functionUses: 0
    functionsReached:
    - clear_secret
    linkageType: ''
    returnType: void
    signature: void ~pgp_ed25519_key_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: secure_clear
      Src: /src/rnp/src/lib/crypto/ec.h:214,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ec.h:214,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/ec.h:214,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ec.h:215,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 216
      start: 211
    functionDepth: 1
    functionLinenumber: 211
    functionLinenumberEnd: 216
    functionName: clear_secret
    functionSourceFile: /src/rnp/src/lib/crypto/ec.h
    functionUses: 38
    functionsReached:
    - resize
    - data
    - size
    - secure_clear
    linkageType: ''
    returnType: void
    signature: void clear_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_secret
      Src: /src/rnp/src/lib/crypto/ec.h:220,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 221
      start: 218
    functionDepth: 2
    functionLinenumber: 218
    functionLinenumberEnd: 221
    functionName: ~pgp_x25519_key_t()
    functionSourceFile: /src/rnp/src/lib/crypto/ec.h
    functionUses: 0
    functionsReached:
    - clear_secret
    linkageType: ''
    returnType: void
    signature: void ~pgp_x25519_key_t()
  - 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: pgp_sphincsplus_private_key_t::pgp_sphincsplus_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_sphincsplus_private_key_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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: pgp_sphincsplus_private_key_t::alg
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_pubkey_alg_t
    signature: pgp_pubkey_alg_t alg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::SecureBytes::SecureBytes
      Src: /src/rnp/src/lib/crypto/sphincsplus.h:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 71
    functionName: pgp_sphincsplus_private_key_t::secure_clear
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.h
    functionUses: 0
    functionsReached:
    - rnp::SecureBytes::SecureBytes
    linkageType: ''
    returnType: void
    signature: void secure_clear()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlock
      Src: /src/rnp/src/lib/crypto/sphincsplus.h:75,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 76
    functionName: pgp_sphincsplus_private_key_t::get_encoded
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.h
    functionUses: 0
    functionsReached:
    - unlock
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_encoded() const
  - 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: pgp_sphincsplus_public_key_t::pgp_sphincsplus_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_sphincsplus_public_key_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - pgp_sphincsplus_public_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 97
    functionName: operator==(const pgp_sphincsplus_public_key_t &rhs) const
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const pgp_sphincsplus_public_key_t &rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: pgp_sphincsplus_public_key_t::alg
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_pubkey_alg_t
    signature: pgp_pubkey_alg_t alg() const
  - 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: pgp_sphincsplus_public_key_t::get_encoded
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_encoded() 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: ~pgp_kyber_ecdh_composite_key_t()
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~pgp_kyber_ecdh_composite_key_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: pgp_kyber_ecdh_composite_key_t::is_initialized
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_initialized() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: kyber_ciphertext_size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.h:77,1
    - Dst: pgp_kyber_ecdh_composite_key_t::pk_alg_to_kyber_id
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.h:78,1
    - Dst: pgp_kyber_ecdh_composite_key_t::ecdh_curve_ephemeral_size
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.h:79,1
    - Dst: pgp_kyber_ecdh_composite_key_t::pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/kyber_ecdh_composite.h:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pk_alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 74
    functionDepth: 2
    functionLinenumber: 74
    functionLinenumberEnd: 81
    functionName: composite_ciphertext_size
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.h
    functionUses: 0
    functionsReached:
    - pgp_kyber_ecdh_composite_key_t::pk_alg_to_curve_id
    - pgp_kyber_ecdh_composite_key_t::pk_alg_to_kyber_id
    - kyber_ciphertext_size
    - pgp_kyber_ecdh_composite_key_t::ecdh_curve_ephemeral_size
    linkageType: ''
    returnType: size_t
    signature: size_t composite_ciphertext_size(pgp_pubkey_alg_t pk_alg)
  - 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: pgp_kyber_ecdh_composite_private_key_t::pgp_kyber_ecdh_composite_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_kyber_ecdh_composite_private_key_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 110
    functionDepth: 0
    functionLinenumber: 110
    functionLinenumberEnd: 114
    functionName: pgp_kyber_ecdh_composite_private_key_t::pk_alg
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: pgp_pubkey_alg_t
    signature: pgp_pubkey_alg_t pk_alg() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 142
    functionName: pgp_kyber_ecdh_composite_public_key_t::pgp_kyber_ecdh_composite_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_kyber_ecdh_composite_public_key_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - pgp_kyber_ecdh_composite_public_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 144
    functionDepth: 0
    functionLinenumber: 144
    functionLinenumberEnd: 149
    functionName: operator==(const pgp_kyber_ecdh_composite_public_key_t &rhs) const
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const pgp_kyber_ecdh_composite_public_key_t &rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: pgp_kyber_ecdh_composite_public_key_t::pk_alg
    functionSourceFile: /src/rnp/src/lib/crypto/kyber_ecdh_composite.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: pgp_pubkey_alg_t
    signature: pgp_pubkey_alg_t pk_alg() const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:43,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:43,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:44,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:44,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:48,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:48,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:49,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:49,1
    - Dst: std::vector<uint8_t>::resize
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:53,1
    - Dst: EVP_PKEY_get_raw_private_key
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:55,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:55,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:55,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:56,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:56,1
    - Dst: std::vector<uint8_t>::resize
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:59,1
    - Dst: EVP_PKEY_get_raw_public_key
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:61,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:61,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:61,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:62,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:62,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 5
    argNames:
    - rng
    - privkey
    - pubkey
    - nid
    - keylen
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 66
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 66
    functionName: ed_generate_native
    functionSourceFile: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - ERR_peek_last_error
    - std::vector<uint8_t>::resize
    - EVP_PKEY_keygen
    - EVP_PKEY_get_raw_public_key
    - rnp::ossl::evp::PKey::get
    - EVP_PKEY_keygen_init
    - std::vector<uint8_t>::data
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_get_raw_private_key
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ed_generate_native(rnp::RNG *            rng,\n                   std::vector<uint8_t>
      &privkey,\n                   std::vector<uint8_t> &pubkey,\n                   int
      \                  nid,\n                   size_t                keylen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:76,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:76,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:76,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:78,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:78,1
    - Dst: EVP_DigestSignInit
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:82,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:82,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:82,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:83,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:83,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:86,1
    - Dst: EVP_DigestSign
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:88,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:88,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:88,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:89,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:89,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:92,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 6
    argNames:
    - '      sig_out'
    - key
    - hash
    - hash_len
    - nid
    - siglen
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - uint8_t*
    - size_t
    - int
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 68
    functionDepth: 1
    functionLinenumber: 68
    functionLinenumberEnd: 94
    functionName: ed_sign_native
    functionSourceFile: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>::size
    - EVP_DigestSignInit
    - data
    - rnp::ossl::evp::MDCtx::get
    - resize
    - EVP_DigestSign
    - rnp::ossl::evp::PKey::get
    - EVP_PKEY_new_raw_private_key
    - ERR_peek_last_error
    - std::vector<uint8_t>::data
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ed_sign_native(std::vector<uint8_t> &      sig_out,\n
      \              const std::vector<uint8_t> &key,\n               const uint8_t
      *             hash,\n               size_t                      hash_len,\n
      \              int                         nid,\n               size_t                      siglen)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new_raw_public_key
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:103,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:103,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:103,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:105,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:105,1
    - Dst: EVP_DigestVerifyInit
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:109,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:109,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:109,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:110,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:110,1
    - Dst: EVP_DigestVerify
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:113,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:113,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:113,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:113,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 5
    argNames:
    - sig
    - key
    - hash
    - hash_len
    - nid
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - uint8_t*
    - size_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 117
      start: 96
    functionDepth: 1
    functionLinenumber: 96
    functionLinenumberEnd: 117
    functionName: ed_verify_native
    functionSourceFile: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>::size
    - rnp::ossl::evp::MDCtx::get
    - EVP_PKEY_new_raw_public_key
    - EVP_DigestVerifyInit
    - EVP_DigestVerify
    - rnp::ossl::evp::PKey::get
    - ERR_peek_last_error
    - std::vector<uint8_t>::data
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ed_verify_native(const std::vector<uint8_t> &sig,\n                 const
      std::vector<uint8_t> &key,\n                 const uint8_t *             hash,\n
      \                size_t                      hash_len,\n                 int
      \                        nid)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ed_generate_native
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:124,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rng
    - privkey
    - pubkey
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 119
    functionDepth: 2
    functionLinenumber: 119
    functionLinenumberEnd: 125
    functionName: generate_ed25519_native
    functionSourceFile: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp
    functionUses: 3
    functionsReached:
    - ed_generate_native
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t generate_ed25519_native(rnp::RNG *            rng,\n
      \                       std::vector<uint8_t> &privkey,\n                        std::vector<uint8_t>
      &pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ed_sign_native
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:134,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - rng
    - '      sig_out'
    - key
    - hash
    - hash_len
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 127
    functionDepth: 2
    functionLinenumber: 127
    functionLinenumberEnd: 135
    functionName: ed25519_sign_native
    functionSourceFile: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp
    functionUses: 4
    functionsReached:
    - ed_sign_native
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ed25519_sign_native(rnp::RNG *                  rng,\n
      \                   std::vector<uint8_t> &      sig_out,\n                    const
      std::vector<uint8_t> &key,\n                    const uint8_t *             hash,\n
      \                   size_t                      hash_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ed_verify_native
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - sig
    - key
    - hash
    - hash_len
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 137
    functionDepth: 2
    functionLinenumber: 137
    functionLinenumberEnd: 144
    functionName: ed25519_verify_native
    functionSourceFile: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp
    functionUses: 4
    functionsReached:
    - ed_verify_native
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ed25519_verify_native(const std::vector<uint8_t> &sig,\n
      \                     const std::vector<uint8_t> &key,\n                      const
      uint8_t *             hash,\n                      size_t                      hash_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new_raw_public_key
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:150,1
    - Dst: pgp_ed25519_key_t*::pub::data
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:150,1
    - Dst: pgp_ed25519_key_t*::pub::size
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:150,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:155,1
    - Dst: pgp_ed25519_key_t*::priv::data
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:156,1
    - Dst: pgp_ed25519_key_t*::priv::size
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:156,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG*
    - pgp_ed25519_key_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 162
    functionName: ed25519_validate_key_native
    functionSourceFile: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp
    functionUses: 2
    functionsReached:
    - pgp_ed25519_key_t*::priv::data
    - EVP_PKEY_new_raw_public_key
    - pgp_ed25519_key_t*::priv::size
    - EVP_PKEY_new_raw_private_key
    - pgp_ed25519_key_t*::pub::size
    - pgp_ed25519_key_t*::pub::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t ed25519_validate_key_native(rnp::RNG *rng, const pgp_ed25519_key_t
      *key, bool secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ed_generate_native
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:170,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - rng
    - privkey
    - pubkey
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 171
      start: 165
    functionDepth: 2
    functionLinenumber: 165
    functionLinenumberEnd: 171
    functionName: generate_ed448_native
    functionSourceFile: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp
    functionUses: 3
    functionsReached:
    - ed_generate_native
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t generate_ed448_native(rnp::RNG *            rng,\n                      std::vector<uint8_t>
      &privkey,\n                      std::vector<uint8_t> &pubkey)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ed_sign_native
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 5
    argNames:
    - rng
    - '      sig_out'
    - key
    - hash
    - hash_len
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 173
    functionDepth: 2
    functionLinenumber: 173
    functionLinenumberEnd: 181
    functionName: ed448_sign_native
    functionSourceFile: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp
    functionUses: 4
    functionsReached:
    - ed_sign_native
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ed448_sign_native(rnp::RNG *                  rng,\n
      \                 std::vector<uint8_t> &      sig_out,\n                  const
      std::vector<uint8_t> &key,\n                  const uint8_t *             hash,\n
      \                 size_t                      hash_len)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ed_verify_native
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:189,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - sig
    - key
    - hash
    - hash_len
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 190
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 190
    functionName: ed448_verify_native
    functionSourceFile: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp
    functionUses: 4
    functionsReached:
    - ed_verify_native
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ed448_verify_native(const std::vector<uint8_t> &sig,\n
      \                   const std::vector<uint8_t> &key,\n                    const
      uint8_t *             hash,\n                    size_t                      hash_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new_raw_public_key
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:196,1
    - Dst: pgp_ed448_key_t*::pub::data
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:196,1
    - Dst: pgp_ed448_key_t*::pub::size
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:196,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:201,1
    - Dst: pgp_ed448_key_t*::priv::data
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:202,1
    - Dst: pgp_ed448_key_t*::priv::size
      Src: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp:202,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG*
    - pgp_ed448_key_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 208
      start: 192
    functionDepth: 1
    functionLinenumber: 192
    functionLinenumberEnd: 208
    functionName: ed448_validate_key_native
    functionSourceFile: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp
    functionUses: 2
    functionsReached:
    - pgp_ed448_key_t*::priv::size
    - EVP_PKEY_new_raw_public_key
    - pgp_ed448_key_t*::pub::size
    - pgp_ed448_key_t*::priv::data
    - EVP_PKEY_new_raw_private_key
    - pgp_ed448_key_t*::pub::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t ed448_validate_key_native(rnp::RNG *rng, const pgp_ed448_key_t
      *key, bool secret)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:58,1
    - Dst: botan_privkey_create
      Src: /src/rnp/src/lib/crypto/ec.cpp:59,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:59,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/ec.cpp:59,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:63,1
    - Dst: botan_privkey_export_pubkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:64,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:64,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:64,1
    - Dst: botan_privkey_x25519_get_privkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:70,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:70,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ec.cpp:70,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ec.cpp:73,1
    - Dst: x25519_tweak_bits
      Src: /src/rnp/src/lib/crypto/ec.cpp:78,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ec.cpp:82,1
    - Dst: botan_pubkey_x25519_get_pubkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:83,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:83,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 88
    functionName: pgp::ec::Key::generate_x25519
    functionSourceFile: /src/rnp/src/lib/crypto/ec.cpp
    functionUses: 0
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::get
    - rnp::secure_array::data
    - rnp::RNG::handle
    - botan_privkey_export_pubkey
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - resize
    - botan_privkey_x25519_get_privkey
    - x25519_tweak_bits
    - botan_privkey_create
    - botan_pubkey_x25519_get_pubkey
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate_x25519(rnp::RNG &rng)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::alg_allows
      Src: /src/rnp/src/lib/crypto/ec.cpp:99,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/crypto/ec.cpp:103,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ec.cpp:104,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:105,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:111,1
    - Dst: botan_privkey_create
      Src: /src/rnp/src/lib/crypto/ec.cpp:112,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:112,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/ec.cpp:112,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:116,1
    - Dst: botan_privkey_export_pubkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:117,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:117,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:117,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ec.cpp:121,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ec.cpp:122,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ec.cpp:123,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec.cpp:126,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/ec.cpp:130,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:130,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:130,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/ec.cpp:131,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:131,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:131,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/ec.cpp:132,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:132,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:132,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/ec.cpp:137,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/ec.cpp:138,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/ec.cpp:138,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec.cpp:139,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ec.cpp:152,1
    - Dst: rnp::bn::bin
      Src: /src/rnp/src/lib/crypto/ec.cpp:154,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/ec.cpp:154,1
    - Dst: rnp::bn::bin
      Src: /src/rnp/src/lib/crypto/ec.cpp:155,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/ec.cpp:155,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/ec.cpp:157,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - rng
    - alg_id
    - curve
    argTypes:
    - rnp::RNG
    - pgp_pubkey_alg_t
    - pgp_curve_t
    assertStmts:
    - condition: (ec_algo)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/rnp/src/lib/crypto/ec.cpp
    constantsTouched: []
    func_position:
      end: 159
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 159
    functionName: pgp::ec::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/ec.cpp
    functionUses: 4
    functionsReached:
    - botan_privkey_export_pubkey
    - botan_privkey_get_field
    - botan_privkey_create
    - rnp::bn::bin
    - rnp::botan::Pubkey::get
    - rnp::RNG::handle
    - botan_pubkey_get_field
    - pgp::ec::Curve::get
    - rnp::bn::bytes
    - rnp::bn::get
    - rnp::bn::mpi
    - RNP_LOG
    - rnp::botan::Privkey::get
    - id_str_pair::lookup
    - pgp::ec::Curve::alg_allows
    - resize
    - assert
    - auto::bytes
    - rnp::bn::bn
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::Pubkey
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, const pgp_pubkey_alg_t alg_id,
      const pgp_curve_t curve)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:58,1
    - Dst: botan_privkey_create
      Src: /src/rnp/src/lib/crypto/ec.cpp:59,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:59,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/ec.cpp:59,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:63,1
    - Dst: botan_privkey_export_pubkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:64,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:64,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:64,1
    - Dst: botan_privkey_x25519_get_privkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:70,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:70,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ec.cpp:70,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ec.cpp:73,1
    - Dst: x25519_tweak_bits
      Src: /src/rnp/src/lib/crypto/ec.cpp:78,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ec.cpp:82,1
    - Dst: botan_pubkey_x25519_get_pubkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:83,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:83,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 88
    functionName: pgp::ec::Key::generate_x25519
    functionSourceFile: /src/rnp/src/lib/crypto/ec.cpp
    functionUses: 0
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::get
    - rnp::secure_array::data
    - rnp::RNG::handle
    - botan_privkey_export_pubkey
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - resize
    - botan_privkey_x25519_get_privkey
    - x25519_tweak_bits
    - botan_privkey_create
    - botan_pubkey_x25519_get_pubkey
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate_x25519(rnp::RNG &rng)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::alg_allows
      Src: /src/rnp/src/lib/crypto/ec.cpp:99,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/crypto/ec.cpp:103,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ec.cpp:104,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:105,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:111,1
    - Dst: botan_privkey_create
      Src: /src/rnp/src/lib/crypto/ec.cpp:112,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:112,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/ec.cpp:112,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:116,1
    - Dst: botan_privkey_export_pubkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:117,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:117,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:117,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ec.cpp:121,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ec.cpp:122,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ec.cpp:123,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec.cpp:126,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/ec.cpp:130,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:130,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:130,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/ec.cpp:131,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:131,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:131,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/ec.cpp:132,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:132,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:132,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/ec.cpp:137,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/ec.cpp:138,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/ec.cpp:138,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec.cpp:139,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ec.cpp:152,1
    - Dst: rnp::bn::bin
      Src: /src/rnp/src/lib/crypto/ec.cpp:154,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/ec.cpp:154,1
    - Dst: rnp::bn::bin
      Src: /src/rnp/src/lib/crypto/ec.cpp:155,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/ec.cpp:155,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/ec.cpp:157,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - rng
    - alg_id
    - curve
    argTypes:
    - rnp::RNG
    - pgp_pubkey_alg_t
    - pgp_curve_t
    assertStmts:
    - condition: (ec_algo)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/rnp/src/lib/crypto/ec.cpp
    constantsTouched: []
    func_position:
      end: 159
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 159
    functionName: pgp::ec::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/ec.cpp
    functionUses: 4
    functionsReached:
    - botan_privkey_export_pubkey
    - botan_privkey_get_field
    - botan_privkey_create
    - rnp::bn::bin
    - rnp::botan::Pubkey::get
    - rnp::RNG::handle
    - botan_pubkey_get_field
    - pgp::ec::Curve::get
    - rnp::bn::bytes
    - rnp::bn::get
    - rnp::bn::mpi
    - RNP_LOG
    - rnp::botan::Privkey::get
    - id_str_pair::lookup
    - pgp::ec::Curve::alg_allows
    - resize
    - assert
    - auto::bytes
    - rnp::bn::bn
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::Pubkey
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, const pgp_pubkey_alg_t alg_id,
      const pgp_curve_t curve)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:58,1
    - Dst: botan_privkey_create
      Src: /src/rnp/src/lib/crypto/ec.cpp:59,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:59,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/ec.cpp:59,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:63,1
    - Dst: botan_privkey_export_pubkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:64,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:64,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:64,1
    - Dst: botan_privkey_x25519_get_privkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:70,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:70,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ec.cpp:70,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ec.cpp:73,1
    - Dst: x25519_tweak_bits
      Src: /src/rnp/src/lib/crypto/ec.cpp:78,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ec.cpp:82,1
    - Dst: botan_pubkey_x25519_get_pubkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:83,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:83,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 88
    functionName: pgp::ec::Key::generate_x25519
    functionSourceFile: /src/rnp/src/lib/crypto/ec.cpp
    functionUses: 0
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::get
    - rnp::secure_array::data
    - rnp::RNG::handle
    - botan_privkey_export_pubkey
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - resize
    - botan_privkey_x25519_get_privkey
    - x25519_tweak_bits
    - botan_privkey_create
    - botan_pubkey_x25519_get_pubkey
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate_x25519(rnp::RNG &rng)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::alg_allows
      Src: /src/rnp/src/lib/crypto/ec.cpp:99,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/crypto/ec.cpp:103,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ec.cpp:104,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:105,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:111,1
    - Dst: botan_privkey_create
      Src: /src/rnp/src/lib/crypto/ec.cpp:112,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:112,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/ec.cpp:112,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:116,1
    - Dst: botan_privkey_export_pubkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:117,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:117,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:117,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ec.cpp:121,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ec.cpp:122,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ec.cpp:123,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec.cpp:126,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/ec.cpp:130,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:130,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:130,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/ec.cpp:131,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:131,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:131,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/ec.cpp:132,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:132,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:132,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/ec.cpp:137,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/ec.cpp:138,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/ec.cpp:138,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec.cpp:139,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ec.cpp:152,1
    - Dst: rnp::bn::bin
      Src: /src/rnp/src/lib/crypto/ec.cpp:154,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/ec.cpp:154,1
    - Dst: rnp::bn::bin
      Src: /src/rnp/src/lib/crypto/ec.cpp:155,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/ec.cpp:155,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/ec.cpp:157,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - rng
    - alg_id
    - curve
    argTypes:
    - rnp::RNG
    - pgp_pubkey_alg_t
    - pgp_curve_t
    assertStmts:
    - condition: (ec_algo)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/rnp/src/lib/crypto/ec.cpp
    constantsTouched: []
    func_position:
      end: 159
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 159
    functionName: pgp::ec::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/ec.cpp
    functionUses: 4
    functionsReached:
    - botan_privkey_export_pubkey
    - botan_privkey_get_field
    - botan_privkey_create
    - rnp::bn::bin
    - rnp::botan::Pubkey::get
    - rnp::RNG::handle
    - botan_pubkey_get_field
    - pgp::ec::Curve::get
    - rnp::bn::bytes
    - rnp::bn::get
    - rnp::bn::mpi
    - RNP_LOG
    - rnp::botan::Privkey::get
    - id_str_pair::lookup
    - pgp::ec::Curve::alg_allows
    - resize
    - assert
    - auto::bytes
    - rnp::bn::bn
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::Pubkey
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, const pgp_pubkey_alg_t alg_id,
      const pgp_curve_t curve)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:58,1
    - Dst: botan_privkey_create
      Src: /src/rnp/src/lib/crypto/ec.cpp:59,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:59,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/ec.cpp:59,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:63,1
    - Dst: botan_privkey_export_pubkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:64,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:64,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:64,1
    - Dst: botan_privkey_x25519_get_privkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:70,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:70,1
    - Dst: rnp::secure_array::data
      Src: /src/rnp/src/lib/crypto/ec.cpp:70,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ec.cpp:73,1
    - Dst: x25519_tweak_bits
      Src: /src/rnp/src/lib/crypto/ec.cpp:78,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ec.cpp:82,1
    - Dst: botan_pubkey_x25519_get_pubkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:83,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:83,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 88
      start: 55
    functionDepth: 2
    functionLinenumber: 55
    functionLinenumberEnd: 88
    functionName: pgp::ec::Key::generate_x25519
    functionSourceFile: /src/rnp/src/lib/crypto/ec.cpp
    functionUses: 0
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::get
    - rnp::secure_array::data
    - rnp::RNG::handle
    - botan_privkey_export_pubkey
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - resize
    - botan_privkey_x25519_get_privkey
    - x25519_tweak_bits
    - botan_privkey_create
    - botan_pubkey_x25519_get_pubkey
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate_x25519(rnp::RNG &rng)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::alg_allows
      Src: /src/rnp/src/lib/crypto/ec.cpp:99,1
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/crypto/ec.cpp:103,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/ec.cpp:104,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:105,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:111,1
    - Dst: botan_privkey_create
      Src: /src/rnp/src/lib/crypto/ec.cpp:112,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:112,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/ec.cpp:112,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:116,1
    - Dst: botan_privkey_export_pubkey
      Src: /src/rnp/src/lib/crypto/ec.cpp:117,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:117,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:117,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ec.cpp:121,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ec.cpp:122,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/ec.cpp:123,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec.cpp:126,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/ec.cpp:130,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:130,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:130,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/ec.cpp:131,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:131,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:131,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/ec.cpp:132,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:132,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:132,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/ec.cpp:137,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/ec.cpp:138,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/ec.cpp:138,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec.cpp:139,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/ec.cpp:152,1
    - Dst: rnp::bn::bin
      Src: /src/rnp/src/lib/crypto/ec.cpp:154,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/ec.cpp:154,1
    - Dst: rnp::bn::bin
      Src: /src/rnp/src/lib/crypto/ec.cpp:155,1
    - Dst: rnp::bn::bytes
      Src: /src/rnp/src/lib/crypto/ec.cpp:155,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/ec.cpp:157,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 31
    argCount: 3
    argNames:
    - rng
    - alg_id
    - curve
    argTypes:
    - rnp::RNG
    - pgp_pubkey_alg_t
    - pgp_curve_t
    assertStmts:
    - condition: (ec_algo)
      pos:
        line_end: 103
        line_start: 103
        source_file: /src/rnp/src/lib/crypto/ec.cpp
    constantsTouched: []
    func_position:
      end: 159
      start: 90
    functionDepth: 1
    functionLinenumber: 90
    functionLinenumberEnd: 159
    functionName: pgp::ec::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/ec.cpp
    functionUses: 4
    functionsReached:
    - botan_privkey_export_pubkey
    - botan_privkey_get_field
    - botan_privkey_create
    - rnp::bn::bin
    - rnp::botan::Pubkey::get
    - rnp::RNG::handle
    - botan_pubkey_get_field
    - pgp::ec::Curve::get
    - rnp::bn::bytes
    - rnp::bn::get
    - rnp::bn::mpi
    - RNP_LOG
    - rnp::botan::Privkey::get
    - id_str_pair::lookup
    - pgp::ec::Curve::alg_allows
    - resize
    - assert
    - auto::bytes
    - rnp::bn::bn
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::Pubkey
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, const pgp_pubkey_alg_t alg_id,
      const pgp_curve_t curve)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 19
    argCount: 1
    argNames:
    - curve
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 186
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 186
    functionName: is_generic_prime_curve
    functionSourceFile: /src/rnp/src/lib/crypto/ec.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_generic_prime_curve(pgp_curve_t curve)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_generic_prime_curve
      Src: /src/rnp/src/lib/crypto/ec.cpp:194,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ec.cpp:195,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ec.cpp:199,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/ec.cpp:200,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/ec.cpp:202,1
    - Dst: Botan::EC_Group::from_name
      Src: /src/rnp/src/lib/crypto/ec.cpp:203,1
    - Dst: rnpffi::Key::unlock
      Src: /src/rnp/src/lib/crypto/ec.cpp:206,1
    - Dst: Botan::ECDH_PrivateKey::public_point
      Src: /src/rnp/src/lib/crypto/ec.cpp:206,1
    - Dst: std::vector<uint8_t>::insert
      Src: /src/rnp/src/lib/crypto/ec.cpp:207,1
    - Dst: std::vector<uint8_t>::begin
      Src: /src/rnp/src/lib/crypto/ec.cpp:207,1
    - Dst: std::vector<uint8_t>
      Src: /src/rnp/src/lib/crypto/ec.cpp:209,1
    - Dst: Botan::ECDH_PrivateKey::private_value
      Src: /src/rnp/src/lib/crypto/ec.cpp:210,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 4
    argNames:
    - rng
    - privkey
    - pubkey
    - curve
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 213
      start: 188
    functionDepth: 1
    functionLinenumber: 188
    functionLinenumberEnd: 213
    functionName: ec_generate_generic_native
    functionSourceFile: /src/rnp/src/lib/crypto/ec.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>
    - Botan::EC_Group::from_name
    - rnpffi::Key::unlock
    - std::vector<uint8_t>::insert
    - pgp::ec::Curve::get
    - Botan::ECDH_PrivateKey::private_value
    - Botan::ECDH_PrivateKey::public_point
    - std::vector<uint8_t>::begin
    - auto::bytes
    - is_generic_prime_curve
    - rnp::RNG*::obj
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ec_generate_generic_native(rnp::RNG *            rng,\n
      \                          std::vector<uint8_t> &privkey,\n                           std::vector<uint8_t>
      &pubkey,\n                           pgp_curve_t           curve)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: generate_x25519_native
      Src: /src/rnp/src/lib/crypto/ec.cpp:223,1
    - Dst: generate_ed25519_native
      Src: /src/rnp/src/lib/crypto/ec.cpp:225,1
    - Dst: generate_x448_native
      Src: /src/rnp/src/lib/crypto/ec.cpp:228,1
    - Dst: generate_ed448_native
      Src: /src/rnp/src/lib/crypto/ec.cpp:230,1
    - Dst: ec_generate_generic_native
      Src: /src/rnp/src/lib/crypto/ec.cpp:235,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 14
    argCount: 4
    argNames:
    - rng
    - privkey
    - pubkey
    - curve
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 236
    functionName: ec_generate_native
    functionSourceFile: /src/rnp/src/lib/crypto/ec.cpp
    functionUses: 4
    functionsReached:
    - generate_x25519_native
    - ec_generate_generic_native
    - generate_ed448_native
    - generate_ed25519_native
    - generate_x448_native
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t ec_generate_native(rnp::RNG *            rng,\n                   std::vector<uint8_t>
      &privkey,\n                   std::vector<uint8_t> &pubkey,\n                   pgp_curve_t
      \          curve)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hkdf::create
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:51,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:52,1
    - Dst: pgp_key_size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:52,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:55,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:55,1
    - Dst: begin
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:56,1
    - Dst: end
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:57,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:58,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:58,1
    - Dst: begin
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:59,1
    - Dst: end
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:60,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:61,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:61,1
    - Dst: begin
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:61,1
    - Dst: end
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:61,1
    - Dst: auto::extract_expand
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:63,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:65,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:66,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:67,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:68,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:69,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 5
    argNames:
    - '      derived_key'
    - ephemeral_pubkey_material
    - recipient_pubkey_material
    - shared_key
    - info_str
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 44
    functionDepth: 1
    functionLinenumber: 44
    functionLinenumberEnd: 71
    functionName: x_hkdf
    functionSourceFile: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp
    functionUses: 4
    functionsReached:
    - auto::extract_expand
    - std::vector<uint8_t>::size
    - data
    - std::vector::insert
    - end
    - rnp::Hkdf::create
    - resize
    - std::vector::end
    - pgp_key_size
    - std::vector::size
    - std::vector<uint8_t>::data
    - begin
    - std::vector::data
    - size
    linkageType: ''
    returnType: void
    signature: "void x_hkdf(std::vector<uint8_t> &      derived_key,\n       const
      std::vector<uint8_t> &ephemeral_pubkey_material,\n       const std::vector<uint8_t>
      &recipient_pubkey_material,\n       const std::vector<uint8_t> &shared_key,\n
      \      const std::vector<uint8_t> &info_str)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: EVP_get_cipherbyname
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:79,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:81,1
    - Dst: EVP_CIPHER_CTX_set_flags
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:88,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:88,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:89,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:89,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:89,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:90,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:90,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:93,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:94,1
    - Dst: EVP_EncryptUpdate
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:95,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:95,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:95,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:96,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:96,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:99,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 20
    argCount: 4
    argNames:
    - '      out'
    - in
    - in_len
    - kek
    argTypes:
    - std::vector<uint8_t>
    - uint8_t*
    - size_t
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 101
      start: 73
    functionDepth: 1
    functionLinenumber: 73
    functionLinenumberEnd: 101
    functionName: rfc3394_wrap
    functionSourceFile: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - EVP_CIPHER_CTX_set_flags
    - data
    - EVP_get_cipherbyname
    - EVP_EncryptInit_ex
    - resize
    - rnp::ossl::evp::CipherCtx::get
    - ERR_peek_last_error
    - std::vector<uint8_t>::data
    - size
    - EVP_EncryptUpdate
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t rfc3394_wrap(std::vector<uint8_t> &      out,\n             const
      uint8_t *             in,\n             size_t                      in_len,\n
      \            const std::vector<uint8_t> &kek)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:108,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:108,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:109,1
    - Dst: EVP_get_cipherbyname
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:112,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:114,1
    - Dst: EVP_CIPHER_CTX_set_flags
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:121,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:121,1
    - Dst: EVP_DecryptInit_ex
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:122,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:122,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:122,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:123,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:123,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:126,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:126,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:127,1
    - Dst: EVP_DecryptUpdate
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:128,1
    - Dst: rnp::ossl::evp::CipherCtx::get
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:128,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:128,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:128,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:128,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:129,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:129,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:132,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 24
    argCount: 3
    argNames:
    - '      out'
    - in
    - kek
    argTypes:
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 103
    functionDepth: 1
    functionLinenumber: 103
    functionLinenumberEnd: 134
    functionName: rfc3394_unwrap
    functionSourceFile: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - std::vector<uint8_t>::size
    - EVP_CIPHER_CTX_set_flags
    - data
    - EVP_get_cipherbyname
    - EVP_DecryptInit_ex
    - EVP_DecryptUpdate
    - resize
    - rnp::ossl::evp::CipherCtx::get
    - ERR_peek_last_error
    - std::vector<uint8_t>::data
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t rfc3394_unwrap(std::vector<uint8_t> &      out,\n               const
      std::vector<uint8_t> &in,\n               const std::vector<uint8_t> &kek)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:142,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:142,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:143,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:143,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:147,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:147,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:148,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:148,1
    - Dst: std::vector<uint8_t>::resize
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:152,1
    - Dst: std::vector<uint8_t>::resize
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:154,1
    - Dst: EVP_PKEY_get_raw_private_key
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:156,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:156,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:156,1
    - Dst: EVP_PKEY_get_raw_public_key
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:157,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:157,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:157,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:158,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:158,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - rng
    - privkey
    - pubkey
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 136
    functionDepth: 1
    functionLinenumber: 136
    functionLinenumberEnd: 162
    functionName: generate_x25519_native
    functionSourceFile: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - ERR_peek_last_error
    - std::vector<uint8_t>::resize
    - EVP_PKEY_keygen
    - EVP_PKEY_get_raw_public_key
    - rnp::ossl::evp::PKey::get
    - EVP_PKEY_keygen_init
    - std::vector<uint8_t>::data
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_get_raw_private_key
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t generate_x25519_native(rnp::RNG *            rng,\n                       std::vector<uint8_t>
      &privkey,\n                       std::vector<uint8_t> &pubkey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:176,1
    - Dst: ecdh_kem_public_key_t::encapsulate
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:182,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:184,1
    - Dst: x_hkdf
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:188,1
    - Dst: rfc3394_wrap
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:190,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:192,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - rng
    - pubkey
    - in
    - in_len
    - encrypted
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - uint8_t*
    - size_t
    - pgp_x25519_encrypted_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 195
      start: 164
    functionDepth: 2
    functionLinenumber: 164
    functionLinenumberEnd: 195
    functionName: x25519_native_encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - rfc3394_wrap
    - ecdh_kem_public_key_t::encapsulate
    - x_hkdf
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t x25519_native_encrypt(rnp::RNG *                  rng,\n
      \                     const std::vector<uint8_t> &pubkey,\n                      const
      uint8_t *             in,\n                      size_t                      in_len,\n
      \                     pgp_x25519_encrypted_t *    encrypted)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp_x25519_encrypted_t*::eph_key::size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:209,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:210,1
    - Dst: pgp_x25519_encrypted_t*::enc_sess_key::size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:213,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:214,1
    - Dst: ecdh_kem_private_key_t::decapsulate
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:220,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:222,1
    - Dst: x_hkdf
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:226,1
    - Dst: rfc3394_unwrap
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:229,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:231,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:234,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:235,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:238,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:239,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:239,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:239,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 5
    argNames:
    - rng
    - '      keypair'
    - encrypted
    - decbuf
    - decbuf_len
    argTypes:
    - rnp::RNG*
    - pgp_x25519_key_t
    - pgp_x25519_encrypted_t*
    - uint8_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 197
    functionDepth: 2
    functionLinenumber: 197
    functionLinenumberEnd: 241
    functionName: x25519_native_decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - pgp_x25519_encrypted_t*::eph_key::size
    - ecdh_kem_private_key_t::decapsulate
    - memcpy
    - x_hkdf
    - rfc3394_unwrap
    - pgp_x25519_encrypted_t*::enc_sess_key::size
    - std::vector::size
    - std::vector::data
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t x25519_native_decrypt(rnp::RNG *                    rng,\n
      \                     const pgp_x25519_key_t &      keypair,\n                      const
      pgp_x25519_encrypted_t *encrypted,\n                      uint8_t *                     decbuf,\n
      \                     size_t *                      decbuf_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new_raw_public_key
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:248,1
    - Dst: pgp_x25519_key_t*::priv::data
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:248,1
    - Dst: pgp_x25519_key_t*::priv::size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:248,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:253,1
    - Dst: pgp_x25519_key_t*::priv::data
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:254,1
    - Dst: pgp_x25519_key_t*::priv::size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:254,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG*
    - pgp_x25519_key_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 243
    functionDepth: 1
    functionLinenumber: 243
    functionLinenumberEnd: 260
    functionName: x25519_validate_key_native
    functionSourceFile: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp
    functionUses: 2
    functionsReached:
    - EVP_PKEY_new_raw_private_key
    - EVP_PKEY_new_raw_public_key
    - pgp_x25519_key_t*::priv::data
    - pgp_x25519_key_t*::priv::size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t x25519_validate_key_native(rnp::RNG *rng, const pgp_x25519_key_t
      *key, bool secret)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:269,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:269,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:270,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:270,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:274,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:274,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:275,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:275,1
    - Dst: std::vector<uint8_t>::resize
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:279,1
    - Dst: std::vector<uint8_t>::resize
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:281,1
    - Dst: EVP_PKEY_get_raw_private_key
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:283,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:283,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:283,1
    - Dst: EVP_PKEY_get_raw_public_key
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:284,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:284,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:284,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:285,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:285,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 3
    argNames:
    - rng
    - privkey
    - pubkey
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 289
      start: 263
    functionDepth: 1
    functionLinenumber: 263
    functionLinenumberEnd: 289
    functionName: generate_x448_native
    functionSourceFile: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - ERR_peek_last_error
    - std::vector<uint8_t>::resize
    - EVP_PKEY_keygen
    - EVP_PKEY_get_raw_public_key
    - rnp::ossl::evp::PKey::get
    - EVP_PKEY_keygen_init
    - std::vector<uint8_t>::data
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_get_raw_private_key
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t generate_x448_native(rnp::RNG *            rng,\n                     std::vector<uint8_t>
      &privkey,\n                     std::vector<uint8_t> &pubkey)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:303,1
    - Dst: ecdh_kem_public_key_t::encapsulate
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:309,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:311,1
    - Dst: x_hkdf
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:315,1
    - Dst: rfc3394_wrap
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:317,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:319,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 5
    argNames:
    - rng
    - pubkey
    - in
    - in_len
    - encrypted
    argTypes:
    - rnp::RNG*
    - std::vector<uint8_t>
    - uint8_t*
    - size_t
    - pgp_x448_encrypted_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 322
      start: 291
    functionDepth: 2
    functionLinenumber: 291
    functionLinenumberEnd: 322
    functionName: x448_native_encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rfc3394_wrap
    - ecdh_kem_public_key_t::encapsulate
    - x_hkdf
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t x448_native_encrypt(rnp::RNG *                  rng,\n
      \                   const std::vector<uint8_t> &pubkey,\n                    const
      uint8_t *             in,\n                    size_t                      in_len,\n
      \                   pgp_x448_encrypted_t *      encrypted)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp_x448_encrypted_t*::eph_key::size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:336,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:337,1
    - Dst: pgp_x448_encrypted_t*::enc_sess_key::size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:340,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:341,1
    - Dst: ecdh_kem_private_key_t::decapsulate
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:347,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:349,1
    - Dst: x_hkdf
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:353,1
    - Dst: rfc3394_unwrap
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:356,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:358,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:361,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:362,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:365,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:366,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:366,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:366,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 5
    argNames:
    - rng
    - '      keypair'
    - encrypted
    - decbuf
    - decbuf_len
    argTypes:
    - rnp::RNG*
    - pgp_x448_key_t
    - pgp_x448_encrypted_t*
    - uint8_t*
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 368
      start: 324
    functionDepth: 2
    functionLinenumber: 324
    functionLinenumberEnd: 368
    functionName: x448_native_decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - pgp_x448_encrypted_t*::eph_key::size
    - ecdh_kem_private_key_t::decapsulate
    - memcpy
    - pgp_x448_encrypted_t*::enc_sess_key::size
    - x_hkdf
    - rfc3394_unwrap
    - std::vector::size
    - std::vector::data
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t x448_native_decrypt(rnp::RNG *                  rng,\n
      \                   const pgp_x448_key_t &      keypair,\n                    const
      pgp_x448_encrypted_t *encrypted,\n                    uint8_t *                   decbuf,\n
      \                   size_t *                    decbuf_len)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new_raw_public_key
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:375,1
    - Dst: pgp_x448_key_t*::priv::data
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:375,1
    - Dst: pgp_x448_key_t*::priv::size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:375,1
    - Dst: EVP_PKEY_new_raw_private_key
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:380,1
    - Dst: pgp_x448_key_t*::priv::data
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:381,1
    - Dst: pgp_x448_key_t*::priv::size
      Src: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp:381,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG*
    - pgp_x448_key_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 387
      start: 370
    functionDepth: 1
    functionLinenumber: 370
    functionLinenumberEnd: 387
    functionName: x448_validate_key_native
    functionSourceFile: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp
    functionUses: 2
    functionsReached:
    - EVP_PKEY_new_raw_private_key
    - EVP_PKEY_new_raw_public_key
    - pgp_x448_key_t*::priv::size
    - pgp_x448_key_t*::priv::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t x448_validate_key_native(rnp::RNG *rng, const pgp_x448_key_t
      *key, bool secret)
  - 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: ~ec_key_t()
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ec_key_t()
  - 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: ec_key_t::ec_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ec_key_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 63
      start: 59
    functionDepth: 0
    functionLinenumber: 59
    functionLinenumberEnd: 63
    functionName: ec_key_t::get_curve
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t get_curve() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 73
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 73
    functionName: ecdh_kem_public_key_t::ecdh_kem_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ecdh_kem_public_key_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - ecdh_kem_public_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 75
    functionDepth: 0
    functionLinenumber: 75
    functionLinenumberEnd: 79
    functionName: operator==(const ecdh_kem_public_key_t &rhs) const
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const ecdh_kem_public_key_t &rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: ecdh_kem_public_key_t::get_encoded
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_encoded() const
  - 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: ecdh_kem_private_key_t::ecdh_kem_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ecdh_kem_private_key_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlock
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.h:108,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 109
    functionName: ecdh_kem_private_key_t::get_encoded
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.h
    functionUses: 0
    functionsReached:
    - unlock
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_encoded() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 130
    functionDepth: 0
    functionLinenumber: 130
    functionLinenumberEnd: 130
    functionName: exdsa_public_key_t::exdsa_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void exdsa_public_key_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - exdsa_public_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: operator==(const exdsa_public_key_t &rhs) const
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const exdsa_public_key_t &rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 140
    functionDepth: 0
    functionLinenumber: 140
    functionLinenumberEnd: 144
    functionName: exdsa_public_key_t::get_encoded
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_encoded() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 160
    functionName: exdsa_private_key_t::exdsa_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.h
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void exdsa_private_key_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unlock
      Src: /src/rnp/src/lib/crypto/exdsa_ecdhkem.h:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 0
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: exdsa_private_key_t::get_encoded
    functionSourceFile: /src/rnp/src/lib/crypto/exdsa_ecdhkem.h
    functionUses: 0
    functionsReached:
    - unlock
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> get_encoded() const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:56,1
    - Dst: RSA_set0_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:61,1
    - Dst: rnp::ossl::RSA::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:61,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:61,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:61,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:63,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:63,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:69,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:69,1
    - Dst: rnp::ossl::RSA::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:69,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:71,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:71,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 76
    functionName: pgp::rsa::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - RSA_set0_key
    - rnp::bn::own
    - rnp::ossl::RSA::get
    - rnp::ossl::evp::PKey::get
    - ERR_peek_last_error
    - EVP_PKEY_set1_RSA
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_public_key(const Key &key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:90,1
    - Dst: RSA_set0_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:96,1
    - Dst: rnp::ossl::RSA::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:96,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:96,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:96,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:96,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:98,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:98,1
    - Dst: RSA_set0_factors
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:103,1
    - Dst: rnp::ossl::RSA::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:103,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:103,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:103,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:105,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:105,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:111,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:111,1
    - Dst: rnp::ossl::RSA::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:111,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:113,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:113,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 118
    functionName: pgp::rsa::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - RSA_set0_key
    - rnp::bn::own
    - rnp::ossl::RSA::get
    - RSA_set0_factors
    - rnp::ossl::evp::PKey::get
    - ERR_peek_last_error
    - EVP_PKEY_set1_RSA
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_secret_key(const Key &key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::rsa::load_secret_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:123,1
    - Dst: pgp::rsa::load_public_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:123,1
    - Dst: rnp::ossl::evp::PKeyCtx
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:125,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:127,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:127,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:129,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - key
    - secret
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 132
    functionName: pgp::rsa::init_context
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::rsa::load_secret_key
    - rnp::ossl::evp::PKeyCtx
    - pgp::rsa::load_public_key
    - auto::get
    - ERR_peek_last_error
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp::ossl::evp::PKeyCtx
    signature: rnp::ossl::evp::PKeyCtx init_context(const Key &key, bool secret)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:143,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:148,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:148,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:148,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:149,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:149,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:149,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:151,1
    - Dst: rnp::ossl::Param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:157,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:157,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:157,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:160,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:160,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:180,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:184,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:184,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:185,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:185,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:186,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:186,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:187,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:187,1
    - Dst: BN_copy
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:188,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:188,1
    - Dst: BN_sub_word
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:188,1
    - Dst: BN_copy
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:188,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:188,1
    - Dst: BN_sub_word
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:189,1
    - Dst: BN_mod
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:189,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:189,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:189,1
    - Dst: BN_mod
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:190,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:190,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:190,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:191,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:194,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:194,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:194,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:195,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:195,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:195,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:196,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:196,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:196,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:197,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:197,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:198,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:198,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:199,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:199,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:199,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:201,1
    - Dst: rnp::ossl::Param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:205,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:205,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:205,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:207,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:207,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 33
    argCount: 2
    argNames:
    - key
    - secret
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 210
    functionName: pgp::rsa::bld_params
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - BN_sub_word
    - rnp::ossl::Param
    - OSSL_PARAM_BLD_push_BN
    - rnp::ossl::ParamBld::get
    - rnp::ossl::BNCtx::get
    - BN_copy
    - rnp::ossl::latest_err
    - BN_mod
    - OSSL_PARAM_BLD_to_param
    - rnp::bn::get
    - BN_CTX_get
    linkageType: ''
    returnType: rnp::ossl::Param
    signature: rnp::ossl::Param bld_params(const Key &key, bool secret)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp::rsa::bld_params
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:216,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:224,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:224,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:229,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:229,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:231,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:231,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:237,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:237,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:237,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:238,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:238,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - key
    - secret
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 241
    functionName: pgp::rsa::load_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::rsa::bld_params
    - rnp::ossl::evp::PKey
    - EVP_PKEY_fromdata
    - rnp::ossl::latest_err
    - EVP_PKEY_fromdata_init
    - auto::get
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_key(const Key &key, bool secret)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::rsa::load_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:246,1
    - Dst: rnp::ossl::evp::PKeyCtx
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:248,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:250,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:250,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:252,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - key
    - secret
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 255
    functionName: pgp::rsa::init_context
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::ossl::evp::PKeyCtx
    - rnp::ossl::latest_err
    - auto::get
    - pgp::rsa::load_key
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp::ossl::evp::PKeyCtx
    signature: rnp::ossl::evp::PKeyCtx init_context(const Key &key, bool secret)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:262,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:265,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:265,1
    - Dst: EVP_PKEY_pairwise_check
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:269,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:269,1
    - Dst: EVP_PKEY_public_check
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:269,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:269,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:271,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:271,1
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:276,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:279,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:279,1
    - Dst: EVP_PKEY_check
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:283,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:283,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:285,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:285,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:295,1
    - Dst: BN_num_bits
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: BN_is_odd
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: BN_num_bits
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: BN_is_odd
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:300,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:300,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - rng
    - secret
    argTypes:
    - rnp::RNG
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 305
    functionName: pgp::rsa::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_public_check
    - EVP_PKEY_pairwise_check
    - init_context
    - EVP_PKEY_check
    - rnp::ossl::latest_err
    - BN_num_bits
    - auto::get
    - rnp::bn::get
    - BN_is_odd
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::validate(rnp::RNG &rng, bool secret) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:310,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:310,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:312,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - rnp::ossl::evp::PKeyCtx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 317
    functionName: pgp::rsa::setup_context
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - ERR_peek_last_error
    - EVP_PKEY_CTX_set_rsa_padding
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: bool
    signature: bool setup_context(rnp::ossl::evp::PKeyCtx &ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: print_km_name
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:327,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:329,1
    - Dst: EVP_get_digestbyname
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:332,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:335,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:339,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:339,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:341,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:341,1
    - Dst: assign
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:344,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - ctx
    - hash_alg
    - '      enc'
    argTypes:
    - rnp::ossl::evp::PKeyCtx
    - pgp_hash_alg_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 349
    functionName: pgp::rsa::setup_signature_hash
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - print_km_name
    - EVP_PKEY_CTX_set_signature_md
    - rnp::ossl::latest_err
    - resize
    - EVP_get_digestbyname
    - assign
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: bool
    signature: "bool setup_signature_hash(rnp::ossl::evp::PKeyCtx &ctx,\n                     pgp_hash_alg_t
      \          hash_alg,\n                     rnp::secure_bytes &      enc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:354,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:358,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:358,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:360,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:360,1
    - Dst: setup_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:364,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:367,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:367,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:368,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:369,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:369,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:369,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:369,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:369,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:370,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:370,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:371,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:374,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 376
    functionName: pgp::rsa::Key::encrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - Encrypted::m::size
    - EVP_PKEY_encrypt_init
    - rnp::secure_bytes::size
    - init_context
    - Encrypted::m::resize
    - setup_context
    - auto::get
    - ERR_peek_last_error
    - EVP_PKEY_encrypt
    - rnp::secure_bytes::data
    - size
    - Encrypted::m::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::encrypt_pkcs1(rnp::RNG &rng, Encrypted &out, const
      rnp::secure_bytes &in) const noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:383,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:388,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:388,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:390,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:390,1
    - Dst: setup_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:396,1
    - Dst: setup_signature_hash
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:396,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:401,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:402,1
    - Dst: rnp::secure_bytes::empty
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:403,1
    - Dst: rnp::secure_bytes::insert
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:404,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:404,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:404,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:404,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:405,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:406,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:409,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:409,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:411,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:411,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:412,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:412,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:412,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:412,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:412,1
    - Dst: EVP_PKEY_verify
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:413,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:413,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:413,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:413,1
    - Dst: EVP_PKEY_verify
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:415,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:415,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:415,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:415,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:418,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:418,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - '        sig'
    - hash_alg
    - hash
    argTypes:
    - Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 422
    functionName: pgp::rsa::Key::verify_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 1
    functionsReached:
    - EVP_PKEY_verify
    - rnp::secure_bytes::size
    - EVP_PKEY_verify_init
    - rnp::secure_bytes::insert
    - rnp::ossl::latest_err
    - s::size
    - rnp::secure_bytes::data
    - setup_signature_hash
    - rnp::secure_bytes::end
    - size
    - std::vector::insert
    - init_context
    - rnp::secure_bytes::empty
    - rnp::secure_bytes::begin
    - setup_context
    - RNP_LOG
    - std::vector::end
    - auto::get
    - ERR_peek_last_error
    - std::vector::size
    - std::vector::data
    - s::data
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Key::verify_pkcs1(const Signature &        sig,\n                  pgp_hash_alg_t
      \          hash_alg,\n                  const rnp::secure_bytes &hash) const
      noexcept"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:430,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:432,1
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:436,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:441,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:441,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:443,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:443,1
    - Dst: setup_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:448,1
    - Dst: setup_signature_hash
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:448,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:453,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:454,1
    - Dst: rnp::secure_bytes::empty
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:455,1
    - Dst: rnp::secure_bytes::insert
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:456,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:456,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:456,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:456,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:457,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:458,1
    - Dst: s::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:460,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:460,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:461,1
    - Dst: EVP_PKEY_sign
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:462,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:462,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:462,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:464,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:464,1
    - Dst: s::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:465,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - '               rng'
    - '              sig'
    - hash_alg
    - hash
    argTypes:
    - rnp::RNG
    - Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 470
    functionName: pgp::rsa::Key::sign_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_sign_init
    - rnp::secure_bytes::size
    - s::data
    - init_context
    - rnp::secure_bytes::insert
    - EVP_PKEY_sign
    - s::resize
    - rnp::secure_bytes::empty
    - rnp::secure_bytes::begin
    - s::size
    - setup_context
    - auto::get
    - ERR_peek_last_error
    - rnp::secure_bytes::data
    - setup_signature_hash
    - rnp::secure_bytes::end
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Key::sign_pkcs1(rnp::RNG &               rng,\n                Signature
      &              sig,\n                pgp_hash_alg_t           hash_alg,\n                const
      rnp::secure_bytes &hash) const noexcept"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:475,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:477,1
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:481,1
    - Dst: EVP_PKEY_decrypt_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:485,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:485,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:487,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:487,1
    - Dst: setup_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:491,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:494,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:494,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:495,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:496,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:496,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:496,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:496,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:496,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:498,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:498,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:499,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:503,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - rnp::secure_bytes
    - Encrypted
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 505
    functionName: pgp::rsa::Key::decrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - Encrypted::m::size
    - rnp::secure_bytes::size
    - init_context
    - EVP_PKEY_decrypt
    - rnp::secure_bytes::resize
    - setup_context
    - auto::get
    - ERR_peek_last_error
    - EVP_PKEY_decrypt_init
    - rnp::secure_bytes::data
    - size
    - Encrypted::m::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::decrypt_pkcs1(rnp::RNG &rng, rnp::secure_bytes &out,
      const Encrypted &in) const noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:511,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:511,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:511,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:513,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:513,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:513,1
    - Dst: BN_CTX_start
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:523,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:523,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:524,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:524,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:525,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:525,1
    - Dst: BN_with_flags
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:529,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:529,1
    - Dst: BN_mod_inverse
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:531,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:531,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:531,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:533,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:537,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:537,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:540,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - p
    - q
    - u
    - key
    argTypes:
    - rnp::bn
    - rnp::bn
    - rnp::bn
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 541
    functionName: pgp::rsa::calculate_pqu
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::bn::mpi
    - RNP_LOG
    - rnp::ossl::BNCtx::get
    - BN_cmp
    - BN_with_flags
    - BN_mod_inverse
    - BN_CTX_start
    - rnp::bn::c_get
    - BN_CTX_get
    linkageType: ''
    returnType: bool
    signature: bool calculate_pqu(const rnp::bn &p, const rnp::bn &q, const rnp::bn
      &u, Key &key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:547,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:548,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:548,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:548,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:549,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:549,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:549,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:550,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:550,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:550,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:551,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:551,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:551,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:552,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:552,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:552,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:553,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:553,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:553,1
    - Dst: pgp::rsa::calculate_pqu
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:554,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:554,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:554,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:554,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:556,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:556,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:559,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:559,1
    - Dst: RSA_check_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:563,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:564,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:564,1
    - Dst: pgp::rsa::calculate_pqu
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:577,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:580,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:580,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:580,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 17
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - rnp::ossl::evp::PKey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 582
    functionName: pgp::rsa::extract_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::bn::bn
    - pgp::rsa::calculate_pqu
    - RNP_LOG
    - ERR_peek_last_error
    - EVP_PKEY_get_bn_param
    - ptr
    - rnp::bn::ptr
    - EVP_PKEY_get0_RSA
    - RSA_check_key
    - mpi
    - rnp::ossl::evp::PKey::get
    - rnp::bn::mpi
    linkageType: ''
    returnType: bool
    signature: bool extract_key(rnp::ossl::evp::PKey &pkey, Key &key)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:594,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:594,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:598,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:598,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:600,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:600,1
    - Dst: EVP_PKEY_CTX_set_rsa_keygen_bits
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:604,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:604,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:606,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:606,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:611,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:611,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:613,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:613,1
    - Dst: extract_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:618,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - rng
    - numbits
    argTypes:
    - rnp::RNG
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 622
    functionName: pgp::rsa::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_keygen
    - EVP_PKEY_keygen_init
    - extract_key
    - EVP_PKEY_CTX_set_rsa_keygen_bits
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t numbits) noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:56,1
    - Dst: RSA_set0_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:61,1
    - Dst: rnp::ossl::RSA::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:61,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:61,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:61,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:63,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:63,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:69,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:69,1
    - Dst: rnp::ossl::RSA::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:69,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:71,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:71,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 76
    functionName: pgp::rsa::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - RSA_set0_key
    - rnp::bn::own
    - rnp::ossl::RSA::get
    - rnp::ossl::evp::PKey::get
    - ERR_peek_last_error
    - EVP_PKEY_set1_RSA
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_public_key(const Key &key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:90,1
    - Dst: RSA_set0_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:96,1
    - Dst: rnp::ossl::RSA::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:96,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:96,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:96,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:96,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:98,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:98,1
    - Dst: RSA_set0_factors
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:103,1
    - Dst: rnp::ossl::RSA::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:103,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:103,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:103,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:105,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:105,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:111,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:111,1
    - Dst: rnp::ossl::RSA::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:111,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:113,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:113,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 118
    functionName: pgp::rsa::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - RSA_set0_key
    - rnp::bn::own
    - rnp::ossl::RSA::get
    - RSA_set0_factors
    - rnp::ossl::evp::PKey::get
    - ERR_peek_last_error
    - EVP_PKEY_set1_RSA
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_secret_key(const Key &key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::rsa::load_secret_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:123,1
    - Dst: pgp::rsa::load_public_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:123,1
    - Dst: rnp::ossl::evp::PKeyCtx
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:125,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:127,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:127,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:129,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - key
    - secret
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 132
    functionName: pgp::rsa::init_context
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::rsa::load_secret_key
    - rnp::ossl::evp::PKeyCtx
    - pgp::rsa::load_public_key
    - auto::get
    - ERR_peek_last_error
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp::ossl::evp::PKeyCtx
    signature: rnp::ossl::evp::PKeyCtx init_context(const Key &key, bool secret)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:143,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:148,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:148,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:148,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:149,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:149,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:149,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:151,1
    - Dst: rnp::ossl::Param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:157,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:157,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:157,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:160,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:160,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:180,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:184,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:184,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:185,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:185,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:186,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:186,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:187,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:187,1
    - Dst: BN_copy
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:188,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:188,1
    - Dst: BN_sub_word
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:188,1
    - Dst: BN_copy
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:188,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:188,1
    - Dst: BN_sub_word
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:189,1
    - Dst: BN_mod
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:189,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:189,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:189,1
    - Dst: BN_mod
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:190,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:190,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:190,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:191,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:194,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:194,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:194,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:195,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:195,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:195,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:196,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:196,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:196,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:197,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:197,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:198,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:198,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:199,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:199,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:199,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:201,1
    - Dst: rnp::ossl::Param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:205,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:205,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:205,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:207,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:207,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 33
    argCount: 2
    argNames:
    - key
    - secret
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 210
    functionName: pgp::rsa::bld_params
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - BN_sub_word
    - rnp::ossl::Param
    - OSSL_PARAM_BLD_push_BN
    - rnp::ossl::ParamBld::get
    - rnp::ossl::BNCtx::get
    - BN_copy
    - rnp::ossl::latest_err
    - BN_mod
    - OSSL_PARAM_BLD_to_param
    - rnp::bn::get
    - BN_CTX_get
    linkageType: ''
    returnType: rnp::ossl::Param
    signature: rnp::ossl::Param bld_params(const Key &key, bool secret)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp::rsa::bld_params
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:216,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:224,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:224,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:229,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:229,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:231,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:231,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:237,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:237,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:237,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:238,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:238,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - key
    - secret
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 241
    functionName: pgp::rsa::load_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - pgp::rsa::bld_params
    - rnp::ossl::evp::PKey
    - EVP_PKEY_fromdata
    - rnp::ossl::latest_err
    - EVP_PKEY_fromdata_init
    - auto::get
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_key(const Key &key, bool secret)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::rsa::load_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:246,1
    - Dst: rnp::ossl::evp::PKeyCtx
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:248,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:250,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:250,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:252,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - key
    - secret
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 255
    functionName: pgp::rsa::init_context
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::ossl::evp::PKeyCtx
    - rnp::ossl::latest_err
    - auto::get
    - pgp::rsa::load_key
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp::ossl::evp::PKeyCtx
    signature: rnp::ossl::evp::PKeyCtx init_context(const Key &key, bool secret)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:262,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:265,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:265,1
    - Dst: EVP_PKEY_pairwise_check
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:269,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:269,1
    - Dst: EVP_PKEY_public_check
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:269,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:269,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:271,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:271,1
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:276,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:279,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:279,1
    - Dst: EVP_PKEY_check
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:283,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:283,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:285,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:285,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:295,1
    - Dst: BN_num_bits
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: BN_is_odd
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: BN_num_bits
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: BN_is_odd
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:300,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:300,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - rng
    - secret
    argTypes:
    - rnp::RNG
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 305
    functionName: pgp::rsa::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_public_check
    - EVP_PKEY_pairwise_check
    - init_context
    - EVP_PKEY_check
    - rnp::ossl::latest_err
    - BN_num_bits
    - auto::get
    - rnp::bn::get
    - BN_is_odd
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::validate(rnp::RNG &rng, bool secret) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:310,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:310,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:312,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - rnp::ossl::evp::PKeyCtx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 317
    functionName: pgp::rsa::setup_context
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - ERR_peek_last_error
    - EVP_PKEY_CTX_set_rsa_padding
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: bool
    signature: bool setup_context(rnp::ossl::evp::PKeyCtx &ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: print_km_name
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:327,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:329,1
    - Dst: EVP_get_digestbyname
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:332,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:335,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:339,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:339,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:341,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:341,1
    - Dst: assign
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:344,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - ctx
    - hash_alg
    - '      enc'
    argTypes:
    - rnp::ossl::evp::PKeyCtx
    - pgp_hash_alg_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 349
    functionName: pgp::rsa::setup_signature_hash
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - print_km_name
    - EVP_PKEY_CTX_set_signature_md
    - rnp::ossl::latest_err
    - resize
    - EVP_get_digestbyname
    - assign
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: bool
    signature: "bool setup_signature_hash(rnp::ossl::evp::PKeyCtx &ctx,\n                     pgp_hash_alg_t
      \          hash_alg,\n                     rnp::secure_bytes &      enc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:354,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:358,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:358,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:360,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:360,1
    - Dst: setup_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:364,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:367,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:367,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:368,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:369,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:369,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:369,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:369,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:369,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:370,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:370,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:371,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:374,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 376
    functionName: pgp::rsa::Key::encrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - Encrypted::m::size
    - EVP_PKEY_encrypt_init
    - rnp::secure_bytes::size
    - init_context
    - Encrypted::m::resize
    - setup_context
    - auto::get
    - ERR_peek_last_error
    - EVP_PKEY_encrypt
    - rnp::secure_bytes::data
    - size
    - Encrypted::m::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::encrypt_pkcs1(rnp::RNG &rng, Encrypted &out, const
      rnp::secure_bytes &in) const noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:383,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:388,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:388,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:390,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:390,1
    - Dst: setup_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:396,1
    - Dst: setup_signature_hash
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:396,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:401,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:402,1
    - Dst: rnp::secure_bytes::empty
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:403,1
    - Dst: rnp::secure_bytes::insert
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:404,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:404,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:404,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:404,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:405,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:406,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:409,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:409,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:411,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:411,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:412,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:412,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:412,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:412,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:412,1
    - Dst: EVP_PKEY_verify
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:413,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:413,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:413,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:413,1
    - Dst: EVP_PKEY_verify
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:415,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:415,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:415,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:415,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:418,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:418,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - '        sig'
    - hash_alg
    - hash
    argTypes:
    - Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 422
    functionName: pgp::rsa::Key::verify_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 1
    functionsReached:
    - EVP_PKEY_verify
    - rnp::secure_bytes::size
    - EVP_PKEY_verify_init
    - rnp::secure_bytes::insert
    - rnp::ossl::latest_err
    - s::size
    - rnp::secure_bytes::data
    - setup_signature_hash
    - rnp::secure_bytes::end
    - size
    - std::vector::insert
    - init_context
    - rnp::secure_bytes::empty
    - rnp::secure_bytes::begin
    - setup_context
    - RNP_LOG
    - std::vector::end
    - auto::get
    - ERR_peek_last_error
    - std::vector::size
    - std::vector::data
    - s::data
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Key::verify_pkcs1(const Signature &        sig,\n                  pgp_hash_alg_t
      \          hash_alg,\n                  const rnp::secure_bytes &hash) const
      noexcept"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:430,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:432,1
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:436,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:441,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:441,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:443,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:443,1
    - Dst: setup_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:448,1
    - Dst: setup_signature_hash
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:448,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:453,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:454,1
    - Dst: rnp::secure_bytes::empty
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:455,1
    - Dst: rnp::secure_bytes::insert
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:456,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:456,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:456,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:456,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:457,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:458,1
    - Dst: s::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:460,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:460,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:461,1
    - Dst: EVP_PKEY_sign
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:462,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:462,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:462,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:464,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:464,1
    - Dst: s::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:465,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - '               rng'
    - '              sig'
    - hash_alg
    - hash
    argTypes:
    - rnp::RNG
    - Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 470
    functionName: pgp::rsa::Key::sign_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_sign_init
    - rnp::secure_bytes::size
    - s::data
    - init_context
    - rnp::secure_bytes::insert
    - EVP_PKEY_sign
    - s::resize
    - rnp::secure_bytes::empty
    - rnp::secure_bytes::begin
    - s::size
    - setup_context
    - auto::get
    - ERR_peek_last_error
    - rnp::secure_bytes::data
    - setup_signature_hash
    - rnp::secure_bytes::end
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Key::sign_pkcs1(rnp::RNG &               rng,\n                Signature
      &              sig,\n                pgp_hash_alg_t           hash_alg,\n                const
      rnp::secure_bytes &hash) const noexcept"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:475,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:477,1
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:481,1
    - Dst: EVP_PKEY_decrypt_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:485,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:485,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:487,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:487,1
    - Dst: setup_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:491,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:494,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:494,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:495,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:496,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:496,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:496,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:496,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:496,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:498,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:498,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:499,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:503,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - rnp::secure_bytes
    - Encrypted
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 505
    functionName: pgp::rsa::Key::decrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - Encrypted::m::size
    - rnp::secure_bytes::size
    - init_context
    - EVP_PKEY_decrypt
    - rnp::secure_bytes::resize
    - setup_context
    - auto::get
    - ERR_peek_last_error
    - EVP_PKEY_decrypt_init
    - rnp::secure_bytes::data
    - size
    - Encrypted::m::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::decrypt_pkcs1(rnp::RNG &rng, rnp::secure_bytes &out,
      const Encrypted &in) const noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:511,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:511,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:511,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:513,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:513,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:513,1
    - Dst: BN_CTX_start
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:523,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:523,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:524,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:524,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:525,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:525,1
    - Dst: BN_with_flags
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:529,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:529,1
    - Dst: BN_mod_inverse
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:531,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:531,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:531,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:533,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:537,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:537,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:540,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - p
    - q
    - u
    - key
    argTypes:
    - rnp::bn
    - rnp::bn
    - rnp::bn
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 541
    functionName: pgp::rsa::calculate_pqu
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 1
    functionsReached:
    - rnp::bn::mpi
    - RNP_LOG
    - rnp::ossl::BNCtx::get
    - BN_cmp
    - BN_with_flags
    - BN_mod_inverse
    - BN_CTX_start
    - rnp::bn::c_get
    - BN_CTX_get
    linkageType: ''
    returnType: bool
    signature: bool calculate_pqu(const rnp::bn &p, const rnp::bn &q, const rnp::bn
      &u, Key &key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:547,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:548,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:548,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:548,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:549,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:549,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:549,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:550,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:550,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:550,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:551,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:551,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:551,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:552,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:552,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:552,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:553,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:553,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:553,1
    - Dst: pgp::rsa::calculate_pqu
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:554,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:554,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:554,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:554,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:556,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:556,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:559,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:559,1
    - Dst: RSA_check_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:563,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:564,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:564,1
    - Dst: pgp::rsa::calculate_pqu
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:577,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:580,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:580,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:580,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 17
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - rnp::ossl::evp::PKey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 582
    functionName: pgp::rsa::extract_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::bn::bn
    - pgp::rsa::calculate_pqu
    - RNP_LOG
    - ERR_peek_last_error
    - EVP_PKEY_get_bn_param
    - ptr
    - rnp::bn::ptr
    - EVP_PKEY_get0_RSA
    - RSA_check_key
    - mpi
    - rnp::ossl::evp::PKey::get
    - rnp::bn::mpi
    linkageType: ''
    returnType: bool
    signature: bool extract_key(rnp::ossl::evp::PKey &pkey, Key &key)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:594,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:594,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:598,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:598,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:600,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:600,1
    - Dst: EVP_PKEY_CTX_set_rsa_keygen_bits
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:604,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:604,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:606,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:606,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:611,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:611,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:613,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:613,1
    - Dst: extract_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:618,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - rng
    - numbits
    argTypes:
    - rnp::RNG
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 622
    functionName: pgp::rsa::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_keygen
    - EVP_PKEY_keygen_init
    - extract_key
    - EVP_PKEY_CTX_set_rsa_keygen_bits
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t numbits) noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:56,1
    - Dst: RSA_set0_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:61,1
    - Dst: rnp::ossl::RSA::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:61,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:61,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:61,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:63,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:63,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:69,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:69,1
    - Dst: rnp::ossl::RSA::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:69,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:71,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:71,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 76
    functionName: pgp::rsa::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - RSA_set0_key
    - rnp::bn::own
    - rnp::ossl::RSA::get
    - rnp::ossl::evp::PKey::get
    - ERR_peek_last_error
    - EVP_PKEY_set1_RSA
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_public_key(const Key &key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:90,1
    - Dst: RSA_set0_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:96,1
    - Dst: rnp::ossl::RSA::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:96,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:96,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:96,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:96,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:98,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:98,1
    - Dst: RSA_set0_factors
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:103,1
    - Dst: rnp::ossl::RSA::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:103,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:103,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:103,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:105,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:105,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:111,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:111,1
    - Dst: rnp::ossl::RSA::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:111,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:113,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:113,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 118
    functionName: pgp::rsa::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - RSA_set0_key
    - rnp::bn::own
    - rnp::ossl::RSA::get
    - RSA_set0_factors
    - rnp::ossl::evp::PKey::get
    - ERR_peek_last_error
    - EVP_PKEY_set1_RSA
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_secret_key(const Key &key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::rsa::load_secret_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:123,1
    - Dst: pgp::rsa::load_public_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:123,1
    - Dst: rnp::ossl::evp::PKeyCtx
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:125,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:127,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:127,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:129,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - key
    - secret
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 132
    functionName: pgp::rsa::init_context
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::rsa::load_secret_key
    - rnp::ossl::evp::PKeyCtx
    - pgp::rsa::load_public_key
    - auto::get
    - ERR_peek_last_error
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp::ossl::evp::PKeyCtx
    signature: rnp::ossl::evp::PKeyCtx init_context(const Key &key, bool secret)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:143,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:148,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:148,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:148,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:149,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:149,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:149,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:151,1
    - Dst: rnp::ossl::Param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:157,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:157,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:157,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:160,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:160,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:180,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:184,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:184,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:185,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:185,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:186,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:186,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:187,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:187,1
    - Dst: BN_copy
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:188,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:188,1
    - Dst: BN_sub_word
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:188,1
    - Dst: BN_copy
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:188,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:188,1
    - Dst: BN_sub_word
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:189,1
    - Dst: BN_mod
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:189,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:189,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:189,1
    - Dst: BN_mod
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:190,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:190,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:190,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:191,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:194,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:194,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:194,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:195,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:195,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:195,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:196,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:196,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:196,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:197,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:197,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:198,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:198,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:199,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:199,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:199,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:201,1
    - Dst: rnp::ossl::Param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:205,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:205,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:205,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:207,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:207,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 33
    argCount: 2
    argNames:
    - key
    - secret
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 210
    functionName: pgp::rsa::bld_params
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - BN_sub_word
    - rnp::ossl::Param
    - OSSL_PARAM_BLD_push_BN
    - rnp::ossl::ParamBld::get
    - rnp::ossl::BNCtx::get
    - BN_copy
    - rnp::ossl::latest_err
    - BN_mod
    - OSSL_PARAM_BLD_to_param
    - rnp::bn::get
    - BN_CTX_get
    linkageType: ''
    returnType: rnp::ossl::Param
    signature: rnp::ossl::Param bld_params(const Key &key, bool secret)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp::rsa::bld_params
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:216,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:224,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:224,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:229,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:229,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:231,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:231,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:237,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:237,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:237,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:238,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:238,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - key
    - secret
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 241
    functionName: pgp::rsa::load_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - pgp::rsa::bld_params
    - rnp::ossl::evp::PKey
    - EVP_PKEY_fromdata
    - rnp::ossl::latest_err
    - EVP_PKEY_fromdata_init
    - auto::get
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_key(const Key &key, bool secret)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::rsa::load_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:246,1
    - Dst: rnp::ossl::evp::PKeyCtx
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:248,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:250,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:250,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:252,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - key
    - secret
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 255
    functionName: pgp::rsa::init_context
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::ossl::evp::PKeyCtx
    - rnp::ossl::latest_err
    - auto::get
    - pgp::rsa::load_key
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp::ossl::evp::PKeyCtx
    signature: rnp::ossl::evp::PKeyCtx init_context(const Key &key, bool secret)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:262,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:265,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:265,1
    - Dst: EVP_PKEY_pairwise_check
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:269,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:269,1
    - Dst: EVP_PKEY_public_check
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:269,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:269,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:271,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:271,1
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:276,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:279,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:279,1
    - Dst: EVP_PKEY_check
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:283,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:283,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:285,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:285,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:295,1
    - Dst: BN_num_bits
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: BN_is_odd
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: BN_num_bits
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: BN_is_odd
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:300,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:300,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - rng
    - secret
    argTypes:
    - rnp::RNG
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 305
    functionName: pgp::rsa::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_public_check
    - EVP_PKEY_pairwise_check
    - init_context
    - EVP_PKEY_check
    - rnp::ossl::latest_err
    - BN_num_bits
    - auto::get
    - rnp::bn::get
    - BN_is_odd
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::validate(rnp::RNG &rng, bool secret) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:310,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:310,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:312,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - rnp::ossl::evp::PKeyCtx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 317
    functionName: pgp::rsa::setup_context
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - ERR_peek_last_error
    - EVP_PKEY_CTX_set_rsa_padding
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: bool
    signature: bool setup_context(rnp::ossl::evp::PKeyCtx &ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: print_km_name
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:327,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:329,1
    - Dst: EVP_get_digestbyname
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:332,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:335,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:339,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:339,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:341,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:341,1
    - Dst: assign
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:344,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - ctx
    - hash_alg
    - '      enc'
    argTypes:
    - rnp::ossl::evp::PKeyCtx
    - pgp_hash_alg_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 349
    functionName: pgp::rsa::setup_signature_hash
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - print_km_name
    - EVP_PKEY_CTX_set_signature_md
    - rnp::ossl::latest_err
    - resize
    - EVP_get_digestbyname
    - assign
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: bool
    signature: "bool setup_signature_hash(rnp::ossl::evp::PKeyCtx &ctx,\n                     pgp_hash_alg_t
      \          hash_alg,\n                     rnp::secure_bytes &      enc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:354,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:358,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:358,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:360,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:360,1
    - Dst: setup_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:364,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:367,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:367,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:368,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:369,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:369,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:369,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:369,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:369,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:370,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:370,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:371,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:374,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 376
    functionName: pgp::rsa::Key::encrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - Encrypted::m::size
    - EVP_PKEY_encrypt_init
    - rnp::secure_bytes::size
    - init_context
    - Encrypted::m::resize
    - setup_context
    - auto::get
    - ERR_peek_last_error
    - EVP_PKEY_encrypt
    - rnp::secure_bytes::data
    - size
    - Encrypted::m::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::encrypt_pkcs1(rnp::RNG &rng, Encrypted &out, const
      rnp::secure_bytes &in) const noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:383,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:388,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:388,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:390,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:390,1
    - Dst: setup_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:396,1
    - Dst: setup_signature_hash
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:396,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:401,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:402,1
    - Dst: rnp::secure_bytes::empty
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:403,1
    - Dst: rnp::secure_bytes::insert
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:404,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:404,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:404,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:404,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:405,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:406,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:409,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:409,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:411,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:411,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:412,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:412,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:412,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:412,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:412,1
    - Dst: EVP_PKEY_verify
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:413,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:413,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:413,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:413,1
    - Dst: EVP_PKEY_verify
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:415,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:415,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:415,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:415,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:418,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:418,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - '        sig'
    - hash_alg
    - hash
    argTypes:
    - Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 422
    functionName: pgp::rsa::Key::verify_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 1
    functionsReached:
    - EVP_PKEY_verify
    - rnp::secure_bytes::size
    - EVP_PKEY_verify_init
    - rnp::secure_bytes::insert
    - rnp::ossl::latest_err
    - s::size
    - rnp::secure_bytes::data
    - setup_signature_hash
    - rnp::secure_bytes::end
    - size
    - std::vector::insert
    - init_context
    - rnp::secure_bytes::empty
    - rnp::secure_bytes::begin
    - setup_context
    - RNP_LOG
    - std::vector::end
    - auto::get
    - ERR_peek_last_error
    - std::vector::size
    - std::vector::data
    - s::data
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Key::verify_pkcs1(const Signature &        sig,\n                  pgp_hash_alg_t
      \          hash_alg,\n                  const rnp::secure_bytes &hash) const
      noexcept"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:430,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:432,1
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:436,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:441,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:441,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:443,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:443,1
    - Dst: setup_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:448,1
    - Dst: setup_signature_hash
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:448,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:453,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:454,1
    - Dst: rnp::secure_bytes::empty
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:455,1
    - Dst: rnp::secure_bytes::insert
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:456,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:456,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:456,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:456,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:457,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:458,1
    - Dst: s::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:460,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:460,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:461,1
    - Dst: EVP_PKEY_sign
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:462,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:462,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:462,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:464,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:464,1
    - Dst: s::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:465,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - '               rng'
    - '              sig'
    - hash_alg
    - hash
    argTypes:
    - rnp::RNG
    - Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 470
    functionName: pgp::rsa::Key::sign_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_sign_init
    - rnp::secure_bytes::size
    - s::data
    - init_context
    - rnp::secure_bytes::insert
    - EVP_PKEY_sign
    - s::resize
    - rnp::secure_bytes::empty
    - rnp::secure_bytes::begin
    - s::size
    - setup_context
    - auto::get
    - ERR_peek_last_error
    - rnp::secure_bytes::data
    - setup_signature_hash
    - rnp::secure_bytes::end
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Key::sign_pkcs1(rnp::RNG &               rng,\n                Signature
      &              sig,\n                pgp_hash_alg_t           hash_alg,\n                const
      rnp::secure_bytes &hash) const noexcept"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:475,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:477,1
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:481,1
    - Dst: EVP_PKEY_decrypt_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:485,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:485,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:487,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:487,1
    - Dst: setup_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:491,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:494,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:494,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:495,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:496,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:496,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:496,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:496,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:496,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:498,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:498,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:499,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:503,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - rnp::secure_bytes
    - Encrypted
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 505
    functionName: pgp::rsa::Key::decrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - Encrypted::m::size
    - rnp::secure_bytes::size
    - init_context
    - EVP_PKEY_decrypt
    - rnp::secure_bytes::resize
    - setup_context
    - auto::get
    - ERR_peek_last_error
    - EVP_PKEY_decrypt_init
    - rnp::secure_bytes::data
    - size
    - Encrypted::m::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::decrypt_pkcs1(rnp::RNG &rng, rnp::secure_bytes &out,
      const Encrypted &in) const noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:511,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:511,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:511,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:513,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:513,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:513,1
    - Dst: BN_CTX_start
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:523,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:523,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:524,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:524,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:525,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:525,1
    - Dst: BN_with_flags
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:529,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:529,1
    - Dst: BN_mod_inverse
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:531,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:531,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:531,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:533,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:537,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:537,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:540,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - p
    - q
    - u
    - key
    argTypes:
    - rnp::bn
    - rnp::bn
    - rnp::bn
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 541
    functionName: pgp::rsa::calculate_pqu
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 2
    functionsReached:
    - rnp::bn::mpi
    - RNP_LOG
    - rnp::ossl::BNCtx::get
    - BN_cmp
    - BN_with_flags
    - BN_mod_inverse
    - BN_CTX_start
    - rnp::bn::c_get
    - BN_CTX_get
    linkageType: ''
    returnType: bool
    signature: bool calculate_pqu(const rnp::bn &p, const rnp::bn &q, const rnp::bn
      &u, Key &key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:547,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:548,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:548,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:548,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:549,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:549,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:549,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:550,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:550,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:550,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:551,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:551,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:551,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:552,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:552,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:552,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:553,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:553,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:553,1
    - Dst: pgp::rsa::calculate_pqu
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:554,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:554,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:554,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:554,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:556,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:556,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:559,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:559,1
    - Dst: RSA_check_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:563,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:564,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:564,1
    - Dst: pgp::rsa::calculate_pqu
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:577,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:580,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:580,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:580,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 17
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - rnp::ossl::evp::PKey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 582
    functionName: pgp::rsa::extract_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::bn::bn
    - pgp::rsa::calculate_pqu
    - RNP_LOG
    - ERR_peek_last_error
    - EVP_PKEY_get_bn_param
    - ptr
    - rnp::bn::ptr
    - EVP_PKEY_get0_RSA
    - RSA_check_key
    - mpi
    - rnp::ossl::evp::PKey::get
    - rnp::bn::mpi
    linkageType: ''
    returnType: bool
    signature: bool extract_key(rnp::ossl::evp::PKey &pkey, Key &key)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:594,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:594,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:598,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:598,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:600,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:600,1
    - Dst: EVP_PKEY_CTX_set_rsa_keygen_bits
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:604,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:604,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:606,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:606,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:611,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:611,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:613,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:613,1
    - Dst: extract_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:618,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - rng
    - numbits
    argTypes:
    - rnp::RNG
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 622
    functionName: pgp::rsa::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_keygen
    - EVP_PKEY_keygen_init
    - extract_key
    - EVP_PKEY_CTX_set_rsa_keygen_bits
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t numbits) noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:56,1
    - Dst: RSA_set0_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:61,1
    - Dst: rnp::ossl::RSA::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:61,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:61,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:61,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:63,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:63,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:69,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:69,1
    - Dst: rnp::ossl::RSA::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:69,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:71,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:71,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 14
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 76
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 76
    functionName: pgp::rsa::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - RSA_set0_key
    - rnp::bn::own
    - rnp::ossl::RSA::get
    - rnp::ossl::evp::PKey::get
    - ERR_peek_last_error
    - EVP_PKEY_set1_RSA
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_public_key(const Key &key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:90,1
    - Dst: RSA_set0_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:96,1
    - Dst: rnp::ossl::RSA::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:96,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:96,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:96,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:96,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:98,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:98,1
    - Dst: RSA_set0_factors
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:103,1
    - Dst: rnp::ossl::RSA::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:103,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:103,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:103,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:105,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:105,1
    - Dst: EVP_PKEY_set1_RSA
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:111,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:111,1
    - Dst: rnp::ossl::RSA::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:111,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:113,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:113,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 18
    argCount: 1
    argNames:
    - key
    argTypes:
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 118
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 118
    functionName: pgp::rsa::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - RSA_set0_key
    - rnp::bn::own
    - rnp::ossl::RSA::get
    - RSA_set0_factors
    - rnp::ossl::evp::PKey::get
    - ERR_peek_last_error
    - EVP_PKEY_set1_RSA
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_secret_key(const Key &key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::rsa::load_secret_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:123,1
    - Dst: pgp::rsa::load_public_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:123,1
    - Dst: rnp::ossl::evp::PKeyCtx
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:125,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:127,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:127,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:129,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - key
    - secret
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 120
    functionDepth: 1
    functionLinenumber: 120
    functionLinenumberEnd: 132
    functionName: pgp::rsa::init_context
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - pgp::rsa::load_secret_key
    - rnp::ossl::evp::PKeyCtx
    - pgp::rsa::load_public_key
    - auto::get
    - ERR_peek_last_error
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp::ossl::evp::PKeyCtx
    signature: rnp::ossl::evp::PKeyCtx init_context(const Key &key, bool secret)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:143,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:148,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:148,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:148,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:149,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:149,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:149,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:151,1
    - Dst: rnp::ossl::Param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:157,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:157,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:157,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:160,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:160,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:180,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:184,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:184,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:185,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:185,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:186,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:186,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:187,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:187,1
    - Dst: BN_copy
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:188,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:188,1
    - Dst: BN_sub_word
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:188,1
    - Dst: BN_copy
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:188,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:188,1
    - Dst: BN_sub_word
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:189,1
    - Dst: BN_mod
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:189,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:189,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:189,1
    - Dst: BN_mod
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:190,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:190,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:190,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:191,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:194,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:194,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:194,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:195,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:195,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:195,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:196,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:196,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:196,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:197,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:197,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:198,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:198,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:199,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:199,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:199,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:201,1
    - Dst: rnp::ossl::Param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:205,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:205,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:205,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:207,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:207,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 33
    argCount: 2
    argNames:
    - key
    - secret
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 210
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 210
    functionName: pgp::rsa::bld_params
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - BN_sub_word
    - rnp::ossl::Param
    - OSSL_PARAM_BLD_push_BN
    - rnp::ossl::ParamBld::get
    - rnp::ossl::BNCtx::get
    - BN_copy
    - rnp::ossl::latest_err
    - BN_mod
    - OSSL_PARAM_BLD_to_param
    - rnp::bn::get
    - BN_CTX_get
    linkageType: ''
    returnType: rnp::ossl::Param
    signature: rnp::ossl::Param bld_params(const Key &key, bool secret)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp::rsa::bld_params
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:216,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:224,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:224,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:229,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:229,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:231,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:231,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:237,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:237,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:237,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:238,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:238,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:240,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 16
    argCount: 2
    argNames:
    - key
    - secret
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 241
      start: 212
    functionDepth: 2
    functionLinenumber: 212
    functionLinenumberEnd: 241
    functionName: pgp::rsa::load_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 3
    functionsReached:
    - RNP_LOG
    - pgp::rsa::bld_params
    - rnp::ossl::evp::PKey
    - EVP_PKEY_fromdata
    - rnp::ossl::latest_err
    - EVP_PKEY_fromdata_init
    - auto::get
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_key(const Key &key, bool secret)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::rsa::load_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:246,1
    - Dst: rnp::ossl::evp::PKeyCtx
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:248,1
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:250,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:250,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:252,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:252,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - key
    - secret
    argTypes:
    - Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 255
      start: 243
    functionDepth: 3
    functionLinenumber: 243
    functionLinenumberEnd: 255
    functionName: pgp::rsa::init_context
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::ossl::evp::PKeyCtx
    - rnp::ossl::latest_err
    - auto::get
    - pgp::rsa::load_key
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp::ossl::evp::PKeyCtx
    signature: rnp::ossl::evp::PKeyCtx init_context(const Key &key, bool secret)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:262,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:265,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:265,1
    - Dst: EVP_PKEY_pairwise_check
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:269,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:269,1
    - Dst: EVP_PKEY_public_check
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:269,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:269,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:271,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:271,1
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:276,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:279,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:279,1
    - Dst: EVP_PKEY_check
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:283,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:283,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:285,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:285,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:295,1
    - Dst: BN_num_bits
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: BN_is_odd
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: BN_num_bits
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:299,1
    - Dst: BN_is_odd
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:300,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:300,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 27
    argCount: 2
    argNames:
    - rng
    - secret
    argTypes:
    - rnp::RNG
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 305
      start: 258
    functionDepth: 1
    functionLinenumber: 258
    functionLinenumberEnd: 305
    functionName: pgp::rsa::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_public_check
    - EVP_PKEY_pairwise_check
    - init_context
    - EVP_PKEY_check
    - rnp::ossl::latest_err
    - BN_num_bits
    - auto::get
    - rnp::bn::get
    - BN_is_odd
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::validate(rnp::RNG &rng, bool secret) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_set_rsa_padding
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:310,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:310,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:312,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:312,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - rnp::ossl::evp::PKeyCtx
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 317
      start: 307
    functionDepth: 1
    functionLinenumber: 307
    functionLinenumberEnd: 317
    functionName: pgp::rsa::setup_context
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - ERR_peek_last_error
    - EVP_PKEY_CTX_set_rsa_padding
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: bool
    signature: bool setup_context(rnp::ossl::evp::PKeyCtx &ctx)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: print_km_name
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:327,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:329,1
    - Dst: EVP_get_digestbyname
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:332,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:335,1
    - Dst: EVP_PKEY_CTX_set_signature_md
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:339,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:339,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:341,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:341,1
    - Dst: assign
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:344,1
    - Dst: resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:346,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - ctx
    - hash_alg
    - '      enc'
    argTypes:
    - rnp::ossl::evp::PKeyCtx
    - pgp_hash_alg_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 322
    functionDepth: 1
    functionLinenumber: 322
    functionLinenumberEnd: 349
    functionName: pgp::rsa::setup_signature_hash
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - print_km_name
    - EVP_PKEY_CTX_set_signature_md
    - rnp::ossl::latest_err
    - resize
    - EVP_get_digestbyname
    - assign
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: bool
    signature: "bool setup_signature_hash(rnp::ossl::evp::PKeyCtx &ctx,\n                     pgp_hash_alg_t
      \          hash_alg,\n                     rnp::secure_bytes &      enc)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:354,1
    - Dst: EVP_PKEY_encrypt_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:358,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:358,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:360,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:360,1
    - Dst: setup_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:364,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:367,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:367,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:368,1
    - Dst: EVP_PKEY_encrypt
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:369,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:369,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:369,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:369,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:369,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:370,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:370,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:371,1
    - Dst: Encrypted::m::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:374,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 376
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 376
    functionName: pgp::rsa::Key::encrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - Encrypted::m::size
    - EVP_PKEY_encrypt_init
    - rnp::secure_bytes::size
    - init_context
    - Encrypted::m::resize
    - setup_context
    - auto::get
    - ERR_peek_last_error
    - EVP_PKEY_encrypt
    - rnp::secure_bytes::data
    - size
    - Encrypted::m::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::encrypt_pkcs1(rnp::RNG &rng, Encrypted &out, const
      rnp::secure_bytes &in) const noexcept
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:383,1
    - Dst: EVP_PKEY_verify_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:388,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:388,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:390,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:390,1
    - Dst: setup_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:396,1
    - Dst: setup_signature_hash
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:396,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:401,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:402,1
    - Dst: rnp::secure_bytes::empty
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:403,1
    - Dst: rnp::secure_bytes::insert
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:404,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:404,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:404,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:404,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:405,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:406,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:409,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:409,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:411,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:411,1
    - Dst: std::vector::insert
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:412,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:412,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:412,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:412,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:412,1
    - Dst: EVP_PKEY_verify
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:413,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:413,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:413,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:413,1
    - Dst: EVP_PKEY_verify
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:415,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:415,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:415,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:415,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:418,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:418,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 3
    argNames:
    - '        sig'
    - hash_alg
    - hash
    argTypes:
    - Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 422
      start: 378
    functionDepth: 1
    functionLinenumber: 378
    functionLinenumberEnd: 422
    functionName: pgp::rsa::Key::verify_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 1
    functionsReached:
    - EVP_PKEY_verify
    - rnp::secure_bytes::size
    - EVP_PKEY_verify_init
    - rnp::secure_bytes::insert
    - rnp::ossl::latest_err
    - s::size
    - rnp::secure_bytes::data
    - setup_signature_hash
    - rnp::secure_bytes::end
    - size
    - std::vector::insert
    - init_context
    - rnp::secure_bytes::empty
    - rnp::secure_bytes::begin
    - setup_context
    - RNP_LOG
    - std::vector::end
    - auto::get
    - ERR_peek_last_error
    - std::vector::size
    - std::vector::data
    - s::data
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Key::verify_pkcs1(const Signature &        sig,\n                  pgp_hash_alg_t
      \          hash_alg,\n                  const rnp::secure_bytes &hash) const
      noexcept"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:430,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:432,1
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:436,1
    - Dst: EVP_PKEY_sign_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:441,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:441,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:443,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:443,1
    - Dst: setup_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:448,1
    - Dst: setup_signature_hash
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:448,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:453,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:454,1
    - Dst: rnp::secure_bytes::empty
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:455,1
    - Dst: rnp::secure_bytes::insert
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:456,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:456,1
    - Dst: rnp::secure_bytes::begin
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:456,1
    - Dst: rnp::secure_bytes::end
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:456,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:457,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:458,1
    - Dst: s::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:460,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:460,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:461,1
    - Dst: EVP_PKEY_sign
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:462,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:462,1
    - Dst: s::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:462,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:464,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:464,1
    - Dst: s::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:465,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 27
    argCount: 4
    argNames:
    - '               rng'
    - '              sig'
    - hash_alg
    - hash
    argTypes:
    - rnp::RNG
    - Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 470
      start: 424
    functionDepth: 1
    functionLinenumber: 424
    functionLinenumberEnd: 470
    functionName: pgp::rsa::Key::sign_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_sign_init
    - rnp::secure_bytes::size
    - s::data
    - init_context
    - rnp::secure_bytes::insert
    - EVP_PKEY_sign
    - s::resize
    - rnp::secure_bytes::empty
    - rnp::secure_bytes::begin
    - s::size
    - setup_context
    - auto::get
    - ERR_peek_last_error
    - rnp::secure_bytes::data
    - setup_signature_hash
    - rnp::secure_bytes::end
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t Key::sign_pkcs1(rnp::RNG &               rng,\n                Signature
      &              sig,\n                pgp_hash_alg_t           hash_alg,\n                const
      rnp::secure_bytes &hash) const noexcept"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:475,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:477,1
    - Dst: init_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:481,1
    - Dst: EVP_PKEY_decrypt_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:485,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:485,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:487,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:487,1
    - Dst: setup_context
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:491,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:494,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:494,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:495,1
    - Dst: EVP_PKEY_decrypt
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:496,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:496,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:496,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:496,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:496,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:498,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:498,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:499,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:503,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 23
    argCount: 3
    argNames:
    - rng
    - out
    - in
    argTypes:
    - rnp::RNG
    - rnp::secure_bytes
    - Encrypted
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 505
      start: 472
    functionDepth: 1
    functionLinenumber: 472
    functionLinenumberEnd: 505
    functionName: pgp::rsa::Key::decrypt_pkcs1
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - Encrypted::m::size
    - rnp::secure_bytes::size
    - init_context
    - EVP_PKEY_decrypt
    - rnp::secure_bytes::resize
    - setup_context
    - auto::get
    - ERR_peek_last_error
    - EVP_PKEY_decrypt_init
    - rnp::secure_bytes::data
    - size
    - Encrypted::m::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::decrypt_pkcs1(rnp::RNG &rng, rnp::secure_bytes &out,
      const Encrypted &in) const noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:511,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:511,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:511,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:513,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:513,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:513,1
    - Dst: BN_CTX_start
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:523,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:523,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:524,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:524,1
    - Dst: BN_CTX_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:525,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:525,1
    - Dst: BN_with_flags
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:529,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:529,1
    - Dst: BN_mod_inverse
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:531,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:531,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:531,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:533,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:537,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:537,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:540,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 20
    argCount: 4
    argNames:
    - p
    - q
    - u
    - key
    argTypes:
    - rnp::bn
    - rnp::bn
    - rnp::bn
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 541
      start: 507
    functionDepth: 1
    functionLinenumber: 507
    functionLinenumberEnd: 541
    functionName: pgp::rsa::calculate_pqu
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 3
    functionsReached:
    - rnp::bn::mpi
    - RNP_LOG
    - rnp::ossl::BNCtx::get
    - BN_cmp
    - BN_with_flags
    - BN_mod_inverse
    - BN_CTX_start
    - rnp::bn::c_get
    - BN_CTX_get
    linkageType: ''
    returnType: bool
    signature: bool calculate_pqu(const rnp::bn &p, const rnp::bn &q, const rnp::bn
      &u, Key &key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:547,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:548,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:548,1
    - Dst: rnp::bn::ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:548,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:549,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:549,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:549,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:550,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:550,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:550,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:551,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:551,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:551,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:552,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:552,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:552,1
    - Dst: EVP_PKEY_get_bn_param
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:553,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:553,1
    - Dst: ptr
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:553,1
    - Dst: pgp::rsa::calculate_pqu
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:554,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:554,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:554,1
    - Dst: mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:554,1
    - Dst: EVP_PKEY_get0_RSA
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:556,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:556,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:559,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:559,1
    - Dst: RSA_check_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:563,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:564,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:564,1
    - Dst: pgp::rsa::calculate_pqu
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:577,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:580,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:580,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:580,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 17
    argCount: 2
    argNames:
    - pkey
    - key
    argTypes:
    - rnp::ossl::evp::PKey
    - Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 582
      start: 543
    functionDepth: 2
    functionLinenumber: 543
    functionLinenumberEnd: 582
    functionName: pgp::rsa::extract_key
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::bn::bn
    - pgp::rsa::calculate_pqu
    - RNP_LOG
    - ERR_peek_last_error
    - EVP_PKEY_get_bn_param
    - ptr
    - rnp::bn::ptr
    - EVP_PKEY_get0_RSA
    - RSA_check_key
    - mpi
    - rnp::ossl::evp::PKey::get
    - rnp::bn::mpi
    linkageType: ''
    returnType: bool
    signature: bool extract_key(rnp::ossl::evp::PKey &pkey, Key &key)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:594,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:594,1
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:598,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:598,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:600,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:600,1
    - Dst: EVP_PKEY_CTX_set_rsa_keygen_bits
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:604,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:604,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:606,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:606,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:611,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:611,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:613,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:613,1
    - Dst: extract_key
      Src: /src/rnp/src/lib/crypto/rsa_ossl.cpp:618,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 24
    argCount: 2
    argNames:
    - rng
    - numbits
    argTypes:
    - rnp::RNG
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 622
      start: 584
    functionDepth: 1
    functionLinenumber: 584
    functionLinenumberEnd: 622
    functionName: pgp::rsa::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/rsa_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_keygen
    - EVP_PKEY_keygen_init
    - extract_key
    - EVP_PKEY_CTX_set_rsa_keygen_bits
    - ERR_peek_last_error
    - rnp::ossl::evp::PKeyCtx::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t numbits) noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:39,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:41,1
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:44,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:45,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:48,1
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:49,1
    - Dst: botan_pubkey_load_ecdsa
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:59,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:59,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:59,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:59,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:61,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - pubkey
    - keydata
    argTypes:
    - rnp::botan::Pubkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 64
    functionName: pgp::ecdsa::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::botan::Pubkey::get
    - botan_pubkey_load_ecdsa
    - ec::Key::p::size
    - pgp::ec::Curve::get
    - auto::bytes
    - rnp::bn::get
    linkageType: ''
    returnType: bool
    signature: bool load_public_key(rnp::botan::Pubkey &pubkey, const ec::Key &keydata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:69,1
    - Dst: botan_privkey_load_ecdsa
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:79,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:79,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:79,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - seckey
    - keydata
    argTypes:
    - rnp::botan::Privkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 84
    functionName: pgp::ecdsa::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::botan::Privkey::get
    - pgp::ec::Curve::get
    - botan_privkey_load_ecdsa
    - rnp::bn::get
    linkageType: ''
    returnType: bool
    signature: bool load_secret_key(rnp::botan::Privkey &seckey, const ec::Key &keydata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:89,1
    - Dst: pgp::ecdsa::load_public_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:90,1
    - Dst: botan_pubkey_check_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:90,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:90,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:90,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:97,1
    - Dst: pgp::ecdsa::load_secret_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:98,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:99,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:99,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:99,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 103
    functionName: pgp::ecdsa::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 2
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::get
    - botan_privkey_check_key
    - rnp::RNG::handle
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - pgp::ecdsa::load_secret_key
    - botan_pubkey_check_key
    - pgp::ecdsa::load_public_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - hash_alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 132
    functionName: pgp::ecdsa::padding_str_for
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      padding_str_for(pgp_hash_alg_t hash_alg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:141,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:146,1
    - Dst: pgp::ecdsa::load_secret_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:147,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:148,1
    - Dst: rnp::botan::op::Sign::Sign
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:152,1
    - Dst: pgp::ecdsa::padding_str_for
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:153,1
    - Dst: botan_pk_op_sign_create
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:154,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:154,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:154,1
    - Dst: botan_pk_op_sign_update
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:155,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:155,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:155,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:155,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:159,1
    - Dst: botan_pk_op_sign_finish
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:163,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:163,1
    - Dst: handle
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:163,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:163,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:164,1
    - Dst: r::assign
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:169,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:169,1
    - Dst: s::assign
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:170,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:170,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - '               rng'
    - '          sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - rnp::RNG
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 172
    functionName: pgp::ecdsa::sign
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - handle
    - rnp::secure_bytes::size
    - r::assign
    - botan_pk_op_sign_create
    - rnp::botan::Privkey::get
    - pgp::ecdsa::load_secret_key
    - pgp::ec::Curve::get
    - rnp::botan::op::Sign::get
    - botan_pk_op_sign_finish
    - rnp::botan::op::Sign::Sign
    - pgp::ecdsa::padding_str_for
    - botan_pk_op_sign_update
    - s::assign
    - auto::bytes
    - rnp::secure_bytes::data
    - std::vector::data
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t sign(rnp::RNG &               rng,\n     ec::Signature
      &          sig,\n     pgp_hash_alg_t           hash_alg,\n     const rnp::secure_bytes
      &hash,\n     const ec::Key &          key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:180,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:182,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:186,1
    - Dst: r::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:187,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:188,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:194,1
    - Dst: pgp::ecdsa::load_public_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:195,1
    - Dst: rnp::botan::op::Verify::Verify
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:199,1
    - Dst: pgp::ecdsa::padding_str_for
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:200,1
    - Dst: botan_pk_op_verify_create
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:201,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:201,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:201,1
    - Dst: botan_pk_op_verify_update
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:202,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:202,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:202,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:202,1
    - Dst: r::copy
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:208,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:208,1
    - Dst: s::copy
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:209,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:209,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:211,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:211,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:211,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:211,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - '    sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 215
    functionName: pgp::ecdsa::verify
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 2
    functionsReached:
    - s::copy
    - rnp::botan::op::Verify::Verify
    - rnp::secure_bytes::size
    - botan_pk_op_verify_finish
    - r::copy
    - s::size
    - rnp::secure_bytes::data
    - rnp::botan::Pubkey::get
    - pgp::ec::Curve::get
    - RNP_LOG
    - std::vector::size
    - auto::bytes
    - pgp::ecdsa::load_public_key
    - std::vector::data
    - r::size
    - botan_pk_op_verify_update
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_verify_create
    - pgp::ecdsa::padding_str_for
    - rnp::botan::op::Verify::get
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t verify(const ec::Signature &    sig,\n       pgp_hash_alg_t
      \          hash_alg,\n       const rnp::secure_bytes &hash,\n       const ec::Key
      &          key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:39,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:41,1
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:44,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:45,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:48,1
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:49,1
    - Dst: botan_pubkey_load_ecdsa
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:59,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:59,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:59,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:59,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:61,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - pubkey
    - keydata
    argTypes:
    - rnp::botan::Pubkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 64
    functionName: pgp::ecdsa::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - rnp::botan::Pubkey::get
    - botan_pubkey_load_ecdsa
    - ec::Key::p::size
    - pgp::ec::Curve::get
    - auto::bytes
    - rnp::bn::get
    linkageType: ''
    returnType: bool
    signature: bool load_public_key(rnp::botan::Pubkey &pubkey, const ec::Key &keydata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:69,1
    - Dst: botan_privkey_load_ecdsa
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:79,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:79,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:79,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - seckey
    - keydata
    argTypes:
    - rnp::botan::Privkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 84
    functionName: pgp::ecdsa::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - rnp::botan::Privkey::get
    - pgp::ec::Curve::get
    - botan_privkey_load_ecdsa
    - rnp::bn::get
    linkageType: ''
    returnType: bool
    signature: bool load_secret_key(rnp::botan::Privkey &seckey, const ec::Key &keydata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:89,1
    - Dst: pgp::ecdsa::load_public_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:90,1
    - Dst: botan_pubkey_check_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:90,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:90,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:90,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:97,1
    - Dst: pgp::ecdsa::load_secret_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:98,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:99,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:99,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:99,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 103
    functionName: pgp::ecdsa::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 2
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::get
    - botan_privkey_check_key
    - rnp::RNG::handle
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - pgp::ecdsa::load_secret_key
    - botan_pubkey_check_key
    - pgp::ecdsa::load_public_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - hash_alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 132
    functionName: pgp::ecdsa::padding_str_for
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      padding_str_for(pgp_hash_alg_t hash_alg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:141,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:146,1
    - Dst: pgp::ecdsa::load_secret_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:147,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:148,1
    - Dst: rnp::botan::op::Sign::Sign
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:152,1
    - Dst: pgp::ecdsa::padding_str_for
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:153,1
    - Dst: botan_pk_op_sign_create
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:154,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:154,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:154,1
    - Dst: botan_pk_op_sign_update
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:155,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:155,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:155,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:155,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:159,1
    - Dst: botan_pk_op_sign_finish
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:163,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:163,1
    - Dst: handle
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:163,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:163,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:164,1
    - Dst: r::assign
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:169,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:169,1
    - Dst: s::assign
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:170,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:170,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - '               rng'
    - '          sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - rnp::RNG
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 172
    functionName: pgp::ecdsa::sign
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - handle
    - rnp::secure_bytes::size
    - r::assign
    - botan_pk_op_sign_create
    - rnp::botan::Privkey::get
    - pgp::ecdsa::load_secret_key
    - pgp::ec::Curve::get
    - rnp::botan::op::Sign::get
    - botan_pk_op_sign_finish
    - rnp::botan::op::Sign::Sign
    - pgp::ecdsa::padding_str_for
    - botan_pk_op_sign_update
    - s::assign
    - auto::bytes
    - rnp::secure_bytes::data
    - std::vector::data
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t sign(rnp::RNG &               rng,\n     ec::Signature
      &          sig,\n     pgp_hash_alg_t           hash_alg,\n     const rnp::secure_bytes
      &hash,\n     const ec::Key &          key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:180,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:182,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:186,1
    - Dst: r::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:187,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:188,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:194,1
    - Dst: pgp::ecdsa::load_public_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:195,1
    - Dst: rnp::botan::op::Verify::Verify
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:199,1
    - Dst: pgp::ecdsa::padding_str_for
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:200,1
    - Dst: botan_pk_op_verify_create
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:201,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:201,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:201,1
    - Dst: botan_pk_op_verify_update
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:202,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:202,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:202,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:202,1
    - Dst: r::copy
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:208,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:208,1
    - Dst: s::copy
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:209,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:209,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:211,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:211,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:211,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:211,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - '    sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 215
    functionName: pgp::ecdsa::verify
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 2
    functionsReached:
    - s::copy
    - rnp::botan::op::Verify::Verify
    - rnp::secure_bytes::size
    - botan_pk_op_verify_finish
    - r::copy
    - s::size
    - rnp::secure_bytes::data
    - rnp::botan::Pubkey::get
    - pgp::ec::Curve::get
    - RNP_LOG
    - std::vector::size
    - auto::bytes
    - pgp::ecdsa::load_public_key
    - std::vector::data
    - r::size
    - botan_pk_op_verify_update
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_verify_create
    - pgp::ecdsa::padding_str_for
    - rnp::botan::op::Verify::get
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t verify(const ec::Signature &    sig,\n       pgp_hash_alg_t
      \          hash_alg,\n       const rnp::secure_bytes &hash,\n       const ec::Key
      &          key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:39,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:41,1
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:44,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:45,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:48,1
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:49,1
    - Dst: botan_pubkey_load_ecdsa
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:59,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:59,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:59,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:59,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:61,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - pubkey
    - keydata
    argTypes:
    - rnp::botan::Pubkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 64
    functionName: pgp::ecdsa::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - rnp::botan::Pubkey::get
    - botan_pubkey_load_ecdsa
    - ec::Key::p::size
    - pgp::ec::Curve::get
    - auto::bytes
    - rnp::bn::get
    linkageType: ''
    returnType: bool
    signature: bool load_public_key(rnp::botan::Pubkey &pubkey, const ec::Key &keydata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:69,1
    - Dst: botan_privkey_load_ecdsa
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:79,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:79,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:79,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - seckey
    - keydata
    argTypes:
    - rnp::botan::Privkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 84
    functionName: pgp::ecdsa::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - rnp::botan::Privkey::get
    - pgp::ec::Curve::get
    - botan_privkey_load_ecdsa
    - rnp::bn::get
    linkageType: ''
    returnType: bool
    signature: bool load_secret_key(rnp::botan::Privkey &seckey, const ec::Key &keydata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:89,1
    - Dst: pgp::ecdsa::load_public_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:90,1
    - Dst: botan_pubkey_check_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:90,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:90,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:90,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:97,1
    - Dst: pgp::ecdsa::load_secret_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:98,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:99,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:99,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:99,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 103
    functionName: pgp::ecdsa::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 2
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::get
    - botan_privkey_check_key
    - rnp::RNG::handle
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - pgp::ecdsa::load_secret_key
    - botan_pubkey_check_key
    - pgp::ecdsa::load_public_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - hash_alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 132
    functionName: pgp::ecdsa::padding_str_for
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 6
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      padding_str_for(pgp_hash_alg_t hash_alg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:141,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:146,1
    - Dst: pgp::ecdsa::load_secret_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:147,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:148,1
    - Dst: rnp::botan::op::Sign::Sign
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:152,1
    - Dst: pgp::ecdsa::padding_str_for
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:153,1
    - Dst: botan_pk_op_sign_create
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:154,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:154,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:154,1
    - Dst: botan_pk_op_sign_update
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:155,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:155,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:155,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:155,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:159,1
    - Dst: botan_pk_op_sign_finish
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:163,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:163,1
    - Dst: handle
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:163,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:163,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:164,1
    - Dst: r::assign
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:169,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:169,1
    - Dst: s::assign
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:170,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:170,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - '               rng'
    - '          sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - rnp::RNG
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 172
    functionName: pgp::ecdsa::sign
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - handle
    - rnp::secure_bytes::size
    - r::assign
    - botan_pk_op_sign_create
    - rnp::botan::Privkey::get
    - pgp::ecdsa::load_secret_key
    - pgp::ec::Curve::get
    - rnp::botan::op::Sign::get
    - botan_pk_op_sign_finish
    - rnp::botan::op::Sign::Sign
    - pgp::ecdsa::padding_str_for
    - botan_pk_op_sign_update
    - s::assign
    - auto::bytes
    - rnp::secure_bytes::data
    - std::vector::data
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t sign(rnp::RNG &               rng,\n     ec::Signature
      &          sig,\n     pgp_hash_alg_t           hash_alg,\n     const rnp::secure_bytes
      &hash,\n     const ec::Key &          key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:180,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:182,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:186,1
    - Dst: r::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:187,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:188,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:194,1
    - Dst: pgp::ecdsa::load_public_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:195,1
    - Dst: rnp::botan::op::Verify::Verify
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:199,1
    - Dst: pgp::ecdsa::padding_str_for
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:200,1
    - Dst: botan_pk_op_verify_create
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:201,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:201,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:201,1
    - Dst: botan_pk_op_verify_update
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:202,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:202,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:202,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:202,1
    - Dst: r::copy
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:208,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:208,1
    - Dst: s::copy
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:209,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:209,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:211,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:211,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:211,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:211,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - '    sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 215
    functionName: pgp::ecdsa::verify
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 2
    functionsReached:
    - s::copy
    - rnp::botan::op::Verify::Verify
    - rnp::secure_bytes::size
    - botan_pk_op_verify_finish
    - r::copy
    - s::size
    - rnp::secure_bytes::data
    - rnp::botan::Pubkey::get
    - pgp::ec::Curve::get
    - RNP_LOG
    - std::vector::size
    - auto::bytes
    - pgp::ecdsa::load_public_key
    - std::vector::data
    - r::size
    - botan_pk_op_verify_update
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_verify_create
    - pgp::ecdsa::padding_str_for
    - rnp::botan::op::Verify::get
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t verify(const ec::Signature &    sig,\n       pgp_hash_alg_t
      \          hash_alg,\n       const rnp::secure_bytes &hash,\n       const ec::Key
      &          key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:39,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:41,1
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:44,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:45,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:48,1
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:49,1
    - Dst: botan_pubkey_load_ecdsa
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:59,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:59,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:59,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:59,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:61,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 19
    argCount: 2
    argNames:
    - pubkey
    - keydata
    argTypes:
    - rnp::botan::Pubkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 36
    functionDepth: 1
    functionLinenumber: 36
    functionLinenumberEnd: 64
    functionName: pgp::ecdsa::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 6
    functionsReached:
    - RNP_LOG
    - rnp::botan::Pubkey::get
    - botan_pubkey_load_ecdsa
    - ec::Key::p::size
    - pgp::ec::Curve::get
    - auto::bytes
    - rnp::bn::get
    linkageType: ''
    returnType: bool
    signature: bool load_public_key(rnp::botan::Pubkey &pubkey, const ec::Key &keydata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:69,1
    - Dst: botan_privkey_load_ecdsa
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:79,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:79,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:79,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:81,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - seckey
    - keydata
    argTypes:
    - rnp::botan::Privkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 66
    functionDepth: 1
    functionLinenumber: 66
    functionLinenumberEnd: 84
    functionName: pgp::ecdsa::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 6
    functionsReached:
    - RNP_LOG
    - rnp::botan::Privkey::get
    - pgp::ec::Curve::get
    - botan_privkey_load_ecdsa
    - rnp::bn::get
    linkageType: ''
    returnType: bool
    signature: bool load_secret_key(rnp::botan::Privkey &seckey, const ec::Key &keydata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:89,1
    - Dst: pgp::ecdsa::load_public_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:90,1
    - Dst: botan_pubkey_check_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:90,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:90,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:90,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:97,1
    - Dst: pgp::ecdsa::load_secret_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:98,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:99,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:99,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:99,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 86
    functionDepth: 1
    functionLinenumber: 86
    functionLinenumberEnd: 103
    functionName: pgp::ecdsa::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 2
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::get
    - botan_privkey_check_key
    - rnp::RNG::handle
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - pgp::ecdsa::load_secret_key
    - botan_pubkey_check_key
    - pgp::ecdsa::load_public_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 1
    argNames:
    - hash_alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 132
      start: 105
    functionDepth: 0
    functionLinenumber: 105
    functionLinenumberEnd: 132
    functionName: pgp::ecdsa::padding_str_for
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: 'char *

      padding_str_for(pgp_hash_alg_t hash_alg)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:141,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:146,1
    - Dst: pgp::ecdsa::load_secret_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:147,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:148,1
    - Dst: rnp::botan::op::Sign::Sign
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:152,1
    - Dst: pgp::ecdsa::padding_str_for
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:153,1
    - Dst: botan_pk_op_sign_create
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:154,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:154,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:154,1
    - Dst: botan_pk_op_sign_update
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:155,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:155,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:155,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:155,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:159,1
    - Dst: botan_pk_op_sign_finish
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:163,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:163,1
    - Dst: handle
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:163,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:163,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:164,1
    - Dst: r::assign
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:169,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:169,1
    - Dst: s::assign
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:170,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:170,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 18
    argCount: 5
    argNames:
    - '               rng'
    - '          sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - rnp::RNG
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 172
      start: 134
    functionDepth: 1
    functionLinenumber: 134
    functionLinenumberEnd: 172
    functionName: pgp::ecdsa::sign
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - handle
    - rnp::secure_bytes::size
    - r::assign
    - botan_pk_op_sign_create
    - rnp::botan::Privkey::get
    - pgp::ecdsa::load_secret_key
    - pgp::ec::Curve::get
    - rnp::botan::op::Sign::get
    - botan_pk_op_sign_finish
    - rnp::botan::op::Sign::Sign
    - pgp::ecdsa::padding_str_for
    - botan_pk_op_sign_update
    - s::assign
    - auto::bytes
    - rnp::secure_bytes::data
    - std::vector::data
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t sign(rnp::RNG &               rng,\n     ec::Signature
      &          sig,\n     pgp_hash_alg_t           hash_alg,\n     const rnp::secure_bytes
      &hash,\n     const ec::Key &          key)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:180,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:182,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:186,1
    - Dst: r::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:187,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:188,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:194,1
    - Dst: pgp::ecdsa::load_public_key
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:195,1
    - Dst: rnp::botan::op::Verify::Verify
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:199,1
    - Dst: pgp::ecdsa::padding_str_for
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:200,1
    - Dst: botan_pk_op_verify_create
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:201,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:201,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:201,1
    - Dst: botan_pk_op_verify_update
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:202,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:202,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:202,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:202,1
    - Dst: r::copy
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:208,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:208,1
    - Dst: s::copy
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:209,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:209,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:211,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:211,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:211,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/ecdsa.cpp:211,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 20
    argCount: 4
    argNames:
    - '    sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 174
    functionDepth: 1
    functionLinenumber: 174
    functionLinenumberEnd: 215
    functionName: pgp::ecdsa::verify
    functionSourceFile: /src/rnp/src/lib/crypto/ecdsa.cpp
    functionUses: 2
    functionsReached:
    - s::copy
    - rnp::botan::op::Verify::Verify
    - rnp::secure_bytes::size
    - botan_pk_op_verify_finish
    - r::copy
    - s::size
    - rnp::secure_bytes::data
    - rnp::botan::Pubkey::get
    - pgp::ec::Curve::get
    - RNP_LOG
    - std::vector::size
    - auto::bytes
    - pgp::ecdsa::load_public_key
    - std::vector::data
    - r::size
    - botan_pk_op_verify_update
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_verify_create
    - pgp::ecdsa::padding_str_for
    - rnp::botan::op::Verify::get
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t verify(const ec::Signature &    sig,\n       pgp_hash_alg_t
      \          hash_alg,\n       const rnp::secure_bytes &hash,\n       const ec::Key
      &          key)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: pgp_s2k_decode_iterations
      Src: /src/rnp/src/lib/crypto/s2k.cpp:69,1
    - Dst: pgp_s2k_argon2
      Src: /src/rnp/src/lib/crypto/s2k.cpp:85,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/s2k.cpp:92,1
    - Dst: pgp_s2k_iterated
      Src: /src/rnp/src/lib/crypto/s2k.cpp:97,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/s2k.cpp:98,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 32
    argCount: 4
    argNames:
    - s2k
    - password
    - key
    - keysize
    argTypes:
    - pgp_s2k_t*
    - char*
    - uint8_t*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 54
    functionDepth: 1
    functionLinenumber: 54
    functionLinenumberEnd: 103
    functionName: pgp_s2k_derive_key
    functionSourceFile: /src/rnp/src/lib/crypto/s2k.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - pgp_s2k_argon2
    - pgp_s2k_iterated
    - pgp_s2k_decode_iterations
    linkageType: ''
    returnType: bool
    signature: bool pgp_s2k_derive_key(pgp_s2k_t *s2k, const char *password, uint8_t
      *key, int keysize)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/s2k.cpp:120,1
    - Dst: std::ceil
      Src: /src/rnp/src/lib/crypto/s2k.cpp:125,1
    - Dst: std::log2
      Src: /src/rnp/src/lib/crypto/s2k.cpp:125,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/s2k.cpp:126,1
    - Dst: Botan::PasswordHashFamily::create_or_throw
      Src: /src/rnp/src/lib/crypto/s2k.cpp:131,1
    - Dst: auto::from_params
      Src: /src/rnp/src/lib/crypto/s2k.cpp:134,1
    - Dst: std::unique_ptr::derive_key
      Src: /src/rnp/src/lib/crypto/s2k.cpp:135,1
    - Dst: std::strlen
      Src: /src/rnp/src/lib/crypto/s2k.cpp:136,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/s2k.cpp:138,1
    - Dst: what
      Src: /src/rnp/src/lib/crypto/s2k.cpp:138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 16
    argCount: 7
    argNames:
    - out
    - output_len
    - password
    - salt
    - t
    - p
    - encoded_m
    argTypes:
    - uint8_t*
    - size_t
    - char*
    - uint8_t*
    - uint8_t
    - uint8_t
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 107
    functionDepth: 1
    functionLinenumber: 107
    functionLinenumberEnd: 142
    functionName: pgp_s2k_argon2
    functionSourceFile: /src/rnp/src/lib/crypto/s2k.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - what
    - std::strlen
    - std::unique_ptr::derive_key
    - std::ceil
    - std::log2
    - Botan::PasswordHashFamily::create_or_throw
    - auto::from_params
    linkageType: ''
    returnType: int
    signature: "int pgp_s2k_argon2(uint8_t *      out,\n               size_t         output_len,\n
      \              const char *   password,\n               const uint8_t *salt,\n
      \              uint8_t        t,\n               uint8_t        p,\n               uint8_t
      \       encoded_m)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: snprintf
      Src: /src/rnp/src/lib/crypto/s2k.cpp:154,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/s2k.cpp:157,1
    - Dst: botan_pwdhash
      Src: /src/rnp/src/lib/crypto/s2k.cpp:159,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - alg
    - out
    - output_len
    - password
    - salt
    - iterations
    argTypes:
    - pgp_hash_alg_t
    - uint8_t*
    - size_t
    - char*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 145
    functionDepth: 1
    functionLinenumber: 145
    functionLinenumberEnd: 169
    functionName: pgp_s2k_iterated
    functionSourceFile: /src/rnp/src/lib/crypto/s2k.cpp
    functionUses: 3
    functionsReached:
    - rnp::Hash_Botan::name_backend
    - snprintf
    - botan_pwdhash
    linkageType: ''
    returnType: int
    signature: "int pgp_s2k_iterated(pgp_hash_alg_t alg,\n                 uint8_t
      *      out,\n                 size_t         output_len,\n                 const
      char *   password,\n                 const uint8_t *salt,\n                 size_t
      \        iterations)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 177
      start: 172
    functionDepth: 0
    functionLinenumber: 172
    functionLinenumberEnd: 177
    functionName: pgp_s2k_decode_iterations
    functionSourceFile: /src/rnp/src/lib/crypto/s2k.cpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_s2k_decode_iterations(uint8_t c)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_s2k_decode_iterations
      Src: /src/rnp/src/lib/crypto/s2k.cpp:182,1
    - Dst: pgp_s2k_encode_iterations
      Src: /src/rnp/src/lib/crypto/s2k.cpp:182,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 179
    functionDepth: 1
    functionLinenumber: 179
    functionLinenumberEnd: 183
    functionName: pgp_s2k_round_iterations
    functionSourceFile: /src/rnp/src/lib/crypto/s2k.cpp
    functionUses: 2
    functionsReached:
    - pgp_s2k_decode_iterations
    - pgp_s2k_encode_iterations
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_s2k_round_iterations(size_t iterations)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_s2k_decode_iterations
      Src: /src/rnp/src/lib/crypto/s2k.cpp:200,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - iterations
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 205
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 205
    functionName: pgp_s2k_encode_iterations
    functionSourceFile: /src/rnp/src/lib/crypto/s2k.cpp
    functionUses: 4
    functionsReached:
    - pgp_s2k_decode_iterations
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t pgp_s2k_encode_iterations(size_t iterations)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::gettimeofday
      Src: /src/rnp/src/lib/crypto/s2k.cpp:214,1
    - Dst: static_cast<uint64_t>
      Src: /src/rnp/src/lib/crypto/s2k.cpp:215,1
    - Dst: static_cast<uint64_t>
      Src: /src/rnp/src/lib/crypto/s2k.cpp:215,1
    - Dst: GetTickCount64
      Src: /src/rnp/src/lib/crypto/s2k.cpp:217,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 219
      start: 208
    functionDepth: 0
    functionLinenumber: 208
    functionLinenumberEnd: 219
    functionName: get_timestamp_usec
    functionSourceFile: /src/rnp/src/lib/crypto/s2k.cpp
    functionUses: 0
    functionsReached:
    - static_cast<uint64_t>
    - ::gettimeofday
    - GetTickCount64
    linkageType: ''
    returnType: uint64_t
    signature: uint64_t get_timestamp_usec()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_timestamp_usec
      Src: /src/rnp/src/lib/crypto/s2k.cpp:238,1
    - Dst: rnp::Hash::create
      Src: /src/rnp/src/lib/crypto/s2k.cpp:240,1
    - Dst: auto::add
      Src: /src/rnp/src/lib/crypto/s2k.cpp:243,1
    - Dst: get_timestamp_usec
      Src: /src/rnp/src/lib/crypto/s2k.cpp:245,1
    - Dst: auto::finish
      Src: /src/rnp/src/lib/crypto/s2k.cpp:247,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/s2k.cpp:251,1
    - Dst: what
      Src: /src/rnp/src/lib/crypto/s2k.cpp:251,1
    - Dst: pgp_s2k_decode_iterations
      Src: /src/rnp/src/lib/crypto/s2k.cpp:257,1
    - Dst: static_cast<double>
      Src: /src/rnp/src/lib/crypto/s2k.cpp:260,1
    - Dst: pgp_s2k_encode_iterations
      Src: /src/rnp/src/lib/crypto/s2k.cpp:263,1
    - Dst: pgp_s2k_decode_iterations
      Src: /src/rnp/src/lib/crypto/s2k.cpp:265,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 25
    argCount: 3
    argNames:
    - alg
    - desired_msec
    - trial_msec
    argTypes:
    - pgp_hash_alg_t
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 266
      start: 221
    functionDepth: 2
    functionLinenumber: 221
    functionLinenumberEnd: 266
    functionName: pgp_s2k_compute_iters
    functionSourceFile: /src/rnp/src/lib/crypto/s2k.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - what
    - pgp_s2k_decode_iterations
    - pgp_s2k_encode_iterations
    - get_timestamp_usec
    - static_cast<double>
    - rnp::Hash::create
    - auto::add
    - auto::finish
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_s2k_compute_iters(pgp_hash_alg_t alg, size_t desired_msec,
      size_t trial_msec)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - specifier
    argTypes:
    - pgp_s2k_specifier_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 277
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 277
    functionName: pgp_s2k_t::salt_size
    functionSourceFile: /src/rnp/src/lib/crypto/s2k.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t pgp_s2k_t::salt_size(pgp_s2k_specifier_t specifier)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/s2k.cpp:296,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/s2k.cpp:297,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 16
    argCount: 1
    argNames:
    - specifier
    argTypes:
    - pgp_s2k_specifier_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 299
      start: 279
    functionDepth: 1
    functionLinenumber: 279
    functionLinenumberEnd: 299
    functionName: pgp_s2k_t::specifier_len
    functionSourceFile: /src/rnp/src/lib/crypto/s2k.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: uint8_t
    signature: uint8_t pgp_s2k_t::specifier_len(pgp_s2k_specifier_t specifier)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:49,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:53,1
    - Dst: botan_pubkey_load_dsa
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: botan_pubkey_check_key
      Src: /src/rnp/src/lib/crypto/dsa.cpp:55,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:55,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/dsa.cpp:55,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:65,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:69,1
    - Dst: botan_privkey_load_dsa
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/dsa.cpp:71,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:71,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/dsa.cpp:71,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - rng
    - secret
    argTypes:
    - rnp::RNG
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 75
    functionName: pgp::dsa::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::get
    - botan_privkey_load_dsa
    - rnp::RNG::handle
    - botan_pubkey_check_key
    - botan_privkey_check_key
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - botan_pubkey_load_dsa
    - rnp::bn::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::validate(rnp::RNG &rng, bool secret) const noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:81,1
    - Dst: std::min
      Src: /src/rnp/src/lib/crypto/dsa.cpp:83,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:83,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:91,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:95,1
    - Dst: botan_privkey_load_dsa
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:97,1
    - Dst: rnp::botan::op::Sign::Sign
      Src: /src/rnp/src/lib/crypto/dsa.cpp:101,1
    - Dst: botan_pk_op_sign_create
      Src: /src/rnp/src/lib/crypto/dsa.cpp:102,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:102,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:102,1
    - Dst: botan_pk_op_sign_update
      Src: /src/rnp/src/lib/crypto/dsa.cpp:106,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:106,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:106,1
    - Dst: botan_pk_op_sign_finish
      Src: /src/rnp/src/lib/crypto/dsa.cpp:112,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:112,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/dsa.cpp:112,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:112,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:113,1
    - Dst: Signature::r::assign
      Src: /src/rnp/src/lib/crypto/dsa.cpp:118,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:118,1
    - Dst: Signature::s::assign
      Src: /src/rnp/src/lib/crypto/dsa.cpp:119,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:119,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - rng
    - sig
    - hash
    argTypes:
    - rnp::RNG
    - Signature
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 121
    functionName: pgp::dsa::Key::sign
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - Signature::s::assign
    - rnp::secure_bytes::size
    - botan_privkey_load_dsa
    - rnp::RNG::handle
    - rnp::botan::Privkey::get
    - botan_pk_op_sign_create
    - rnp::botan::op::Sign::get
    - std::min
    - botan_pk_op_sign_finish
    - Signature::r::assign
    - rnp::botan::op::Sign::Sign
    - botan_pk_op_sign_update
    - rnp::secure_bytes::data
    - rnp::bn::get
    - std::vector::data
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::sign(rnp::RNG &rng, Signature &sig, const rnp::secure_bytes
      &hash) const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:126,1
    - Dst: std::min
      Src: /src/rnp/src/lib/crypto/dsa.cpp:127,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:127,1
    - Dst: Signature::r::size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:128,1
    - Dst: Signature::s::size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:129,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:131,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:141,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:145,1
    - Dst: botan_pubkey_load_dsa
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:147,1
    - Dst: Signature::r::copy
      Src: /src/rnp/src/lib/crypto/dsa.cpp:152,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:152,1
    - Dst: Signature::s::copy
      Src: /src/rnp/src/lib/crypto/dsa.cpp:153,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:153,1
    - Dst: rnp::botan::op::Verify::Verify
      Src: /src/rnp/src/lib/crypto/dsa.cpp:155,1
    - Dst: botan_pk_op_verify_create
      Src: /src/rnp/src/lib/crypto/dsa.cpp:156,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:156,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:156,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:157,1
    - Dst: botan_pk_op_verify_update
      Src: /src/rnp/src/lib/crypto/dsa.cpp:161,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:161,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:161,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/dsa.cpp:165,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:165,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:165,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - sig
    - hash
    argTypes:
    - Signature
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 169
    functionName: pgp::dsa::Key::verify
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.cpp
    functionUses: 0
    functionsReached:
    - rnp::botan::op::Verify::Verify
    - rnp::secure_bytes::size
    - botan_pk_op_verify_finish
    - rnp::secure_bytes::data
    - size
    - Signature::r::copy
    - rnp::botan::Pubkey::get
    - Signature::r::size
    - rnp::bn::get
    - RNP_LOG
    - Signature::s::copy
    - std::min
    - Signature::s::size
    - botan_pubkey_load_dsa
    - std::vector::data
    - botan_pk_op_verify_update
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_verify_create
    - rnp::botan::op::Verify::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::verify(const Signature &sig, const rnp::secure_bytes
      &hash) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa.cpp:178,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa.cpp:179,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa.cpp:180,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa.cpp:181,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa.cpp:182,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:188,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:189,1
    - Dst: botan_privkey_create_dsa
      Src: /src/rnp/src/lib/crypto/dsa.cpp:190,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:190,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/dsa.cpp:190,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/dsa.cpp:191,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:191,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/dsa.cpp:191,1
    - Dst: botan_privkey_export_pubkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:192,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:192,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:192,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:193,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/dsa.cpp:197,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:197,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:197,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/dsa.cpp:198,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:198,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:198,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/dsa.cpp:199,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:199,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:199,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/dsa.cpp:200,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:200,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:200,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/dsa.cpp:201,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:201,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:201,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:202,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa.cpp:206,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa.cpp:206,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa.cpp:206,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa.cpp:206,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa.cpp:206,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:207,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 20
    argCount: 3
    argNames:
    - rng
    - keylen
    - qbits
    argTypes:
    - rnp::RNG
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 211
    functionName: pgp::dsa::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.cpp
    functionUses: 0
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - botan_privkey_create_dsa
    - rnp::botan::Privkey::Privkey
    - botan_privkey_check_key
    - rnp::botan::Pubkey::get
    - rnp::RNG::handle
    - botan_pubkey_get_field
    - botan_privkey_export_pubkey
    - rnp::botan::Privkey::get
    - botan_privkey_get_field
    - rnp::botan::Pubkey::Pubkey
    - rnp::bn::mpi
    - rnp::bn::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t keylen, size_t qbits)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:49,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:53,1
    - Dst: botan_pubkey_load_dsa
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: botan_pubkey_check_key
      Src: /src/rnp/src/lib/crypto/dsa.cpp:55,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:55,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/dsa.cpp:55,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:65,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:69,1
    - Dst: botan_privkey_load_dsa
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/dsa.cpp:71,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:71,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/dsa.cpp:71,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - rng
    - secret
    argTypes:
    - rnp::RNG
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 75
    functionName: pgp::dsa::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::get
    - botan_privkey_load_dsa
    - rnp::RNG::handle
    - botan_pubkey_check_key
    - botan_privkey_check_key
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - botan_pubkey_load_dsa
    - rnp::bn::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::validate(rnp::RNG &rng, bool secret) const noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:81,1
    - Dst: std::min
      Src: /src/rnp/src/lib/crypto/dsa.cpp:83,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:83,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:91,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:95,1
    - Dst: botan_privkey_load_dsa
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:97,1
    - Dst: rnp::botan::op::Sign::Sign
      Src: /src/rnp/src/lib/crypto/dsa.cpp:101,1
    - Dst: botan_pk_op_sign_create
      Src: /src/rnp/src/lib/crypto/dsa.cpp:102,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:102,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:102,1
    - Dst: botan_pk_op_sign_update
      Src: /src/rnp/src/lib/crypto/dsa.cpp:106,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:106,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:106,1
    - Dst: botan_pk_op_sign_finish
      Src: /src/rnp/src/lib/crypto/dsa.cpp:112,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:112,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/dsa.cpp:112,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:112,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:113,1
    - Dst: Signature::r::assign
      Src: /src/rnp/src/lib/crypto/dsa.cpp:118,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:118,1
    - Dst: Signature::s::assign
      Src: /src/rnp/src/lib/crypto/dsa.cpp:119,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:119,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - rng
    - sig
    - hash
    argTypes:
    - rnp::RNG
    - Signature
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 121
    functionName: pgp::dsa::Key::sign
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - Signature::s::assign
    - rnp::secure_bytes::size
    - botan_privkey_load_dsa
    - rnp::RNG::handle
    - rnp::botan::Privkey::get
    - botan_pk_op_sign_create
    - rnp::botan::op::Sign::get
    - std::min
    - botan_pk_op_sign_finish
    - Signature::r::assign
    - rnp::botan::op::Sign::Sign
    - botan_pk_op_sign_update
    - rnp::secure_bytes::data
    - rnp::bn::get
    - std::vector::data
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::sign(rnp::RNG &rng, Signature &sig, const rnp::secure_bytes
      &hash) const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:126,1
    - Dst: std::min
      Src: /src/rnp/src/lib/crypto/dsa.cpp:127,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:127,1
    - Dst: Signature::r::size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:128,1
    - Dst: Signature::s::size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:129,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:131,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:141,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:145,1
    - Dst: botan_pubkey_load_dsa
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:147,1
    - Dst: Signature::r::copy
      Src: /src/rnp/src/lib/crypto/dsa.cpp:152,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:152,1
    - Dst: Signature::s::copy
      Src: /src/rnp/src/lib/crypto/dsa.cpp:153,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:153,1
    - Dst: rnp::botan::op::Verify::Verify
      Src: /src/rnp/src/lib/crypto/dsa.cpp:155,1
    - Dst: botan_pk_op_verify_create
      Src: /src/rnp/src/lib/crypto/dsa.cpp:156,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:156,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:156,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:157,1
    - Dst: botan_pk_op_verify_update
      Src: /src/rnp/src/lib/crypto/dsa.cpp:161,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:161,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:161,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/dsa.cpp:165,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:165,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:165,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - sig
    - hash
    argTypes:
    - Signature
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 169
    functionName: pgp::dsa::Key::verify
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.cpp
    functionUses: 0
    functionsReached:
    - rnp::botan::op::Verify::Verify
    - rnp::secure_bytes::size
    - botan_pk_op_verify_finish
    - rnp::secure_bytes::data
    - size
    - Signature::r::copy
    - rnp::botan::Pubkey::get
    - Signature::r::size
    - rnp::bn::get
    - RNP_LOG
    - Signature::s::copy
    - std::min
    - Signature::s::size
    - botan_pubkey_load_dsa
    - std::vector::data
    - botan_pk_op_verify_update
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_verify_create
    - rnp::botan::op::Verify::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::verify(const Signature &sig, const rnp::secure_bytes
      &hash) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa.cpp:178,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa.cpp:179,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa.cpp:180,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa.cpp:181,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa.cpp:182,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:188,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:189,1
    - Dst: botan_privkey_create_dsa
      Src: /src/rnp/src/lib/crypto/dsa.cpp:190,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:190,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/dsa.cpp:190,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/dsa.cpp:191,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:191,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/dsa.cpp:191,1
    - Dst: botan_privkey_export_pubkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:192,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:192,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:192,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:193,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/dsa.cpp:197,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:197,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:197,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/dsa.cpp:198,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:198,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:198,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/dsa.cpp:199,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:199,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:199,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/dsa.cpp:200,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:200,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:200,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/dsa.cpp:201,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:201,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:201,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:202,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa.cpp:206,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa.cpp:206,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa.cpp:206,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa.cpp:206,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa.cpp:206,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:207,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 20
    argCount: 3
    argNames:
    - rng
    - keylen
    - qbits
    argTypes:
    - rnp::RNG
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 211
    functionName: pgp::dsa::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.cpp
    functionUses: 0
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - botan_privkey_create_dsa
    - rnp::botan::Privkey::Privkey
    - botan_privkey_check_key
    - rnp::botan::Pubkey::get
    - rnp::RNG::handle
    - botan_pubkey_get_field
    - botan_privkey_export_pubkey
    - rnp::botan::Privkey::get
    - botan_privkey_get_field
    - rnp::botan::Pubkey::Pubkey
    - rnp::bn::mpi
    - rnp::bn::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t keylen, size_t qbits)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:49,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:53,1
    - Dst: botan_pubkey_load_dsa
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: botan_pubkey_check_key
      Src: /src/rnp/src/lib/crypto/dsa.cpp:55,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:55,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/dsa.cpp:55,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:65,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:69,1
    - Dst: botan_privkey_load_dsa
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/dsa.cpp:71,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:71,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/dsa.cpp:71,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - rng
    - secret
    argTypes:
    - rnp::RNG
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 75
    functionName: pgp::dsa::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::get
    - botan_privkey_load_dsa
    - rnp::RNG::handle
    - botan_pubkey_check_key
    - botan_privkey_check_key
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - botan_pubkey_load_dsa
    - rnp::bn::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::validate(rnp::RNG &rng, bool secret) const noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:81,1
    - Dst: std::min
      Src: /src/rnp/src/lib/crypto/dsa.cpp:83,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:83,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:91,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:95,1
    - Dst: botan_privkey_load_dsa
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:97,1
    - Dst: rnp::botan::op::Sign::Sign
      Src: /src/rnp/src/lib/crypto/dsa.cpp:101,1
    - Dst: botan_pk_op_sign_create
      Src: /src/rnp/src/lib/crypto/dsa.cpp:102,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:102,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:102,1
    - Dst: botan_pk_op_sign_update
      Src: /src/rnp/src/lib/crypto/dsa.cpp:106,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:106,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:106,1
    - Dst: botan_pk_op_sign_finish
      Src: /src/rnp/src/lib/crypto/dsa.cpp:112,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:112,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/dsa.cpp:112,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:112,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:113,1
    - Dst: Signature::r::assign
      Src: /src/rnp/src/lib/crypto/dsa.cpp:118,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:118,1
    - Dst: Signature::s::assign
      Src: /src/rnp/src/lib/crypto/dsa.cpp:119,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:119,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - rng
    - sig
    - hash
    argTypes:
    - rnp::RNG
    - Signature
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 121
    functionName: pgp::dsa::Key::sign
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - Signature::s::assign
    - rnp::secure_bytes::size
    - botan_privkey_load_dsa
    - rnp::RNG::handle
    - rnp::botan::Privkey::get
    - botan_pk_op_sign_create
    - rnp::botan::op::Sign::get
    - std::min
    - botan_pk_op_sign_finish
    - Signature::r::assign
    - rnp::botan::op::Sign::Sign
    - botan_pk_op_sign_update
    - rnp::secure_bytes::data
    - rnp::bn::get
    - std::vector::data
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::sign(rnp::RNG &rng, Signature &sig, const rnp::secure_bytes
      &hash) const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:126,1
    - Dst: std::min
      Src: /src/rnp/src/lib/crypto/dsa.cpp:127,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:127,1
    - Dst: Signature::r::size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:128,1
    - Dst: Signature::s::size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:129,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:131,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:141,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:145,1
    - Dst: botan_pubkey_load_dsa
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:147,1
    - Dst: Signature::r::copy
      Src: /src/rnp/src/lib/crypto/dsa.cpp:152,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:152,1
    - Dst: Signature::s::copy
      Src: /src/rnp/src/lib/crypto/dsa.cpp:153,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:153,1
    - Dst: rnp::botan::op::Verify::Verify
      Src: /src/rnp/src/lib/crypto/dsa.cpp:155,1
    - Dst: botan_pk_op_verify_create
      Src: /src/rnp/src/lib/crypto/dsa.cpp:156,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:156,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:156,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:157,1
    - Dst: botan_pk_op_verify_update
      Src: /src/rnp/src/lib/crypto/dsa.cpp:161,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:161,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:161,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/dsa.cpp:165,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:165,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:165,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - sig
    - hash
    argTypes:
    - Signature
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 169
    functionName: pgp::dsa::Key::verify
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.cpp
    functionUses: 0
    functionsReached:
    - rnp::botan::op::Verify::Verify
    - rnp::secure_bytes::size
    - botan_pk_op_verify_finish
    - rnp::secure_bytes::data
    - size
    - Signature::r::copy
    - rnp::botan::Pubkey::get
    - Signature::r::size
    - rnp::bn::get
    - RNP_LOG
    - Signature::s::copy
    - std::min
    - Signature::s::size
    - botan_pubkey_load_dsa
    - std::vector::data
    - botan_pk_op_verify_update
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_verify_create
    - rnp::botan::op::Verify::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::verify(const Signature &sig, const rnp::secure_bytes
      &hash) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa.cpp:178,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa.cpp:179,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa.cpp:180,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa.cpp:181,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa.cpp:182,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:188,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:189,1
    - Dst: botan_privkey_create_dsa
      Src: /src/rnp/src/lib/crypto/dsa.cpp:190,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:190,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/dsa.cpp:190,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/dsa.cpp:191,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:191,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/dsa.cpp:191,1
    - Dst: botan_privkey_export_pubkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:192,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:192,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:192,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:193,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/dsa.cpp:197,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:197,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:197,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/dsa.cpp:198,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:198,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:198,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/dsa.cpp:199,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:199,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:199,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/dsa.cpp:200,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:200,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:200,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/dsa.cpp:201,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:201,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:201,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:202,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa.cpp:206,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa.cpp:206,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa.cpp:206,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa.cpp:206,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa.cpp:206,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:207,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 20
    argCount: 3
    argNames:
    - rng
    - keylen
    - qbits
    argTypes:
    - rnp::RNG
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 211
    functionName: pgp::dsa::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.cpp
    functionUses: 0
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - botan_privkey_create_dsa
    - rnp::botan::Privkey::Privkey
    - botan_privkey_check_key
    - rnp::botan::Pubkey::get
    - rnp::RNG::handle
    - botan_pubkey_get_field
    - botan_privkey_export_pubkey
    - rnp::botan::Privkey::get
    - botan_privkey_get_field
    - rnp::botan::Pubkey::Pubkey
    - rnp::bn::mpi
    - rnp::bn::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t keylen, size_t qbits)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:49,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:53,1
    - Dst: botan_pubkey_load_dsa
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:54,1
    - Dst: botan_pubkey_check_key
      Src: /src/rnp/src/lib/crypto/dsa.cpp:55,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:55,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/dsa.cpp:55,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:65,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:69,1
    - Dst: botan_privkey_load_dsa
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:70,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/dsa.cpp:71,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:71,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/dsa.cpp:71,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 19
    argCount: 2
    argNames:
    - rng
    - secret
    argTypes:
    - rnp::RNG
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 39
    functionDepth: 1
    functionLinenumber: 39
    functionLinenumberEnd: 75
    functionName: pgp::dsa::Key::validate
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::get
    - botan_privkey_load_dsa
    - rnp::RNG::handle
    - botan_pubkey_check_key
    - botan_privkey_check_key
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - botan_pubkey_load_dsa
    - rnp::bn::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::validate(rnp::RNG &rng, bool secret) const noexcept
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:81,1
    - Dst: std::min
      Src: /src/rnp/src/lib/crypto/dsa.cpp:83,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:83,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:91,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:95,1
    - Dst: botan_privkey_load_dsa
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:96,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:97,1
    - Dst: rnp::botan::op::Sign::Sign
      Src: /src/rnp/src/lib/crypto/dsa.cpp:101,1
    - Dst: botan_pk_op_sign_create
      Src: /src/rnp/src/lib/crypto/dsa.cpp:102,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:102,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:102,1
    - Dst: botan_pk_op_sign_update
      Src: /src/rnp/src/lib/crypto/dsa.cpp:106,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:106,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:106,1
    - Dst: botan_pk_op_sign_finish
      Src: /src/rnp/src/lib/crypto/dsa.cpp:112,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:112,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/dsa.cpp:112,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:112,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:113,1
    - Dst: Signature::r::assign
      Src: /src/rnp/src/lib/crypto/dsa.cpp:118,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:118,1
    - Dst: Signature::s::assign
      Src: /src/rnp/src/lib/crypto/dsa.cpp:119,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:119,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 23
    argCount: 3
    argNames:
    - rng
    - sig
    - hash
    argTypes:
    - rnp::RNG
    - Signature
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 121
      start: 77
    functionDepth: 1
    functionLinenumber: 77
    functionLinenumberEnd: 121
    functionName: pgp::dsa::Key::sign
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - Signature::s::assign
    - rnp::secure_bytes::size
    - botan_privkey_load_dsa
    - rnp::RNG::handle
    - rnp::botan::Privkey::get
    - botan_pk_op_sign_create
    - rnp::botan::op::Sign::get
    - std::min
    - botan_pk_op_sign_finish
    - Signature::r::assign
    - rnp::botan::op::Sign::Sign
    - botan_pk_op_sign_update
    - rnp::secure_bytes::data
    - rnp::bn::get
    - std::vector::data
    - size
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::sign(rnp::RNG &rng, Signature &sig, const rnp::secure_bytes
      &hash) const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:126,1
    - Dst: std::min
      Src: /src/rnp/src/lib/crypto/dsa.cpp:127,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:127,1
    - Dst: Signature::r::size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:128,1
    - Dst: Signature::s::size
      Src: /src/rnp/src/lib/crypto/dsa.cpp:129,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:131,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:141,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:145,1
    - Dst: botan_pubkey_load_dsa
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:146,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:147,1
    - Dst: Signature::r::copy
      Src: /src/rnp/src/lib/crypto/dsa.cpp:152,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:152,1
    - Dst: Signature::s::copy
      Src: /src/rnp/src/lib/crypto/dsa.cpp:153,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:153,1
    - Dst: rnp::botan::op::Verify::Verify
      Src: /src/rnp/src/lib/crypto/dsa.cpp:155,1
    - Dst: botan_pk_op_verify_create
      Src: /src/rnp/src/lib/crypto/dsa.cpp:156,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:156,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:156,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:157,1
    - Dst: botan_pk_op_verify_update
      Src: /src/rnp/src/lib/crypto/dsa.cpp:161,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:161,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:161,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/dsa.cpp:165,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:165,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/dsa.cpp:165,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 26
    argCount: 2
    argNames:
    - sig
    - hash
    argTypes:
    - Signature
    - rnp::secure_bytes
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 169
      start: 123
    functionDepth: 1
    functionLinenumber: 123
    functionLinenumberEnd: 169
    functionName: pgp::dsa::Key::verify
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.cpp
    functionUses: 0
    functionsReached:
    - rnp::botan::op::Verify::Verify
    - rnp::secure_bytes::size
    - botan_pk_op_verify_finish
    - rnp::secure_bytes::data
    - size
    - Signature::r::copy
    - rnp::botan::Pubkey::get
    - Signature::r::size
    - rnp::bn::get
    - RNP_LOG
    - Signature::s::copy
    - std::min
    - Signature::s::size
    - botan_pubkey_load_dsa
    - std::vector::data
    - botan_pk_op_verify_update
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_verify_create
    - rnp::botan::op::Verify::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::verify(const Signature &sig, const rnp::secure_bytes
      &hash) const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa.cpp:178,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa.cpp:179,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa.cpp:180,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa.cpp:181,1
    - Dst: rnp::bn::bn
      Src: /src/rnp/src/lib/crypto/dsa.cpp:182,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:188,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:189,1
    - Dst: botan_privkey_create_dsa
      Src: /src/rnp/src/lib/crypto/dsa.cpp:190,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:190,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/dsa.cpp:190,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/dsa.cpp:191,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:191,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/dsa.cpp:191,1
    - Dst: botan_privkey_export_pubkey
      Src: /src/rnp/src/lib/crypto/dsa.cpp:192,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:192,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:192,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:193,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/dsa.cpp:197,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:197,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:197,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/dsa.cpp:198,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:198,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:198,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/dsa.cpp:199,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:199,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:199,1
    - Dst: botan_pubkey_get_field
      Src: /src/rnp/src/lib/crypto/dsa.cpp:200,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:200,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:200,1
    - Dst: botan_privkey_get_field
      Src: /src/rnp/src/lib/crypto/dsa.cpp:201,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:201,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/dsa.cpp:201,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:202,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa.cpp:206,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa.cpp:206,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa.cpp:206,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa.cpp:206,1
    - Dst: rnp::bn::mpi
      Src: /src/rnp/src/lib/crypto/dsa.cpp:206,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dsa.cpp:207,1
    CyclomaticComplexity: 22
    EdgeCount: 22
    ICount: 20
    argCount: 3
    argNames:
    - rng
    - keylen
    - qbits
    argTypes:
    - rnp::RNG
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 211
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 211
    functionName: pgp::dsa::Key::generate
    functionSourceFile: /src/rnp/src/lib/crypto/dsa.cpp
    functionUses: 0
    functionsReached:
    - rnp::bn::bn
    - RNP_LOG
    - botan_privkey_create_dsa
    - rnp::botan::Privkey::Privkey
    - botan_privkey_check_key
    - rnp::botan::Pubkey::get
    - rnp::RNG::handle
    - botan_pubkey_get_field
    - botan_privkey_export_pubkey
    - rnp::botan::Privkey::get
    - botan_privkey_get_field
    - rnp::botan::Pubkey::Pubkey
    - rnp::bn::mpi
    - rnp::bn::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t Key::generate(rnp::RNG &rng, size_t keylen, size_t qbits)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_curve_t>
      Src: /src/rnp/src/lib/crypto/ec_curves.cpp:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - oid
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 306
    functionName: pgp::ec::Curve::by_OID
    functionSourceFile: /src/rnp/src/lib/crypto/ec_curves.cpp
    functionUses: 1
    functionsReached:
    - static_cast<pgp_curve_t>
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t Curve::by_OID(const std::vector<uint8_t> &oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/lib/crypto/ec_curves.cpp:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 318
    functionName: pgp::ec::Curve::by_name
    functionSourceFile: /src/rnp/src/lib/crypto/ec_curves.cpp
    functionUses: 1
    functionsReached:
    - rnp::str_case_eq
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t Curve::by_name(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - curve_id
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: pgp::ec::Curve::get
    functionSourceFile: /src/rnp/src/lib/crypto/ec_curves.cpp
    functionUses: 88
    functionsReached: []
    linkageType: ''
    returnType: Curve
    signature: 'Curve *

      Curve::get(const pgp_curve_t curve_id)'
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - alg
    - curve
    argTypes:
    - pgp_pubkey_alg_t
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 343
    functionName: pgp::ec::Curve::alg_allows
    functionSourceFile: /src/rnp/src/lib/crypto/ec_curves.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curve::alg_allows(pgp_pubkey_alg_t alg, pgp_curve_t curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ec_curves.cpp:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 350
    functionName: pgp::ec::Curve::is_supported
    functionSourceFile: /src/rnp/src/lib/crypto/ec_curves.cpp
    functionUses: 17
    functionsReached:
    - pgp::ec::Curve::get
    linkageType: ''
    returnType: bool
    signature: bool Curve::is_supported(pgp_curve_t curve)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_curve_t>
      Src: /src/rnp/src/lib/crypto/ec_curves.cpp:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - oid
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 306
    functionName: pgp::ec::Curve::by_OID
    functionSourceFile: /src/rnp/src/lib/crypto/ec_curves.cpp
    functionUses: 1
    functionsReached:
    - static_cast<pgp_curve_t>
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t Curve::by_OID(const std::vector<uint8_t> &oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/lib/crypto/ec_curves.cpp:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 318
    functionName: pgp::ec::Curve::by_name
    functionSourceFile: /src/rnp/src/lib/crypto/ec_curves.cpp
    functionUses: 1
    functionsReached:
    - rnp::str_case_eq
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t Curve::by_name(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - curve_id
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: pgp::ec::Curve::get
    functionSourceFile: /src/rnp/src/lib/crypto/ec_curves.cpp
    functionUses: 89
    functionsReached: []
    linkageType: ''
    returnType: Curve
    signature: 'Curve *

      Curve::get(const pgp_curve_t curve_id)'
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - alg
    - curve
    argTypes:
    - pgp_pubkey_alg_t
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 343
    functionName: pgp::ec::Curve::alg_allows
    functionSourceFile: /src/rnp/src/lib/crypto/ec_curves.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curve::alg_allows(pgp_pubkey_alg_t alg, pgp_curve_t curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ec_curves.cpp:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 350
    functionName: pgp::ec::Curve::is_supported
    functionSourceFile: /src/rnp/src/lib/crypto/ec_curves.cpp
    functionUses: 17
    functionsReached:
    - pgp::ec::Curve::get
    linkageType: ''
    returnType: bool
    signature: bool Curve::is_supported(pgp_curve_t curve)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_curve_t>
      Src: /src/rnp/src/lib/crypto/ec_curves.cpp:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - oid
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 306
    functionName: pgp::ec::Curve::by_OID
    functionSourceFile: /src/rnp/src/lib/crypto/ec_curves.cpp
    functionUses: 1
    functionsReached:
    - static_cast<pgp_curve_t>
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t Curve::by_OID(const std::vector<uint8_t> &oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/lib/crypto/ec_curves.cpp:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 318
    functionName: pgp::ec::Curve::by_name
    functionSourceFile: /src/rnp/src/lib/crypto/ec_curves.cpp
    functionUses: 1
    functionsReached:
    - rnp::str_case_eq
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t Curve::by_name(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - curve_id
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: pgp::ec::Curve::get
    functionSourceFile: /src/rnp/src/lib/crypto/ec_curves.cpp
    functionUses: 90
    functionsReached: []
    linkageType: ''
    returnType: Curve
    signature: 'Curve *

      Curve::get(const pgp_curve_t curve_id)'
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - alg
    - curve
    argTypes:
    - pgp_pubkey_alg_t
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 343
    functionName: pgp::ec::Curve::alg_allows
    functionSourceFile: /src/rnp/src/lib/crypto/ec_curves.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curve::alg_allows(pgp_pubkey_alg_t alg, pgp_curve_t curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ec_curves.cpp:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 350
    functionName: pgp::ec::Curve::is_supported
    functionSourceFile: /src/rnp/src/lib/crypto/ec_curves.cpp
    functionUses: 17
    functionsReached:
    - pgp::ec::Curve::get
    linkageType: ''
    returnType: bool
    signature: bool Curve::is_supported(pgp_curve_t curve)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<pgp_curve_t>
      Src: /src/rnp/src/lib/crypto/ec_curves.cpp:302,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - oid
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 306
      start: 297
    functionDepth: 0
    functionLinenumber: 297
    functionLinenumberEnd: 306
    functionName: pgp::ec::Curve::by_OID
    functionSourceFile: /src/rnp/src/lib/crypto/ec_curves.cpp
    functionUses: 1
    functionsReached:
    - static_cast<pgp_curve_t>
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t Curve::by_OID(const std::vector<uint8_t> &oid)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::str_case_eq
      Src: /src/rnp/src/lib/crypto/ec_curves.cpp:312,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 318
      start: 308
    functionDepth: 1
    functionLinenumber: 308
    functionLinenumberEnd: 318
    functionName: pgp::ec::Curve::by_name
    functionSourceFile: /src/rnp/src/lib/crypto/ec_curves.cpp
    functionUses: 1
    functionsReached:
    - rnp::str_case_eq
    linkageType: ''
    returnType: pgp_curve_t
    signature: pgp_curve_t Curve::by_name(const char *name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - curve_id
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 324
      start: 320
    functionDepth: 0
    functionLinenumber: 320
    functionLinenumberEnd: 324
    functionName: pgp::ec::Curve::get
    functionSourceFile: /src/rnp/src/lib/crypto/ec_curves.cpp
    functionUses: 91
    functionsReached: []
    linkageType: ''
    returnType: Curve
    signature: 'Curve *

      Curve::get(const pgp_curve_t curve_id)'
  - BBCount: 4
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 11
    argCount: 2
    argNames:
    - alg
    - curve
    argTypes:
    - pgp_pubkey_alg_t
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 343
      start: 326
    functionDepth: 0
    functionLinenumber: 326
    functionLinenumberEnd: 343
    functionName: pgp::ec::Curve::alg_allows
    functionSourceFile: /src/rnp/src/lib/crypto/ec_curves.cpp
    functionUses: 8
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool Curve::alg_allows(pgp_pubkey_alg_t alg, pgp_curve_t curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/ec_curves.cpp:348,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - curve
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 350
      start: 345
    functionDepth: 0
    functionLinenumber: 345
    functionLinenumberEnd: 350
    functionName: pgp::ec::Curve::is_supported
    functionSourceFile: /src/rnp/src/lib/crypto/ec_curves.cpp
    functionUses: 17
    functionsReached:
    - pgp::ec::Curve::get
    linkageType: ''
    returnType: bool
    signature: bool Curve::is_supported(pgp_curve_t curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qsize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: pgp::dsa::Key::get_min_hash
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_common.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t Key::get_min_hash(size_t qsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: pgp::dsa::Key::choose_qsize
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_common.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Key::choose_qsize(size_t psize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qsize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: pgp::dsa::Key::get_min_hash
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_common.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t Key::get_min_hash(size_t qsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: pgp::dsa::Key::choose_qsize
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_common.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Key::choose_qsize(size_t psize)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - curve
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 82
    functionName: pgp::ecdsa::get_min_hash
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_common.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t get_min_hash(pgp_curve_t curve)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - curve
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 82
    functionName: pgp::ecdsa::get_min_hash
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_common.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t get_min_hash(pgp_curve_t curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qsize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: pgp::dsa::Key::get_min_hash
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_common.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t Key::get_min_hash(size_t qsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: pgp::dsa::Key::choose_qsize
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_common.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Key::choose_qsize(size_t psize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - qsize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 54
    functionName: pgp::dsa::Key::get_min_hash
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_common.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t Key::get_min_hash(size_t qsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - psize
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 60
      start: 56
    functionDepth: 0
    functionLinenumber: 56
    functionLinenumberEnd: 60
    functionName: pgp::dsa::Key::choose_qsize
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_common.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t Key::choose_qsize(size_t psize)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - curve
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 82
    functionName: pgp::ecdsa::get_min_hash
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_common.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t get_min_hash(pgp_curve_t curve)
  - BBCount: 9
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 15
    argCount: 1
    argNames:
    - curve
    argTypes:
    - pgp_curve_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 82
    functionName: pgp::ecdsa::get_min_hash
    functionSourceFile: /src/rnp/src/lib/crypto/dsa_common.cpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: pgp_hash_alg_t
    signature: pgp_hash_alg_t get_min_hash(pgp_curve_t curve)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/hkdf.hpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash_alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: rnp::Hkdf::Hkdf
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf.hpp
    functionUses: 0
    functionsReached:
    - rnp::Hash::size
    linkageType: ''
    returnType: void
    signature: void Hkdf(pgp_hash_alg_t hash_alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/hkdf.hpp:49,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - hash_alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 50
      start: 47
    functionDepth: 0
    functionLinenumber: 47
    functionLinenumberEnd: 50
    functionName: rnp::Hkdf::Hkdf
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf.hpp
    functionUses: 0
    functionsReached:
    - rnp::Hash::size
    linkageType: ''
    returnType: void
    signature: void Hkdf(pgp_hash_alg_t hash_alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:47,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:47,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:47,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:48,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:48,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:48,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:49,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:49,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:49,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:50,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:50,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:50,1
    - Dst: OSSL_PARAM_BLD_push_BN
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:51,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:51,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:51,1
    - Dst: rnp::ossl::Param
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:52,1
    - Dst: rnp::ossl::Param
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:54,1
    - Dst: OSSL_PARAM_BLD_to_param
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:54,1
    - Dst: rnp::ossl::ParamBld::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:54,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 5
    argCount: 5
    argNames:
    - p
    - q
    - g
    - y
    - x
    argTypes:
    - rnp::bn
    - rnp::bn
    - rnp::bn
    - rnp::bn
    - rnp::bn
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 55
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 55
    functionName: dl_build_params
    functionSourceFile: /src/rnp/src/lib/crypto/dl_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::ossl::Param
    - rnp::ossl::ParamBld::get
    - OSSL_PARAM_BLD_push_BN
    - OSSL_PARAM_BLD_to_param
    - rnp::bn::c_get
    linkageType: ''
    returnType: rnp::ossl::Param
    signature: "rnp::ossl::Param dl_build_params(\n  const rnp::bn &p, const rnp::bn
      &q, const rnp::bn &g, const rnp::bn &y, const rnp::bn &x)"
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:73,1
    - Dst: dl_build_params
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:79,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:82,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:89,1
    - Dst: EVP_PKEY_fromdata_init
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:95,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:95,1
    - Dst: EVP_PKEY_fromdata
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:96,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:96,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:96,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:97,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:99,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:104,1
    - Dst: DH_set0_pqg
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:109,1
    - Dst: rnp::ossl::DH::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:109,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:109,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:109,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:109,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:110,1
    - Dst: DH_set0_key
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:115,1
    - Dst: rnp::ossl::DH::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:115,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:115,1
    - Dst: rnp::bn::own
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:115,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:116,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:124,1
    - Dst: EVP_PKEY_set1_DH
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:128,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:128,1
    - Dst: rnp::ossl::DH::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:128,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:130,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:130,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 39
    argCount: 5
    argNames:
    - mp
    - mq
    - mg
    - my
    - mx
    argTypes:
    - pgp::mpi
    - pgp::mpi*
    - pgp::mpi
    - pgp::mpi
    - pgp::mpi*
    assertStmts:
    - condition: (res == 1)
      pos:
        line_end: 109
        line_start: 109
        source_file: /src/rnp/src/lib/crypto/dl_ossl.cpp
    - condition: (res == 1)
      pos:
        line_end: 115
        line_start: 115
        source_file: /src/rnp/src/lib/crypto/dl_ossl.cpp
    constantsTouched: []
    func_position:
      end: 136
      start: 58
    functionDepth: 2
    functionLinenumber: 58
    functionLinenumberEnd: 136
    functionName: dl_load_key
    functionSourceFile: /src/rnp/src/lib/crypto/dl_ossl.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - rnp::ossl::DH::get
    - rnp::ossl::evp::PKey
    - DH_set0_key
    - EVP_PKEY_set1_DH
    - ERR_peek_last_error
    - EVP_PKEY_fromdata
    - rnp::bn::own
    - assert
    - EVP_PKEY_fromdata_init
    - dl_build_params
    - auto::get
    - rnp::ossl::evp::PKey::get
    - rnp::ossl::evp::PKeyCtx::get
    - DH_set0_pqg
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: "rnp::ossl::evp::PKey dl_load_key(const pgp::mpi &mp,\n            const
      pgp::mpi *mq,\n            const pgp::mpi &mg,\n            const pgp::mpi &my,\n
      \           const pgp::mpi *mx)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_get0_DH
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:142,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:142,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:143,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:148,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:156,1
    - Dst: BN_dup
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:162,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:162,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:165,1
    - Dst: BN_rshift
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:169,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:169,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:169,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:170,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:173,1
    - Dst: std::move
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:177,1
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:179,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:179,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:179,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:180,1
    - Dst: BN_CTX_start
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:183,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:183,1
    - Dst: BN_mod_exp_mont_consttime
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:184,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:184,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:184,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:184,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:184,1
    - Dst: rnp::ossl::BNCtx::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:184,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:186,1
    - Dst: BN_cmp
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:189,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:189,1
    - Dst: rnp::bn::c_get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:189,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 32
    argCount: 2
    argNames:
    - dlkey
    - mx
    argTypes:
    - rnp::ossl::evp::PKey
    - pgp::mpi
    assertStmts:
    - condition: (p && g && y)
      pos:
        line_end: 147
        line_start: 147
        source_file: /src/rnp/src/lib/crypto/dl_ossl.cpp
    - condition: (dh)
      pos:
        line_end: 142
        line_start: 142
        source_file: /src/rnp/src/lib/crypto/dl_ossl.cpp
    - condition: (res == 1)
      pos:
        line_end: 169
        line_start: 169
        source_file: /src/rnp/src/lib/crypto/dl_ossl.cpp
    constantsTouched: []
    func_position:
      end: 193
      start: 139
    functionDepth: 1
    functionLinenumber: 139
    functionLinenumberEnd: 193
    functionName: dl_validate_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/dl_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_get0_DH
    - rnp::ossl::BNCtx::get
    - BN_dup
    - BN_cmp
    - BN_rshift
    - assert
    - BN_CTX_start
    - rnp::ossl::evp::PKey::get
    - rnp::bn::c_get
    - rnp::bn::get
    - BN_mod_exp_mont_consttime
    - std::move
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t dl_validate_secret_key(rnp::ossl::evp::PKey &dlkey, const
      pgp::mpi &mx)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_CTX_new
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:199,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:199,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:202,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:202,1
    - Dst: EVP_PKEY_param_check
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:206,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:206,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:208,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:209,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:209,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:213,1
    - Dst: DHerr
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:214,1
    - Dst: ERR_GET_REASON
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:215,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:216,1
    - Dst: EVP_PKEY_pairwise_check
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:222,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:222,1
    - Dst: EVP_PKEY_public_check
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:222,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:222,1
    - Dst: EVP_PKEY_public_check
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:225,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:225,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:227,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:227,1
    - Dst: dl_validate_secret_key
      Src: /src/rnp/src/lib/crypto/dl_ossl.cpp:236,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 29
    argCount: 2
    argNames:
    - pkey
    - x
    argTypes:
    - rnp::ossl::evp::PKey
    - pgp::mpi*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 196
    functionDepth: 2
    functionLinenumber: 196
    functionLinenumberEnd: 238
    functionName: dl_validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/dl_ossl.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - EVP_PKEY_param_check
    - EVP_PKEY_public_check
    - ERR_peek_last_error
    - ERR_GET_REASON
    - EVP_PKEY_pairwise_check
    - DHerr
    - rnp::ossl::latest_err
    - dl_validate_secret_key
    - rnp::ossl::evp::PKey::get
    - rnp::ossl::evp::PKeyCtx::get
    - EVP_PKEY_CTX_new
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t dl_validate_key(rnp::ossl::evp::PKey &pkey, const pgp::mpi
      *x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Cipher_OpenSSL::encryption
      Src: /src/rnp/src/lib/crypto/cipher.cpp:43,1
    - Dst: Cipher_Botan::encryption
      Src: /src/rnp/src/lib/crypto/cipher.cpp:45,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - cipher
    - mode
    - tag_size
    - disable_padding
    argTypes:
    - pgp_symm_alg_t
    - pgp_cipher_mode_t
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 49
      start: 36
    functionDepth: 2
    functionLinenumber: 36
    functionLinenumberEnd: 49
    functionName: Cipher::encryption
    functionSourceFile: /src/rnp/src/lib/crypto/cipher.cpp
    functionUses: 3
    functionsReached:
    - Cipher_OpenSSL::encryption
    - Cipher_Botan::encryption
    linkageType: ''
    returnType: std::unique_ptr<Cipher>
    signature: "std::unique_ptr<Cipher> Cipher::encryption(pgp_symm_alg_t    cipher,\n
      \                  pgp_cipher_mode_t mode,\n                   size_t            tag_size,\n
      \                  bool              disable_padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Cipher_OpenSSL::decryption
      Src: /src/rnp/src/lib/crypto/cipher.cpp:58,1
    - Dst: Cipher_Botan::decryption
      Src: /src/rnp/src/lib/crypto/cipher.cpp:60,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - cipher
    - mode
    - tag_size
    - disable_padding
    argTypes:
    - pgp_symm_alg_t
    - pgp_cipher_mode_t
    - size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 64
    functionName: Cipher::decryption
    functionSourceFile: /src/rnp/src/lib/crypto/cipher.cpp
    functionUses: 2
    functionsReached:
    - Cipher_OpenSSL::decryption
    - Cipher_Botan::decryption
    linkageType: ''
    returnType: std::unique_ptr<Cipher>
    signature: "std::unique_ptr<Cipher> Cipher::decryption(pgp_symm_alg_t    cipher,\n
      \                  pgp_cipher_mode_t mode,\n                   size_t            tag_size,\n
      \                  bool              disable_padding)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_symm_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 68
    functionName: Cipher::Cipher
    functionSourceFile: /src/rnp/src/lib/crypto/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cipher::Cipher(pgp_symm_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 70
    functionDepth: 0
    functionLinenumber: 70
    functionLinenumberEnd: 72
    functionName: Cipher::~Cipher()
    functionSourceFile: /src/rnp/src/lib/crypto/cipher.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Cipher::~Cipher()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_block_size
      Src: /src/rnp/src/lib/crypto/cipher.cpp:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 78
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 78
    functionName: Cipher::block_size
    functionSourceFile: /src/rnp/src/lib/crypto/cipher.cpp
    functionUses: 0
    functionsReached:
    - pgp_block_size
    linkageType: ''
    returnType: size_t
    signature: size_t Cipher::block_size() const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/hash.cpp:51,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash.cpp:53,1
    - Dst: rnpffi::FFI::iterator_create
      Src: /src/rnp/src/lib/crypto/hash.cpp:56,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hash.cpp:58,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash.cpp:59,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/hash.cpp:62,1
    - Dst: output_length
      Src: /src/rnp/src/lib/crypto/hash.cpp:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts:
    - condition: (size_ == fn_->output_length())
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/rnp/src/lib/crypto/hash.cpp
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 1
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: rnp::Hash_Botan::Hash_Botan
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnpffi::FFI::iterator_create
    - assert
    - rnp::Hash_Botan::name_backend
    - output_length
    - rnp_exception
    linkageType: ''
    returnType: void
    signature: void Hash_Botan::Hash_Botan(pgp_hash_alg_t alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash.cpp:68,1
    - Dst: Hash_Botan::fn_::copy_state
      Src: /src/rnp/src/lib/crypto/hash.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - src
    argTypes:
    - Hash_Botan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: rnp::Hash_Botan::Hash_Botan
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 0
    functionsReached:
    - rnp_exception
    - Hash_Botan::fn_::copy_state
    linkageType: ''
    returnType: void
    signature: void Hash_Botan::Hash_Botan(const Hash_Botan &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Hash_Botan::~Hash_Botan()
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash_Botan::~Hash_Botan()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Hash_Botan>
      Src: /src/rnp/src/lib/crypto/hash.cpp:80,1
    - Dst: Hash_Botan::Hash_Botan
      Src: /src/rnp/src/lib/crypto/hash.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: rnp::Hash_Botan::create
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 2
    functionsReached:
    - std::unique_ptr<Hash_Botan>
    - Hash_Botan::Hash_Botan
    linkageType: ''
    returnType: std::unique_ptr<Hash_Botan>
    signature: std::unique_ptr<Hash_Botan> Hash_Botan::create(pgp_hash_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Hash>
      Src: /src/rnp/src/lib/crypto/hash.cpp:86,1
    - Dst: Hash_Botan::Hash_Botan
      Src: /src/rnp/src/lib/crypto/hash.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: rnp::Hash_Botan::clone
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 0
    functionsReached:
    - Hash_Botan::Hash_Botan
    - std::unique_ptr<Hash>
    linkageType: ''
    returnType: std::unique_ptr<Hash>
    signature: std::unique_ptr<Hash> Hash_Botan::clone() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash.cpp:93,1
    - Dst: update
      Src: /src/rnp/src/lib/crypto/hash.cpp:95,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/rnp/src/lib/crypto/hash.cpp:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: rnp::Hash_Botan::add
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 0
    functionsReached:
    - update
    - rnp_exception
    - static_cast<const uint8_t *>
    linkageType: ''
    returnType: void
    signature: void Hash_Botan::add(const void *buf, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/hash.cpp:101,1
    - Dst: final
      Src: /src/rnp/src/lib/crypto/hash.cpp:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - digest
    argTypes:
    - uint8_t*
    assertStmts:
    - condition: (fn_)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/rnp/src/lib/crypto/hash.cpp
    constantsTouched: []
    func_position:
      end: 110
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 110
    functionName: rnp::Hash_Botan::finish
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 0
    functionsReached:
    - assert
    - final
    linkageType: ''
    returnType: void
    signature: void Hash_Botan::finish(uint8_t *digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/crypto/hash.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: rnp::Hash_Botan::name_backend
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 13
    functionsReached:
    - id_str_pair::lookup
    linkageType: ''
    returnType: char
    signature: 'char *

      Hash_Botan::name_backend(pgp_hash_alg_t alg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnpffi::FFI::iterator_create
      Src: /src/rnp/src/lib/crypto/hash.cpp:120,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hash.cpp:122,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash.cpp:123,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/hash.cpp:125,1
    - Dst: output_length
      Src: /src/rnp/src/lib/crypto/hash.cpp:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (3 == fn_->output_length())
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/rnp/src/lib/crypto/hash.cpp
    constantsTouched: []
    func_position:
      end: 126
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 126
    functionName: rnp::CRC24_Botan::CRC24_Botan
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnpffi::FFI::iterator_create
    - assert
    - output_length
    - rnp_exception
    linkageType: ''
    returnType: void
    signature: void CRC24_Botan::CRC24_Botan()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: CRC24_Botan::~CRC24_Botan()
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CRC24_Botan::~CRC24_Botan()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<CRC24_Botan>
      Src: /src/rnp/src/lib/crypto/hash.cpp:135,1
    - Dst: CRC24_Botan::CRC24_Botan
      Src: /src/rnp/src/lib/crypto/hash.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: rnp::CRC24_Botan::create
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 2
    functionsReached:
    - std::unique_ptr<CRC24_Botan>
    - CRC24_Botan::CRC24_Botan
    linkageType: ''
    returnType: std::unique_ptr<CRC24_Botan>
    signature: std::unique_ptr<CRC24_Botan> CRC24_Botan::create()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash.cpp:142,1
    - Dst: update
      Src: /src/rnp/src/lib/crypto/hash.cpp:144,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/rnp/src/lib/crypto/hash.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 145
    functionName: rnp::CRC24_Botan::add
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 0
    functionsReached:
    - update
    - rnp_exception
    - static_cast<const uint8_t *>
    linkageType: ''
    returnType: void
    signature: void CRC24_Botan::add(const void *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash.cpp:151,1
    - Dst: final
      Src: /src/rnp/src/lib/crypto/hash.cpp:154,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/crypto/hash.cpp:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 157
    functionName: rnp::CRC24_Botan::finish
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 0
    functionsReached:
    - std::array::data
    - rnp_exception
    - final
    linkageType: ''
    returnType: std::array<uint8_t, 3>
    signature: std::array<uint8_t, 3> CRC24_Botan::finish()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/hash.cpp:51,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash.cpp:53,1
    - Dst: rnpffi::FFI::iterator_create
      Src: /src/rnp/src/lib/crypto/hash.cpp:56,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hash.cpp:58,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash.cpp:59,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/hash.cpp:62,1
    - Dst: output_length
      Src: /src/rnp/src/lib/crypto/hash.cpp:62,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts:
    - condition: (size_ == fn_->output_length())
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/rnp/src/lib/crypto/hash.cpp
    constantsTouched: []
    func_position:
      end: 63
      start: 49
    functionDepth: 2
    functionLinenumber: 49
    functionLinenumberEnd: 63
    functionName: rnp::Hash_Botan::Hash_Botan
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnpffi::FFI::iterator_create
    - assert
    - rnp::Hash_Botan::name_backend
    - output_length
    - rnp_exception
    linkageType: ''
    returnType: void
    signature: void Hash_Botan::Hash_Botan(pgp_hash_alg_t alg)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash.cpp:68,1
    - Dst: Hash_Botan::fn_::copy_state
      Src: /src/rnp/src/lib/crypto/hash.cpp:70,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - src
    argTypes:
    - Hash_Botan
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 0
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: rnp::Hash_Botan::Hash_Botan
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 0
    functionsReached:
    - rnp_exception
    - Hash_Botan::fn_::copy_state
    linkageType: ''
    returnType: void
    signature: void Hash_Botan::Hash_Botan(const Hash_Botan &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 73
    functionDepth: 0
    functionLinenumber: 73
    functionLinenumberEnd: 75
    functionName: Hash_Botan::~Hash_Botan()
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash_Botan::~Hash_Botan()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Hash_Botan>
      Src: /src/rnp/src/lib/crypto/hash.cpp:80,1
    - Dst: Hash_Botan::Hash_Botan
      Src: /src/rnp/src/lib/crypto/hash.cpp:80,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 81
      start: 77
    functionDepth: 0
    functionLinenumber: 77
    functionLinenumberEnd: 81
    functionName: rnp::Hash_Botan::create
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 2
    functionsReached:
    - std::unique_ptr<Hash_Botan>
    - Hash_Botan::Hash_Botan
    linkageType: ''
    returnType: std::unique_ptr<Hash_Botan>
    signature: std::unique_ptr<Hash_Botan> Hash_Botan::create(pgp_hash_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Hash>
      Src: /src/rnp/src/lib/crypto/hash.cpp:86,1
    - Dst: Hash_Botan::Hash_Botan
      Src: /src/rnp/src/lib/crypto/hash.cpp:86,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 87
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 87
    functionName: rnp::Hash_Botan::clone
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 0
    functionsReached:
    - Hash_Botan::Hash_Botan
    - std::unique_ptr<Hash>
    linkageType: ''
    returnType: std::unique_ptr<Hash>
    signature: std::unique_ptr<Hash> Hash_Botan::clone() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash.cpp:93,1
    - Dst: update
      Src: /src/rnp/src/lib/crypto/hash.cpp:95,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/rnp/src/lib/crypto/hash.cpp:95,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 89
    functionDepth: 1
    functionLinenumber: 89
    functionLinenumberEnd: 96
    functionName: rnp::Hash_Botan::add
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 0
    functionsReached:
    - update
    - rnp_exception
    - static_cast<const uint8_t *>
    linkageType: ''
    returnType: void
    signature: void Hash_Botan::add(const void *buf, size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/hash.cpp:101,1
    - Dst: final
      Src: /src/rnp/src/lib/crypto/hash.cpp:106,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - digest
    argTypes:
    - uint8_t*
    assertStmts:
    - condition: (fn_)
      pos:
        line_end: 100
        line_start: 100
        source_file: /src/rnp/src/lib/crypto/hash.cpp
    constantsTouched: []
    func_position:
      end: 110
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 110
    functionName: rnp::Hash_Botan::finish
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 0
    functionsReached:
    - assert
    - final
    linkageType: ''
    returnType: void
    signature: void Hash_Botan::finish(uint8_t *digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: id_str_pair::lookup
      Src: /src/rnp/src/lib/crypto/hash.cpp:115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 116
      start: 112
    functionDepth: 1
    functionLinenumber: 112
    functionLinenumberEnd: 116
    functionName: rnp::Hash_Botan::name_backend
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 14
    functionsReached:
    - id_str_pair::lookup
    linkageType: ''
    returnType: char
    signature: 'char *

      Hash_Botan::name_backend(pgp_hash_alg_t alg)'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnpffi::FFI::iterator_create
      Src: /src/rnp/src/lib/crypto/hash.cpp:120,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hash.cpp:122,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash.cpp:123,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/hash.cpp:125,1
    - Dst: output_length
      Src: /src/rnp/src/lib/crypto/hash.cpp:125,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (3 == fn_->output_length())
      pos:
        line_end: 124
        line_start: 124
        source_file: /src/rnp/src/lib/crypto/hash.cpp
    constantsTouched: []
    func_position:
      end: 126
      start: 118
    functionDepth: 1
    functionLinenumber: 118
    functionLinenumberEnd: 126
    functionName: rnp::CRC24_Botan::CRC24_Botan
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnpffi::FFI::iterator_create
    - assert
    - output_length
    - rnp_exception
    linkageType: ''
    returnType: void
    signature: void CRC24_Botan::CRC24_Botan()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 130
      start: 128
    functionDepth: 0
    functionLinenumber: 128
    functionLinenumberEnd: 130
    functionName: CRC24_Botan::~CRC24_Botan()
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void CRC24_Botan::~CRC24_Botan()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<CRC24_Botan>
      Src: /src/rnp/src/lib/crypto/hash.cpp:135,1
    - Dst: CRC24_Botan::CRC24_Botan
      Src: /src/rnp/src/lib/crypto/hash.cpp:135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 132
    functionDepth: 0
    functionLinenumber: 132
    functionLinenumberEnd: 136
    functionName: rnp::CRC24_Botan::create
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 2
    functionsReached:
    - std::unique_ptr<CRC24_Botan>
    - CRC24_Botan::CRC24_Botan
    linkageType: ''
    returnType: std::unique_ptr<CRC24_Botan>
    signature: std::unique_ptr<CRC24_Botan> CRC24_Botan::create()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash.cpp:142,1
    - Dst: update
      Src: /src/rnp/src/lib/crypto/hash.cpp:144,1
    - Dst: static_cast<const uint8_t *>
      Src: /src/rnp/src/lib/crypto/hash.cpp:144,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 145
      start: 138
    functionDepth: 1
    functionLinenumber: 138
    functionLinenumberEnd: 145
    functionName: rnp::CRC24_Botan::add
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 0
    functionsReached:
    - update
    - rnp_exception
    - static_cast<const uint8_t *>
    linkageType: ''
    returnType: void
    signature: void CRC24_Botan::add(const void *buf, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hash.cpp:151,1
    - Dst: final
      Src: /src/rnp/src/lib/crypto/hash.cpp:154,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/crypto/hash.cpp:154,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 157
      start: 147
    functionDepth: 1
    functionLinenumber: 147
    functionLinenumberEnd: 157
    functionName: rnp::CRC24_Botan::finish
    functionSourceFile: /src/rnp/src/lib/crypto/hash.cpp
    functionUses: 0
    functionsReached:
    - std::array::data
    - rnp_exception
    - final
    linkageType: ''
    returnType: std::array<uint8_t, 3>
    signature: std::array<uint8_t, 3> CRC24_Botan::finish()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.cpp:37,1
    - Dst: SHA1DCInit
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (size_ == 20)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/rnp/src/lib/crypto/hash_sha1cd.cpp
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: rnp::Hash_SHA1CD::Hash_SHA1CD
    functionSourceFile: /src/rnp/src/lib/crypto/hash_sha1cd.cpp
    functionUses: 0
    functionsReached:
    - assert
    - SHA1DCInit
    linkageType: ''
    returnType: void
    signature: void Hash_SHA1CD::Hash_SHA1CD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - Hash_SHA1CD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: rnp::Hash_SHA1CD::Hash_SHA1CD
    functionSourceFile: /src/rnp/src/lib/crypto/hash_sha1cd.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash_SHA1CD::Hash_SHA1CD(const Hash_SHA1CD &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Hash_SHA1CD::~Hash_SHA1CD()
    functionSourceFile: /src/rnp/src/lib/crypto/hash_sha1cd.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash_SHA1CD::~Hash_SHA1CD()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Hash_SHA1CD>
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.cpp:53,1
    - Dst: Hash_SHA1CD::Hash_SHA1CD
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.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: rnp::Hash_SHA1CD::create
    functionSourceFile: /src/rnp/src/lib/crypto/hash_sha1cd.cpp
    functionUses: 2
    functionsReached:
    - Hash_SHA1CD::Hash_SHA1CD
    - std::unique_ptr<Hash_SHA1CD>
    linkageType: ''
    returnType: std::unique_ptr<Hash_SHA1CD>
    signature: std::unique_ptr<Hash_SHA1CD> Hash_SHA1CD::create()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Hash>
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.cpp:59,1
    - Dst: Hash_SHA1CD::Hash_SHA1CD
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.cpp:59,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: rnp::Hash_SHA1CD::clone
    functionSourceFile: /src/rnp/src/lib/crypto/hash_sha1cd.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Hash>
    - Hash_SHA1CD::Hash_SHA1CD
    linkageType: ''
    returnType: std::unique_ptr<Hash>
    signature: std::unique_ptr<Hash> Hash_SHA1CD::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: no_sanitize
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.cpp:65,1
    - Dst: SHA1DCUpdate
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: rnp::Hash_SHA1CD::add
    functionSourceFile: /src/rnp/src/lib/crypto/hash_sha1cd.cpp
    functionUses: 0
    functionsReached:
    - no_sanitize
    - SHA1DCUpdate
    linkageType: ''
    returnType: void
    signature: void Hash_SHA1CD::add(const void *buf, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: no_sanitize
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.cpp:74,1
    - Dst: SHA1DCFinal
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.cpp:80,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.cpp:83,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.cpp:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - digest
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 91
    functionName: rnp::Hash_SHA1CD::finish
    functionSourceFile: /src/rnp/src/lib/crypto/hash_sha1cd.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - no_sanitize
    - memcpy
    - SHA1DCFinal
    linkageType: ''
    returnType: void
    signature: void Hash_SHA1CD::finish(uint8_t *digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.cpp:37,1
    - Dst: SHA1DCInit
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.cpp:38,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts:
    - condition: (size_ == 20)
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/rnp/src/lib/crypto/hash_sha1cd.cpp
    constantsTouched: []
    func_position:
      end: 39
      start: 35
    functionDepth: 1
    functionLinenumber: 35
    functionLinenumberEnd: 39
    functionName: rnp::Hash_SHA1CD::Hash_SHA1CD
    functionSourceFile: /src/rnp/src/lib/crypto/hash_sha1cd.cpp
    functionUses: 0
    functionsReached:
    - assert
    - SHA1DCInit
    linkageType: ''
    returnType: void
    signature: void Hash_SHA1CD::Hash_SHA1CD()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - src
    argTypes:
    - Hash_SHA1CD
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 41
    functionDepth: 0
    functionLinenumber: 41
    functionLinenumberEnd: 44
    functionName: rnp::Hash_SHA1CD::Hash_SHA1CD
    functionSourceFile: /src/rnp/src/lib/crypto/hash_sha1cd.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash_SHA1CD::Hash_SHA1CD(const Hash_SHA1CD &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 48
    functionName: Hash_SHA1CD::~Hash_SHA1CD()
    functionSourceFile: /src/rnp/src/lib/crypto/hash_sha1cd.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hash_SHA1CD::~Hash_SHA1CD()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Hash_SHA1CD>
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.cpp:53,1
    - Dst: Hash_SHA1CD::Hash_SHA1CD
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.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: rnp::Hash_SHA1CD::create
    functionSourceFile: /src/rnp/src/lib/crypto/hash_sha1cd.cpp
    functionUses: 2
    functionsReached:
    - Hash_SHA1CD::Hash_SHA1CD
    - std::unique_ptr<Hash_SHA1CD>
    linkageType: ''
    returnType: std::unique_ptr<Hash_SHA1CD>
    signature: std::unique_ptr<Hash_SHA1CD> Hash_SHA1CD::create()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Hash>
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.cpp:59,1
    - Dst: Hash_SHA1CD::Hash_SHA1CD
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.cpp:59,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: rnp::Hash_SHA1CD::clone
    functionSourceFile: /src/rnp/src/lib/crypto/hash_sha1cd.cpp
    functionUses: 0
    functionsReached:
    - std::unique_ptr<Hash>
    - Hash_SHA1CD::Hash_SHA1CD
    linkageType: ''
    returnType: std::unique_ptr<Hash>
    signature: std::unique_ptr<Hash> Hash_SHA1CD::clone() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: no_sanitize
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.cpp:65,1
    - Dst: SHA1DCUpdate
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.cpp:70,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - buf
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 65
    functionDepth: 1
    functionLinenumber: 65
    functionLinenumberEnd: 71
    functionName: rnp::Hash_SHA1CD::add
    functionSourceFile: /src/rnp/src/lib/crypto/hash_sha1cd.cpp
    functionUses: 0
    functionsReached:
    - no_sanitize
    - SHA1DCUpdate
    linkageType: ''
    returnType: void
    signature: void Hash_SHA1CD::add(const void *buf, size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: no_sanitize
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.cpp:74,1
    - Dst: SHA1DCFinal
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.cpp:80,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.cpp:83,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/hash_sha1cd.cpp:89,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 1
    argNames:
    - digest
    argTypes:
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 91
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 91
    functionName: rnp::Hash_SHA1CD::finish
    functionSourceFile: /src/rnp/src/lib/crypto/hash_sha1cd.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - no_sanitize
    - memcpy
    - SHA1DCFinal
    linkageType: ''
    returnType: void
    signature: void Hash_SHA1CD::finish(uint8_t *digest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<volatile uint8_t *>
      Src: /src/rnp/src/lib/crypto/secure_bytes.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: rnp::secure_wipe
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.cpp
    functionUses: 4
    functionsReached:
    - static_cast<volatile uint8_t *>
    linkageType: ''
    returnType: void
    signature: void secure_wipe(void *ptr, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<volatile uint8_t *>
      Src: /src/rnp/src/lib/crypto/secure_bytes.cpp:34,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 31
    functionDepth: 0
    functionLinenumber: 31
    functionLinenumberEnd: 38
    functionName: rnp::secure_wipe
    functionSourceFile: /src/rnp/src/lib/crypto/secure_bytes.cpp
    functionUses: 4
    functionsReached:
    - static_cast<volatile uint8_t *>
    linkageType: ''
    returnType: void
    signature: void secure_wipe(void *ptr, size_t len)
  - 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: ~pgp_dilithium_exdsa_composite_key_t()
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~pgp_dilithium_exdsa_composite_key_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    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: pgp_dilithium_exdsa_composite_key_t::is_initialized
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.h
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_initialized() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dilithium_signature_size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.h:73,1
    - Dst: pgp_dilithium_exdsa_composite_key_t::pk_alg_to_dilithium_id
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.h:74,1
    - Dst: pgp_dilithium_exdsa_composite_key_t::exdsa_curve_signature_size
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.h:75,1
    - Dst: pgp_dilithium_exdsa_composite_key_t::pk_alg_to_curve_id
      Src: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.h:76,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pk_alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 70
    functionDepth: 2
    functionLinenumber: 70
    functionLinenumberEnd: 77
    functionName: composite_signature_size
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.h
    functionUses: 3
    functionsReached:
    - pgp_dilithium_exdsa_composite_key_t::exdsa_curve_signature_size
    - dilithium_signature_size
    - pgp_dilithium_exdsa_composite_key_t::pk_alg_to_dilithium_id
    - pgp_dilithium_exdsa_composite_key_t::pk_alg_to_curve_id
    linkageType: ''
    returnType: size_t
    signature: size_t composite_signature_size(pgp_pubkey_alg_t pk_alg)
  - 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: pgp_dilithium_exdsa_composite_private_key_t::pgp_dilithium_exdsa_composite_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_dilithium_exdsa_composite_private_key_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 110
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 110
    functionName: pgp_dilithium_exdsa_composite_private_key_t::pk_alg
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_pubkey_alg_t
    signature: pgp_pubkey_alg_t pk_alg() const
  - 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: pgp_dilithium_exdsa_composite_public_key_t::pgp_dilithium_exdsa_composite_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_dilithium_exdsa_composite_public_key_t()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - pgp_dilithium_exdsa_composite_public_key_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 147
      start: 142
    functionDepth: 0
    functionLinenumber: 142
    functionLinenumberEnd: 147
    functionName: operator==(const pgp_dilithium_exdsa_composite_public_key_t &rhs)
      const
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const pgp_dilithium_exdsa_composite_public_key_t &rhs)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 160
    functionName: pgp_dilithium_exdsa_composite_public_key_t::pk_alg
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: pgp_pubkey_alg_t
    signature: pgp_pubkey_alg_t pk_alg() const
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:76,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 30
    argCount: 1
    argNames:
    - alg
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 80
    functionName: pgp_sa_to_openssl_string
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: char
    signature: 'char *

      pgp_sa_to_openssl_string(int alg, bool silent = false)'
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:88,1
    - Dst: pgp_sa_to_openssl_string
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:90,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:92,1
    - Dst: EVP_get_cipherbyname
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:96,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:99,1
    - Dst: pgp_block_size
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:105,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:107,1
    - Dst: EVP_EncryptInit_ex
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:108,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:111,1
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:112,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:120,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 23
    argCount: 4
    argNames:
    - crypt
    - alg
    - key
    - iv
    argTypes:
    - pgp_crypt_t*
    - pgp_symm_alg_t
    - uint8_t*
    - uint8_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 82
    functionDepth: 2
    functionLinenumber: 82
    functionLinenumberEnd: 125
    functionName: pgp_cipher_cfb_start
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_ossl.cpp
    functionUses: 7
    functionsReached:
    - RNP_LOG
    - memcpy
    - EVP_get_cipherbyname
    - pgp_sa_to_openssl_string
    - pgp_block_size
    - EVP_EncryptInit_ex
    - memset
    - EVP_CIPHER_CTX_new
    - EVP_CIPHER_CTX_free
    linkageType: ''
    returnType: bool
    signature: "bool pgp_cipher_cfb_start(pgp_crypt_t *  crypt,\n                     pgp_symm_alg_t
      alg,\n                     const uint8_t *key,\n                     const uint8_t
      *iv)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:134,1
    - Dst: OPENSSL_cleanse
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - crypt
    argTypes:
    - pgp_crypt_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 139
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 139
    functionName: pgp_cipher_cfb_finish
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_ossl.cpp
    functionUses: 9
    functionsReached:
    - EVP_CIPHER_CTX_free
    - OPENSSL_cleanse
    linkageType: ''
    returnType: int
    signature: int pgp_cipher_cfb_finish(pgp_crypt_t *crypt)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_EncryptUpdate
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:145,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:147,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - crypt
    - iv
    - blsize
    argTypes:
    - pgp_crypt_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 141
    functionDepth: 1
    functionLinenumber: 141
    functionLinenumberEnd: 150
    functionName: pgp_cipher_encrypt_block
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - EVP_EncryptUpdate
    linkageType: ''
    returnType: int
    signature: int pgp_cipher_encrypt_block(pgp_crypt_t *crypt, uint8_t *iv, size_t
      blsize)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp_sa_to_openssl_string
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:155,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - alg
    - silent
    argTypes:
    - int
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 152
    functionDepth: 2
    functionLinenumber: 152
    functionLinenumberEnd: 156
    functionName: pgp_is_sa_supported
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_ossl.cpp
    functionUses: 1
    functionsReached:
    - pgp_sa_to_openssl_string
    linkageType: ''
    returnType: bool
    signature: bool pgp_is_sa_supported(int alg, bool silent)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:167,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 2
    argNames:
    - ealg
    - aalg
    argTypes:
    - pgp_symm_alg_t
    - pgp_aead_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 181
      start: 160
    functionDepth: 1
    functionLinenumber: 160
    functionLinenumberEnd: 181
    functionName: openssl_aead_name
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: char
    signature: 'char *

      openssl_aead_name(pgp_symm_alg_t ealg, pgp_aead_alg_t aalg)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memset
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:190,1
    - Dst: openssl_aead_name
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:192,1
    - Dst: EVP_get_cipherbyname
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:196,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:199,1
    - Dst: EVP_CIPHER_CTX_new
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:204,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:207,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:207,1
    - Dst: pgp_key_size
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:212,1
    - Dst: rnp::secure_bytes::secure_bytes
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:212,1
    - Dst: pgp_block_size
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:214,1
    - Dst: pgp_cipher_aead_nonce_len
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:222,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 5
    argNames:
    - crypt
    - ealg
    - aalg
    - key
    - decrypt
    argTypes:
    - pgp_crypt_t*
    - pgp_symm_alg_t
    - pgp_aead_alg_t
    - uint8_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 224
      start: 183
    functionDepth: 2
    functionLinenumber: 183
    functionLinenumberEnd: 224
    functionName: pgp_cipher_aead_init
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_ossl.cpp
    functionUses: 5
    functionsReached:
    - RNP_LOG
    - openssl_aead_name
    - EVP_get_cipherbyname
    - pgp_cipher_aead_nonce_len
    - pgp_block_size
    - memset
    - pgp_key_size
    - EVP_CIPHER_CTX_new
    - ERR_peek_last_error
    - rnp::secure_bytes::secure_bytes
    linkageType: ''
    returnType: bool
    signature: "bool pgp_cipher_aead_init(pgp_crypt_t *  crypt,\n                     pgp_symm_alg_t
      ealg,\n                     pgp_aead_alg_t aalg,\n                     const
      uint8_t *key,\n                     bool           decrypt)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: rnp::secure_bytes::secure_bytes
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:232,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - crypt
    - ad
    - len
    argTypes:
    - pgp_crypt_t*
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 236
      start: 226
    functionDepth: 0
    functionLinenumber: 226
    functionLinenumberEnd: 236
    functionName: pgp_cipher_aead_set_ad
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_ossl.cpp
    functionUses: 4
    functionsReached:
    - rnp::secure_bytes::secure_bytes
    linkageType: ''
    returnType: bool
    signature: bool pgp_cipher_aead_set_ad(pgp_crypt_t *crypt, const uint8_t *ad,
      size_t len)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:244,1
    - Dst: EVP_CIPHER_CTX_reset
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:245,1
    - Dst: EVP_CipherInit_ex
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:246,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:248,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:248,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:252,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:254,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:254,1
    - Dst: EVP_CipherInit_ex
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:258,1
    - Dst: auto::key::data
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:258,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:260,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:260,1
    - Dst: EVP_CipherUpdate
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:266,1
    - Dst: auto::ad::data
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:266,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:268,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:268,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 20
    argCount: 3
    argNames:
    - crypt
    - nonce
    - len
    argTypes:
    - pgp_crypt_t*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (len == aead.n_len)
      pos:
        line_end: 243
        line_start: 243
        source_file: /src/rnp/src/lib/crypto/symmetric_ossl.cpp
    constantsTouched: []
    func_position:
      end: 273
      start: 238
    functionDepth: 1
    functionLinenumber: 238
    functionLinenumberEnd: 273
    functionName: pgp_cipher_aead_start
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_ossl.cpp
    functionUses: 6
    functionsReached:
    - RNP_LOG
    - EVP_CIPHER_CTX_ctrl
    - ERR_peek_last_error
    - auto::ad::data
    - EVP_CIPHER_CTX_reset
    - EVP_CipherUpdate
    - assert
    - auto::key::data
    - EVP_CipherInit_ex
    linkageType: ''
    returnType: bool
    signature: bool pgp_cipher_aead_start(pgp_crypt_t *crypt, const uint8_t *nonce,
      size_t len)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CipherUpdate
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:283,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:285,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:285,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:287,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 5
    argNames:
    - crypt
    - out
    - in
    - len
    - read
    argTypes:
    - pgp_crypt_t
    - uint8_t*
    - uint8_t*
    - size_t
    - size_t
    assertStmts:
    - condition: (out_len == (int) len)
      pos:
        line_end: 286
        line_start: 286
        source_file: /src/rnp/src/lib/crypto/symmetric_ossl.cpp
    constantsTouched: []
    func_position:
      end: 290
      start: 275
    functionDepth: 1
    functionLinenumber: 275
    functionLinenumberEnd: 290
    functionName: pgp_cipher_aead_update
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - ERR_peek_last_error
    - assert
    - EVP_CipherUpdate
    linkageType: ''
    returnType: bool
    signature: "bool pgp_cipher_aead_update(\n  pgp_crypt_t &crypt, uint8_t *out,
      const uint8_t *in, size_t len, size_t &read)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - crypt
    argTypes:
    - pgp_crypt_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 296
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 296
    functionName: pgp_cipher_aead_reset
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_ossl.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void pgp_cipher_aead_reset(pgp_crypt_t *crypt)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:304,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:307,1
    - Dst: EVP_CipherUpdate
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:313,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:315,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:315,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:320,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:321,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:323,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:323,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:328,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:330,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:332,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:332,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:337,1
    - Dst: EVP_CipherUpdate
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:340,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:342,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:342,1
    - Dst: EVP_CipherFinal_ex
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:347,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:349,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:349,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:353,1
    - Dst: EVP_CIPHER_CTX_ctrl
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:354,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:356,1
    - Dst: ERR_peek_last_error
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:356,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 4
    argNames:
    - crypt
    - out
    - in
    - len
    argTypes:
    - pgp_crypt_t*
    - uint8_t*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (len >= aead.taglen)
      pos:
        line_end: 303
        line_start: 303
        source_file: /src/rnp/src/lib/crypto/symmetric_ossl.cpp
    - condition: (out_len + out_len2 == (int) (len - aead.taglen))
      pos:
        line_end: 336
        line_start: 336
        source_file: /src/rnp/src/lib/crypto/symmetric_ossl.cpp
    - condition: (out_len + out_len2 == (int) len)
      pos:
        line_end: 352
        line_start: 352
        source_file: /src/rnp/src/lib/crypto/symmetric_ossl.cpp
    constantsTouched: []
    func_position:
      end: 362
      start: 298
    functionDepth: 1
    functionLinenumber: 298
    functionLinenumberEnd: 362
    functionName: pgp_cipher_aead_finish
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_ossl.cpp
    functionUses: 6
    functionsReached:
    - RNP_LOG
    - EVP_CipherFinal_ex
    - EVP_CIPHER_CTX_ctrl
    - memcpy
    - EVP_CipherUpdate
    - assert
    - ERR_peek_last_error
    linkageType: ''
    returnType: bool
    signature: bool pgp_cipher_aead_finish(pgp_crypt_t *crypt, uint8_t *out, const
      uint8_t *in, size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: EVP_CIPHER_CTX_free
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:368,1
    - Dst: memset
      Src: /src/rnp/src/lib/crypto/symmetric_ossl.cpp:372,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - crypt
    argTypes:
    - pgp_crypt_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 373
      start: 364
    functionDepth: 0
    functionLinenumber: 364
    functionLinenumberEnd: 373
    functionName: pgp_cipher_aead_destroy
    functionSourceFile: /src/rnp/src/lib/crypto/symmetric_ossl.cpp
    functionUses: 7
    functionsReached:
    - EVP_CIPHER_CTX_free
    - memset
    linkageType: ''
    returnType: void
    signature: void pgp_cipher_aead_destroy(pgp_crypt_t *crypt)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:51,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 54
    functionName: sphincsplus_alg_name
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: char
    signature: 'char *

      sphincsplus_alg_name(pgp_pubkey_alg_t alg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new_raw_public_key_ex
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:59,1
    - Dst: sphincsplus_alg_name
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:60,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:60,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:60,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pub
    - alg
    argTypes:
    - std::vector<uint8_t>
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: load_slhdsa_pubkey
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - rnp::ossl::evp::PKey
    - EVP_PKEY_new_raw_public_key_ex
    - sphincsplus_alg_name
    - std::vector<uint8_t>::data
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_slhdsa_pubkey(const std::vector<uint8_t>
      &pub, pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new_raw_private_key_ex
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:67,1
    - Dst: sphincsplus_alg_name
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:68,1
    - Dst: rnp::SecureBytes::data
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:68,1
    - Dst: rnp::SecureBytes::size
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:68,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - priv
    - alg
    argTypes:
    - rnp::SecureBytes
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: load_slhdsa_privkey
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::ossl::evp::PKey
    - sphincsplus_alg_name
    - rnp::SecureBytes::data
    - rnp::SecureBytes::size
    - EVP_PKEY_new_raw_private_key_ex
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_slhdsa_privkey(const rnp::SecureBytes &priv,
      pgp_pubkey_alg_t alg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:51,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:52,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 54
      start: 40
    functionDepth: 1
    functionLinenumber: 40
    functionLinenumberEnd: 54
    functionName: sphincsplus_alg_name
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: char
    signature: 'char *

      sphincsplus_alg_name(pgp_pubkey_alg_t alg)'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new_raw_public_key_ex
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:59,1
    - Dst: sphincsplus_alg_name
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:60,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:60,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:60,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - pub
    - alg
    argTypes:
    - std::vector<uint8_t>
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 56
    functionDepth: 2
    functionLinenumber: 56
    functionLinenumberEnd: 62
    functionName: load_slhdsa_pubkey
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp
    functionUses: 0
    functionsReached:
    - std::vector<uint8_t>::size
    - rnp::ossl::evp::PKey
    - EVP_PKEY_new_raw_public_key_ex
    - sphincsplus_alg_name
    - std::vector<uint8_t>::data
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_slhdsa_pubkey(const std::vector<uint8_t>
      &pub, pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_new_raw_private_key_ex
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:67,1
    - Dst: sphincsplus_alg_name
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:68,1
    - Dst: rnp::SecureBytes::data
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:68,1
    - Dst: rnp::SecureBytes::size
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:68,1
    - Dst: rnp::ossl::evp::PKey
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:69,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - priv
    - alg
    argTypes:
    - rnp::SecureBytes
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 64
    functionDepth: 2
    functionLinenumber: 64
    functionLinenumberEnd: 70
    functionName: load_slhdsa_privkey
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp
    functionUses: 0
    functionsReached:
    - rnp::ossl::evp::PKey
    - sphincsplus_alg_name
    - rnp::SecureBytes::data
    - rnp::SecureBytes::size
    - EVP_PKEY_new_raw_private_key_ex
    linkageType: ''
    returnType: rnp::ossl::evp::PKey
    signature: rnp::ossl::evp::PKey load_slhdsa_privkey(const rnp::SecureBytes &priv,
      pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - key_encoded
    - key_encoded_len
    - alg
    argTypes:
    - uint8_t*
    - size_t
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 74
    functionDepth: 0
    functionLinenumber: 74
    functionLinenumberEnd: 80
    functionName: pgp_sphincsplus_public_key_t::pgp_sphincsplus_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void pgp_sphincsplus_public_key_t::pgp_sphincsplus_public_key_t(const
      uint8_t *  key_encoded,\n                                                           size_t
      \          key_encoded_len,\n                                                           pgp_pubkey_alg_t
      alg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key_encoded
    - alg
    argTypes:
    - std::vector<uint8_t>
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 82
    functionDepth: 0
    functionLinenumber: 82
    functionLinenumberEnd: 86
    functionName: pgp_sphincsplus_public_key_t::pgp_sphincsplus_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void pgp_sphincsplus_public_key_t::pgp_sphincsplus_public_key_t(\n
      \ std::vector<uint8_t> const &key_encoded, pgp_pubkey_alg_t alg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - key_encoded
    - key_encoded_len
    - alg
    argTypes:
    - uint8_t*
    - size_t
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 88
    functionDepth: 0
    functionLinenumber: 88
    functionLinenumberEnd: 94
    functionName: pgp_sphincsplus_private_key_t::pgp_sphincsplus_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void pgp_sphincsplus_private_key_t::pgp_sphincsplus_private_key_t(const
      uint8_t *  key_encoded,\n                                                             size_t
      \          key_encoded_len,\n                                                             pgp_pubkey_alg_t
      alg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key_encoded
    - alg
    argTypes:
    - std::vector<uint8_t>
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 96
    functionDepth: 0
    functionLinenumber: 96
    functionLinenumberEnd: 100
    functionName: pgp_sphincsplus_private_key_t::pgp_sphincsplus_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void pgp_sphincsplus_private_key_t::pgp_sphincsplus_private_key_t(\n
      \ std::vector<uint8_t> const &key_encoded, pgp_pubkey_alg_t alg)"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: EVP_PKEY_keygen_init
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:107,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:107,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:108,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:108,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:109,1
    - Dst: EVP_PKEY_keygen
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:112,1
    - Dst: rnp::ossl::evp::PKeyCtx::get
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:112,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:113,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:113,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:114,1
    - Dst: EVP_PKEY_get_raw_public_key
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:119,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:119,1
    - Dst: EVP_PKEY_get_raw_private_key
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:120,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:120,1
    - Dst: EVP_PKEY_get_raw_public_key
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:124,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:124,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:124,1
    - Dst: EVP_PKEY_get_raw_private_key
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:125,1
    - Dst: rnp::ossl::evp::PKey::get
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:125,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:125,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:126,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:126,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:127,1
    - Dst: std::make_pair
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:130,1
    - Dst: pgp_sphincsplus_public_key_t
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:130,1
    - Dst: pgp_sphincsplus_private_key_t
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:131,1
    - Dst: rnp::secure_wipe
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:132,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:132,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:132,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 2
    argNames:
    - rng
    - alg
    argTypes:
    - rnp::RNG*
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 134
      start: 102
    functionDepth: 1
    functionLinenumber: 102
    functionLinenumberEnd: 134
    functionName: sphincsplus_generate_keypair
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - std::vector::size
    - EVP_PKEY_keygen
    - EVP_PKEY_get_raw_public_key
    - rnp::secure_wipe
    - rnp::ossl::latest_err
    - pgp_sphincsplus_public_key_t
    - rnp::ossl::evp::PKey::get
    - std::make_pair
    - rnp::rnp_exception::rnp_exception
    - EVP_PKEY_keygen_init
    - pgp_sphincsplus_private_key_t
    - rnp::ossl::evp::PKeyCtx::get
    - std::vector::data
    - EVP_PKEY_get_raw_private_key
    linkageType: ''
    returnType: std::pair<pgp_sphincsplus_public_key_t, pgp_sphincsplus_private_key_t>
    signature: std::pair<pgp_sphincsplus_public_key_t, pgp_sphincsplus_private_key_t>
      sphincsplus_generate_keypair(rnp::RNG *rng, pgp_pubkey_alg_t alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sphincsplus_generate_keypair
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 3
    argNames:
    - rng
    - material
    - alg
    argTypes:
    - rnp::RNG*
    - pgp_sphincsplus_key_t*
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 136
    functionDepth: 0
    functionLinenumber: 136
    functionLinenumberEnd: 143
    functionName: pgp_sphincsplus_generate
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp
    functionUses: 2
    functionsReached:
    - sphincsplus_generate_keypair
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t pgp_sphincsplus_generate(rnp::RNG *rng, pgp_sphincsplus_key_t
      *material, pgp_pubkey_alg_t alg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:151,1
    - Dst: load_slhdsa_privkey
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:152,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:154,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:154,1
    - Dst: EVP_DigestSignInit_ex
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:159,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:159,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:159,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:160,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:160,1
    - Dst: EVP_DigestSign
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:164,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:164,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:165,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:165,1
    - Dst: pgp_sphincsplus_signature_t*::sig::resize
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:168,1
    - Dst: EVP_DigestSign
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:169,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:169,1
    - Dst: pgp_sphincsplus_signature_t*::sig::data
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:169,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:170,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:170,1
    - Dst: pgp_sphincsplus_signature_t*::sig::resize
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:173,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 4
    argNames:
    - rng
    - sig
    - msg
    - msg_len
    argTypes:
    - rnp::RNG*
    - pgp_sphincsplus_signature_t*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (is_initialized_)
      pos:
        line_end: 150
        line_start: 150
        source_file: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp
    constantsTouched: []
    func_position:
      end: 175
      start: 145
    functionDepth: 3
    functionLinenumber: 145
    functionLinenumberEnd: 175
    functionName: pgp_sphincsplus_private_key_t::sign
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - load_slhdsa_privkey
    - pgp_sphincsplus_signature_t*::sig::resize
    - rnp::ossl::evp::MDCtx::get
    - EVP_DigestSignInit_ex
    - rnp::ossl::latest_err
    - EVP_DigestSign
    - assert
    - auto::get
    - pgp_sphincsplus_signature_t*::sig::data
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t pgp_sphincsplus_private_key_t::sign(rnp::RNG *                   rng,\n
      \                                   pgp_sphincsplus_signature_t *sig,\n                                    const
      uint8_t *              msg,\n                                    size_t                       msg_len)
      const"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:182,1
    - Dst: load_slhdsa_pubkey
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:183,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:185,1
    - Dst: rnp::ossl::latest_err
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:185,1
    - Dst: EVP_DigestVerifyInit_ex
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:190,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:190,1
    - Dst: auto::get
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:190,1
    - Dst: EVP_DigestVerify
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:193,1
    - Dst: rnp::ossl::evp::MDCtx::get
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:193,1
    - Dst: pgp_sphincsplus_signature_t*::sig::data
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:193,1
    - Dst: pgp_sphincsplus_signature_t*::sig::size
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:193,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 13
    argCount: 3
    argNames:
    - sig
    - msg
    - msg_len
    argTypes:
    - pgp_sphincsplus_signature_t*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (is_initialized_)
      pos:
        line_end: 181
        line_start: 181
        source_file: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp
    constantsTouched: []
    func_position:
      end: 197
      start: 177
    functionDepth: 3
    functionLinenumber: 177
    functionLinenumberEnd: 197
    functionName: pgp_sphincsplus_public_key_t::verify
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - rnp::ossl::evp::MDCtx::get
    - EVP_DigestVerifyInit_ex
    - rnp::ossl::latest_err
    - EVP_DigestVerify
    - assert
    - auto::get
    - load_slhdsa_pubkey
    - pgp_sphincsplus_signature_t*::sig::data
    - pgp_sphincsplus_signature_t*::sig::size
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t pgp_sphincsplus_public_key_t::verify(const pgp_sphincsplus_signature_t
      *sig,\n                                     const uint8_t *                    msg,\n
      \                                    size_t                             msg_len)
      const"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load_slhdsa_pubkey
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:205,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 199
    functionDepth: 3
    functionLinenumber: 199
    functionLinenumberEnd: 206
    functionName: pgp_sphincsplus_public_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp
    functionUses: 0
    functionsReached:
    - load_slhdsa_pubkey
    linkageType: ''
    returnType: bool
    signature: bool pgp_sphincsplus_public_key_t::is_valid(rnp::RNG *rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: load_slhdsa_privkey
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:214,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 215
      start: 208
    functionDepth: 3
    functionLinenumber: 208
    functionLinenumberEnd: 215
    functionName: pgp_sphincsplus_private_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp
    functionUses: 0
    functionsReached:
    - load_slhdsa_privkey
    linkageType: ''
    returnType: bool
    signature: bool pgp_sphincsplus_private_key_t::is_valid(rnp::RNG *rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: pgp_sphincsplus_key_t*::pub::is_valid
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:220,1
    - Dst: pgp_sphincsplus_key_t*::priv::is_valid
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:222,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG*
    - pgp_sphincsplus_key_t*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 225
      start: 217
    functionDepth: 0
    functionLinenumber: 217
    functionLinenumberEnd: 225
    functionName: sphincsplus_validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp
    functionUses: 2
    functionsReached:
    - pgp_sphincsplus_key_t*::pub::is_valid
    - pgp_sphincsplus_key_t*::priv::is_valid
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t sphincsplus_validate_key(rnp::RNG *rng, const pgp_sphincsplus_key_t
      *key, bool secret)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sphincsplus_pubkey_size
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:230,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 231
      start: 227
    functionDepth: 0
    functionLinenumber: 227
    functionLinenumberEnd: 231
    functionName: sphincsplus_privkey_size
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp
    functionUses: 0
    functionsReached:
    - sphincsplus_pubkey_size
    linkageType: ''
    returnType: size_t
    signature: size_t sphincsplus_privkey_size(pgp_pubkey_alg_t alg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:244,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 247
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 247
    functionName: sphincsplus_pubkey_size
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp
    functionUses: 7
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: size_t
    signature: size_t sphincsplus_pubkey_size(pgp_pubkey_alg_t alg)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp:260,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_pubkey_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 263
      start: 249
    functionDepth: 1
    functionLinenumber: 249
    functionLinenumberEnd: 263
    functionName: sphincsplus_signature_size
    functionSourceFile: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    linkageType: ''
    returnType: size_t
    signature: size_t sphincsplus_signature_size(pgp_pubkey_alg_t alg)
  - 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: rnp::ossl_allocator::ossl_allocator
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_allocator() noexcept
  - 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: rnp::ossl_allocator::ossl_allocator
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_allocator(const ossl_allocator &) noexcept
  - 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: '&operator=(const ossl_allocator &) noexcept'
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_allocator
    signature: ossl_allocator &operator=(const ossl_allocator &) noexcept
  - 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: ~ossl_allocator() noexcept
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ossl_allocator() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: rnp::ossl_allocator::ossl_allocator
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_allocator(const ossl_allocator<U> &) noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T *>
      Src: /src/rnp/src/lib/crypto/mem.h:74,1
    - Dst: OPENSSL_secure_zalloc
      Src: /src/rnp/src/lib/crypto/mem.h:74,1
    - Dst: static_cast<T *>
      Src: /src/rnp/src/lib/crypto/mem.h:79,1
    - Dst: std::calloc
      Src: /src/rnp/src/lib/crypto/mem.h:79,1
    - Dst: std::bad_alloc
      Src: /src/rnp/src/lib/crypto/mem.h:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - n
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 83
    functionName: rnp::ossl_allocator::allocate
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 0
    functionsReached:
    - std::bad_alloc
    - std::calloc
    - OPENSSL_secure_zalloc
    - static_cast<T *>
    linkageType: ''
    returnType: T
    signature: "T *\n    allocate(std::size_t n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_secure_allocated
      Src: /src/rnp/src/lib/crypto/mem.h:91,1
    - Dst: OPENSSL_secure_clear_free
      Src: /src/rnp/src/lib/crypto/mem.h:92,1
    - Dst: OPENSSL_cleanse
      Src: /src/rnp/src/lib/crypto/mem.h:95,1
    - Dst: std::free
      Src: /src/rnp/src/lib/crypto/mem.h:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - T*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: rnp::ossl_allocator::deallocate
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 0
    functionsReached:
    - CRYPTO_secure_allocated
    - std::free
    - OPENSSL_cleanse
    - OPENSSL_secure_clear_free
    linkageType: ''
    returnType: void
    signature: void deallocate(T *p, std::size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: rnp::secure_array
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void secure_array()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: rnp::data
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: "T *\n    data()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: rnp::data
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: "T *\n    data() const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::size
      Src: /src/rnp/src/lib/crypto/mem.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: rnp::size
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 3
    functionsReached:
    - rnp::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: operator[](size_t idx) const
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T operator[](size_t idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: "&\n    operator[](size_t idx)"
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: "T &\n    operator[](size_t idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_scrub_mem
      Src: /src/rnp/src/lib/crypto/mem.h:154,1
    - Dst: OPENSSL_cleanse
      Src: /src/rnp/src/lib/crypto/mem.h:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: ~secure_array()
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 0
    functionsReached:
    - botan_scrub_mem
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void ~secure_array()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::hex_encode
      Src: /src/rnp/src/lib/crypto/mem.h:176,1
    - Dst: std::string::front
      Src: /src/rnp/src/lib/crypto/mem.h:176,1
    - Dst: std::string::size
      Src: /src/rnp/src/lib/crypto/mem.h:176,1
    - Dst: std::string::resize
      Src: /src/rnp/src/lib/crypto/mem.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 179
    functionName: rnp::bin_to_hex
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 1
    functionsReached:
    - rnp::hex_encode
    - std::string::front
    - std::string::resize
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string bin_to_hex(const uint8_t *data, size_t len, HexFormat format
      = HexFormat::Uppercase)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bin_to_hex
      Src: /src/rnp/src/lib/crypto/mem.h:184,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/mem.h:184,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/mem.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vec
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: rnp::bin_to_hex
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 2
    functionsReached:
    - rnp::bin_to_hex
    - std::vector<uint8_t>::size
    - std::vector<uint8_t>::data
    linkageType: ''
    returnType: std::string
    signature: std::string bin_to_hex(const std::vector<uint8_t> &vec, HexFormat format
      = HexFormat::Uppercase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/rnp/src/lib/crypto/mem.h:190,1
    - Dst: rnp::is_hex
      Src: /src/rnp/src/lib/crypto/mem.h:190,1
    - Dst: std::string::size
      Src: /src/rnp/src/lib/crypto/mem.h:194,1
    - Dst: rnp::hex_decode
      Src: /src/rnp/src/lib/crypto/mem.h:195,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/crypto/mem.h:195,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/mem.h:195,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/mem.h:195,1
    - Dst: std::vector::resize
      Src: /src/rnp/src/lib/crypto/mem.h:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 198
    functionName: rnp::hex_to_bin
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 6
    functionsReached:
    - rnp::hex_decode
    - rnp::is_hex
    - std::string::c_str
    - std::string::size
    - std::vector::size
    - std::string::empty
    - std::vector::resize
    - std::vector::data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> hex_to_bin(const std::string &str)
  - 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: rnp::ossl_allocator::ossl_allocator
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_allocator() noexcept
  - 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: rnp::ossl_allocator::ossl_allocator
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_allocator(const ossl_allocator &) noexcept
  - 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: '&operator=(const ossl_allocator &) noexcept'
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ossl_allocator
    signature: ossl_allocator &operator=(const ossl_allocator &) noexcept
  - 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: ~ossl_allocator() noexcept
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~ossl_allocator() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 62
    functionDepth: 0
    functionLinenumber: 62
    functionLinenumberEnd: 64
    functionName: rnp::ossl_allocator::ossl_allocator
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ossl_allocator(const ossl_allocator<U> &) noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T *>
      Src: /src/rnp/src/lib/crypto/mem.h:74,1
    - Dst: OPENSSL_secure_zalloc
      Src: /src/rnp/src/lib/crypto/mem.h:74,1
    - Dst: static_cast<T *>
      Src: /src/rnp/src/lib/crypto/mem.h:79,1
    - Dst: std::calloc
      Src: /src/rnp/src/lib/crypto/mem.h:79,1
    - Dst: std::bad_alloc
      Src: /src/rnp/src/lib/crypto/mem.h:81,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - n
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 66
    functionDepth: 0
    functionLinenumber: 66
    functionLinenumberEnd: 83
    functionName: rnp::ossl_allocator::allocate
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 0
    functionsReached:
    - std::bad_alloc
    - std::calloc
    - OPENSSL_secure_zalloc
    - static_cast<T *>
    linkageType: ''
    returnType: T
    signature: "T *\n    allocate(std::size_t n)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: CRYPTO_secure_allocated
      Src: /src/rnp/src/lib/crypto/mem.h:91,1
    - Dst: OPENSSL_secure_clear_free
      Src: /src/rnp/src/lib/crypto/mem.h:92,1
    - Dst: OPENSSL_cleanse
      Src: /src/rnp/src/lib/crypto/mem.h:95,1
    - Dst: std::free
      Src: /src/rnp/src/lib/crypto/mem.h:96,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - p
    - n
    argTypes:
    - T*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 97
    functionName: rnp::ossl_allocator::deallocate
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 0
    functionsReached:
    - CRYPTO_secure_allocated
    - std::free
    - OPENSSL_cleanse
    - OPENSSL_secure_clear_free
    linkageType: ''
    returnType: void
    signature: void deallocate(T *p, std::size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 119
      start: 117
    functionDepth: 0
    functionLinenumber: 117
    functionLinenumberEnd: 119
    functionName: rnp::secure_array
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void secure_array()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 121
    functionDepth: 0
    functionLinenumber: 121
    functionLinenumberEnd: 125
    functionName: rnp::data
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: "T *\n    data()"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 131
      start: 127
    functionDepth: 0
    functionLinenumber: 127
    functionLinenumberEnd: 131
    functionName: rnp::data
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: "T *\n    data() const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::size
      Src: /src/rnp/src/lib/crypto/mem.h:136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 137
      start: 133
    functionDepth: 0
    functionLinenumber: 133
    functionLinenumberEnd: 137
    functionName: rnp::size
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 4
    functionsReached:
    - rnp::size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 143
      start: 139
    functionDepth: 0
    functionLinenumber: 139
    functionLinenumberEnd: 143
    functionName: operator[](size_t idx) const
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T operator[](size_t idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 149
      start: 145
    functionDepth: 0
    functionLinenumber: 145
    functionLinenumberEnd: 149
    functionName: "&\n    operator[](size_t idx)"
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: "T &\n    operator[](size_t idx)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_scrub_mem
      Src: /src/rnp/src/lib/crypto/mem.h:154,1
    - Dst: OPENSSL_cleanse
      Src: /src/rnp/src/lib/crypto/mem.h:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 160
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 160
    functionName: ~secure_array()
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 0
    functionsReached:
    - botan_scrub_mem
    - OPENSSL_cleanse
    linkageType: ''
    returnType: void
    signature: void ~secure_array()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::hex_encode
      Src: /src/rnp/src/lib/crypto/mem.h:176,1
    - Dst: std::string::front
      Src: /src/rnp/src/lib/crypto/mem.h:176,1
    - Dst: std::string::size
      Src: /src/rnp/src/lib/crypto/mem.h:176,1
    - Dst: std::string::resize
      Src: /src/rnp/src/lib/crypto/mem.h:177,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 179
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 179
    functionName: rnp::bin_to_hex
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 2
    functionsReached:
    - rnp::hex_encode
    - std::string::front
    - std::string::resize
    - std::string::size
    linkageType: ''
    returnType: std::string
    signature: std::string bin_to_hex(const uint8_t *data, size_t len, HexFormat format
      = HexFormat::Uppercase)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::bin_to_hex
      Src: /src/rnp/src/lib/crypto/mem.h:184,1
    - Dst: std::vector<uint8_t>::data
      Src: /src/rnp/src/lib/crypto/mem.h:184,1
    - Dst: std::vector<uint8_t>::size
      Src: /src/rnp/src/lib/crypto/mem.h:184,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - vec
    argTypes:
    - std::vector<uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 181
    functionDepth: 1
    functionLinenumber: 181
    functionLinenumberEnd: 185
    functionName: rnp::bin_to_hex
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 3
    functionsReached:
    - rnp::bin_to_hex
    - std::vector<uint8_t>::size
    - std::vector<uint8_t>::data
    linkageType: ''
    returnType: std::string
    signature: std::string bin_to_hex(const std::vector<uint8_t> &vec, HexFormat format
      = HexFormat::Uppercase)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::string::empty
      Src: /src/rnp/src/lib/crypto/mem.h:190,1
    - Dst: rnp::is_hex
      Src: /src/rnp/src/lib/crypto/mem.h:190,1
    - Dst: std::string::size
      Src: /src/rnp/src/lib/crypto/mem.h:194,1
    - Dst: rnp::hex_decode
      Src: /src/rnp/src/lib/crypto/mem.h:195,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/crypto/mem.h:195,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/mem.h:195,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/mem.h:195,1
    - Dst: std::vector::resize
      Src: /src/rnp/src/lib/crypto/mem.h:196,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - str
    argTypes:
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 198
      start: 187
    functionDepth: 2
    functionLinenumber: 187
    functionLinenumberEnd: 198
    functionName: rnp::hex_to_bin
    functionSourceFile: /src/rnp/src/lib/crypto/mem.h
    functionUses: 6
    functionsReached:
    - rnp::hex_decode
    - rnp::is_hex
    - std::string::c_str
    - std::string::size
    - std::vector::size
    - std::string::empty
    - std::vector::resize
    - std::vector::data
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> hex_to_bin(const std::string &str)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - key_encoded
    - key_encoded_len
    - param
    argTypes:
    - uint8_t*
    - size_t
    - dilithium_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 38
      start: 32
    functionDepth: 0
    functionLinenumber: 32
    functionLinenumberEnd: 38
    functionName: pgp_dilithium_public_key_t::pgp_dilithium_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_common.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void pgp_dilithium_public_key_t::pgp_dilithium_public_key_t(const
      uint8_t *       key_encoded,\n                                                       size_t
      \               key_encoded_len,\n                                                       dilithium_parameter_e
      param)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key_encoded
    - param
    argTypes:
    - std::vector<uint8_t>
    - dilithium_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 44
    functionName: pgp_dilithium_public_key_t::pgp_dilithium_public_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_common.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void pgp_dilithium_public_key_t::pgp_dilithium_public_key_t(std::vector<uint8_t>
      const &key_encoded,\n                                                       dilithium_parameter_e
      \      param)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - key_encoded
    - key_encoded_len
    - param
    argTypes:
    - uint8_t*
    - size_t
    - dilithium_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 52
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 52
    functionName: pgp_dilithium_private_key_t::pgp_dilithium_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_common.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void pgp_dilithium_private_key_t::pgp_dilithium_private_key_t(const
      uint8_t *       key_encoded,\n                                                         size_t
      \               key_encoded_len,\n                                                         dilithium_parameter_e
      param)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - key_encoded
    - param
    argTypes:
    - std::vector<uint8_t>
    - dilithium_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 58
      start: 54
    functionDepth: 0
    functionLinenumber: 54
    functionLinenumberEnd: 58
    functionName: pgp_dilithium_private_key_t::pgp_dilithium_private_key_t
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_common.cpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void pgp_dilithium_private_key_t::pgp_dilithium_private_key_t(\n  std::vector<uint8_t>
      const &key_encoded, dilithium_parameter_e param)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 65
    functionName: dilithium_privkey_size
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_common.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: size_t
    signature: size_t dilithium_privkey_size()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_common.cpp:76,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/dilithium_common.cpp:77,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - parameter
    argTypes:
    - dilithium_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 79
      start: 67
    functionDepth: 1
    functionLinenumber: 67
    functionLinenumberEnd: 79
    functionName: dilithium_pubkey_size
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_common.cpp
    functionUses: 2
    functionsReached:
    - RNP_LOG
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: size_t
    signature: size_t dilithium_pubkey_size(dilithium_parameter_e parameter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/dilithium_common.cpp:90,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/dilithium_common.cpp:91,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - parameter
    argTypes:
    - dilithium_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 93
      start: 81
    functionDepth: 1
    functionLinenumber: 81
    functionLinenumberEnd: 93
    functionName: dilithium_signature_size
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium_common.cpp
    functionUses: 1
    functionsReached:
    - RNP_LOG
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: size_t
    signature: size_t dilithium_signature_size(dilithium_parameter_e parameter)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:41,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/sm2.cpp:46,1
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:47,1
    - Dst: ec::Key::p::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:52,1
    - Dst: ec::Key::p::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:53,1
    - Dst: botan_pubkey_load_sm2
      Src: /src/rnp/src/lib/crypto/sm2.cpp:58,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:58,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:58,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:58,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - pubkey
    - keydata
    argTypes:
    - rnp::botan::Pubkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 59
    functionName: pgp::sm2::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 0
    functionsReached:
    - rnp::botan::Pubkey::get
    - botan_pubkey_load_sm2
    - ec::Key::p::size
    - pgp::ec::Curve::get
    - auto::bytes
    - rnp::bn::get
    - ec::Key::p::data
    linkageType: ''
    returnType: bool
    signature: bool load_public_key(rnp::botan::Pubkey &pubkey, const ec::Key &keydata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:64,1
    - Dst: botan_privkey_load_sm2
      Src: /src/rnp/src/lib/crypto/sm2.cpp:74,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:74,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - seckey
    - keydata
    argTypes:
    - rnp::botan::Privkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 75
    functionName: pgp::sm2::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 0
    functionsReached:
    - botan_privkey_load_sm2
    - rnp::botan::Privkey::get
    - rnp::bn::get
    - pgp::ec::Curve::get
    linkageType: ''
    returnType: bool
    signature: bool load_secret_key(rnp::botan::Privkey &seckey, const ec::Key &keydata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:80,1
    - Dst: pgp::sm2::load_public_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:81,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:82,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/sm2.cpp:90,1
    - Dst: rnp::Hash::alg
      Src: /src/rnp/src/lib/crypto/sm2.cpp:90,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:91,1
    - Dst: botan_pubkey_sm2_compute_za
      Src: /src/rnp/src/lib/crypto/sm2.cpp:94,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:95,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:95,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:97,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/crypto/sm2.cpp:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - key
    - hash
    - ident_field
    argTypes:
    - ec::Key
    - rnp::Hash
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 102
    functionName: pgp::sm2::compute_za
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - rnp::botan::Pubkey::get
    - rnp::Hash::size
    - pgp::sm2::load_public_key
    - rnp::botan::Pubkey::Pubkey
    - botan_pubkey_sm2_compute_za
    - rnp::Hash::add
    - rnp::Hash::alg
    - rnp::Hash_Botan::name_backend
    - std::vector::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t compute_za(const ec::Key &key, rnp::Hash &hash, const
      char *ident_field)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:107,1
    - Dst: pgp::sm2::load_public_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:108,1
    - Dst: botan_pubkey_check_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:108,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:108,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/sm2.cpp:108,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:116,1
    - Dst: pgp::sm2::load_secret_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:117,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:118,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:118,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/sm2.cpp:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: pgp::sm2::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 4
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - pgp::sm2::load_secret_key
    - rnp::botan::Pubkey::get
    - botan_privkey_check_key
    - rnp::RNG::handle
    - pgp::sm2::load_public_key
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - botan_pubkey_check_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: botan_ffi_supports_api
      Src: /src/rnp/src/lib/crypto/sm2.cpp:131,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:132,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:136,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:136,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:140,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:145,1
    - Dst: pgp::sm2::load_secret_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:146,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:147,1
    - Dst: rnp::botan::op::Sign::Sign
      Src: /src/rnp/src/lib/crypto/sm2.cpp:151,1
    - Dst: botan_pk_op_sign_create
      Src: /src/rnp/src/lib/crypto/sm2.cpp:152,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:152,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:152,1
    - Dst: botan_pk_op_sign_update
      Src: /src/rnp/src/lib/crypto/sm2.cpp:153,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:153,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:153,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:153,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/sm2.cpp:157,1
    - Dst: botan_pk_op_sign_finish
      Src: /src/rnp/src/lib/crypto/sm2.cpp:160,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:160,1
    - Dst: handle
      Src: /src/rnp/src/lib/crypto/sm2.cpp:160,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:160,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:161,1
    - Dst: r::assign
      Src: /src/rnp/src/lib/crypto/sm2.cpp:166,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:166,1
    - Dst: s::assign
      Src: /src/rnp/src/lib/crypto/sm2.cpp:167,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:167,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - '               rng'
    - '          sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - rnp::RNG
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 170
    functionName: pgp::sm2::sign
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 4
    functionsReached:
    - rnp::secure_bytes::size
    - rnp::Hash::size
    - r::assign
    - rnp::secure_bytes::data
    - pgp::sm2::load_secret_key
    - botan_pk_op_sign_create
    - pgp::ec::Curve::get
    - rnp::botan::op::Sign::get
    - RNP_LOG
    - handle
    - rnp::botan::Privkey::get
    - botan_pk_op_sign_finish
    - rnp::botan::op::Sign::Sign
    - botan_pk_op_sign_update
    - auto::bytes
    - std::vector::data
    - rnp::botan::Privkey::Privkey
    - botan_ffi_supports_api
    - s::assign
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t sign(rnp::RNG &               rng,\n     ec::Signature
      &          sig,\n     pgp_hash_alg_t           hash_alg,\n     const rnp::secure_bytes
      &hash,\n     const ec::Key &          key)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: botan_ffi_supports_api
      Src: /src/rnp/src/lib/crypto/sm2.cpp:178,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:179,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:183,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:183,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:187,1
    - Dst: r::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:192,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:193,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/sm2.cpp:194,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/sm2.cpp:196,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:201,1
    - Dst: pgp::sm2::load_public_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:202,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:203,1
    - Dst: rnp::botan::op::Verify::Verify
      Src: /src/rnp/src/lib/crypto/sm2.cpp:207,1
    - Dst: botan_pk_op_verify_create
      Src: /src/rnp/src/lib/crypto/sm2.cpp:208,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:208,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:208,1
    - Dst: botan_pk_op_verify_update
      Src: /src/rnp/src/lib/crypto/sm2.cpp:209,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:209,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:209,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:209,1
    - Dst: r::copy
      Src: /src/rnp/src/lib/crypto/sm2.cpp:214,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:214,1
    - Dst: s::copy
      Src: /src/rnp/src/lib/crypto/sm2.cpp:215,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:215,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/sm2.cpp:217,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:217,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:217,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:217,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 4
    argNames:
    - '    sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts:
    - condition: (sign_half_len <= MAX_CURVE_BYTELEN)
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/rnp/src/lib/crypto/sm2.cpp
    constantsTouched: []
    func_position:
      end: 221
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 221
    functionName: pgp::sm2::verify
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 4
    functionsReached:
    - s::copy
    - rnp::botan::op::Verify::Verify
    - rnp::secure_bytes::size
    - rnp::Hash::size
    - botan_pk_op_verify_finish
    - r::copy
    - s::size
    - rnp::secure_bytes::data
    - rnp::botan::Pubkey::get
    - pgp::ec::Curve::get
    - RNP_LOG
    - assert
    - std::vector::size
    - auto::bytes
    - std::vector::data
    - r::size
    - pgp::sm2::load_public_key
    - botan_pk_op_verify_update
    - botan_ffi_supports_api
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_verify_create
    - rnp::botan::op::Verify::get
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t verify(const ec::Signature &    sig,\n       pgp_hash_alg_t
      \          hash_alg,\n       const rnp::secure_bytes &hash,\n       const ec::Key
      &          key)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:230,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:235,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:237,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/sm2.cpp:246,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:247,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:249,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:253,1
    - Dst: pgp::sm2::load_public_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:254,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:255,1
    - Dst: rnp::botan::op::Encrypt::Encrypt
      Src: /src/rnp/src/lib/crypto/sm2.cpp:264,1
    - Dst: botan_pk_op_encrypt_create
      Src: /src/rnp/src/lib/crypto/sm2.cpp:265,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:266,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:266,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/sm2.cpp:266,1
    - Dst: m::resize
      Src: /src/rnp/src/lib/crypto/sm2.cpp:270,1
    - Dst: m::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:271,1
    - Dst: botan_pk_op_encrypt
      Src: /src/rnp/src/lib/crypto/sm2.cpp:272,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:273,1
    - Dst: handle
      Src: /src/rnp/src/lib/crypto/sm2.cpp:273,1
    - Dst: m::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:273,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:273,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:273,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/sm2.cpp:276,1
    - Dst: m::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:276,1
    - Dst: m::resize
      Src: /src/rnp/src/lib/crypto/sm2.cpp:278,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - '               rng'
    - '              out'
    - in
    - hash_algo
    - '          key'
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    - pgp_hash_alg_t
    - ec::Key
    assertStmts:
    - condition: (mlen < out.m.size())
      pos:
        line_end: 275
        line_start: 275
        source_file: /src/rnp/src/lib/crypto/sm2.cpp
    constantsTouched: []
    func_position:
      end: 280
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 280
    functionName: pgp::sm2::encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 2
    functionsReached:
    - m::size
    - rnp::secure_bytes::size
    - rnp::Hash::size
    - rnp::secure_bytes::data
    - rnp::botan::op::Encrypt::Encrypt
    - m::resize
    - m::data
    - rnp::botan::Pubkey::get
    - pgp::ec::Curve::get
    - rnp::botan::op::Encrypt::get
    - rnp::Hash_Botan::name_backend
    - RNP_LOG
    - handle
    - botan_pk_op_encrypt
    - assert
    - auto::bytes
    - botan_pk_op_encrypt_create
    - pgp::sm2::load_public_key
    - rnp::botan::Pubkey::Pubkey
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t encrypt(rnp::RNG &               rng,\n        Encrypted
      &              out,\n        const rnp::secure_bytes &in,\n        pgp_hash_alg_t
      \          hash_algo,\n        const ec::Key &          key)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:285,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:286,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/sm2.cpp:292,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:294,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:298,1
    - Dst: pgp::sm2::load_secret_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:299,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:300,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/sm2.cpp:304,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:305,1
    - Dst: rnp::botan::op::Decrypt::Decrypt
      Src: /src/rnp/src/lib/crypto/sm2.cpp:307,1
    - Dst: botan_pk_op_decrypt_create
      Src: /src/rnp/src/lib/crypto/sm2.cpp:308,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:308,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:308,1
    - Dst: botan_pk_op_decrypt
      Src: /src/rnp/src/lib/crypto/sm2.cpp:309,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:310,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:310,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:310,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/sm2.cpp:311,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/sm2.cpp:314,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - out
    - in
    - key
    argTypes:
    - rnp::secure_bytes
    - Encrypted
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 316
    functionName: pgp::sm2::decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 2
    functionsReached:
    - Encrypted::m::size
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - pgp::sm2::load_secret_key
    - rnp::secure_bytes::size
    - rnp::botan::op::Decrypt::Decrypt
    - rnp::botan::Privkey::get
    - pgp::ec::Curve::get
    - rnp::botan::op::Decrypt::get
    - rnp::Hash_Botan::name_backend
    - rnp::secure_bytes::resize
    - Encrypted::m::data
    - botan_pk_op_decrypt_create
    - rnp::secure_bytes::data
    - botan_pk_op_decrypt
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t decrypt(rnp::secure_bytes &out, const Encrypted &in, const
      ec::Key &key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:41,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/sm2.cpp:46,1
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:47,1
    - Dst: ec::Key::p::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:52,1
    - Dst: ec::Key::p::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:53,1
    - Dst: botan_pubkey_load_sm2
      Src: /src/rnp/src/lib/crypto/sm2.cpp:58,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:58,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:58,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:58,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - pubkey
    - keydata
    argTypes:
    - rnp::botan::Pubkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 59
    functionName: pgp::sm2::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 4
    functionsReached:
    - rnp::botan::Pubkey::get
    - botan_pubkey_load_sm2
    - ec::Key::p::size
    - pgp::ec::Curve::get
    - auto::bytes
    - rnp::bn::get
    - ec::Key::p::data
    linkageType: ''
    returnType: bool
    signature: bool load_public_key(rnp::botan::Pubkey &pubkey, const ec::Key &keydata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:64,1
    - Dst: botan_privkey_load_sm2
      Src: /src/rnp/src/lib/crypto/sm2.cpp:74,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:74,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - seckey
    - keydata
    argTypes:
    - rnp::botan::Privkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 75
    functionName: pgp::sm2::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 3
    functionsReached:
    - botan_privkey_load_sm2
    - rnp::botan::Privkey::get
    - rnp::bn::get
    - pgp::ec::Curve::get
    linkageType: ''
    returnType: bool
    signature: bool load_secret_key(rnp::botan::Privkey &seckey, const ec::Key &keydata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:80,1
    - Dst: pgp::sm2::load_public_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:81,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:82,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/sm2.cpp:90,1
    - Dst: rnp::Hash::alg
      Src: /src/rnp/src/lib/crypto/sm2.cpp:90,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:91,1
    - Dst: botan_pubkey_sm2_compute_za
      Src: /src/rnp/src/lib/crypto/sm2.cpp:94,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:95,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:95,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:97,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/crypto/sm2.cpp:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - key
    - hash
    - ident_field
    argTypes:
    - ec::Key
    - rnp::Hash
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 102
    functionName: pgp::sm2::compute_za
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - rnp::botan::Pubkey::get
    - rnp::Hash::size
    - pgp::sm2::load_public_key
    - rnp::botan::Pubkey::Pubkey
    - botan_pubkey_sm2_compute_za
    - rnp::Hash::add
    - rnp::Hash::alg
    - rnp::Hash_Botan::name_backend
    - std::vector::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t compute_za(const ec::Key &key, rnp::Hash &hash, const
      char *ident_field)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:107,1
    - Dst: pgp::sm2::load_public_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:108,1
    - Dst: botan_pubkey_check_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:108,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:108,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/sm2.cpp:108,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:116,1
    - Dst: pgp::sm2::load_secret_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:117,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:118,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:118,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/sm2.cpp:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: pgp::sm2::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 4
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - pgp::sm2::load_secret_key
    - rnp::botan::Pubkey::get
    - botan_privkey_check_key
    - rnp::RNG::handle
    - pgp::sm2::load_public_key
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - botan_pubkey_check_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: botan_ffi_supports_api
      Src: /src/rnp/src/lib/crypto/sm2.cpp:131,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:132,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:136,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:136,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:140,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:145,1
    - Dst: pgp::sm2::load_secret_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:146,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:147,1
    - Dst: rnp::botan::op::Sign::Sign
      Src: /src/rnp/src/lib/crypto/sm2.cpp:151,1
    - Dst: botan_pk_op_sign_create
      Src: /src/rnp/src/lib/crypto/sm2.cpp:152,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:152,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:152,1
    - Dst: botan_pk_op_sign_update
      Src: /src/rnp/src/lib/crypto/sm2.cpp:153,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:153,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:153,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:153,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/sm2.cpp:157,1
    - Dst: botan_pk_op_sign_finish
      Src: /src/rnp/src/lib/crypto/sm2.cpp:160,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:160,1
    - Dst: handle
      Src: /src/rnp/src/lib/crypto/sm2.cpp:160,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:160,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:161,1
    - Dst: r::assign
      Src: /src/rnp/src/lib/crypto/sm2.cpp:166,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:166,1
    - Dst: s::assign
      Src: /src/rnp/src/lib/crypto/sm2.cpp:167,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:167,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - '               rng'
    - '          sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - rnp::RNG
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 170
    functionName: pgp::sm2::sign
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 4
    functionsReached:
    - rnp::secure_bytes::size
    - rnp::Hash::size
    - r::assign
    - rnp::secure_bytes::data
    - pgp::sm2::load_secret_key
    - botan_pk_op_sign_create
    - pgp::ec::Curve::get
    - rnp::botan::op::Sign::get
    - RNP_LOG
    - handle
    - rnp::botan::Privkey::get
    - botan_pk_op_sign_finish
    - rnp::botan::op::Sign::Sign
    - botan_pk_op_sign_update
    - auto::bytes
    - std::vector::data
    - rnp::botan::Privkey::Privkey
    - botan_ffi_supports_api
    - s::assign
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t sign(rnp::RNG &               rng,\n     ec::Signature
      &          sig,\n     pgp_hash_alg_t           hash_alg,\n     const rnp::secure_bytes
      &hash,\n     const ec::Key &          key)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: botan_ffi_supports_api
      Src: /src/rnp/src/lib/crypto/sm2.cpp:178,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:179,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:183,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:183,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:187,1
    - Dst: r::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:192,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:193,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/sm2.cpp:194,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/sm2.cpp:196,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:201,1
    - Dst: pgp::sm2::load_public_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:202,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:203,1
    - Dst: rnp::botan::op::Verify::Verify
      Src: /src/rnp/src/lib/crypto/sm2.cpp:207,1
    - Dst: botan_pk_op_verify_create
      Src: /src/rnp/src/lib/crypto/sm2.cpp:208,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:208,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:208,1
    - Dst: botan_pk_op_verify_update
      Src: /src/rnp/src/lib/crypto/sm2.cpp:209,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:209,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:209,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:209,1
    - Dst: r::copy
      Src: /src/rnp/src/lib/crypto/sm2.cpp:214,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:214,1
    - Dst: s::copy
      Src: /src/rnp/src/lib/crypto/sm2.cpp:215,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:215,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/sm2.cpp:217,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:217,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:217,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:217,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 4
    argNames:
    - '    sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts:
    - condition: (sign_half_len <= MAX_CURVE_BYTELEN)
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/rnp/src/lib/crypto/sm2.cpp
    constantsTouched: []
    func_position:
      end: 221
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 221
    functionName: pgp::sm2::verify
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 4
    functionsReached:
    - s::copy
    - rnp::botan::op::Verify::Verify
    - rnp::secure_bytes::size
    - rnp::Hash::size
    - botan_pk_op_verify_finish
    - r::copy
    - s::size
    - rnp::secure_bytes::data
    - rnp::botan::Pubkey::get
    - pgp::ec::Curve::get
    - RNP_LOG
    - assert
    - std::vector::size
    - auto::bytes
    - std::vector::data
    - r::size
    - pgp::sm2::load_public_key
    - botan_pk_op_verify_update
    - botan_ffi_supports_api
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_verify_create
    - rnp::botan::op::Verify::get
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t verify(const ec::Signature &    sig,\n       pgp_hash_alg_t
      \          hash_alg,\n       const rnp::secure_bytes &hash,\n       const ec::Key
      &          key)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:230,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:235,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:237,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/sm2.cpp:246,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:247,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:249,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:253,1
    - Dst: pgp::sm2::load_public_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:254,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:255,1
    - Dst: rnp::botan::op::Encrypt::Encrypt
      Src: /src/rnp/src/lib/crypto/sm2.cpp:264,1
    - Dst: botan_pk_op_encrypt_create
      Src: /src/rnp/src/lib/crypto/sm2.cpp:265,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:266,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:266,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/sm2.cpp:266,1
    - Dst: m::resize
      Src: /src/rnp/src/lib/crypto/sm2.cpp:270,1
    - Dst: m::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:271,1
    - Dst: botan_pk_op_encrypt
      Src: /src/rnp/src/lib/crypto/sm2.cpp:272,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:273,1
    - Dst: handle
      Src: /src/rnp/src/lib/crypto/sm2.cpp:273,1
    - Dst: m::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:273,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:273,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:273,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/sm2.cpp:276,1
    - Dst: m::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:276,1
    - Dst: m::resize
      Src: /src/rnp/src/lib/crypto/sm2.cpp:278,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - '               rng'
    - '              out'
    - in
    - hash_algo
    - '          key'
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    - pgp_hash_alg_t
    - ec::Key
    assertStmts:
    - condition: (mlen < out.m.size())
      pos:
        line_end: 275
        line_start: 275
        source_file: /src/rnp/src/lib/crypto/sm2.cpp
    constantsTouched: []
    func_position:
      end: 280
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 280
    functionName: pgp::sm2::encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 2
    functionsReached:
    - m::size
    - rnp::secure_bytes::size
    - rnp::Hash::size
    - rnp::secure_bytes::data
    - rnp::botan::op::Encrypt::Encrypt
    - m::resize
    - m::data
    - rnp::botan::Pubkey::get
    - pgp::ec::Curve::get
    - rnp::botan::op::Encrypt::get
    - rnp::Hash_Botan::name_backend
    - RNP_LOG
    - handle
    - botan_pk_op_encrypt
    - assert
    - auto::bytes
    - botan_pk_op_encrypt_create
    - pgp::sm2::load_public_key
    - rnp::botan::Pubkey::Pubkey
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t encrypt(rnp::RNG &               rng,\n        Encrypted
      &              out,\n        const rnp::secure_bytes &in,\n        pgp_hash_alg_t
      \          hash_algo,\n        const ec::Key &          key)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:285,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:286,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/sm2.cpp:292,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:294,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:298,1
    - Dst: pgp::sm2::load_secret_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:299,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:300,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/sm2.cpp:304,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:305,1
    - Dst: rnp::botan::op::Decrypt::Decrypt
      Src: /src/rnp/src/lib/crypto/sm2.cpp:307,1
    - Dst: botan_pk_op_decrypt_create
      Src: /src/rnp/src/lib/crypto/sm2.cpp:308,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:308,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:308,1
    - Dst: botan_pk_op_decrypt
      Src: /src/rnp/src/lib/crypto/sm2.cpp:309,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:310,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:310,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:310,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/sm2.cpp:311,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/sm2.cpp:314,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - out
    - in
    - key
    argTypes:
    - rnp::secure_bytes
    - Encrypted
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 316
    functionName: pgp::sm2::decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 2
    functionsReached:
    - Encrypted::m::size
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - pgp::sm2::load_secret_key
    - rnp::secure_bytes::size
    - rnp::botan::op::Decrypt::Decrypt
    - rnp::botan::Privkey::get
    - pgp::ec::Curve::get
    - rnp::botan::op::Decrypt::get
    - rnp::Hash_Botan::name_backend
    - rnp::secure_bytes::resize
    - Encrypted::m::data
    - botan_pk_op_decrypt_create
    - rnp::secure_bytes::data
    - botan_pk_op_decrypt
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t decrypt(rnp::secure_bytes &out, const Encrypted &in, const
      ec::Key &key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:41,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/sm2.cpp:46,1
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:47,1
    - Dst: ec::Key::p::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:52,1
    - Dst: ec::Key::p::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:53,1
    - Dst: botan_pubkey_load_sm2
      Src: /src/rnp/src/lib/crypto/sm2.cpp:58,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:58,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:58,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:58,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - pubkey
    - keydata
    argTypes:
    - rnp::botan::Pubkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 59
    functionName: pgp::sm2::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 8
    functionsReached:
    - rnp::botan::Pubkey::get
    - botan_pubkey_load_sm2
    - ec::Key::p::size
    - pgp::ec::Curve::get
    - auto::bytes
    - rnp::bn::get
    - ec::Key::p::data
    linkageType: ''
    returnType: bool
    signature: bool load_public_key(rnp::botan::Pubkey &pubkey, const ec::Key &keydata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:64,1
    - Dst: botan_privkey_load_sm2
      Src: /src/rnp/src/lib/crypto/sm2.cpp:74,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:74,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - seckey
    - keydata
    argTypes:
    - rnp::botan::Privkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 75
    functionName: pgp::sm2::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 6
    functionsReached:
    - botan_privkey_load_sm2
    - rnp::botan::Privkey::get
    - rnp::bn::get
    - pgp::ec::Curve::get
    linkageType: ''
    returnType: bool
    signature: bool load_secret_key(rnp::botan::Privkey &seckey, const ec::Key &keydata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:80,1
    - Dst: pgp::sm2::load_public_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:81,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:82,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/sm2.cpp:90,1
    - Dst: rnp::Hash::alg
      Src: /src/rnp/src/lib/crypto/sm2.cpp:90,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:91,1
    - Dst: botan_pubkey_sm2_compute_za
      Src: /src/rnp/src/lib/crypto/sm2.cpp:94,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:95,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:95,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:97,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/crypto/sm2.cpp:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - key
    - hash
    - ident_field
    argTypes:
    - ec::Key
    - rnp::Hash
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 102
    functionName: pgp::sm2::compute_za
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - rnp::botan::Pubkey::get
    - rnp::Hash::size
    - pgp::sm2::load_public_key
    - rnp::botan::Pubkey::Pubkey
    - botan_pubkey_sm2_compute_za
    - rnp::Hash::add
    - rnp::Hash::alg
    - rnp::Hash_Botan::name_backend
    - std::vector::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t compute_za(const ec::Key &key, rnp::Hash &hash, const
      char *ident_field)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:107,1
    - Dst: pgp::sm2::load_public_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:108,1
    - Dst: botan_pubkey_check_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:108,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:108,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/sm2.cpp:108,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:116,1
    - Dst: pgp::sm2::load_secret_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:117,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:118,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:118,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/sm2.cpp:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: pgp::sm2::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 4
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - pgp::sm2::load_secret_key
    - rnp::botan::Pubkey::get
    - botan_privkey_check_key
    - rnp::RNG::handle
    - pgp::sm2::load_public_key
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - botan_pubkey_check_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: botan_ffi_supports_api
      Src: /src/rnp/src/lib/crypto/sm2.cpp:131,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:132,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:136,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:136,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:140,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:145,1
    - Dst: pgp::sm2::load_secret_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:146,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:147,1
    - Dst: rnp::botan::op::Sign::Sign
      Src: /src/rnp/src/lib/crypto/sm2.cpp:151,1
    - Dst: botan_pk_op_sign_create
      Src: /src/rnp/src/lib/crypto/sm2.cpp:152,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:152,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:152,1
    - Dst: botan_pk_op_sign_update
      Src: /src/rnp/src/lib/crypto/sm2.cpp:153,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:153,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:153,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:153,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/sm2.cpp:157,1
    - Dst: botan_pk_op_sign_finish
      Src: /src/rnp/src/lib/crypto/sm2.cpp:160,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:160,1
    - Dst: handle
      Src: /src/rnp/src/lib/crypto/sm2.cpp:160,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:160,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:161,1
    - Dst: r::assign
      Src: /src/rnp/src/lib/crypto/sm2.cpp:166,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:166,1
    - Dst: s::assign
      Src: /src/rnp/src/lib/crypto/sm2.cpp:167,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:167,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - '               rng'
    - '          sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - rnp::RNG
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 170
    functionName: pgp::sm2::sign
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 4
    functionsReached:
    - rnp::secure_bytes::size
    - rnp::Hash::size
    - r::assign
    - rnp::secure_bytes::data
    - pgp::sm2::load_secret_key
    - botan_pk_op_sign_create
    - pgp::ec::Curve::get
    - rnp::botan::op::Sign::get
    - RNP_LOG
    - handle
    - rnp::botan::Privkey::get
    - botan_pk_op_sign_finish
    - rnp::botan::op::Sign::Sign
    - botan_pk_op_sign_update
    - auto::bytes
    - std::vector::data
    - rnp::botan::Privkey::Privkey
    - botan_ffi_supports_api
    - s::assign
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t sign(rnp::RNG &               rng,\n     ec::Signature
      &          sig,\n     pgp_hash_alg_t           hash_alg,\n     const rnp::secure_bytes
      &hash,\n     const ec::Key &          key)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: botan_ffi_supports_api
      Src: /src/rnp/src/lib/crypto/sm2.cpp:178,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:179,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:183,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:183,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:187,1
    - Dst: r::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:192,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:193,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/sm2.cpp:194,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/sm2.cpp:196,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:201,1
    - Dst: pgp::sm2::load_public_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:202,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:203,1
    - Dst: rnp::botan::op::Verify::Verify
      Src: /src/rnp/src/lib/crypto/sm2.cpp:207,1
    - Dst: botan_pk_op_verify_create
      Src: /src/rnp/src/lib/crypto/sm2.cpp:208,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:208,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:208,1
    - Dst: botan_pk_op_verify_update
      Src: /src/rnp/src/lib/crypto/sm2.cpp:209,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:209,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:209,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:209,1
    - Dst: r::copy
      Src: /src/rnp/src/lib/crypto/sm2.cpp:214,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:214,1
    - Dst: s::copy
      Src: /src/rnp/src/lib/crypto/sm2.cpp:215,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:215,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/sm2.cpp:217,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:217,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:217,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:217,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 4
    argNames:
    - '    sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts:
    - condition: (sign_half_len <= MAX_CURVE_BYTELEN)
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/rnp/src/lib/crypto/sm2.cpp
    constantsTouched: []
    func_position:
      end: 221
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 221
    functionName: pgp::sm2::verify
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 4
    functionsReached:
    - s::copy
    - rnp::botan::op::Verify::Verify
    - rnp::secure_bytes::size
    - rnp::Hash::size
    - botan_pk_op_verify_finish
    - r::copy
    - s::size
    - rnp::secure_bytes::data
    - rnp::botan::Pubkey::get
    - pgp::ec::Curve::get
    - RNP_LOG
    - assert
    - std::vector::size
    - auto::bytes
    - std::vector::data
    - r::size
    - pgp::sm2::load_public_key
    - botan_pk_op_verify_update
    - botan_ffi_supports_api
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_verify_create
    - rnp::botan::op::Verify::get
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t verify(const ec::Signature &    sig,\n       pgp_hash_alg_t
      \          hash_alg,\n       const rnp::secure_bytes &hash,\n       const ec::Key
      &          key)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:230,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:235,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:237,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/sm2.cpp:246,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:247,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:249,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:253,1
    - Dst: pgp::sm2::load_public_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:254,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:255,1
    - Dst: rnp::botan::op::Encrypt::Encrypt
      Src: /src/rnp/src/lib/crypto/sm2.cpp:264,1
    - Dst: botan_pk_op_encrypt_create
      Src: /src/rnp/src/lib/crypto/sm2.cpp:265,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:266,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:266,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/sm2.cpp:266,1
    - Dst: m::resize
      Src: /src/rnp/src/lib/crypto/sm2.cpp:270,1
    - Dst: m::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:271,1
    - Dst: botan_pk_op_encrypt
      Src: /src/rnp/src/lib/crypto/sm2.cpp:272,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:273,1
    - Dst: handle
      Src: /src/rnp/src/lib/crypto/sm2.cpp:273,1
    - Dst: m::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:273,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:273,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:273,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/sm2.cpp:276,1
    - Dst: m::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:276,1
    - Dst: m::resize
      Src: /src/rnp/src/lib/crypto/sm2.cpp:278,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - '               rng'
    - '              out'
    - in
    - hash_algo
    - '          key'
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    - pgp_hash_alg_t
    - ec::Key
    assertStmts:
    - condition: (mlen < out.m.size())
      pos:
        line_end: 275
        line_start: 275
        source_file: /src/rnp/src/lib/crypto/sm2.cpp
    constantsTouched: []
    func_position:
      end: 280
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 280
    functionName: pgp::sm2::encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 2
    functionsReached:
    - m::size
    - rnp::secure_bytes::size
    - rnp::Hash::size
    - rnp::secure_bytes::data
    - rnp::botan::op::Encrypt::Encrypt
    - m::resize
    - m::data
    - rnp::botan::Pubkey::get
    - pgp::ec::Curve::get
    - rnp::botan::op::Encrypt::get
    - rnp::Hash_Botan::name_backend
    - RNP_LOG
    - handle
    - botan_pk_op_encrypt
    - assert
    - auto::bytes
    - botan_pk_op_encrypt_create
    - pgp::sm2::load_public_key
    - rnp::botan::Pubkey::Pubkey
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t encrypt(rnp::RNG &               rng,\n        Encrypted
      &              out,\n        const rnp::secure_bytes &in,\n        pgp_hash_alg_t
      \          hash_algo,\n        const ec::Key &          key)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:285,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:286,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/sm2.cpp:292,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:294,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:298,1
    - Dst: pgp::sm2::load_secret_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:299,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:300,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/sm2.cpp:304,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:305,1
    - Dst: rnp::botan::op::Decrypt::Decrypt
      Src: /src/rnp/src/lib/crypto/sm2.cpp:307,1
    - Dst: botan_pk_op_decrypt_create
      Src: /src/rnp/src/lib/crypto/sm2.cpp:308,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:308,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:308,1
    - Dst: botan_pk_op_decrypt
      Src: /src/rnp/src/lib/crypto/sm2.cpp:309,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:310,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:310,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:310,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/sm2.cpp:311,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/sm2.cpp:314,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - out
    - in
    - key
    argTypes:
    - rnp::secure_bytes
    - Encrypted
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 316
    functionName: pgp::sm2::decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 2
    functionsReached:
    - Encrypted::m::size
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - pgp::sm2::load_secret_key
    - rnp::secure_bytes::size
    - rnp::botan::op::Decrypt::Decrypt
    - rnp::botan::Privkey::get
    - pgp::ec::Curve::get
    - rnp::botan::op::Decrypt::get
    - rnp::Hash_Botan::name_backend
    - rnp::secure_bytes::resize
    - Encrypted::m::data
    - botan_pk_op_decrypt_create
    - rnp::secure_bytes::data
    - botan_pk_op_decrypt
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t decrypt(rnp::secure_bytes &out, const Encrypted &in, const
      ec::Key &key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:41,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/sm2.cpp:46,1
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:47,1
    - Dst: ec::Key::p::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:52,1
    - Dst: ec::Key::p::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:53,1
    - Dst: botan_pubkey_load_sm2
      Src: /src/rnp/src/lib/crypto/sm2.cpp:58,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:58,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:58,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:58,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 11
    argCount: 2
    argNames:
    - pubkey
    - keydata
    argTypes:
    - rnp::botan::Pubkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 38
    functionDepth: 1
    functionLinenumber: 38
    functionLinenumberEnd: 59
    functionName: pgp::sm2::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 12
    functionsReached:
    - rnp::botan::Pubkey::get
    - botan_pubkey_load_sm2
    - ec::Key::p::size
    - pgp::ec::Curve::get
    - auto::bytes
    - rnp::bn::get
    - ec::Key::p::data
    linkageType: ''
    returnType: bool
    signature: bool load_public_key(rnp::botan::Pubkey &pubkey, const ec::Key &keydata)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:64,1
    - Dst: botan_privkey_load_sm2
      Src: /src/rnp/src/lib/crypto/sm2.cpp:74,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:74,1
    - Dst: rnp::bn::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:74,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - seckey
    - keydata
    argTypes:
    - rnp::botan::Privkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 75
      start: 61
    functionDepth: 1
    functionLinenumber: 61
    functionLinenumberEnd: 75
    functionName: pgp::sm2::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 9
    functionsReached:
    - botan_privkey_load_sm2
    - rnp::botan::Privkey::get
    - rnp::bn::get
    - pgp::ec::Curve::get
    linkageType: ''
    returnType: bool
    signature: bool load_secret_key(rnp::botan::Privkey &seckey, const ec::Key &keydata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:80,1
    - Dst: pgp::sm2::load_public_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:81,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:82,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/sm2.cpp:90,1
    - Dst: rnp::Hash::alg
      Src: /src/rnp/src/lib/crypto/sm2.cpp:90,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:91,1
    - Dst: botan_pubkey_sm2_compute_za
      Src: /src/rnp/src/lib/crypto/sm2.cpp:94,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:95,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:95,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:97,1
    - Dst: rnp::Hash::add
      Src: /src/rnp/src/lib/crypto/sm2.cpp:100,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 3
    argNames:
    - key
    - hash
    - ident_field
    argTypes:
    - ec::Key
    - rnp::Hash
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 102
      start: 77
    functionDepth: 2
    functionLinenumber: 77
    functionLinenumberEnd: 102
    functionName: pgp::sm2::compute_za
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 4
    functionsReached:
    - RNP_LOG
    - rnp::botan::Pubkey::get
    - rnp::Hash::size
    - pgp::sm2::load_public_key
    - rnp::botan::Pubkey::Pubkey
    - botan_pubkey_sm2_compute_za
    - rnp::Hash::add
    - rnp::Hash::alg
    - rnp::Hash_Botan::name_backend
    - std::vector::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t compute_za(const ec::Key &key, rnp::Hash &hash, const
      char *ident_field)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:107,1
    - Dst: pgp::sm2::load_public_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:108,1
    - Dst: botan_pubkey_check_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:108,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:108,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/sm2.cpp:108,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:116,1
    - Dst: pgp::sm2::load_secret_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:117,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:118,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:118,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/sm2.cpp:118,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 122
      start: 104
    functionDepth: 1
    functionLinenumber: 104
    functionLinenumberEnd: 122
    functionName: pgp::sm2::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 4
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - pgp::sm2::load_secret_key
    - rnp::botan::Pubkey::get
    - botan_privkey_check_key
    - rnp::RNG::handle
    - pgp::sm2::load_public_key
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - botan_pubkey_check_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: botan_ffi_supports_api
      Src: /src/rnp/src/lib/crypto/sm2.cpp:131,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:132,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:136,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:136,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:140,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:145,1
    - Dst: pgp::sm2::load_secret_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:146,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:147,1
    - Dst: rnp::botan::op::Sign::Sign
      Src: /src/rnp/src/lib/crypto/sm2.cpp:151,1
    - Dst: botan_pk_op_sign_create
      Src: /src/rnp/src/lib/crypto/sm2.cpp:152,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:152,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:152,1
    - Dst: botan_pk_op_sign_update
      Src: /src/rnp/src/lib/crypto/sm2.cpp:153,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:153,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:153,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:153,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/sm2.cpp:157,1
    - Dst: botan_pk_op_sign_finish
      Src: /src/rnp/src/lib/crypto/sm2.cpp:160,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:160,1
    - Dst: handle
      Src: /src/rnp/src/lib/crypto/sm2.cpp:160,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:160,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:161,1
    - Dst: r::assign
      Src: /src/rnp/src/lib/crypto/sm2.cpp:166,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:166,1
    - Dst: s::assign
      Src: /src/rnp/src/lib/crypto/sm2.cpp:167,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:167,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 5
    argNames:
    - '               rng'
    - '          sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - rnp::RNG
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 124
    functionDepth: 1
    functionLinenumber: 124
    functionLinenumberEnd: 170
    functionName: pgp::sm2::sign
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 4
    functionsReached:
    - rnp::secure_bytes::size
    - rnp::Hash::size
    - r::assign
    - rnp::secure_bytes::data
    - pgp::sm2::load_secret_key
    - botan_pk_op_sign_create
    - pgp::ec::Curve::get
    - rnp::botan::op::Sign::get
    - RNP_LOG
    - handle
    - rnp::botan::Privkey::get
    - botan_pk_op_sign_finish
    - rnp::botan::op::Sign::Sign
    - botan_pk_op_sign_update
    - auto::bytes
    - std::vector::data
    - rnp::botan::Privkey::Privkey
    - botan_ffi_supports_api
    - s::assign
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t sign(rnp::RNG &               rng,\n     ec::Signature
      &          sig,\n     pgp_hash_alg_t           hash_alg,\n     const rnp::secure_bytes
      &hash,\n     const ec::Key &          key)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: botan_ffi_supports_api
      Src: /src/rnp/src/lib/crypto/sm2.cpp:178,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:179,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:183,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:183,1
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:187,1
    - Dst: r::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:192,1
    - Dst: s::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:193,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/sm2.cpp:194,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/sm2.cpp:196,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:201,1
    - Dst: pgp::sm2::load_public_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:202,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:203,1
    - Dst: rnp::botan::op::Verify::Verify
      Src: /src/rnp/src/lib/crypto/sm2.cpp:207,1
    - Dst: botan_pk_op_verify_create
      Src: /src/rnp/src/lib/crypto/sm2.cpp:208,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:208,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:208,1
    - Dst: botan_pk_op_verify_update
      Src: /src/rnp/src/lib/crypto/sm2.cpp:209,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:209,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:209,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:209,1
    - Dst: r::copy
      Src: /src/rnp/src/lib/crypto/sm2.cpp:214,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:214,1
    - Dst: s::copy
      Src: /src/rnp/src/lib/crypto/sm2.cpp:215,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:215,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/sm2.cpp:217,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:217,1
    - Dst: std::vector::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:217,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:217,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 28
    argCount: 4
    argNames:
    - '    sig'
    - hash_alg
    - hash
    - '          key'
    argTypes:
    - ec::Signature
    - pgp_hash_alg_t
    - rnp::secure_bytes
    - ec::Key
    assertStmts:
    - condition: (sign_half_len <= MAX_CURVE_BYTELEN)
      pos:
        line_end: 195
        line_start: 195
        source_file: /src/rnp/src/lib/crypto/sm2.cpp
    constantsTouched: []
    func_position:
      end: 221
      start: 172
    functionDepth: 1
    functionLinenumber: 172
    functionLinenumberEnd: 221
    functionName: pgp::sm2::verify
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 4
    functionsReached:
    - s::copy
    - rnp::botan::op::Verify::Verify
    - rnp::secure_bytes::size
    - rnp::Hash::size
    - botan_pk_op_verify_finish
    - r::copy
    - s::size
    - rnp::secure_bytes::data
    - rnp::botan::Pubkey::get
    - pgp::ec::Curve::get
    - RNP_LOG
    - assert
    - std::vector::size
    - auto::bytes
    - std::vector::data
    - r::size
    - pgp::sm2::load_public_key
    - botan_pk_op_verify_update
    - botan_ffi_supports_api
    - rnp::botan::Pubkey::Pubkey
    - botan_pk_op_verify_create
    - rnp::botan::op::Verify::get
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t verify(const ec::Signature &    sig,\n       pgp_hash_alg_t
      \          hash_alg,\n       const rnp::secure_bytes &hash,\n       const ec::Key
      &          key)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:230,1
    - Dst: rnp::Hash::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:235,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:237,1
    - Dst: auto::bytes
      Src: /src/rnp/src/lib/crypto/sm2.cpp:246,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:247,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:249,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:253,1
    - Dst: pgp::sm2::load_public_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:254,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:255,1
    - Dst: rnp::botan::op::Encrypt::Encrypt
      Src: /src/rnp/src/lib/crypto/sm2.cpp:264,1
    - Dst: botan_pk_op_encrypt_create
      Src: /src/rnp/src/lib/crypto/sm2.cpp:265,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:266,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:266,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/sm2.cpp:266,1
    - Dst: m::resize
      Src: /src/rnp/src/lib/crypto/sm2.cpp:270,1
    - Dst: m::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:271,1
    - Dst: botan_pk_op_encrypt
      Src: /src/rnp/src/lib/crypto/sm2.cpp:272,1
    - Dst: rnp::botan::op::Encrypt::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:273,1
    - Dst: handle
      Src: /src/rnp/src/lib/crypto/sm2.cpp:273,1
    - Dst: m::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:273,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:273,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:273,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/sm2.cpp:276,1
    - Dst: m::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:276,1
    - Dst: m::resize
      Src: /src/rnp/src/lib/crypto/sm2.cpp:278,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 27
    argCount: 5
    argNames:
    - '               rng'
    - '              out'
    - in
    - hash_algo
    - '          key'
    argTypes:
    - rnp::RNG
    - Encrypted
    - rnp::secure_bytes
    - pgp_hash_alg_t
    - ec::Key
    assertStmts:
    - condition: (mlen < out.m.size())
      pos:
        line_end: 275
        line_start: 275
        source_file: /src/rnp/src/lib/crypto/sm2.cpp
    constantsTouched: []
    func_position:
      end: 280
      start: 223
    functionDepth: 2
    functionLinenumber: 223
    functionLinenumberEnd: 280
    functionName: pgp::sm2::encrypt
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 2
    functionsReached:
    - m::size
    - rnp::secure_bytes::size
    - rnp::Hash::size
    - rnp::secure_bytes::data
    - rnp::botan::op::Encrypt::Encrypt
    - m::resize
    - m::data
    - rnp::botan::Pubkey::get
    - pgp::ec::Curve::get
    - rnp::botan::op::Encrypt::get
    - rnp::Hash_Botan::name_backend
    - RNP_LOG
    - handle
    - botan_pk_op_encrypt
    - assert
    - auto::bytes
    - botan_pk_op_encrypt_create
    - pgp::sm2::load_public_key
    - rnp::botan::Pubkey::Pubkey
    linkageType: ''
    returnType: rnp_result_t
    signature: "rnp_result_t encrypt(rnp::RNG &               rng,\n        Encrypted
      &              out,\n        const rnp::secure_bytes &in,\n        pgp_hash_alg_t
      \          hash_algo,\n        const ec::Key &          key)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: pgp::ec::Curve::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:285,1
    - Dst: Encrypted::m::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:286,1
    - Dst: rnp::Hash_Botan::name_backend
      Src: /src/rnp/src/lib/crypto/sm2.cpp:292,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:294,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/sm2.cpp:298,1
    - Dst: pgp::sm2::load_secret_key
      Src: /src/rnp/src/lib/crypto/sm2.cpp:299,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/sm2.cpp:300,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/sm2.cpp:304,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/sm2.cpp:305,1
    - Dst: rnp::botan::op::Decrypt::Decrypt
      Src: /src/rnp/src/lib/crypto/sm2.cpp:307,1
    - Dst: botan_pk_op_decrypt_create
      Src: /src/rnp/src/lib/crypto/sm2.cpp:308,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:308,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:308,1
    - Dst: botan_pk_op_decrypt
      Src: /src/rnp/src/lib/crypto/sm2.cpp:309,1
    - Dst: rnp::botan::op::Decrypt::get
      Src: /src/rnp/src/lib/crypto/sm2.cpp:310,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:310,1
    - Dst: Encrypted::m::data
      Src: /src/rnp/src/lib/crypto/sm2.cpp:310,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/sm2.cpp:311,1
    - Dst: rnp::secure_bytes::resize
      Src: /src/rnp/src/lib/crypto/sm2.cpp:314,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 3
    argNames:
    - out
    - in
    - key
    argTypes:
    - rnp::secure_bytes
    - Encrypted
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 316
      start: 282
    functionDepth: 2
    functionLinenumber: 282
    functionLinenumberEnd: 316
    functionName: pgp::sm2::decrypt
    functionSourceFile: /src/rnp/src/lib/crypto/sm2.cpp
    functionUses: 2
    functionsReached:
    - Encrypted::m::size
    - RNP_LOG
    - rnp::botan::Privkey::Privkey
    - pgp::sm2::load_secret_key
    - rnp::secure_bytes::size
    - rnp::botan::op::Decrypt::Decrypt
    - rnp::botan::Privkey::get
    - pgp::ec::Curve::get
    - rnp::botan::op::Decrypt::get
    - rnp::Hash_Botan::name_backend
    - rnp::secure_bytes::resize
    - Encrypted::m::data
    - botan_pk_op_decrypt_create
    - rnp::secure_bytes::data
    - botan_pk_op_decrypt
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t decrypt(rnp::secure_bytes &out, const Encrypted &in, const
      ec::Key &key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: botan_rng_init
      Src: /src/rnp/src/lib/crypto/rng.cpp:35,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/rng.cpp:36,1
    - Dst: reset
      Src: /src/rnp/src/lib/crypto/rng.cpp:40,1
    - Dst: Botan::AutoSeeded_RNG::AutoSeeded_RNG
      Src: /src/rnp/src/lib/crypto/rng.cpp:40,1
    - Dst: reset
      Src: /src/rnp/src/lib/crypto/rng.cpp:42,1
    - Dst: Botan::System_RNG::System_RNG
      Src: /src/rnp/src/lib/crypto/rng.cpp:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: rnp::RNG::RNG
    functionSourceFile: /src/rnp/src/lib/crypto/rng.cpp
    functionUses: 0
    functionsReached:
    - botan_rng_init
    - Botan::AutoSeeded_RNG::AutoSeeded_RNG
    - rnp::rnp_exception::rnp_exception
    - reset
    - Botan::System_RNG::System_RNG
    linkageType: ''
    returnType: void
    signature: void RNG::RNG(Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_rng_destroy
      Src: /src/rnp/src/lib/crypto/rng.cpp: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: RNG::~RNG()
    functionSourceFile: /src/rnp/src/lib/crypto/rng.cpp
    functionUses: 0
    functionsReached:
    - botan_rng_destroy
    linkageType: ''
    returnType: void
    signature: void RNG::~RNG()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: botan_rng_get
      Src: /src/rnp/src/lib/crypto/rng.cpp:55,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/rng.cpp:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: rnp::RNG::get
    functionSourceFile: /src/rnp/src/lib/crypto/rng.cpp
    functionUses: 1
    functionsReached:
    - botan_rng_get
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void RNG::get(uint8_t *data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: rnp::RNG::handle
    functionSourceFile: /src/rnp/src/lib/crypto/rng.cpp
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: struct botan_rng_struct
    signature: 'struct botan_rng_struct *

      RNG::handle()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::RNG::get
      Src: /src/rnp/src/lib/crypto/rng.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: rnp::RNG::obj
    functionSourceFile: /src/rnp/src/lib/crypto/rng.cpp
    functionUses: 0
    functionsReached:
    - rnp::RNG::get
    linkageType: ''
    returnType: Botan::RandomNumberGenerator
    signature: 'Botan::RandomNumberGenerator *

      RNG::obj() const'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: botan_rng_init
      Src: /src/rnp/src/lib/crypto/rng.cpp:35,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/rng.cpp:36,1
    - Dst: reset
      Src: /src/rnp/src/lib/crypto/rng.cpp:40,1
    - Dst: Botan::AutoSeeded_RNG::AutoSeeded_RNG
      Src: /src/rnp/src/lib/crypto/rng.cpp:40,1
    - Dst: reset
      Src: /src/rnp/src/lib/crypto/rng.cpp:42,1
    - Dst: Botan::System_RNG::System_RNG
      Src: /src/rnp/src/lib/crypto/rng.cpp:42,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 9
    argCount: 1
    argNames:
    - type
    argTypes:
    - Type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 33
    functionDepth: 1
    functionLinenumber: 33
    functionLinenumberEnd: 45
    functionName: rnp::RNG::RNG
    functionSourceFile: /src/rnp/src/lib/crypto/rng.cpp
    functionUses: 0
    functionsReached:
    - botan_rng_init
    - Botan::AutoSeeded_RNG::AutoSeeded_RNG
    - rnp::rnp_exception::rnp_exception
    - reset
    - Botan::System_RNG::System_RNG
    linkageType: ''
    returnType: void
    signature: void RNG::RNG(Type type)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: botan_rng_destroy
      Src: /src/rnp/src/lib/crypto/rng.cpp: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: RNG::~RNG()
    functionSourceFile: /src/rnp/src/lib/crypto/rng.cpp
    functionUses: 0
    functionsReached:
    - botan_rng_destroy
    linkageType: ''
    returnType: void
    signature: void RNG::~RNG()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: botan_rng_get
      Src: /src/rnp/src/lib/crypto/rng.cpp:55,1
    - Dst: rnp::rnp_exception::rnp_exception
      Src: /src/rnp/src/lib/crypto/rng.cpp:57,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 4
    argCount: 2
    argNames:
    - data
    - len
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 52
    functionDepth: 1
    functionLinenumber: 52
    functionLinenumberEnd: 59
    functionName: rnp::RNG::get
    functionSourceFile: /src/rnp/src/lib/crypto/rng.cpp
    functionUses: 2
    functionsReached:
    - botan_rng_get
    - rnp::rnp_exception::rnp_exception
    linkageType: ''
    returnType: void
    signature: void RNG::get(uint8_t *data, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 65
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 65
    functionName: rnp::RNG::handle
    functionSourceFile: /src/rnp/src/lib/crypto/rng.cpp
    functionUses: 49
    functionsReached: []
    linkageType: ''
    returnType: struct botan_rng_struct
    signature: 'struct botan_rng_struct *

      RNG::handle()'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::RNG::get
      Src: /src/rnp/src/lib/crypto/rng.cpp:71,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 72
    functionName: rnp::RNG::obj
    functionSourceFile: /src/rnp/src/lib/crypto/rng.cpp
    functionUses: 0
    functionsReached:
    - rnp::RNG::get
    linkageType: ''
    returnType: Botan::RandomNumberGenerator
    signature: 'Botan::RandomNumberGenerator *

      RNG::obj() const'
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mode
    argTypes:
    - dilithium_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: rnp_dilithium_param_to_botan_dimension
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Botan::DilithiumMode
    signature: Botan::DilithiumMode rnp_dilithium_param_to_botan_dimension(dilithium_parameter_e
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_PublicKey
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:51,1
    - Dst: rnp_dilithium_param_to_botan_dimension
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key_encoded
    - param
    argTypes:
    - std::vector<uint8_t>
    - dilithium_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: dilithium_pubkey_from_bytes
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium.cpp
    functionUses: 0
    functionsReached:
    - rnp_dilithium_param_to_botan_dimension
    - Botan::Dilithium_PublicKey
    linkageType: ''
    returnType: Botan::Dilithium_PublicKey
    signature: "Botan::Dilithium_PublicKey dilithium_pubkey_from_bytes(const std::vector<uint8_t>
      &key_encoded,\n                            dilithium_parameter_e       param)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_PrivateKey
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:61,1
    - Dst: rnp_dilithium_param_to_botan_dimension
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key_data
    - key_size
    - param
    argTypes:
    - uint8_t*
    - size_t
    - dilithium_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: dilithium_privkey_from_bytes
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan::Dilithium_PrivateKey
    - rnp_dilithium_param_to_botan_dimension
    linkageType: ''
    returnType: Botan::Dilithium_PrivateKey
    signature: "Botan::Dilithium_PrivateKey dilithium_privkey_from_bytes(const uint8_t
      *       key_data,\n                             size_t                key_size,\n
      \                            dilithium_parameter_e param)"
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - mode
    argTypes:
    - dilithium_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 45
      start: 37
    functionDepth: 0
    functionLinenumber: 37
    functionLinenumberEnd: 45
    functionName: rnp_dilithium_param_to_botan_dimension
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium.cpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: Botan::DilithiumMode
    signature: Botan::DilithiumMode rnp_dilithium_param_to_botan_dimension(dilithium_parameter_e
      mode)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_PublicKey
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:51,1
    - Dst: rnp_dilithium_param_to_botan_dimension
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:52,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - key_encoded
    - param
    argTypes:
    - std::vector<uint8_t>
    - dilithium_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 47
    functionDepth: 1
    functionLinenumber: 47
    functionLinenumberEnd: 53
    functionName: dilithium_pubkey_from_bytes
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium.cpp
    functionUses: 0
    functionsReached:
    - rnp_dilithium_param_to_botan_dimension
    - Botan::Dilithium_PublicKey
    linkageType: ''
    returnType: Botan::Dilithium_PublicKey
    signature: "Botan::Dilithium_PublicKey dilithium_pubkey_from_bytes(const std::vector<uint8_t>
      &key_encoded,\n                            dilithium_parameter_e       param)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Botan::Dilithium_PrivateKey
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:61,1
    - Dst: rnp_dilithium_param_to_botan_dimension
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:61,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - key_data
    - key_size
    - param
    argTypes:
    - uint8_t*
    - size_t
    - dilithium_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 62
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 62
    functionName: dilithium_privkey_from_bytes
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium.cpp
    functionUses: 0
    functionsReached:
    - Botan::Dilithium_PrivateKey
    - rnp_dilithium_param_to_botan_dimension
    linkageType: ''
    returnType: Botan::Dilithium_PrivateKey
    signature: "Botan::Dilithium_PrivateKey dilithium_privkey_from_bytes(const uint8_t
      *       key_data,\n                             size_t                key_size,\n
      \                            dilithium_parameter_e param)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:69,1
    - Dst: dilithium_privkey_from_bytes
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:71,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:71,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:71,1
    - Dst: Botan::PK_Signer
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:73,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:73,1
    - Dst: auto::sign_message
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:74,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:74,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 3
    argNames:
    - rng
    - msg
    - msg_len
    argTypes:
    - rnp::RNG*
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (is_initialized_)
      pos:
        line_end: 68
        line_start: 68
        source_file: /src/rnp/src/lib/crypto/dilithium.cpp
    constantsTouched: []
    func_position:
      end: 77
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 77
    functionName: pgp_dilithium_private_key_t::sign
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium.cpp
    functionUses: 0
    functionsReached:
    - data
    - auto::sign_message
    - Botan::PK_Signer
    - dilithium_privkey_from_bytes
    - assert
    - size
    - rnp::RNG*::obj
    linkageType: ''
    returnType: std::vector<uint8_t>
    signature: std::vector<uint8_t> pgp_dilithium_private_key_t::sign(rnp::RNG *rng,
      const uint8_t *msg, size_t msg_len) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:85,1
    - Dst: dilithium_pubkey_from_bytes
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:86,1
    - Dst: Botan::PK_Verifier
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:88,1
    - Dst: auto::verify_message
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 4
    argNames:
    - msg
    - msg_len
    - signature
    - signature_len
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts:
    - condition: (is_initialized_)
      pos:
        line_end: 84
        line_start: 84
        source_file: /src/rnp/src/lib/crypto/dilithium.cpp
    constantsTouched: []
    func_position:
      end: 90
      start: 79
    functionDepth: 2
    functionLinenumber: 79
    functionLinenumberEnd: 90
    functionName: pgp_dilithium_public_key_t::verify_signature
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium.cpp
    functionUses: 0
    functionsReached:
    - dilithium_pubkey_from_bytes
    - assert
    - auto::verify_message
    - Botan::PK_Verifier
    linkageType: ''
    returnType: bool
    signature: "bool pgp_dilithium_public_key_t::verify_signature(const uint8_t *msg,\n
      \                                            size_t         msg_len,\n                                             const
      uint8_t *signature,\n                                             size_t         signature_len)
      const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:96,1
    - Dst: rnp_dilithium_param_to_botan_dimension
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:96,1
    - Dst: Botan::Dilithium_PrivateKey::public_key
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:98,1
    - Dst: Botan::Dilithium_PrivateKey::private_key_bits
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:99,1
    - Dst: std::make_pair
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:100,1
    - Dst: pgp_dilithium_public_key_t
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:101,1
    - Dst: std::unique_ptr::public_key_bits
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:101,1
    - Dst: pgp_dilithium_private_key_t
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:102,1
    - Dst: Botan::secure_vector::data
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:102,1
    - Dst: Botan::secure_vector::size
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:102,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - rng
    - dilithium_param
    argTypes:
    - rnp::RNG*
    - dilithium_parameter_e
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 103
      start: 92
    functionDepth: 1
    functionLinenumber: 92
    functionLinenumberEnd: 103
    functionName: dilithium_generate_keypair
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium.cpp
    functionUses: 2
    functionsReached:
    - Botan::Dilithium_PrivateKey::private_key_bits
    - rnp_dilithium_param_to_botan_dimension
    - pgp_dilithium_public_key_t
    - pgp_dilithium_private_key_t
    - std::make_pair
    - Botan::secure_vector::data
    - Botan::Dilithium_PrivateKey::public_key
    - Botan::secure_vector::size
    - std::unique_ptr::public_key_bits
    - rnp::RNG*::obj
    linkageType: ''
    returnType: std::pair<pgp_dilithium_public_key_t, pgp_dilithium_private_key_t>
    signature: std::pair<pgp_dilithium_public_key_t, pgp_dilithium_private_key_t>
      dilithium_generate_keypair(rnp::RNG *rng, dilithium_parameter_e dilithium_param)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dilithium_pubkey_from_bytes
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:112,1
    - Dst: auto::check_key
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:113,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:113,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 114
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 114
    functionName: pgp_dilithium_public_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium.cpp
    functionUses: 0
    functionsReached:
    - dilithium_pubkey_from_bytes
    - auto::check_key
    - rnp::RNG*::obj
    linkageType: ''
    returnType: bool
    signature: bool pgp_dilithium_public_key_t::is_valid(rnp::RNG *rng) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: dilithium_privkey_from_bytes
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:124,1
    - Dst: data
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:124,1
    - Dst: size
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:124,1
    - Dst: auto::check_key
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:125,1
    - Dst: rnp::RNG*::obj
      Src: /src/rnp/src/lib/crypto/dilithium.cpp:125,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rng
    argTypes:
    - rnp::RNG*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 116
    functionDepth: 2
    functionLinenumber: 116
    functionLinenumberEnd: 126
    functionName: pgp_dilithium_private_key_t::is_valid
    functionSourceFile: /src/rnp/src/lib/crypto/dilithium.cpp
    functionUses: 0
    functionsReached:
    - data
    - dilithium_privkey_from_bytes
    - auto::check_key
    - size
    - rnp::RNG*::obj
    linkageType: ''
    returnType: bool
    signature: bool pgp_dilithium_private_key_t::is_valid(rnp::RNG *rng) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/elgamal.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: pgp::eg::Key::clear_secret
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.h
    functionUses: 0
    functionsReached:
    - forget
    linkageType: ''
    returnType: void
    signature: void clear_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_secret
      Src: /src/rnp/src/lib/crypto/elgamal.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: ~Key()
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.h
    functionUses: 0
    functionsReached:
    - clear_secret
    linkageType: ''
    returnType: void
    signature: void ~Key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/elgamal.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: pgp::eg::Key::clear_secret
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.h
    functionUses: 0
    functionsReached:
    - forget
    linkageType: ''
    returnType: void
    signature: void clear_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_secret
      Src: /src/rnp/src/lib/crypto/elgamal.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: ~Key()
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.h
    functionUses: 0
    functionsReached:
    - clear_secret
    linkageType: ''
    returnType: void
    signature: void ~Key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/elgamal.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: pgp::eg::Key::clear_secret
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.h
    functionUses: 0
    functionsReached:
    - forget
    linkageType: ''
    returnType: void
    signature: void clear_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_secret
      Src: /src/rnp/src/lib/crypto/elgamal.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: ~Key()
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.h
    functionUses: 0
    functionsReached:
    - clear_secret
    linkageType: ''
    returnType: void
    signature: void ~Key()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: forget
      Src: /src/rnp/src/lib/crypto/elgamal.h:63,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 64
      start: 60
    functionDepth: 0
    functionLinenumber: 60
    functionLinenumberEnd: 64
    functionName: pgp::eg::Key::clear_secret
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.h
    functionUses: 0
    functionsReached:
    - forget
    linkageType: ''
    returnType: void
    signature: void clear_secret()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear_secret
      Src: /src/rnp/src/lib/crypto/elgamal.h:68,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 66
    functionDepth: 2
    functionLinenumber: 66
    functionLinenumberEnd: 69
    functionName: ~Key()
    functionSourceFile: /src/rnp/src/lib/crypto/elgamal.h
    functionUses: 0
    functionsReached:
    - clear_secret
    linkageType: ''
    returnType: void
    signature: void ~Key()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hash_alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: rnp::Hkdf_OpenSSL::Hkdf_OpenSSL
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hkdf_OpenSSL::Hkdf_OpenSSL(pgp_hash_alg_t hash_alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Hkdf_OpenSSL>
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:47,1
    - Dst: Hkdf_OpenSSL::Hkdf_OpenSSL
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: rnp::Hkdf_OpenSSL::create
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf_ossl.cpp
    functionUses: 2
    functionsReached:
    - Hkdf_OpenSSL::Hkdf_OpenSSL
    - std::unique_ptr<Hkdf_OpenSSL>
    linkageType: ''
    returnType: std::unique_ptr<Hkdf_OpenSSL>
    signature: std::unique_ptr<Hkdf_OpenSSL> Hkdf_OpenSSL::create(pgp_hash_alg_t alg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KDF_fetch
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:60,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:62,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:63,1
    - Dst: EVP_KDF_CTX_new
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:65,1
    - Dst: EVP_KDF_free
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:66,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:68,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:69,1
    - Dst: rnp::Hash_OpenSSL::name_backend
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:72,1
    - Dst: rnp::Hkdf::alg
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:72,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:75,1
    - Dst: const_cast<char *>
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:76,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:77,1
    - Dst: const_cast<uint8_t *>
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:78,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:80,1
    - Dst: const_cast<uint8_t *>
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:81,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:84,1
    - Dst: const_cast<uint8_t *>
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:85,1
    - Dst: EVP_KDF_derive
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:89,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:90,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:92,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:93,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 8
    argNames:
    - salt
    - salt_len
    - ikm
    - ikm_len
    - info
    - info_len
    - output_buf
    - output_length
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 95
    functionName: rnp::Hkdf_OpenSSL::extract_expand
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_KDF_derive
    - EVP_KDF_CTX_new
    - const_cast<uint8_t *>
    - EVP_KDF_CTX_free
    - OSSL_PARAM_construct_octet_string
    - EVP_KDF_fetch
    - rnp::Hash_OpenSSL::name_backend
    - rnp::Hkdf::alg
    - OSSL_PARAM_construct_utf8_string
    - const_cast<char *>
    - rnp_exception
    - EVP_KDF_free
    linkageType: ''
    returnType: void
    signature: "void Hkdf_OpenSSL::extract_expand(const uint8_t *salt,\n                             size_t
      \        salt_len,\n                             const uint8_t *ikm,\n                             size_t
      \        ikm_len,\n                             const uint8_t *info,\n                             size_t
      \        info_len,\n                             uint8_t *      output_buf,\n
      \                            size_t         output_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: Hkdf_OpenSSL::~Hkdf_OpenSSL()
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hkdf_OpenSSL::~Hkdf_OpenSSL()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - hash_alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 42
      start: 40
    functionDepth: 0
    functionLinenumber: 40
    functionLinenumberEnd: 42
    functionName: rnp::Hkdf_OpenSSL::Hkdf_OpenSSL
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hkdf_OpenSSL::Hkdf_OpenSSL(pgp_hash_alg_t hash_alg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::unique_ptr<Hkdf_OpenSSL>
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:47,1
    - Dst: Hkdf_OpenSSL::Hkdf_OpenSSL
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:47,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - alg
    argTypes:
    - pgp_hash_alg_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 48
      start: 44
    functionDepth: 0
    functionLinenumber: 44
    functionLinenumberEnd: 48
    functionName: rnp::Hkdf_OpenSSL::create
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf_ossl.cpp
    functionUses: 2
    functionsReached:
    - Hkdf_OpenSSL::Hkdf_OpenSSL
    - std::unique_ptr<Hkdf_OpenSSL>
    linkageType: ''
    returnType: std::unique_ptr<Hkdf_OpenSSL>
    signature: std::unique_ptr<Hkdf_OpenSSL> Hkdf_OpenSSL::create(pgp_hash_alg_t alg)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: EVP_KDF_fetch
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:60,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:62,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:63,1
    - Dst: EVP_KDF_CTX_new
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:65,1
    - Dst: EVP_KDF_free
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:66,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:68,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:69,1
    - Dst: rnp::Hash_OpenSSL::name_backend
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:72,1
    - Dst: rnp::Hkdf::alg
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:72,1
    - Dst: OSSL_PARAM_construct_utf8_string
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:75,1
    - Dst: const_cast<char *>
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:76,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:77,1
    - Dst: const_cast<uint8_t *>
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:78,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:80,1
    - Dst: const_cast<uint8_t *>
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:81,1
    - Dst: OSSL_PARAM_construct_octet_string
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:84,1
    - Dst: const_cast<uint8_t *>
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:85,1
    - Dst: EVP_KDF_derive
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:89,1
    - Dst: EVP_KDF_CTX_free
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:90,1
    - Dst: RNP_LOG
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:92,1
    - Dst: rnp_exception
      Src: /src/rnp/src/lib/crypto/hkdf_ossl.cpp:93,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 24
    argCount: 8
    argNames:
    - salt
    - salt_len
    - ikm
    - ikm_len
    - info
    - info_len
    - output_buf
    - output_length
    argTypes:
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 95
      start: 50
    functionDepth: 2
    functionLinenumber: 50
    functionLinenumberEnd: 95
    functionName: rnp::Hkdf_OpenSSL::extract_expand
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf_ossl.cpp
    functionUses: 0
    functionsReached:
    - RNP_LOG
    - EVP_KDF_derive
    - EVP_KDF_CTX_new
    - const_cast<uint8_t *>
    - EVP_KDF_CTX_free
    - OSSL_PARAM_construct_octet_string
    - EVP_KDF_fetch
    - rnp::Hash_OpenSSL::name_backend
    - rnp::Hkdf::alg
    - OSSL_PARAM_construct_utf8_string
    - const_cast<char *>
    - rnp_exception
    - EVP_KDF_free
    linkageType: ''
    returnType: void
    signature: "void Hkdf_OpenSSL::extract_expand(const uint8_t *salt,\n                             size_t
      \        salt_len,\n                             const uint8_t *ikm,\n                             size_t
      \        ikm_len,\n                             const uint8_t *info,\n                             size_t
      \        info_len,\n                             uint8_t *      output_buf,\n
      \                            size_t         output_length)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 99
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 99
    functionName: Hkdf_OpenSSL::~Hkdf_OpenSSL()
    functionSourceFile: /src/rnp/src/lib/crypto/hkdf_ossl.cpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void Hkdf_OpenSSL::~Hkdf_OpenSSL()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:46,1
    - Dst: botan_pubkey_load_ed25519
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:49,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - pubkey
    - keydata
    argTypes:
    - rnp::botan::Pubkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: pgp::eddsa::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 0
    functionsReached:
    - rnp::botan::Pubkey::get
    - botan_pubkey_load_ed25519
    - ec::Key::p::size
    linkageType: ''
    returnType: bool
    signature: bool load_public_key(rnp::botan::Pubkey &pubkey, const ec::Key &keydata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::x::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:61,1
    - Dst: ec::Key::x::copy
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:66,1
    - Dst: botan_privkey_load_ed25519
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:67,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - seckey
    - keydata
    argTypes:
    - rnp::botan::Privkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 72
    functionName: pgp::eddsa::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 0
    functionsReached:
    - rnp::botan::Privkey::get
    - botan_privkey_load_ed25519
    - ec::Key::x::copy
    - ec::Key::x::size
    linkageType: ''
    returnType: bool
    signature: bool load_secret_key(rnp::botan::Privkey &seckey, const ec::Key &keydata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:77,1
    - Dst: pgp::eddsa::load_public_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:78,1
    - Dst: botan_pubkey_check_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:78,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:78,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:78,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:86,1
    - Dst: pgp::eddsa::load_secret_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:87,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:88,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:88,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:88,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 92
    functionName: pgp::eddsa::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 2
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::get
    - pgp::eddsa::load_public_key
    - rnp::RNG::handle
    - pgp::eddsa::load_secret_key
    - botan_privkey_check_key
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - botan_pubkey_check_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:97,1
    - Dst: botan_privkey_create
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:98,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:98,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:98,1
    - Dst: botan_privkey_ed25519_get_privkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:103,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:103,1
    - Dst: ec::Key::x::assign
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:109,1
    - Dst: ec::Key::p::assign
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - rng
    - key
    argTypes:
    - rnp::RNG
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 115
    functionName: pgp::eddsa::generate
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 2
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - rnp::RNG::handle
    - rnp::botan::Privkey::get
    - ec::Key::x::assign
    - ec::Key::p::assign
    - botan_privkey_ed25519_get_privkey
    - botan_privkey_create
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t generate(rnp::RNG &rng, ec::Key &key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ec::Signature::r::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:121,1
    - Dst: ec::Signature::s::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:121,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:125,1
    - Dst: pgp::eddsa::load_public_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:126,1
    - Dst: rnp::botan::op::Verify::Verify
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:130,1
    - Dst: botan_pk_op_verify_create
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:131,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:131,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:131,1
    - Dst: botan_pk_op_verify_update
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:132,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:132,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:132,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:132,1
    - Dst: ec::Signature::r::copy
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:137,1
    - Dst: ec::Signature::r::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:137,1
    - Dst: ec::Signature::s::copy
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:138,1
    - Dst: ec::Signature::s::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:138,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:140,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:140,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - sig
    - hash
    - key
    argTypes:
    - ec::Signature
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 144
    functionName: pgp::eddsa::verify
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 2
    functionsReached:
    - rnp::botan::op::Verify::Verify
    - ec::Signature::r::copy
    - rnp::secure_bytes::size
    - rnp::botan::Pubkey::get
    - pgp::eddsa::load_public_key
    - botan_pk_op_verify_update
    - botan_pk_op_verify_finish
    - rnp::botan::Pubkey::Pubkey
    - ec::Signature::r::size
    - ec::Signature::s::size
    - botan_pk_op_verify_create
    - rnp::secure_bytes::data
    - ec::Signature::s::copy
    - rnp::botan::op::Verify::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t verify(const ec::Signature &sig, const rnp::secure_bytes
      &hash, const ec::Key &key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:149,1
    - Dst: pgp::eddsa::load_secret_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:150,1
    - Dst: rnp::botan::op::Sign::Sign
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:154,1
    - Dst: botan_pk_op_sign_create
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:155,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:155,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:155,1
    - Dst: botan_pk_op_sign_update
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:156,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:156,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:156,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:156,1
    - Dst: botan_pk_op_sign_finish
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:162,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:162,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:162,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:166,1
    - Dst: ec::Signature::r::assign
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:167,1
    - Dst: ec::Signature::s::assign
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - rng
    - sig
    - hash
    - key
    argTypes:
    - rnp::RNG
    - ec::Signature
    - rnp::secure_bytes
    - ec::Key
    assertStmts:
    - condition: (sig_size == 64)
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/rnp/src/lib/crypto/eddsa.cpp
    constantsTouched: []
    func_position:
      end: 170
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 170
    functionName: pgp::eddsa::sign
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 2
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - ec::Signature::s::assign
    - rnp::secure_bytes::size
    - pgp::eddsa::load_secret_key
    - rnp::RNG::handle
    - botan_pk_op_sign_create
    - rnp::botan::Privkey::get
    - rnp::botan::op::Sign::get
    - assert
    - botan_pk_op_sign_finish
    - rnp::botan::op::Sign::Sign
    - botan_pk_op_sign_update
    - ec::Signature::r::assign
    - rnp::secure_bytes::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t sign(rnp::RNG &rng, ec::Signature &sig, const rnp::secure_bytes
      &hash, const ec::Key &key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:46,1
    - Dst: botan_pubkey_load_ed25519
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:49,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - pubkey
    - keydata
    argTypes:
    - rnp::botan::Pubkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: pgp::eddsa::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 2
    functionsReached:
    - rnp::botan::Pubkey::get
    - botan_pubkey_load_ed25519
    - ec::Key::p::size
    linkageType: ''
    returnType: bool
    signature: bool load_public_key(rnp::botan::Pubkey &pubkey, const ec::Key &keydata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::x::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:61,1
    - Dst: ec::Key::x::copy
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:66,1
    - Dst: botan_privkey_load_ed25519
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:67,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - seckey
    - keydata
    argTypes:
    - rnp::botan::Privkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 72
    functionName: pgp::eddsa::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 2
    functionsReached:
    - rnp::botan::Privkey::get
    - botan_privkey_load_ed25519
    - ec::Key::x::copy
    - ec::Key::x::size
    linkageType: ''
    returnType: bool
    signature: bool load_secret_key(rnp::botan::Privkey &seckey, const ec::Key &keydata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:77,1
    - Dst: pgp::eddsa::load_public_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:78,1
    - Dst: botan_pubkey_check_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:78,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:78,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:78,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:86,1
    - Dst: pgp::eddsa::load_secret_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:87,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:88,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:88,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:88,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 92
    functionName: pgp::eddsa::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 2
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::get
    - pgp::eddsa::load_public_key
    - rnp::RNG::handle
    - pgp::eddsa::load_secret_key
    - botan_privkey_check_key
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - botan_pubkey_check_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:97,1
    - Dst: botan_privkey_create
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:98,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:98,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:98,1
    - Dst: botan_privkey_ed25519_get_privkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:103,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:103,1
    - Dst: ec::Key::x::assign
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:109,1
    - Dst: ec::Key::p::assign
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - rng
    - key
    argTypes:
    - rnp::RNG
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 115
    functionName: pgp::eddsa::generate
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 2
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - rnp::RNG::handle
    - rnp::botan::Privkey::get
    - ec::Key::x::assign
    - ec::Key::p::assign
    - botan_privkey_ed25519_get_privkey
    - botan_privkey_create
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t generate(rnp::RNG &rng, ec::Key &key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ec::Signature::r::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:121,1
    - Dst: ec::Signature::s::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:121,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:125,1
    - Dst: pgp::eddsa::load_public_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:126,1
    - Dst: rnp::botan::op::Verify::Verify
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:130,1
    - Dst: botan_pk_op_verify_create
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:131,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:131,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:131,1
    - Dst: botan_pk_op_verify_update
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:132,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:132,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:132,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:132,1
    - Dst: ec::Signature::r::copy
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:137,1
    - Dst: ec::Signature::r::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:137,1
    - Dst: ec::Signature::s::copy
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:138,1
    - Dst: ec::Signature::s::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:138,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:140,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:140,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - sig
    - hash
    - key
    argTypes:
    - ec::Signature
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 144
    functionName: pgp::eddsa::verify
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 2
    functionsReached:
    - rnp::botan::op::Verify::Verify
    - ec::Signature::r::copy
    - rnp::secure_bytes::size
    - rnp::botan::Pubkey::get
    - pgp::eddsa::load_public_key
    - botan_pk_op_verify_update
    - botan_pk_op_verify_finish
    - rnp::botan::Pubkey::Pubkey
    - ec::Signature::r::size
    - ec::Signature::s::size
    - botan_pk_op_verify_create
    - rnp::secure_bytes::data
    - ec::Signature::s::copy
    - rnp::botan::op::Verify::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t verify(const ec::Signature &sig, const rnp::secure_bytes
      &hash, const ec::Key &key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:149,1
    - Dst: pgp::eddsa::load_secret_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:150,1
    - Dst: rnp::botan::op::Sign::Sign
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:154,1
    - Dst: botan_pk_op_sign_create
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:155,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:155,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:155,1
    - Dst: botan_pk_op_sign_update
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:156,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:156,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:156,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:156,1
    - Dst: botan_pk_op_sign_finish
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:162,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:162,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:162,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:166,1
    - Dst: ec::Signature::r::assign
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:167,1
    - Dst: ec::Signature::s::assign
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - rng
    - sig
    - hash
    - key
    argTypes:
    - rnp::RNG
    - ec::Signature
    - rnp::secure_bytes
    - ec::Key
    assertStmts:
    - condition: (sig_size == 64)
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/rnp/src/lib/crypto/eddsa.cpp
    constantsTouched: []
    func_position:
      end: 170
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 170
    functionName: pgp::eddsa::sign
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 2
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - ec::Signature::s::assign
    - rnp::secure_bytes::size
    - pgp::eddsa::load_secret_key
    - rnp::RNG::handle
    - botan_pk_op_sign_create
    - rnp::botan::Privkey::get
    - rnp::botan::op::Sign::get
    - assert
    - botan_pk_op_sign_finish
    - rnp::botan::op::Sign::Sign
    - botan_pk_op_sign_update
    - ec::Signature::r::assign
    - rnp::secure_bytes::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t sign(rnp::RNG &rng, ec::Signature &sig, const rnp::secure_bytes
      &hash, const ec::Key &key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:46,1
    - Dst: botan_pubkey_load_ed25519
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:49,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - pubkey
    - keydata
    argTypes:
    - rnp::botan::Pubkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: pgp::eddsa::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 4
    functionsReached:
    - rnp::botan::Pubkey::get
    - botan_pubkey_load_ed25519
    - ec::Key::p::size
    linkageType: ''
    returnType: bool
    signature: bool load_public_key(rnp::botan::Pubkey &pubkey, const ec::Key &keydata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::x::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:61,1
    - Dst: ec::Key::x::copy
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:66,1
    - Dst: botan_privkey_load_ed25519
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:67,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - seckey
    - keydata
    argTypes:
    - rnp::botan::Privkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 72
    functionName: pgp::eddsa::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 4
    functionsReached:
    - rnp::botan::Privkey::get
    - botan_privkey_load_ed25519
    - ec::Key::x::copy
    - ec::Key::x::size
    linkageType: ''
    returnType: bool
    signature: bool load_secret_key(rnp::botan::Privkey &seckey, const ec::Key &keydata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:77,1
    - Dst: pgp::eddsa::load_public_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:78,1
    - Dst: botan_pubkey_check_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:78,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:78,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:78,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:86,1
    - Dst: pgp::eddsa::load_secret_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:87,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:88,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:88,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:88,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 92
    functionName: pgp::eddsa::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 2
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::get
    - pgp::eddsa::load_public_key
    - rnp::RNG::handle
    - pgp::eddsa::load_secret_key
    - botan_privkey_check_key
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - botan_pubkey_check_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:97,1
    - Dst: botan_privkey_create
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:98,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:98,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:98,1
    - Dst: botan_privkey_ed25519_get_privkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:103,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:103,1
    - Dst: ec::Key::x::assign
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:109,1
    - Dst: ec::Key::p::assign
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - rng
    - key
    argTypes:
    - rnp::RNG
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 115
    functionName: pgp::eddsa::generate
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 2
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - rnp::RNG::handle
    - rnp::botan::Privkey::get
    - ec::Key::x::assign
    - ec::Key::p::assign
    - botan_privkey_ed25519_get_privkey
    - botan_privkey_create
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t generate(rnp::RNG &rng, ec::Key &key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ec::Signature::r::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:121,1
    - Dst: ec::Signature::s::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:121,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:125,1
    - Dst: pgp::eddsa::load_public_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:126,1
    - Dst: rnp::botan::op::Verify::Verify
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:130,1
    - Dst: botan_pk_op_verify_create
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:131,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:131,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:131,1
    - Dst: botan_pk_op_verify_update
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:132,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:132,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:132,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:132,1
    - Dst: ec::Signature::r::copy
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:137,1
    - Dst: ec::Signature::r::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:137,1
    - Dst: ec::Signature::s::copy
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:138,1
    - Dst: ec::Signature::s::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:138,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:140,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:140,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - sig
    - hash
    - key
    argTypes:
    - ec::Signature
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 144
    functionName: pgp::eddsa::verify
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 2
    functionsReached:
    - rnp::botan::op::Verify::Verify
    - ec::Signature::r::copy
    - rnp::secure_bytes::size
    - rnp::botan::Pubkey::get
    - pgp::eddsa::load_public_key
    - botan_pk_op_verify_update
    - botan_pk_op_verify_finish
    - rnp::botan::Pubkey::Pubkey
    - ec::Signature::r::size
    - ec::Signature::s::size
    - botan_pk_op_verify_create
    - rnp::secure_bytes::data
    - ec::Signature::s::copy
    - rnp::botan::op::Verify::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t verify(const ec::Signature &sig, const rnp::secure_bytes
      &hash, const ec::Key &key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:149,1
    - Dst: pgp::eddsa::load_secret_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:150,1
    - Dst: rnp::botan::op::Sign::Sign
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:154,1
    - Dst: botan_pk_op_sign_create
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:155,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:155,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:155,1
    - Dst: botan_pk_op_sign_update
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:156,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:156,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:156,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:156,1
    - Dst: botan_pk_op_sign_finish
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:162,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:162,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:162,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:166,1
    - Dst: ec::Signature::r::assign
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:167,1
    - Dst: ec::Signature::s::assign
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - rng
    - sig
    - hash
    - key
    argTypes:
    - rnp::RNG
    - ec::Signature
    - rnp::secure_bytes
    - ec::Key
    assertStmts:
    - condition: (sig_size == 64)
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/rnp/src/lib/crypto/eddsa.cpp
    constantsTouched: []
    func_position:
      end: 170
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 170
    functionName: pgp::eddsa::sign
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 2
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - ec::Signature::s::assign
    - rnp::secure_bytes::size
    - pgp::eddsa::load_secret_key
    - rnp::RNG::handle
    - botan_pk_op_sign_create
    - rnp::botan::Privkey::get
    - rnp::botan::op::Sign::get
    - assert
    - botan_pk_op_sign_finish
    - rnp::botan::op::Sign::Sign
    - botan_pk_op_sign_update
    - ec::Signature::r::assign
    - rnp::secure_bytes::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t sign(rnp::RNG &rng, ec::Signature &sig, const rnp::secure_bytes
      &hash, const ec::Key &key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::p::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:46,1
    - Dst: botan_pubkey_load_ed25519
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:49,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:49,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 2
    argNames:
    - pubkey
    - keydata
    argTypes:
    - rnp::botan::Pubkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 37
    functionDepth: 1
    functionLinenumber: 37
    functionLinenumberEnd: 53
    functionName: pgp::eddsa::load_public_key
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 6
    functionsReached:
    - rnp::botan::Pubkey::get
    - botan_pubkey_load_ed25519
    - ec::Key::p::size
    linkageType: ''
    returnType: bool
    signature: bool load_public_key(rnp::botan::Pubkey &pubkey, const ec::Key &keydata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: ec::Key::x::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:61,1
    - Dst: ec::Key::x::copy
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:66,1
    - Dst: botan_privkey_load_ed25519
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:67,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:67,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 2
    argNames:
    - seckey
    - keydata
    argTypes:
    - rnp::botan::Privkey
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 72
      start: 55
    functionDepth: 1
    functionLinenumber: 55
    functionLinenumberEnd: 72
    functionName: pgp::eddsa::load_secret_key
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 6
    functionsReached:
    - rnp::botan::Privkey::get
    - botan_privkey_load_ed25519
    - ec::Key::x::copy
    - ec::Key::x::size
    linkageType: ''
    returnType: bool
    signature: bool load_secret_key(rnp::botan::Privkey &seckey, const ec::Key &keydata)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:77,1
    - Dst: pgp::eddsa::load_public_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:78,1
    - Dst: botan_pubkey_check_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:78,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:78,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:78,1
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:86,1
    - Dst: pgp::eddsa::load_secret_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:87,1
    - Dst: botan_privkey_check_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:88,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:88,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:88,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 11
    argCount: 3
    argNames:
    - rng
    - key
    - secret
    argTypes:
    - rnp::RNG
    - ec::Key
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 92
      start: 74
    functionDepth: 1
    functionLinenumber: 74
    functionLinenumberEnd: 92
    functionName: pgp::eddsa::validate_key
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 2
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - rnp::botan::Pubkey::get
    - pgp::eddsa::load_public_key
    - rnp::RNG::handle
    - pgp::eddsa::load_secret_key
    - botan_privkey_check_key
    - rnp::botan::Privkey::get
    - rnp::botan::Pubkey::Pubkey
    - botan_pubkey_check_key
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t validate_key(rnp::RNG &rng, const ec::Key &key, bool secret)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:97,1
    - Dst: botan_privkey_create
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:98,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:98,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:98,1
    - Dst: botan_privkey_ed25519_get_privkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:103,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:103,1
    - Dst: ec::Key::x::assign
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:109,1
    - Dst: ec::Key::p::assign
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:112,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 2
    argNames:
    - rng
    - key
    argTypes:
    - rnp::RNG
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 115
      start: 94
    functionDepth: 1
    functionLinenumber: 94
    functionLinenumberEnd: 115
    functionName: pgp::eddsa::generate
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 2
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - rnp::RNG::handle
    - rnp::botan::Privkey::get
    - ec::Key::x::assign
    - ec::Key::p::assign
    - botan_privkey_ed25519_get_privkey
    - botan_privkey_create
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t generate(rnp::RNG &rng, ec::Key &key)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: ec::Signature::r::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:121,1
    - Dst: ec::Signature::s::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:121,1
    - Dst: rnp::botan::Pubkey::Pubkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:125,1
    - Dst: pgp::eddsa::load_public_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:126,1
    - Dst: rnp::botan::op::Verify::Verify
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:130,1
    - Dst: botan_pk_op_verify_create
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:131,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:131,1
    - Dst: rnp::botan::Pubkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:131,1
    - Dst: botan_pk_op_verify_update
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:132,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:132,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:132,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:132,1
    - Dst: ec::Signature::r::copy
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:137,1
    - Dst: ec::Signature::r::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:137,1
    - Dst: ec::Signature::s::copy
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:138,1
    - Dst: ec::Signature::s::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:138,1
    - Dst: botan_pk_op_verify_finish
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:140,1
    - Dst: rnp::botan::op::Verify::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:140,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 16
    argCount: 3
    argNames:
    - sig
    - hash
    - key
    argTypes:
    - ec::Signature
    - rnp::secure_bytes
    - ec::Key
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 117
    functionDepth: 1
    functionLinenumber: 117
    functionLinenumberEnd: 144
    functionName: pgp::eddsa::verify
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 2
    functionsReached:
    - rnp::botan::op::Verify::Verify
    - ec::Signature::r::copy
    - rnp::secure_bytes::size
    - rnp::botan::Pubkey::get
    - pgp::eddsa::load_public_key
    - botan_pk_op_verify_update
    - botan_pk_op_verify_finish
    - rnp::botan::Pubkey::Pubkey
    - ec::Signature::r::size
    - ec::Signature::s::size
    - botan_pk_op_verify_create
    - rnp::secure_bytes::data
    - ec::Signature::s::copy
    - rnp::botan::op::Verify::get
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t verify(const ec::Signature &sig, const rnp::secure_bytes
      &hash, const ec::Key &key)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: rnp::botan::Privkey::Privkey
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:149,1
    - Dst: pgp::eddsa::load_secret_key
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:150,1
    - Dst: rnp::botan::op::Sign::Sign
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:154,1
    - Dst: botan_pk_op_sign_create
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:155,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:155,1
    - Dst: rnp::botan::Privkey::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:155,1
    - Dst: botan_pk_op_sign_update
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:156,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:156,1
    - Dst: rnp::secure_bytes::data
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:156,1
    - Dst: rnp::secure_bytes::size
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:156,1
    - Dst: botan_pk_op_sign_finish
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:162,1
    - Dst: rnp::botan::op::Sign::get
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:162,1
    - Dst: rnp::RNG::handle
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:162,1
    - Dst: assert
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:166,1
    - Dst: ec::Signature::r::assign
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:167,1
    - Dst: ec::Signature::s::assign
      Src: /src/rnp/src/lib/crypto/eddsa.cpp:168,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 4
    argNames:
    - rng
    - sig
    - hash
    - key
    argTypes:
    - rnp::RNG
    - ec::Signature
    - rnp::secure_bytes
    - ec::Key
    assertStmts:
    - condition: (sig_size == 64)
      pos:
        line_end: 165
        line_start: 165
        source_file: /src/rnp/src/lib/crypto/eddsa.cpp
    constantsTouched: []
    func_position:
      end: 170
      start: 146
    functionDepth: 1
    functionLinenumber: 146
    functionLinenumberEnd: 170
    functionName: pgp::eddsa::sign
    functionSourceFile: /src/rnp/src/lib/crypto/eddsa.cpp
    functionUses: 2
    functionsReached:
    - rnp::botan::Privkey::Privkey
    - ec::Signature::s::assign
    - rnp::secure_bytes::size
    - pgp::eddsa::load_secret_key
    - rnp::RNG::handle
    - botan_pk_op_sign_create
    - rnp::botan::Privkey::get
    - rnp::botan::op::Sign::get
    - assert
    - botan_pk_op_sign_finish
    - rnp::botan::op::Sign::Sign
    - botan_pk_op_sign_update
    - ec::Signature::r::assign
    - rnp::secure_bytes::data
    linkageType: ''
    returnType: rnp_result_t
    signature: rnp_result_t sign(rnp::RNG &rng, ec::Signature &sig, const rnp::secure_bytes
      &hash, const ec::Key &key)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - _DVMASK
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 52
    functionDepth: 0
    functionLinenumber: 52
    functionLinenumberEnd: 53
    functionName: CHECK_DVMASK
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/ubc_check.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: CHECK_DVMASK(_DVMASK)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 135
      start: 134
    functionDepth: 0
    functionLinenumber: 134
    functionLinenumberEnd: 135
    functionName: rotate_right
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rotate_right(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - x
    - ','
    - n
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 136
      start: 135
    functionDepth: 0
    functionLinenumber: 135
    functionLinenumberEnd: 136
    functionName: rotate_left
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: rotate_left(x, n)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 142
      start: 137
    functionDepth: 0
    functionLinenumber: 137
    functionLinenumberEnd: 142
    functionName: sha1_bswap32
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sha1_bswap32(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - W
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 144
      start: 143
    functionDepth: 0
    functionLinenumber: 143
    functionLinenumberEnd: 144
    functionName: sha1_mix
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sha1_mix(W, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - m
    - ','
    - t
    - ','
    - temp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 150
      start: 146
    functionDepth: 0
    functionLinenumber: 146
    functionLinenumberEnd: 150
    functionName: sha1_load
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sha1_load(m, t, temp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - m
    - ','
    - t
    - ','
    - temp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 156
      start: 151
    functionDepth: 0
    functionLinenumber: 151
    functionLinenumberEnd: 156
    functionName: sha1_load
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sha1_load(m, t, temp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - W
    - ','
    - t
    - ','
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 158
    functionDepth: 0
    functionLinenumber: 158
    functionLinenumberEnd: 159
    functionName: sha1_store
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sha1_store(W, t, x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 161
      start: 160
    functionDepth: 0
    functionLinenumber: 160
    functionLinenumberEnd: 161
    functionName: sha1_f1
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sha1_f1(b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 161
    functionDepth: 0
    functionLinenumber: 161
    functionLinenumberEnd: 162
    functionName: sha1_f2
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sha1_f2(b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 162
    functionDepth: 0
    functionLinenumber: 162
    functionLinenumberEnd: 163
    functionName: sha1_f3
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sha1_f3(b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - b
    - ','
    - c
    - ','
    - d
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 164
      start: 163
    functionDepth: 0
    functionLinenumber: 163
    functionLinenumberEnd: 164
    functionName: sha1_f4
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: sha1_f4(b, c, d)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 170
      start: 165
    functionDepth: 0
    functionLinenumber: 165
    functionLinenumberEnd: 170
    functionName: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHCLASH_SHA1COMPRESS_ROUND1_STEP(a, b, c, d, e, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 175
      start: 170
    functionDepth: 0
    functionLinenumber: 170
    functionLinenumberEnd: 175
    functionName: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHCLASH_SHA1COMPRESS_ROUND2_STEP(a, b, c, d, e, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 180
      start: 175
    functionDepth: 0
    functionLinenumber: 175
    functionLinenumberEnd: 180
    functionName: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHCLASH_SHA1COMPRESS_ROUND3_STEP(a, b, c, d, e, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 185
      start: 180
    functionDepth: 0
    functionLinenumber: 180
    functionLinenumberEnd: 185
    functionName: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHCLASH_SHA1COMPRESS_ROUND4_STEP(a, b, c, d, e, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 191
      start: 186
    functionDepth: 0
    functionLinenumber: 186
    functionLinenumberEnd: 191
    functionName: HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW(a, b, c, d, e, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 196
      start: 191
    functionDepth: 0
    functionLinenumber: 191
    functionLinenumberEnd: 196
    functionName: HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW(a, b, c, d, e, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 201
      start: 196
    functionDepth: 0
    functionLinenumber: 196
    functionLinenumberEnd: 201
    functionName: HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW(a, b, c, d, e, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - m
    - ','
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 206
      start: 201
    functionDepth: 0
    functionLinenumber: 201
    functionLinenumberEnd: 206
    functionName: HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW(a, b, c, d, e, m, t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - m
    - ','
    - W
    - ','
    - t
    - ','
    - temp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 214
      start: 207
    functionDepth: 0
    functionLinenumber: 207
    functionLinenumberEnd: 214
    functionName: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD(a, b, c, d, e, m, W, t, temp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - W
    - ','
    - t
    - ','
    - temp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 222
      start: 215
    functionDepth: 0
    functionLinenumber: 215
    functionLinenumberEnd: 222
    functionName: SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND(a, b, c, d, e, W, t, temp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - W
    - ','
    - t
    - ','
    - temp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 230
      start: 223
    functionDepth: 0
    functionLinenumber: 223
    functionLinenumberEnd: 230
    functionName: SHA1COMPRESS_FULL_ROUND2_STEP
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA1COMPRESS_FULL_ROUND2_STEP(a, b, c, d, e, W, t, temp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - W
    - ','
    - t
    - ','
    - temp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 238
      start: 231
    functionDepth: 0
    functionLinenumber: 231
    functionLinenumberEnd: 238
    functionName: SHA1COMPRESS_FULL_ROUND3_STEP
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA1COMPRESS_FULL_ROUND3_STEP(a, b, c, d, e, W, t, temp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - ','
    - d
    - ','
    - e
    - ','
    - W
    - ','
    - t
    - ','
    - temp
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 246
      start: 239
    functionDepth: 0
    functionLinenumber: 239
    functionLinenumberEnd: 246
    functionName: SHA1COMPRESS_FULL_ROUND4_STEP
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA1COMPRESS_FULL_ROUND4_STEP(a, b, c, d, e, W, t, temp)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - i
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 253
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 253
    functionName: SHA1_STORE_STATE
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA1_STORE_STATE(i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:262,1
    - Dst: sha1_mix
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:264,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:272,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:273,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:274,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:275,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:276,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:277,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:278,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:279,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:280,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:281,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:282,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:283,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:284,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:285,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:286,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:287,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:288,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:289,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:290,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:291,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:293,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:294,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:295,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:296,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:297,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:298,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:299,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:300,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:301,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:302,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:303,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:304,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:305,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:306,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:307,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:308,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:309,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:310,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:311,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:312,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:314,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:315,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:316,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:317,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:318,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:319,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:320,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:321,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:322,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:323,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:324,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:325,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:326,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:327,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:328,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:329,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:330,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:331,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:332,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:333,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:335,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:336,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:337,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:338,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:339,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:340,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:341,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:342,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:343,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:344,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:345,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:346,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:347,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:348,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:349,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:350,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:351,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:352,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:353,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:354,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 94
    argCount: 2
    argNames:
    - ihv
    - m
    argTypes:
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 361
      start: 255
    functionDepth: 1
    functionLinenumber: 255
    functionLinenumberEnd: 361
    functionName: sha1_compression
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached:
    - memcpy
    - sha1_mix
    - HASHCLASH_SHA1COMPRESS_ROUND2_STEP
    - HASHCLASH_SHA1COMPRESS_ROUND3_STEP
    - HASHCLASH_SHA1COMPRESS_ROUND1_STEP
    - HASHCLASH_SHA1COMPRESS_ROUND4_STEP
    linkageType: ''
    returnType: void
    signature: void sha1_compression(uint32_t ihv[5], const uint32_t m[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:369,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:370,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:371,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:372,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:373,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:374,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:375,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:376,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:377,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:378,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:379,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:380,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:381,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:382,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:383,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:384,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:385,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:386,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:387,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND1_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:388,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:390,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:391,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:392,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:393,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:394,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:395,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:396,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:397,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:398,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:399,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:400,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:401,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:402,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:403,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:404,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:405,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:406,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:407,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:408,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:409,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:411,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:412,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:413,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:414,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:415,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:416,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:417,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:418,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:419,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:420,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:421,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:422,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:423,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:424,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:425,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:426,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:427,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:428,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:429,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:430,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:432,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:433,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:434,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:435,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:436,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:437,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:438,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:439,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:440,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:441,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:442,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:443,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:444,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:445,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:446,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:447,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:448,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:449,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:450,1
    - Dst: HASHCLASH_SHA1COMPRESS_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:451,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 86
    argCount: 2
    argNames:
    - ihv
    - W
    argTypes:
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 458
      start: 364
    functionDepth: 1
    functionLinenumber: 364
    functionLinenumberEnd: 458
    functionName: sha1_compression_W
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached:
    - HASHCLASH_SHA1COMPRESS_ROUND2_STEP
    - HASHCLASH_SHA1COMPRESS_ROUND1_STEP
    - HASHCLASH_SHA1COMPRESS_ROUND4_STEP
    - HASHCLASH_SHA1COMPRESS_ROUND3_STEP
    linkageType: ''
    returnType: void
    signature: void sha1_compression_W(uint32_t ihv[5], const uint32_t W[80])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:470,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:472,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:475,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:477,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:480,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:482,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:485,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:487,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:490,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:492,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:495,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:497,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:500,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:502,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:505,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:507,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:510,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:512,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:515,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:517,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:520,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:522,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:525,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:527,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:530,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:532,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:535,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:537,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:540,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:542,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:545,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:547,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:550,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:552,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:555,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:557,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:560,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:562,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:565,1
    - Dst: SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:567,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:570,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:572,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:575,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:577,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:580,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:582,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:585,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:587,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:590,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:592,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:595,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:597,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:600,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:602,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:605,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:607,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:610,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:612,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:615,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:617,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:620,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:622,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:625,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:627,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:630,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:632,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:635,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:637,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:640,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:642,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:645,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:647,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:650,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:652,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:655,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:657,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:660,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:662,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:665,1
    - Dst: SHA1COMPRESS_FULL_ROUND2_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:667,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:670,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:672,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:675,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:677,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:680,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:682,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:685,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:687,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:690,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:692,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:695,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:697,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:700,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:702,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:705,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:707,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:710,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:712,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:715,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:717,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:720,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:722,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:725,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:727,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:730,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:732,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:735,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:737,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:740,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:742,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:745,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:747,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:750,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:752,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:755,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:757,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:760,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:762,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:765,1
    - Dst: SHA1COMPRESS_FULL_ROUND3_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:767,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:770,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:772,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:775,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:777,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:780,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:782,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:785,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:787,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:790,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:792,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:795,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:797,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:800,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:802,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:805,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:807,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:810,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:812,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:815,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:817,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:820,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:822,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:825,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:827,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:830,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:832,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:835,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:837,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:840,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:842,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:845,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:847,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:850,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:852,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:855,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:857,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:860,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:862,1
    - Dst: SHA1_STORE_STATE
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:865,1
    - Dst: SHA1COMPRESS_FULL_ROUND4_STEP
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:867,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 166
    argCount: 4
    argNames:
    - ihv
    - m
    - W
    - states
    argTypes:
    - uint32_t[]
    - uint32_t[]
    - uint32_t[]
    - uint32_t[][]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 874
      start: 460
    functionDepth: 1
    functionLinenumber: 460
    functionLinenumberEnd: 874
    functionName: sha1_compression_states
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached:
    - SHA1COMPRESS_FULL_ROUND4_STEP
    - SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
    - SHA1COMPRESS_FULL_ROUND3_STEP
    - SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND
    - SHA1_STORE_STATE
    - SHA1COMPRESS_FULL_ROUND2_STEP
    linkageType: ''
    returnType: void
    signature: "void sha1_compression_states(uint32_t       ihv[5],\n                        const
      uint32_t m[16],\n                        uint32_t       W[80],\n                        uint32_t
      \      states[80][5])"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - t
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1217
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 1217
    functionName: SHA1_RECOMPRESS
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: SHA1_RECOMPRESS(t)
  - BBCount: 82
    BranchProfiles: []
    Callsites:
    - Dst: sha1recompress_fast_0
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1558,1
    - Dst: sha1recompress_fast_1
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1563,1
    - Dst: sha1recompress_fast_2
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1568,1
    - Dst: sha1recompress_fast_3
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1573,1
    - Dst: sha1recompress_fast_4
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1578,1
    - Dst: sha1recompress_fast_5
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1583,1
    - Dst: sha1recompress_fast_6
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1588,1
    - Dst: sha1recompress_fast_7
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1593,1
    - Dst: sha1recompress_fast_8
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1598,1
    - Dst: sha1recompress_fast_9
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1603,1
    - Dst: sha1recompress_fast_10
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1608,1
    - Dst: sha1recompress_fast_11
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1613,1
    - Dst: sha1recompress_fast_12
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1618,1
    - Dst: sha1recompress_fast_13
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1623,1
    - Dst: sha1recompress_fast_14
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1628,1
    - Dst: sha1recompress_fast_15
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1633,1
    - Dst: sha1recompress_fast_16
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1638,1
    - Dst: sha1recompress_fast_17
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1643,1
    - Dst: sha1recompress_fast_18
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1648,1
    - Dst: sha1recompress_fast_19
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1653,1
    - Dst: sha1recompress_fast_20
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1658,1
    - Dst: sha1recompress_fast_21
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1663,1
    - Dst: sha1recompress_fast_22
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1668,1
    - Dst: sha1recompress_fast_23
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1673,1
    - Dst: sha1recompress_fast_24
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1678,1
    - Dst: sha1recompress_fast_25
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1683,1
    - Dst: sha1recompress_fast_26
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1688,1
    - Dst: sha1recompress_fast_27
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1693,1
    - Dst: sha1recompress_fast_28
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1698,1
    - Dst: sha1recompress_fast_29
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1703,1
    - Dst: sha1recompress_fast_30
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1708,1
    - Dst: sha1recompress_fast_31
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1713,1
    - Dst: sha1recompress_fast_32
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1718,1
    - Dst: sha1recompress_fast_33
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1723,1
    - Dst: sha1recompress_fast_34
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1728,1
    - Dst: sha1recompress_fast_35
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1733,1
    - Dst: sha1recompress_fast_36
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1738,1
    - Dst: sha1recompress_fast_37
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1743,1
    - Dst: sha1recompress_fast_38
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1748,1
    - Dst: sha1recompress_fast_39
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1753,1
    - Dst: sha1recompress_fast_40
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1758,1
    - Dst: sha1recompress_fast_41
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1763,1
    - Dst: sha1recompress_fast_42
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1768,1
    - Dst: sha1recompress_fast_43
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1773,1
    - Dst: sha1recompress_fast_44
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1778,1
    - Dst: sha1recompress_fast_45
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1783,1
    - Dst: sha1recompress_fast_46
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1788,1
    - Dst: sha1recompress_fast_47
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1793,1
    - Dst: sha1recompress_fast_48
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1798,1
    - Dst: sha1recompress_fast_49
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1803,1
    - Dst: sha1recompress_fast_50
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1808,1
    - Dst: sha1recompress_fast_51
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1813,1
    - Dst: sha1recompress_fast_52
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1818,1
    - Dst: sha1recompress_fast_53
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1823,1
    - Dst: sha1recompress_fast_54
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1828,1
    - Dst: sha1recompress_fast_55
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1833,1
    - Dst: sha1recompress_fast_56
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1838,1
    - Dst: sha1recompress_fast_57
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1843,1
    - Dst: sha1recompress_fast_58
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1848,1
    - Dst: sha1recompress_fast_59
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1853,1
    - Dst: sha1recompress_fast_60
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1858,1
    - Dst: sha1recompress_fast_61
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1863,1
    - Dst: sha1recompress_fast_62
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1868,1
    - Dst: sha1recompress_fast_63
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1873,1
    - Dst: sha1recompress_fast_64
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1878,1
    - Dst: sha1recompress_fast_65
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1883,1
    - Dst: sha1recompress_fast_66
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1888,1
    - Dst: sha1recompress_fast_67
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1893,1
    - Dst: sha1recompress_fast_68
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1898,1
    - Dst: sha1recompress_fast_69
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1903,1
    - Dst: sha1recompress_fast_70
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1908,1
    - Dst: sha1recompress_fast_71
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1913,1
    - Dst: sha1recompress_fast_72
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1918,1
    - Dst: sha1recompress_fast_73
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1923,1
    - Dst: sha1recompress_fast_74
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1928,1
    - Dst: sha1recompress_fast_75
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1933,1
    - Dst: sha1recompress_fast_76
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1938,1
    - Dst: sha1recompress_fast_77
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1943,1
    - Dst: sha1recompress_fast_78
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1948,1
    - Dst: sha1recompress_fast_79
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1953,1
    - Dst: abort
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1957,1
    CyclomaticComplexity: 81
    EdgeCount: 81
    ICount: 245
    argCount: 5
    argNames:
    - step
    - ihvin
    - ihvout
    - me2
    - state
    argTypes:
    - uint32_t
    - uint32_t[]
    - uint32_t[]
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1959
      start: 1548
    functionDepth: 0
    functionLinenumber: 1548
    functionLinenumberEnd: 1959
    functionName: sha1_recompression_step
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached:
    - sha1recompress_fast_64
    - sha1recompress_fast_67
    - sha1recompress_fast_28
    - sha1recompress_fast_36
    - abort
    - sha1recompress_fast_77
    - sha1recompress_fast_58
    - sha1recompress_fast_18
    - sha1recompress_fast_65
    - sha1recompress_fast_7
    - sha1recompress_fast_4
    - sha1recompress_fast_3
    - sha1recompress_fast_32
    - sha1recompress_fast_43
    - sha1recompress_fast_46
    - sha1recompress_fast_30
    - sha1recompress_fast_78
    - sha1recompress_fast_27
    - sha1recompress_fast_51
    - sha1recompress_fast_41
    - sha1recompress_fast_21
    - sha1recompress_fast_45
    - sha1recompress_fast_9
    - sha1recompress_fast_61
    - sha1recompress_fast_0
    - sha1recompress_fast_42
    - sha1recompress_fast_75
    - sha1recompress_fast_33
    - sha1recompress_fast_49
    - sha1recompress_fast_53
    - sha1recompress_fast_26
    - sha1recompress_fast_68
    - sha1recompress_fast_14
    - sha1recompress_fast_15
    - sha1recompress_fast_59
    - sha1recompress_fast_2
    - sha1recompress_fast_55
    - sha1recompress_fast_23
    - sha1recompress_fast_79
    - sha1recompress_fast_22
    - sha1recompress_fast_74
    - sha1recompress_fast_73
    - sha1recompress_fast_54
    - sha1recompress_fast_29
    - sha1recompress_fast_63
    - sha1recompress_fast_12
    - sha1recompress_fast_6
    - sha1recompress_fast_31
    - sha1recompress_fast_66
    - sha1recompress_fast_56
    - sha1recompress_fast_1
    - sha1recompress_fast_48
    - sha1recompress_fast_50
    - sha1recompress_fast_38
    - sha1recompress_fast_37
    - sha1recompress_fast_72
    - sha1recompress_fast_16
    - sha1recompress_fast_69
    - sha1recompress_fast_8
    - sha1recompress_fast_40
    - sha1recompress_fast_39
    - sha1recompress_fast_52
    - sha1recompress_fast_25
    - sha1recompress_fast_13
    - sha1recompress_fast_47
    - sha1recompress_fast_60
    - sha1recompress_fast_57
    - sha1recompress_fast_17
    - sha1recompress_fast_70
    - sha1recompress_fast_5
    - sha1recompress_fast_62
    - sha1recompress_fast_24
    - sha1recompress_fast_35
    - sha1recompress_fast_34
    - sha1recompress_fast_71
    - sha1recompress_fast_76
    - sha1recompress_fast_10
    - sha1recompress_fast_11
    - sha1recompress_fast_20
    - sha1recompress_fast_44
    - sha1recompress_fast_19
    linkageType: ''
    returnType: void
    signature: "void sha1_recompression_step(uint32_t       step,\n                        uint32_t
      \      ihvin[5],\n                        uint32_t       ihvout[5],\n                        const
      uint32_t me2[80],\n                        const uint32_t state[5])"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: sha1_compression_states
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1974,1
    - Dst: ubc_check
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1978,1
    - Dst: sha1_recompression_step
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:1987,1
    - Dst: sha1_compression_W
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:2005,1
    - Dst: sha1_compression_W
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:2006,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - ctx
    - block
    argTypes:
    - SHA1_CTX*
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2015
      start: 1961
    functionDepth: 2
    functionLinenumber: 1961
    functionLinenumberEnd: 2015
    functionName: sha1_process
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached:
    - sha1_recompression_step
    - ubc_check
    - sha1_compression_states
    - sha1_compression_W
    linkageType: ''
    returnType: void
    signature: void sha1_process(SHA1_CTX *ctx, const uint32_t block[16])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SHA1_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2032
      start: 2017
    functionDepth: 0
    functionLinenumber: 2017
    functionLinenumberEnd: 2032
    functionName: SHA1DCInit
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA1DCInit(SHA1_CTX *ctx)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - safehash
    argTypes:
    - SHA1_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2041
      start: 2034
    functionDepth: 0
    functionLinenumber: 2034
    functionLinenumberEnd: 2041
    functionName: SHA1DCSetSafeHash
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA1DCSetSafeHash(SHA1_CTX *ctx, int safehash)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - ubc_check
    argTypes:
    - SHA1_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2050
      start: 2043
    functionDepth: 0
    functionLinenumber: 2043
    functionLinenumberEnd: 2050
    functionName: SHA1DCSetUseUBC
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA1DCSetUseUBC(SHA1_CTX *ctx, int ubc_check)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - detect_coll
    argTypes:
    - SHA1_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2059
      start: 2052
    functionDepth: 0
    functionLinenumber: 2052
    functionLinenumberEnd: 2059
    functionName: SHA1DCSetUseDetectColl
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA1DCSetUseDetectColl(SHA1_CTX *ctx, int detect_coll)
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ctx
    - reduced_round_coll
    argTypes:
    - SHA1_CTX*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2068
      start: 2061
    functionDepth: 0
    functionLinenumber: 2061
    functionLinenumberEnd: 2068
    functionName: SHA1DCSetDetectReducedRoundCollision
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA1DCSetDetectReducedRoundCollision(SHA1_CTX *ctx, int reduced_round_coll)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ctx
    - callback
    argTypes:
    - SHA1_CTX*
    - collision_block_callback
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2074
      start: 2070
    functionDepth: 0
    functionLinenumber: 2070
    functionLinenumberEnd: 2074
    functionName: SHA1DCSetCallback
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void SHA1DCSetCallback(SHA1_CTX *ctx, collision_block_callback callback)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:2089,1
    - Dst: sha1_process
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:2090,1
    - Dst: sha1_process
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:2099,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:2101,1
    - Dst: sha1_process
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:2102,1
    - Dst: memcpy
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:2109,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 25
    argCount: 3
    argNames:
    - ctx
    - buf
    - len
    argTypes:
    - SHA1_CTX*
    - char*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2111
      start: 2076
    functionDepth: 3
    functionLinenumber: 2076
    functionLinenumberEnd: 2111
    functionName: SHA1DCUpdate
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 2
    functionsReached:
    - memcpy
    - sha1_process
    linkageType: ''
    returnType: void
    signature: void SHA1DCUpdate(SHA1_CTX *ctx, const char *buf, size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: SHA1DCUpdate
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:2124,1
    - Dst: sha1_process
      Src: /src/rnp/src/lib/crypto/sha1cd/sha1.c:2136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 34
    argCount: 2
    argNames:
    - output
    - ctx
    argTypes:
    - unsigned char[]
    - SHA1_CTX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2158
      start: 2118
    functionDepth: 4
    functionLinenumber: 2118
    functionLinenumberEnd: 2158
    functionName: SHA1DCFinal
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/sha1.c
    functionUses: 2
    functionsReached:
    - sha1_process
    - SHA1DCUpdate
    linkageType: ''
    returnType: int
    signature: int SHA1DCFinal(unsigned char output[20], SHA1_CTX *ctx)
  - BBCount: 84
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 128
    EdgeCount: 128
    ICount: 197
    argCount: 2
    argNames:
    - W
    - dvmask
    argTypes:
    - uint32_t[]
    - uint32_t[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 904
      start: 569
    functionDepth: 0
    functionLinenumber: 569
    functionLinenumberEnd: 904
    functionName: ubc_check
    functionSourceFile: /src/rnp/src/lib/crypto/sha1cd/ubc_check.c
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ubc_check(const uint32_t W[80], uint32_t dvmask[1])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 98
      start: 97
    functionDepth: 0
    functionLinenumber: 97
    functionLinenumberEnd: 98
    functionName: NLOHMANN_JSON_ABI_TAGS_CONCAT_EX
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 100
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 100
    functionName: NLOHMANN_JSON_ABI_TAGS_CONCAT
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 109
      start: 107
    functionDepth: 0
    functionLinenumber: 107
    functionLinenumberEnd: 109
    functionName: NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 111
      start: 109
    functionDepth: 0
    functionLinenumber: 109
    functionLinenumberEnd: 111
    functionName: NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(major, minor, patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 123
      start: 122
    functionDepth: 0
    functionLinenumber: 122
    functionLinenumberEnd: 123
    functionName: NLOHMANN_JSON_NAMESPACE_CONCAT_EX
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 125
      start: 123
    functionDepth: 0
    functionLinenumber: 123
    functionLinenumberEnd: 125
    functionName: NLOHMANN_JSON_NAMESPACE_CONCAT
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_NAMESPACE_CONCAT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 257
      start: 247
    functionDepth: 0
    functionLinenumber: 247
    functionLinenumberEnd: 257
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 315
      start: 258
    functionDepth: 0
    functionLinenumber: 258
    functionLinenumberEnd: 315
    functionName: NLOHMANN_JSON_NAMESPACE_BEGIN
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_END
    signature: NLOHMANN_JSON_NAMESPACE_END NLOHMANN_JSON_NAMESPACE_BEGIN
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 268
      start: 268
    functionDepth: 0
    functionLinenumber: 268
    functionLinenumberEnd: 268
    functionName: nonesuch
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nonesuch()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 269
      start: 269
    functionDepth: 0
    functionLinenumber: 269
    functionLinenumberEnd: 269
    functionName: ~nonesuch()
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~nonesuch()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 270
      start: 270
    functionDepth: 0
    functionLinenumber: 270
    functionLinenumberEnd: 270
    functionName: nonesuch
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nonesuch(nonesuch const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 271
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 271
    functionName: nonesuch
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void nonesuch(nonesuch const&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 272
      start: 272
    functionDepth: 0
    functionLinenumber: 272
    functionLinenumberEnd: 272
    functionName: operator=(nonesuch const&)
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(nonesuch const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 273
      start: 273
    functionDepth: 0
    functionLinenumber: 273
    functionLinenumberEnd: 273
    functionName: operator=(nonesuch&&)
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator=(nonesuch&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 344
      start: 343
    functionDepth: 0
    functionLinenumber: 343
    functionLinenumberEnd: 344
    functionName: JSON_HEDLEY_STRINGIFY_EX
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_STRINGIFY_EX(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 349
      start: 348
    functionDepth: 0
    functionLinenumber: 348
    functionLinenumberEnd: 349
    functionName: JSON_HEDLEY_STRINGIFY
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_STRINGIFY(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 354
      start: 353
    functionDepth: 0
    functionLinenumber: 353
    functionLinenumberEnd: 354
    functionName: JSON_HEDLEY_CONCAT_EX
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_CONCAT_EX(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 359
      start: 358
    functionDepth: 0
    functionLinenumber: 358
    functionLinenumberEnd: 359
    functionName: JSON_HEDLEY_CONCAT
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_CONCAT(a,b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 364
      start: 363
    functionDepth: 0
    functionLinenumber: 363
    functionLinenumberEnd: 364
    functionName: JSON_HEDLEY_CONCAT3_EX
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_CONCAT3_EX(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - a
    - ','
    - b
    - ','
    - c
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 369
      start: 368
    functionDepth: 0
    functionLinenumber: 368
    functionLinenumberEnd: 369
    functionName: JSON_HEDLEY_CONCAT3
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_CONCAT3(a,b,c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - revision
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 374
      start: 373
    functionDepth: 0
    functionLinenumber: 373
    functionLinenumberEnd: 374
    functionName: JSON_HEDLEY_VERSION_ENCODE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_VERSION_ENCODE(major,minor,revision)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - version
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 379
      start: 378
    functionDepth: 0
    functionLinenumber: 378
    functionLinenumberEnd: 379
    functionName: JSON_HEDLEY_VERSION_DECODE_MAJOR
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_VERSION_DECODE_MAJOR(version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - version
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 384
      start: 383
    functionDepth: 0
    functionLinenumber: 383
    functionLinenumberEnd: 384
    functionName: JSON_HEDLEY_VERSION_DECODE_MINOR
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_VERSION_DECODE_MINOR(version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - version
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 389
      start: 388
    functionDepth: 0
    functionLinenumber: 388
    functionLinenumberEnd: 389
    functionName: JSON_HEDLEY_VERSION_DECODE_REVISION
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_VERSION_DECODE_REVISION(version)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 404
      start: 403
    functionDepth: 0
    functionLinenumber: 403
    functionLinenumberEnd: 404
    functionName: JSON_HEDLEY_GNUC_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 406
      start: 405
    functionDepth: 0
    functionLinenumber: 405
    functionLinenumberEnd: 406
    functionName: JSON_HEDLEY_GNUC_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 424
      start: 423
    functionDepth: 0
    functionLinenumber: 423
    functionLinenumberEnd: 424
    functionName: JSON_HEDLEY_MSVC_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 426
      start: 425
    functionDepth: 0
    functionLinenumber: 425
    functionLinenumberEnd: 426
    functionName: JSON_HEDLEY_MSVC_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 428
      start: 427
    functionDepth: 0
    functionLinenumber: 427
    functionLinenumberEnd: 428
    functionName: JSON_HEDLEY_MSVC_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 430
      start: 429
    functionDepth: 0
    functionLinenumber: 429
    functionLinenumberEnd: 430
    functionName: JSON_HEDLEY_MSVC_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 446
      start: 445
    functionDepth: 0
    functionLinenumber: 445
    functionLinenumberEnd: 446
    functionName: JSON_HEDLEY_INTEL_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_INTEL_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 448
      start: 447
    functionDepth: 0
    functionLinenumber: 447
    functionLinenumberEnd: 448
    functionName: JSON_HEDLEY_INTEL_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_INTEL_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 462
      start: 461
    functionDepth: 0
    functionLinenumber: 461
    functionLinenumberEnd: 462
    functionName: JSON_HEDLEY_INTEL_CL_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_INTEL_CL_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 464
      start: 463
    functionDepth: 0
    functionLinenumber: 463
    functionLinenumberEnd: 464
    functionName: JSON_HEDLEY_INTEL_CL_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_INTEL_CL_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 478
      start: 477
    functionDepth: 0
    functionLinenumber: 477
    functionLinenumberEnd: 478
    functionName: JSON_HEDLEY_PGI_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_PGI_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 480
      start: 479
    functionDepth: 0
    functionLinenumber: 479
    functionLinenumberEnd: 480
    functionName: JSON_HEDLEY_PGI_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_PGI_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 500
      start: 499
    functionDepth: 0
    functionLinenumber: 499
    functionLinenumberEnd: 500
    functionName: JSON_HEDLEY_SUNPRO_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 502
      start: 501
    functionDepth: 0
    functionLinenumber: 501
    functionLinenumberEnd: 502
    functionName: JSON_HEDLEY_SUNPRO_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 516
      start: 515
    functionDepth: 0
    functionLinenumber: 515
    functionLinenumberEnd: 516
    functionName: JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 518
      start: 517
    functionDepth: 0
    functionLinenumber: 517
    functionLinenumberEnd: 518
    functionName: JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 534
      start: 533
    functionDepth: 0
    functionLinenumber: 533
    functionLinenumberEnd: 534
    functionName: JSON_HEDLEY_ARM_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_ARM_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 536
      start: 535
    functionDepth: 0
    functionLinenumber: 535
    functionLinenumberEnd: 536
    functionName: JSON_HEDLEY_ARM_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_ARM_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 554
      start: 553
    functionDepth: 0
    functionLinenumber: 553
    functionLinenumberEnd: 554
    functionName: JSON_HEDLEY_IBM_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_IBM_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 556
      start: 555
    functionDepth: 0
    functionLinenumber: 555
    functionLinenumberEnd: 556
    functionName: JSON_HEDLEY_IBM_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_IBM_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 578
      start: 577
    functionDepth: 0
    functionLinenumber: 577
    functionLinenumberEnd: 578
    functionName: JSON_HEDLEY_TI_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_TI_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 580
      start: 579
    functionDepth: 0
    functionLinenumber: 579
    functionLinenumberEnd: 580
    functionName: JSON_HEDLEY_TI_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_TI_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 594
      start: 593
    functionDepth: 0
    functionLinenumber: 593
    functionLinenumberEnd: 594
    functionName: JSON_HEDLEY_TI_CL2000_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_TI_CL2000_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 596
      start: 595
    functionDepth: 0
    functionLinenumber: 595
    functionLinenumberEnd: 596
    functionName: JSON_HEDLEY_TI_CL2000_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_TI_CL2000_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 610
      start: 609
    functionDepth: 0
    functionLinenumber: 609
    functionLinenumberEnd: 610
    functionName: JSON_HEDLEY_TI_CL430_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_TI_CL430_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 612
      start: 611
    functionDepth: 0
    functionLinenumber: 611
    functionLinenumberEnd: 612
    functionName: JSON_HEDLEY_TI_CL430_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_TI_CL430_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 626
      start: 625
    functionDepth: 0
    functionLinenumber: 625
    functionLinenumberEnd: 626
    functionName: JSON_HEDLEY_TI_ARMCL_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 628
      start: 627
    functionDepth: 0
    functionLinenumber: 627
    functionLinenumberEnd: 628
    functionName: JSON_HEDLEY_TI_ARMCL_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 642
      start: 641
    functionDepth: 0
    functionLinenumber: 641
    functionLinenumberEnd: 642
    functionName: JSON_HEDLEY_TI_CL6X_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_TI_CL6X_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 644
      start: 643
    functionDepth: 0
    functionLinenumber: 643
    functionLinenumberEnd: 644
    functionName: JSON_HEDLEY_TI_CL6X_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_TI_CL6X_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 658
      start: 657
    functionDepth: 0
    functionLinenumber: 657
    functionLinenumberEnd: 658
    functionName: JSON_HEDLEY_TI_CL7X_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_TI_CL7X_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 660
      start: 659
    functionDepth: 0
    functionLinenumber: 659
    functionLinenumberEnd: 660
    functionName: JSON_HEDLEY_TI_CL7X_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_TI_CL7X_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 674
      start: 673
    functionDepth: 0
    functionLinenumber: 673
    functionLinenumberEnd: 674
    functionName: JSON_HEDLEY_TI_CLPRU_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 676
      start: 675
    functionDepth: 0
    functionLinenumber: 675
    functionLinenumberEnd: 676
    functionName: JSON_HEDLEY_TI_CLPRU_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 694
      start: 693
    functionDepth: 0
    functionLinenumber: 693
    functionLinenumberEnd: 694
    functionName: JSON_HEDLEY_CRAY_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_CRAY_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 696
      start: 695
    functionDepth: 0
    functionLinenumber: 695
    functionLinenumberEnd: 696
    functionName: JSON_HEDLEY_CRAY_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_CRAY_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 714
      start: 713
    functionDepth: 0
    functionLinenumber: 713
    functionLinenumberEnd: 714
    functionName: JSON_HEDLEY_IAR_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_IAR_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 716
      start: 715
    functionDepth: 0
    functionLinenumber: 715
    functionLinenumberEnd: 716
    functionName: JSON_HEDLEY_IAR_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_IAR_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 730
      start: 729
    functionDepth: 0
    functionLinenumber: 729
    functionLinenumberEnd: 730
    functionName: JSON_HEDLEY_TINYC_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_TINYC_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 732
      start: 731
    functionDepth: 0
    functionLinenumber: 731
    functionLinenumberEnd: 732
    functionName: JSON_HEDLEY_TINYC_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_TINYC_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 746
      start: 745
    functionDepth: 0
    functionLinenumber: 745
    functionLinenumberEnd: 746
    functionName: JSON_HEDLEY_DMC_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_DMC_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 748
      start: 747
    functionDepth: 0
    functionLinenumber: 747
    functionLinenumberEnd: 748
    functionName: JSON_HEDLEY_DMC_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_DMC_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 762
      start: 761
    functionDepth: 0
    functionLinenumber: 761
    functionLinenumberEnd: 762
    functionName: JSON_HEDLEY_COMPCERT_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 764
      start: 763
    functionDepth: 0
    functionLinenumber: 763
    functionLinenumberEnd: 764
    functionName: JSON_HEDLEY_COMPCERT_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 778
      start: 777
    functionDepth: 0
    functionLinenumber: 777
    functionLinenumberEnd: 778
    functionName: JSON_HEDLEY_PELLES_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_PELLES_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 780
      start: 779
    functionDepth: 0
    functionLinenumber: 779
    functionLinenumberEnd: 780
    functionName: JSON_HEDLEY_PELLES_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_PELLES_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 794
      start: 793
    functionDepth: 0
    functionLinenumber: 793
    functionLinenumberEnd: 794
    functionName: JSON_HEDLEY_MCST_LCC_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_MCST_LCC_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 796
      start: 795
    functionDepth: 0
    functionLinenumber: 795
    functionLinenumberEnd: 796
    functionName: JSON_HEDLEY_MCST_LCC_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_MCST_LCC_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 825
      start: 824
    functionDepth: 0
    functionLinenumber: 824
    functionLinenumberEnd: 825
    functionName: JSON_HEDLEY_GCC_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 827
      start: 826
    functionDepth: 0
    functionLinenumber: 826
    functionLinenumberEnd: 827
    functionName: JSON_HEDLEY_GCC_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - attribute
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 838
      start: 837
    functionDepth: 0
    functionLinenumber: 837
    functionLinenumberEnd: 838
    functionName: JSON_HEDLEY_HAS_ATTRIBUTE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_HAS_ATTRIBUTE(attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - attribute
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 840
      start: 839
    functionDepth: 0
    functionLinenumber: 839
    functionLinenumberEnd: 840
    functionName: JSON_HEDLEY_HAS_ATTRIBUTE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_HAS_ATTRIBUTE(attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - attribute
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 847
      start: 846
    functionDepth: 0
    functionLinenumber: 846
    functionLinenumberEnd: 847
    functionName: JSON_HEDLEY_GNUC_HAS_ATTRIBUTE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - attribute
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 849
      start: 848
    functionDepth: 0
    functionLinenumber: 848
    functionLinenumberEnd: 849
    functionName: JSON_HEDLEY_GNUC_HAS_ATTRIBUTE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - attribute
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 856
      start: 855
    functionDepth: 0
    functionLinenumber: 855
    functionLinenumberEnd: 856
    functionName: JSON_HEDLEY_GCC_HAS_ATTRIBUTE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - attribute
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 858
      start: 857
    functionDepth: 0
    functionLinenumber: 857
    functionLinenumberEnd: 858
    functionName: JSON_HEDLEY_GCC_HAS_ATTRIBUTE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - attribute
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 868
      start: 867
    functionDepth: 0
    functionLinenumber: 867
    functionLinenumberEnd: 868
    functionName: JSON_HEDLEY_HAS_CPP_ATTRIBUTE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - attribute
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 870
      start: 869
    functionDepth: 0
    functionLinenumber: 869
    functionLinenumberEnd: 870
    functionName: JSON_HEDLEY_HAS_CPP_ATTRIBUTE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ns
    - ','
    - attribute
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 877
      start: 876
    functionDepth: 0
    functionLinenumber: 876
    functionLinenumberEnd: 877
    functionName: JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ns
    - ','
    - attribute
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 883
      start: 882
    functionDepth: 0
    functionLinenumber: 882
    functionLinenumberEnd: 883
    functionName: JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ns
    - ','
    - attribute
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 885
      start: 884
    functionDepth: 0
    functionLinenumber: 884
    functionLinenumberEnd: 885
    functionName: JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - attribute
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 892
      start: 891
    functionDepth: 0
    functionLinenumber: 891
    functionLinenumberEnd: 892
    functionName: JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - attribute
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 894
      start: 893
    functionDepth: 0
    functionLinenumber: 893
    functionLinenumberEnd: 894
    functionName: JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - attribute
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 901
      start: 900
    functionDepth: 0
    functionLinenumber: 900
    functionLinenumberEnd: 901
    functionName: JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - attribute
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 903
      start: 902
    functionDepth: 0
    functionLinenumber: 902
    functionLinenumberEnd: 903
    functionName: JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - builtin
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 910
      start: 909
    functionDepth: 0
    functionLinenumber: 909
    functionLinenumberEnd: 910
    functionName: JSON_HEDLEY_HAS_BUILTIN
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_HAS_BUILTIN(builtin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - builtin
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 912
      start: 911
    functionDepth: 0
    functionLinenumber: 911
    functionLinenumberEnd: 912
    functionName: JSON_HEDLEY_HAS_BUILTIN
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_HAS_BUILTIN(builtin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - builtin
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 919
      start: 918
    functionDepth: 0
    functionLinenumber: 918
    functionLinenumberEnd: 919
    functionName: JSON_HEDLEY_GNUC_HAS_BUILTIN
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - builtin
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 921
      start: 920
    functionDepth: 0
    functionLinenumber: 920
    functionLinenumberEnd: 921
    functionName: JSON_HEDLEY_GNUC_HAS_BUILTIN
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - builtin
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 928
      start: 927
    functionDepth: 0
    functionLinenumber: 927
    functionLinenumberEnd: 928
    functionName: JSON_HEDLEY_GCC_HAS_BUILTIN
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - builtin
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 930
      start: 929
    functionDepth: 0
    functionLinenumber: 929
    functionLinenumberEnd: 930
    functionName: JSON_HEDLEY_GCC_HAS_BUILTIN
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - feature
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 937
      start: 936
    functionDepth: 0
    functionLinenumber: 936
    functionLinenumberEnd: 937
    functionName: JSON_HEDLEY_HAS_FEATURE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_HAS_FEATURE(feature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - feature
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 939
      start: 938
    functionDepth: 0
    functionLinenumber: 938
    functionLinenumberEnd: 939
    functionName: JSON_HEDLEY_HAS_FEATURE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_HAS_FEATURE(feature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - feature
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 946
      start: 945
    functionDepth: 0
    functionLinenumber: 945
    functionLinenumberEnd: 946
    functionName: JSON_HEDLEY_GNUC_HAS_FEATURE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - feature
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 948
      start: 947
    functionDepth: 0
    functionLinenumber: 947
    functionLinenumberEnd: 948
    functionName: JSON_HEDLEY_GNUC_HAS_FEATURE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - feature
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 955
      start: 954
    functionDepth: 0
    functionLinenumber: 954
    functionLinenumberEnd: 955
    functionName: JSON_HEDLEY_GCC_HAS_FEATURE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - feature
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 957
      start: 956
    functionDepth: 0
    functionLinenumber: 956
    functionLinenumberEnd: 957
    functionName: JSON_HEDLEY_GCC_HAS_FEATURE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - extension
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 964
      start: 963
    functionDepth: 0
    functionLinenumber: 963
    functionLinenumberEnd: 964
    functionName: JSON_HEDLEY_HAS_EXTENSION
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_HAS_EXTENSION(extension)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - extension
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 966
      start: 965
    functionDepth: 0
    functionLinenumber: 965
    functionLinenumberEnd: 966
    functionName: JSON_HEDLEY_HAS_EXTENSION
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_HAS_EXTENSION(extension)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - extension
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 973
      start: 972
    functionDepth: 0
    functionLinenumber: 972
    functionLinenumberEnd: 973
    functionName: JSON_HEDLEY_GNUC_HAS_EXTENSION
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - extension
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 975
      start: 974
    functionDepth: 0
    functionLinenumber: 974
    functionLinenumberEnd: 975
    functionName: JSON_HEDLEY_GNUC_HAS_EXTENSION
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - extension
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 982
      start: 981
    functionDepth: 0
    functionLinenumber: 981
    functionLinenumberEnd: 982
    functionName: JSON_HEDLEY_GCC_HAS_EXTENSION
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - extension
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 984
      start: 983
    functionDepth: 0
    functionLinenumber: 983
    functionLinenumberEnd: 984
    functionName: JSON_HEDLEY_GCC_HAS_EXTENSION
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - attribute
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 991
      start: 990
    functionDepth: 0
    functionLinenumber: 990
    functionLinenumberEnd: 991
    functionName: JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - attribute
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 993
      start: 992
    functionDepth: 0
    functionLinenumber: 992
    functionLinenumberEnd: 993
    functionName: JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - attribute
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1000
      start: 999
    functionDepth: 0
    functionLinenumber: 999
    functionLinenumberEnd: 1000
    functionName: JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - attribute
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1002
      start: 1001
    functionDepth: 0
    functionLinenumber: 1001
    functionLinenumberEnd: 1002
    functionName: JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - attribute
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1009
      start: 1008
    functionDepth: 0
    functionLinenumber: 1008
    functionLinenumberEnd: 1009
    functionName: JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - attribute
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1011
      start: 1010
    functionDepth: 0
    functionLinenumber: 1010
    functionLinenumberEnd: 1011
    functionName: JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - warning
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1018
      start: 1017
    functionDepth: 0
    functionLinenumber: 1017
    functionLinenumberEnd: 1018
    functionName: JSON_HEDLEY_HAS_WARNING
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_HAS_WARNING(warning)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - warning
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1020
      start: 1019
    functionDepth: 0
    functionLinenumber: 1019
    functionLinenumberEnd: 1020
    functionName: JSON_HEDLEY_HAS_WARNING
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_HAS_WARNING(warning)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - warning
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1027
      start: 1026
    functionDepth: 0
    functionLinenumber: 1026
    functionLinenumberEnd: 1027
    functionName: JSON_HEDLEY_GNUC_HAS_WARNING
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - warning
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1029
      start: 1028
    functionDepth: 0
    functionLinenumber: 1028
    functionLinenumberEnd: 1029
    functionName: JSON_HEDLEY_GNUC_HAS_WARNING
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - warning
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1036
      start: 1035
    functionDepth: 0
    functionLinenumber: 1035
    functionLinenumberEnd: 1036
    functionName: JSON_HEDLEY_GCC_HAS_WARNING
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - warning
    - ','
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1038
      start: 1037
    functionDepth: 0
    functionLinenumber: 1037
    functionLinenumberEnd: 1038
    functionName: JSON_HEDLEY_GCC_HAS_WARNING
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1060
      start: 1059
    functionDepth: 0
    functionLinenumber: 1059
    functionLinenumberEnd: 1060
    functionName: JSON_HEDLEY_PRAGMA
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_PRAGMA(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1062
      start: 1061
    functionDepth: 0
    functionLinenumber: 1061
    functionLinenumberEnd: 1062
    functionName: JSON_HEDLEY_PRAGMA
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_PRAGMA(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - xpr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1122
      start: 1115
    functionDepth: 0
    functionLinenumber: 1115
    functionLinenumberEnd: 1122
    functionName: JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - xpr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1129
      start: 1123
    functionDepth: 0
    functionLinenumber: 1123
    functionLinenumberEnd: 1129
    functionName: JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - xpr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1136
      start: 1131
    functionDepth: 0
    functionLinenumber: 1131
    functionLinenumberEnd: 1136
    functionName: JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1141
      start: 1140
    functionDepth: 0
    functionLinenumber: 1140
    functionLinenumberEnd: 1141
    functionName: JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - T
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1148
      start: 1147
    functionDepth: 0
    functionLinenumber: 1147
    functionLinenumberEnd: 1148
    functionName: JSON_HEDLEY_CONST_CAST
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_CONST_CAST(T, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - T
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1158
      start: 1152
    functionDepth: 0
    functionLinenumber: 1152
    functionLinenumberEnd: 1158
    functionName: JSON_HEDLEY_CONST_CAST
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_CONST_CAST(T, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - T
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1160
      start: 1159
    functionDepth: 0
    functionLinenumber: 1159
    functionLinenumberEnd: 1160
    functionName: JSON_HEDLEY_CONST_CAST
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_CONST_CAST(T, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - T
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1167
      start: 1166
    functionDepth: 0
    functionLinenumber: 1166
    functionLinenumberEnd: 1167
    functionName: JSON_HEDLEY_REINTERPRET_CAST
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_REINTERPRET_CAST(T, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - T
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1169
      start: 1168
    functionDepth: 0
    functionLinenumber: 1168
    functionLinenumberEnd: 1169
    functionName: JSON_HEDLEY_REINTERPRET_CAST
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_REINTERPRET_CAST(T, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - T
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1176
      start: 1175
    functionDepth: 0
    functionLinenumber: 1175
    functionLinenumberEnd: 1176
    functionName: JSON_HEDLEY_STATIC_CAST
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_STATIC_CAST(T, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - T
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1178
      start: 1177
    functionDepth: 0
    functionLinenumber: 1177
    functionLinenumberEnd: 1178
    functionName: JSON_HEDLEY_STATIC_CAST
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_STATIC_CAST(T, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - T
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1190
      start: 1185
    functionDepth: 0
    functionLinenumber: 1185
    functionLinenumberEnd: 1190
    functionName: JSON_HEDLEY_CPP_CAST
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_CPP_CAST(T, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - T
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1195
      start: 1191
    functionDepth: 0
    functionLinenumber: 1191
    functionLinenumberEnd: 1195
    functionName: JSON_HEDLEY_CPP_CAST
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_CPP_CAST(T, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - T
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1197
      start: 1196
    functionDepth: 0
    functionLinenumber: 1196
    functionLinenumberEnd: 1197
    functionName: JSON_HEDLEY_CPP_CAST
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_CPP_CAST(T, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - T
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1200
      start: 1199
    functionDepth: 0
    functionLinenumber: 1199
    functionLinenumberEnd: 1200
    functionName: JSON_HEDLEY_CPP_CAST
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_CPP_CAST(T, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - since
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1347
      start: 1346
    functionDepth: 0
    functionLinenumber: 1346
    functionLinenumberEnd: 1347
    functionName: JSON_HEDLEY_DEPRECATED
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_DEPRECATED(since)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - since
    - ','
    - replacement
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1348
      start: 1347
    functionDepth: 0
    functionLinenumber: 1347
    functionLinenumberEnd: 1348
    functionName: JSON_HEDLEY_DEPRECATED_FOR
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_DEPRECATED_FOR(since, replacement)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - since
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1362
      start: 1361
    functionDepth: 0
    functionLinenumber: 1361
    functionLinenumberEnd: 1362
    functionName: JSON_HEDLEY_DEPRECATED
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_DEPRECATED(since)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - since
    - ','
    - replacement
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1363
      start: 1362
    functionDepth: 0
    functionLinenumber: 1362
    functionLinenumberEnd: 1363
    functionName: JSON_HEDLEY_DEPRECATED_FOR
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_DEPRECATED_FOR(since, replacement)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - since
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1365
      start: 1364
    functionDepth: 0
    functionLinenumber: 1364
    functionLinenumberEnd: 1365
    functionName: JSON_HEDLEY_DEPRECATED
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_DEPRECATED(since)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - since
    - ','
    - replacement
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1366
      start: 1365
    functionDepth: 0
    functionLinenumber: 1365
    functionLinenumberEnd: 1366
    functionName: JSON_HEDLEY_DEPRECATED_FOR
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_DEPRECATED_FOR(since, replacement)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - since
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1384
      start: 1383
    functionDepth: 0
    functionLinenumber: 1383
    functionLinenumberEnd: 1384
    functionName: JSON_HEDLEY_DEPRECATED
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_DEPRECATED(since)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - since
    - ','
    - replacement
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1385
      start: 1384
    functionDepth: 0
    functionLinenumber: 1384
    functionLinenumberEnd: 1385
    functionName: JSON_HEDLEY_DEPRECATED_FOR
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_DEPRECATED_FOR(since, replacement)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - since
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1390
      start: 1389
    functionDepth: 0
    functionLinenumber: 1389
    functionLinenumberEnd: 1390
    functionName: JSON_HEDLEY_DEPRECATED
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_DEPRECATED(since)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - since
    - ','
    - replacement
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1391
      start: 1390
    functionDepth: 0
    functionLinenumber: 1390
    functionLinenumberEnd: 1391
    functionName: JSON_HEDLEY_DEPRECATED_FOR
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_DEPRECATED_FOR(since, replacement)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - since
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1393
      start: 1392
    functionDepth: 0
    functionLinenumber: 1392
    functionLinenumberEnd: 1393
    functionName: JSON_HEDLEY_DEPRECATED
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_DEPRECATED(since)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - since
    - ','
    - replacement
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1394
      start: 1393
    functionDepth: 0
    functionLinenumber: 1393
    functionLinenumberEnd: 1394
    functionName: JSON_HEDLEY_DEPRECATED_FOR
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_DEPRECATED_FOR(since, replacement)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - available_since
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1408
      start: 1407
    functionDepth: 0
    functionLinenumber: 1407
    functionLinenumberEnd: 1408
    functionName: JSON_HEDLEY_UNAVAILABLE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_UNAVAILABLE(available_since)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1438
      start: 1437
    functionDepth: 0
    functionLinenumber: 1437
    functionLinenumberEnd: 1438
    functionName: JSON_HEDLEY_WARN_UNUSED_RESULT_MSG
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1441
      start: 1440
    functionDepth: 0
    functionLinenumber: 1440
    functionLinenumberEnd: 1441
    functionName: JSON_HEDLEY_WARN_UNUSED_RESULT_MSG
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1444
      start: 1443
    functionDepth: 0
    functionLinenumber: 1443
    functionLinenumberEnd: 1444
    functionName: JSON_HEDLEY_WARN_UNUSED_RESULT_MSG
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1447
      start: 1446
    functionDepth: 0
    functionLinenumber: 1446
    functionLinenumberEnd: 1447
    functionName: JSON_HEDLEY_WARN_UNUSED_RESULT_MSG
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - position
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1462
      start: 1461
    functionDepth: 0
    functionLinenumber: 1461
    functionLinenumberEnd: 1462
    functionName: JSON_HEDLEY_SENTINEL
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_SENTINEL(position)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1537
      start: 1536
    functionDepth: 0
    functionLinenumber: 1536
    functionLinenumberEnd: 1537
    functionName: JSON_HEDLEY_ASSUME
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_ASSUME(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1539
      start: 1538
    functionDepth: 0
    functionLinenumber: 1538
    functionLinenumberEnd: 1539
    functionName: JSON_HEDLEY_ASSUME
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_ASSUME(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1544
      start: 1543
    functionDepth: 0
    functionLinenumber: 1543
    functionLinenumberEnd: 1544
    functionName: JSON_HEDLEY_ASSUME
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_ASSUME(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1546
      start: 1545
    functionDepth: 0
    functionLinenumber: 1545
    functionLinenumberEnd: 1546
    functionName: JSON_HEDLEY_ASSUME
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_ASSUME(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1557
      start: 1556
    functionDepth: 0
    functionLinenumber: 1556
    functionLinenumberEnd: 1557
    functionName: JSON_HEDLEY_UNREACHABLE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_UNREACHABLE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1559
      start: 1558
    functionDepth: 0
    functionLinenumber: 1558
    functionLinenumberEnd: 1559
    functionName: JSON_HEDLEY_UNREACHABLE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_UNREACHABLE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1563
      start: 1562
    functionDepth: 0
    functionLinenumber: 1562
    functionLinenumberEnd: 1563
    functionName: JSON_HEDLEY_ASSUME
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_ASSUME(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1565
      start: 1564
    functionDepth: 0
    functionLinenumber: 1564
    functionLinenumberEnd: 1565
    functionName: JSON_HEDLEY_ASSUME
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_ASSUME(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1572
      start: 1571
    functionDepth: 0
    functionLinenumber: 1571
    functionLinenumberEnd: 1572
    functionName: JSON_HEDLEY_UNREACHABLE_RETURN
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_UNREACHABLE_RETURN(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1574
      start: 1573
    functionDepth: 0
    functionLinenumber: 1573
    functionLinenumberEnd: 1574
    functionName: JSON_HEDLEY_UNREACHABLE_RETURN
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_UNREACHABLE_RETURN(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - value
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1577
      start: 1576
    functionDepth: 0
    functionLinenumber: 1576
    functionLinenumberEnd: 1577
    functionName: JSON_HEDLEY_UNREACHABLE_RETURN
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_UNREACHABLE_RETURN(value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 2
    argNames:
    - (
    - )
    argTypes:
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1580
      start: 1579
    functionDepth: 0
    functionLinenumber: 1579
    functionLinenumberEnd: 1580
    functionName: JSON_HEDLEY_UNREACHABLE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_UNREACHABLE()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1605
      start: 1604
    functionDepth: 0
    functionLinenumber: 1604
    functionLinenumberEnd: 1605
    functionName: JSON_HEDLEY_NON_NULL
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_NON_NULL(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string_idx
    - ','
    - first_to_check
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1615
      start: 1614
    functionDepth: 0
    functionLinenumber: 1614
    functionLinenumberEnd: 1615
    functionName: JSON_HEDLEY_PRINTF_FORMAT
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string_idx
    - ','
    - first_to_check
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1617
      start: 1616
    functionDepth: 0
    functionLinenumber: 1616
    functionLinenumberEnd: 1617
    functionName: JSON_HEDLEY_PRINTF_FORMAT
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string_idx
    - ','
    - first_to_check
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1636
      start: 1635
    functionDepth: 0
    functionLinenumber: 1635
    functionLinenumberEnd: 1636
    functionName: JSON_HEDLEY_PRINTF_FORMAT
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - string_idx
    - ','
    - first_to_check
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1638
      start: 1637
    functionDepth: 0
    functionLinenumber: 1637
    functionLinenumberEnd: 1638
    functionName: JSON_HEDLEY_PRINTF_FORMAT
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1668
      start: 1667
    functionDepth: 0
    functionLinenumber: 1667
    functionLinenumberEnd: 1668
    functionName: JSON_HEDLEY_UNPREDICTABLE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_UNPREDICTABLE(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - expr
    - ','
    - value
    - ','
    - probability
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1674
      start: 1673
    functionDepth: 0
    functionLinenumber: 1673
    functionLinenumberEnd: 1674
    functionName: JSON_HEDLEY_PREDICT
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_PREDICT(expr, value, probability)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - probability
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1675
      start: 1674
    functionDepth: 0
    functionLinenumber: 1674
    functionLinenumberEnd: 1675
    functionName: JSON_HEDLEY_PREDICT_TRUE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_PREDICT_TRUE(expr, probability)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - probability
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1676
      start: 1675
    functionDepth: 0
    functionLinenumber: 1675
    functionLinenumberEnd: 1676
    functionName: JSON_HEDLEY_PREDICT_FALSE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_PREDICT_FALSE(expr, probability)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1677
      start: 1676
    functionDepth: 0
    functionLinenumber: 1676
    functionLinenumberEnd: 1677
    functionName: JSON_HEDLEY_LIKELY
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_LIKELY(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1678
      start: 1677
    functionDepth: 0
    functionLinenumber: 1677
    functionLinenumberEnd: 1678
    functionName: JSON_HEDLEY_UNLIKELY
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_UNLIKELY(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - expr
    - ','
    - expected
    - ','
    - probability
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1697
      start: 1695
    functionDepth: 0
    functionLinenumber: 1695
    functionLinenumberEnd: 1697
    functionName: JSON_HEDLEY_PREDICT
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_PREDICT(expr, expected, probability)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - probability
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1702
      start: 1697
    functionDepth: 0
    functionLinenumber: 1697
    functionLinenumberEnd: 1702
    functionName: JSON_HEDLEY_PREDICT_TRUE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_PREDICT_TRUE(expr, probability)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - probability
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1707
      start: 1702
    functionDepth: 0
    functionLinenumber: 1702
    functionLinenumberEnd: 1707
    functionName: JSON_HEDLEY_PREDICT_FALSE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_PREDICT_FALSE(expr, probability)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1708
      start: 1707
    functionDepth: 0
    functionLinenumber: 1707
    functionLinenumberEnd: 1708
    functionName: JSON_HEDLEY_LIKELY
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_LIKELY(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1709
      start: 1708
    functionDepth: 0
    functionLinenumber: 1708
    functionLinenumberEnd: 1709
    functionName: JSON_HEDLEY_UNLIKELY
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_UNLIKELY(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - expr
    - ','
    - expected
    - ','
    - probability
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1711
      start: 1710
    functionDepth: 0
    functionLinenumber: 1710
    functionLinenumberEnd: 1711
    functionName: JSON_HEDLEY_PREDICT
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_PREDICT(expr, expected, probability)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - probability
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1712
      start: 1711
    functionDepth: 0
    functionLinenumber: 1711
    functionLinenumberEnd: 1712
    functionName: JSON_HEDLEY_PREDICT_TRUE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_PREDICT_TRUE(expr, probability)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - probability
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1713
      start: 1712
    functionDepth: 0
    functionLinenumber: 1712
    functionLinenumberEnd: 1713
    functionName: JSON_HEDLEY_PREDICT_FALSE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_PREDICT_FALSE(expr, probability)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1714
      start: 1713
    functionDepth: 0
    functionLinenumber: 1713
    functionLinenumberEnd: 1714
    functionName: JSON_HEDLEY_LIKELY
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_LIKELY(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1715
      start: 1714
    functionDepth: 0
    functionLinenumber: 1714
    functionLinenumberEnd: 1715
    functionName: JSON_HEDLEY_UNLIKELY
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_UNLIKELY(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 1718
      start: 1717
    functionDepth: 0
    functionLinenumber: 1717
    functionLinenumberEnd: 1718
    functionName: JSON_HEDLEY_UNPREDICTABLE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_UNPREDICTABLE(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2060
      start: 2059
    functionDepth: 0
    functionLinenumber: 2059
    functionLinenumberEnd: 2060
    functionName: JSON_HEDLEY_ARRAY_PARAM
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_ARRAY_PARAM(name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2087
      start: 2086
    functionDepth: 0
    functionLinenumber: 2086
    functionLinenumberEnd: 2087
    functionName: JSON_HEDLEY_IS_CONSTANT
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_IS_CONSTANT(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2099
      start: 2098
    functionDepth: 0
    functionLinenumber: 2098
    functionLinenumberEnd: 2099
    functionName: JSON_HEDLEY_IS_CONSTEXPR_
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_IS_CONSTEXPR_(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2102
      start: 2101
    functionDepth: 0
    functionLinenumber: 2101
    functionLinenumberEnd: 2102
    functionName: JSON_HEDLEY_IS_CONSTEXPR_
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_IS_CONSTEXPR_(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2116
      start: 2115
    functionDepth: 0
    functionLinenumber: 2115
    functionLinenumberEnd: 2116
    functionName: JSON_HEDLEY_IS_CONSTEXPR_
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_IS_CONSTEXPR_(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2119
      start: 2118
    functionDepth: 0
    functionLinenumber: 2118
    functionLinenumberEnd: 2119
    functionName: JSON_HEDLEY_IS_CONSTEXPR_
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_IS_CONSTEXPR_(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2140
      start: 2131
    functionDepth: 0
    functionLinenumber: 2131
    functionLinenumberEnd: 2140
    functionName: JSON_HEDLEY_IS_CONSTEXPR_
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_IS_CONSTEXPR_(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2145
      start: 2144
    functionDepth: 0
    functionLinenumber: 2144
    functionLinenumberEnd: 2145
    functionName: JSON_HEDLEY_IS_CONSTANT
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_IS_CONSTANT(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2147
      start: 2146
    functionDepth: 0
    functionLinenumber: 2146
    functionLinenumberEnd: 2147
    functionName: JSON_HEDLEY_REQUIRE_CONSTEXPR
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_REQUIRE_CONSTEXPR(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2150
      start: 2149
    functionDepth: 0
    functionLinenumber: 2149
    functionLinenumberEnd: 2150
    functionName: JSON_HEDLEY_IS_CONSTANT
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_IS_CONSTANT(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2152
      start: 2151
    functionDepth: 0
    functionLinenumber: 2151
    functionLinenumberEnd: 2152
    functionName: JSON_HEDLEY_REQUIRE_CONSTEXPR
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_REQUIRE_CONSTEXPR(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2185
      start: 2184
    functionDepth: 0
    functionLinenumber: 2184
    functionLinenumberEnd: 2185
    functionName: JSON_HEDLEY_STATIC_ASSERT
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_STATIC_ASSERT(expr, message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - message
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2190
      start: 2189
    functionDepth: 0
    functionLinenumber: 2189
    functionLinenumberEnd: 2190
    functionName: JSON_HEDLEY_STATIC_ASSERT
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_STATIC_ASSERT(expr, message)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2220
      start: 2215
    functionDepth: 0
    functionLinenumber: 2215
    functionLinenumberEnd: 2220
    functionName: JSON_HEDLEY_MESSAGE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_MESSAGE(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2224
      start: 2223
    functionDepth: 0
    functionLinenumber: 2223
    functionLinenumberEnd: 2224
    functionName: JSON_HEDLEY_MESSAGE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_MESSAGE(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2226
      start: 2225
    functionDepth: 0
    functionLinenumber: 2225
    functionLinenumberEnd: 2226
    functionName: JSON_HEDLEY_MESSAGE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_MESSAGE(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2228
      start: 2227
    functionDepth: 0
    functionLinenumber: 2227
    functionLinenumberEnd: 2228
    functionName: JSON_HEDLEY_MESSAGE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_MESSAGE(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2230
      start: 2229
    functionDepth: 0
    functionLinenumber: 2229
    functionLinenumberEnd: 2230
    functionName: JSON_HEDLEY_MESSAGE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_MESSAGE(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2243
      start: 2238
    functionDepth: 0
    functionLinenumber: 2238
    functionLinenumberEnd: 2243
    functionName: JSON_HEDLEY_WARNING
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_WARNING(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2248
      start: 2247
    functionDepth: 0
    functionLinenumber: 2247
    functionLinenumberEnd: 2248
    functionName: JSON_HEDLEY_WARNING
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_WARNING(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2252
      start: 2251
    functionDepth: 0
    functionLinenumber: 2251
    functionLinenumberEnd: 2252
    functionName: JSON_HEDLEY_WARNING
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_WARNING(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2254
      start: 2253
    functionDepth: 0
    functionLinenumber: 2253
    functionLinenumberEnd: 2254
    functionName: JSON_HEDLEY_WARNING
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_WARNING(msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2269
      start: 2264
    functionDepth: 0
    functionLinenumber: 2264
    functionLinenumberEnd: 2269
    functionName: JSON_HEDLEY_REQUIRE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_REQUIRE(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2274
      start: 2269
    functionDepth: 0
    functionLinenumber: 2269
    functionLinenumberEnd: 2274
    functionName: JSON_HEDLEY_REQUIRE_MSG
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_REQUIRE_MSG(expr,msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2276
      start: 2275
    functionDepth: 0
    functionLinenumber: 2275
    functionLinenumberEnd: 2276
    functionName: JSON_HEDLEY_REQUIRE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_REQUIRE(expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - expr
    - ','
    - msg
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2277
      start: 2276
    functionDepth: 0
    functionLinenumber: 2276
    functionLinenumberEnd: 2277
    functionName: JSON_HEDLEY_REQUIRE_MSG
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_REQUIRE_MSG(expr,msg)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - T
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2302
      start: 2296
    functionDepth: 0
    functionLinenumber: 2296
    functionLinenumberEnd: 2302
    functionName: JSON_HEDLEY_FLAGS_CAST
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_FLAGS_CAST(T, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - T
    - ','
    - expr
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2304
      start: 2303
    functionDepth: 0
    functionLinenumber: 2303
    functionLinenumberEnd: 2304
    functionName: JSON_HEDLEY_FLAGS_CAST
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_FLAGS_CAST(T, expr)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2324
      start: 2323
    functionDepth: 0
    functionLinenumber: 2323
    functionLinenumberEnd: 2324
    functionName: JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2326
      start: 2325
    functionDepth: 0
    functionLinenumber: 2325
    functionLinenumberEnd: 2326
    functionName: JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - attribute
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2332
      start: 2331
    functionDepth: 0
    functionLinenumber: 2331
    functionLinenumberEnd: 2332
    functionName: JSON_HEDLEY_CLANG_HAS_ATTRIBUTE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_CLANG_HAS_ATTRIBUTE(attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - attribute
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2337
      start: 2336
    functionDepth: 0
    functionLinenumber: 2336
    functionLinenumberEnd: 2337
    functionName: JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE(attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - builtin
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2342
      start: 2341
    functionDepth: 0
    functionLinenumber: 2341
    functionLinenumberEnd: 2342
    functionName: JSON_HEDLEY_CLANG_HAS_BUILTIN
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_CLANG_HAS_BUILTIN(builtin)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - feature
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2347
      start: 2346
    functionDepth: 0
    functionLinenumber: 2346
    functionLinenumberEnd: 2347
    functionName: JSON_HEDLEY_CLANG_HAS_FEATURE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_CLANG_HAS_FEATURE(feature)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - extension
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2352
      start: 2351
    functionDepth: 0
    functionLinenumber: 2351
    functionLinenumberEnd: 2352
    functionName: JSON_HEDLEY_CLANG_HAS_EXTENSION
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_CLANG_HAS_EXTENSION(extension)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - attribute
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2357
      start: 2356
    functionDepth: 0
    functionLinenumber: 2356
    functionLinenumberEnd: 2357
    functionName: JSON_HEDLEY_CLANG_HAS_DECLSPEC_ATTRIBUTE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_CLANG_HAS_DECLSPEC_ATTRIBUTE(attribute)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - warning
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2362
      start: 2361
    functionDepth: 0
    functionLinenumber: 2361
    functionLinenumberEnd: 2362
    functionName: JSON_HEDLEY_CLANG_HAS_WARNING
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_HEDLEY_CLANG_HAS_WARNING(warning)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - exception
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2518
      start: 2517
    functionDepth: 0
    functionLinenumber: 2517
    functionLinenumberEnd: 2518
    functionName: JSON_THROW
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_THROW(exception)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - exception
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2520
      start: 2519
    functionDepth: 0
    functionLinenumber: 2519
    functionLinenumberEnd: 2520
    functionName: JSON_CATCH
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_CATCH(exception)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - exception
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2521
      start: 2520
    functionDepth: 0
    functionLinenumber: 2520
    functionLinenumberEnd: 2521
    functionName: JSON_INTERNAL_CATCH
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_INTERNAL_CATCH(exception)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - exception
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2524
      start: 2523
    functionDepth: 0
    functionLinenumber: 2523
    functionLinenumberEnd: 2524
    functionName: JSON_THROW
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_THROW(exception)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - exception
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2526
      start: 2525
    functionDepth: 0
    functionLinenumber: 2525
    functionLinenumberEnd: 2526
    functionName: JSON_CATCH
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_CATCH(exception)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - exception
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2527
      start: 2526
    functionDepth: 0
    functionLinenumber: 2526
    functionLinenumberEnd: 2527
    functionName: JSON_INTERNAL_CATCH
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_INTERNAL_CATCH(exception)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2553
      start: 2552
    functionDepth: 0
    functionLinenumber: 2552
    functionLinenumberEnd: 2553
    functionName: JSON_ASSERT
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_ASSERT(x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - ENUM_TYPE
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2592
      start: 2567
    functionDepth: 0
    functionLinenumber: 2567
    functionLinenumberEnd: 2592
    functionName: NLOHMANN_JSON_SERIALIZE_ENUM
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_SERIALIZE_ENUM(ENUM_TYPE, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - x
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2614
      start: 2613
    functionDepth: 0
    functionLinenumber: 2613
    functionLinenumberEnd: 2614
    functionName: NLOHMANN_JSON_EXPAND
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_EXPAND( x )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 133
    argNames:
    - (
    - _1
    - ','
    - _2
    - ','
    - _3
    - ','
    - _4
    - ','
    - _5
    - ','
    - _6
    - ','
    - _7
    - ','
    - _8
    - ','
    - _9
    - ','
    - _10
    - ','
    - _11
    - ','
    - _12
    - ','
    - _13
    - ','
    - _14
    - ','
    - _15
    - ','
    - _16
    - ','
    - _17
    - ','
    - _18
    - ','
    - _19
    - ','
    - _20
    - ','
    - _21
    - ','
    - _22
    - ','
    - _23
    - ','
    - _24
    - ','
    - _25
    - ','
    - _26
    - ','
    - _27
    - ','
    - _28
    - ','
    - _29
    - ','
    - _30
    - ','
    - _31
    - ','
    - _32
    - ','
    - _33
    - ','
    - _34
    - ','
    - _35
    - ','
    - _36
    - ','
    - _37
    - ','
    - _38
    - ','
    - _39
    - ','
    - _40
    - ','
    - _41
    - ','
    - _42
    - ','
    - _43
    - ','
    - _44
    - ','
    - _45
    - ','
    - _46
    - ','
    - _47
    - ','
    - _48
    - ','
    - _49
    - ','
    - _50
    - ','
    - _51
    - ','
    - _52
    - ','
    - _53
    - ','
    - _54
    - ','
    - _55
    - ','
    - _56
    - ','
    - _57
    - ','
    - _58
    - ','
    - _59
    - ','
    - _60
    - ','
    - _61
    - ','
    - _62
    - ','
    - _63
    - ','
    - _64
    - ','
    - NAME
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2615
      start: 2614
    functionDepth: 0
    functionLinenumber: 2614
    functionLinenumberEnd: 2615
    functionName: NLOHMANN_JSON_GET_MACRO
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_GET_MACRO(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11,
      _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27,
      _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43,
      _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59,
      _60, _61, _62, _63, _64, NAME,...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2680
      start: 2615
    functionDepth: 0
    functionLinenumber: 2615
    functionLinenumberEnd: 2680
    functionName: NLOHMANN_JSON_PASTE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE(...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - func
    - ','
    - v1
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2681
      start: 2680
    functionDepth: 0
    functionLinenumber: 2680
    functionLinenumberEnd: 2681
    functionName: NLOHMANN_JSON_PASTE2
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE2(func, v1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2682
      start: 2681
    functionDepth: 0
    functionLinenumber: 2681
    functionLinenumberEnd: 2682
    functionName: NLOHMANN_JSON_PASTE3
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE3(func, v1, v2)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2683
      start: 2682
    functionDepth: 0
    functionLinenumber: 2682
    functionLinenumberEnd: 2683
    functionName: NLOHMANN_JSON_PASTE4
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE4(func, v1, v2, v3)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 11
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2684
      start: 2683
    functionDepth: 0
    functionLinenumber: 2683
    functionLinenumberEnd: 2684
    functionName: NLOHMANN_JSON_PASTE5
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE5(func, v1, v2, v3, v4)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 13
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2685
      start: 2684
    functionDepth: 0
    functionLinenumber: 2684
    functionLinenumberEnd: 2685
    functionName: NLOHMANN_JSON_PASTE6
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE6(func, v1, v2, v3, v4, v5)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 15
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2686
      start: 2685
    functionDepth: 0
    functionLinenumber: 2685
    functionLinenumberEnd: 2686
    functionName: NLOHMANN_JSON_PASTE7
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE7(func, v1, v2, v3, v4, v5, v6)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 17
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2687
      start: 2686
    functionDepth: 0
    functionLinenumber: 2686
    functionLinenumberEnd: 2687
    functionName: NLOHMANN_JSON_PASTE8
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE8(func, v1, v2, v3, v4, v5, v6, v7)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 19
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2688
      start: 2687
    functionDepth: 0
    functionLinenumber: 2687
    functionLinenumberEnd: 2688
    functionName: NLOHMANN_JSON_PASTE9
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE9(func, v1, v2, v3, v4, v5, v6, v7, v8)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 21
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2689
      start: 2688
    functionDepth: 0
    functionLinenumber: 2688
    functionLinenumberEnd: 2689
    functionName: NLOHMANN_JSON_PASTE10
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE10(func, v1, v2, v3, v4, v5, v6, v7, v8, v9)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 23
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2690
      start: 2689
    functionDepth: 0
    functionLinenumber: 2689
    functionLinenumberEnd: 2690
    functionName: NLOHMANN_JSON_PASTE11
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE11(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 25
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2691
      start: 2690
    functionDepth: 0
    functionLinenumber: 2690
    functionLinenumberEnd: 2691
    functionName: NLOHMANN_JSON_PASTE12
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE12(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 27
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2692
      start: 2691
    functionDepth: 0
    functionLinenumber: 2691
    functionLinenumberEnd: 2692
    functionName: NLOHMANN_JSON_PASTE13
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE13(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 29
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2693
      start: 2692
    functionDepth: 0
    functionLinenumber: 2692
    functionLinenumberEnd: 2693
    functionName: NLOHMANN_JSON_PASTE14
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE14(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 31
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2694
      start: 2693
    functionDepth: 0
    functionLinenumber: 2693
    functionLinenumberEnd: 2694
    functionName: NLOHMANN_JSON_PASTE15
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE15(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 33
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2695
      start: 2694
    functionDepth: 0
    functionLinenumber: 2694
    functionLinenumberEnd: 2695
    functionName: NLOHMANN_JSON_PASTE16
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE16(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 35
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2696
      start: 2695
    functionDepth: 0
    functionLinenumber: 2695
    functionLinenumberEnd: 2696
    functionName: NLOHMANN_JSON_PASTE17
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE17(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 37
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2697
      start: 2696
    functionDepth: 0
    functionLinenumber: 2696
    functionLinenumberEnd: 2697
    functionName: NLOHMANN_JSON_PASTE18
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE18(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 39
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2698
      start: 2697
    functionDepth: 0
    functionLinenumber: 2697
    functionLinenumberEnd: 2698
    functionName: NLOHMANN_JSON_PASTE19
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE19(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 41
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2699
      start: 2698
    functionDepth: 0
    functionLinenumber: 2698
    functionLinenumberEnd: 2699
    functionName: NLOHMANN_JSON_PASTE20
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE20(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 43
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2700
      start: 2699
    functionDepth: 0
    functionLinenumber: 2699
    functionLinenumberEnd: 2700
    functionName: NLOHMANN_JSON_PASTE21
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE21(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 45
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2701
      start: 2700
    functionDepth: 0
    functionLinenumber: 2700
    functionLinenumberEnd: 2701
    functionName: NLOHMANN_JSON_PASTE22
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE22(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 47
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2702
      start: 2701
    functionDepth: 0
    functionLinenumber: 2701
    functionLinenumberEnd: 2702
    functionName: NLOHMANN_JSON_PASTE23
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE23(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 49
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2703
      start: 2702
    functionDepth: 0
    functionLinenumber: 2702
    functionLinenumberEnd: 2703
    functionName: NLOHMANN_JSON_PASTE24
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE24(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 51
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2704
      start: 2703
    functionDepth: 0
    functionLinenumber: 2703
    functionLinenumberEnd: 2704
    functionName: NLOHMANN_JSON_PASTE25
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE25(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 53
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2705
      start: 2704
    functionDepth: 0
    functionLinenumber: 2704
    functionLinenumberEnd: 2705
    functionName: NLOHMANN_JSON_PASTE26
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE26(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 55
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2706
      start: 2705
    functionDepth: 0
    functionLinenumber: 2705
    functionLinenumberEnd: 2706
    functionName: NLOHMANN_JSON_PASTE27
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE27(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 57
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2707
      start: 2706
    functionDepth: 0
    functionLinenumber: 2706
    functionLinenumberEnd: 2707
    functionName: NLOHMANN_JSON_PASTE28
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE28(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 59
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2708
      start: 2707
    functionDepth: 0
    functionLinenumber: 2707
    functionLinenumberEnd: 2708
    functionName: NLOHMANN_JSON_PASTE29
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE29(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 61
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2709
      start: 2708
    functionDepth: 0
    functionLinenumber: 2708
    functionLinenumberEnd: 2709
    functionName: NLOHMANN_JSON_PASTE30
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE30(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 63
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2710
      start: 2709
    functionDepth: 0
    functionLinenumber: 2709
    functionLinenumberEnd: 2710
    functionName: NLOHMANN_JSON_PASTE31
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE31(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 65
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2711
      start: 2710
    functionDepth: 0
    functionLinenumber: 2710
    functionLinenumberEnd: 2711
    functionName: NLOHMANN_JSON_PASTE32
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE32(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 67
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2712
      start: 2711
    functionDepth: 0
    functionLinenumber: 2711
    functionLinenumberEnd: 2712
    functionName: NLOHMANN_JSON_PASTE33
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE33(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 69
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2713
      start: 2712
    functionDepth: 0
    functionLinenumber: 2712
    functionLinenumberEnd: 2713
    functionName: NLOHMANN_JSON_PASTE34
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE34(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 71
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2714
      start: 2713
    functionDepth: 0
    functionLinenumber: 2713
    functionLinenumberEnd: 2714
    functionName: NLOHMANN_JSON_PASTE35
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE35(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 73
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2715
      start: 2714
    functionDepth: 0
    functionLinenumber: 2714
    functionLinenumberEnd: 2715
    functionName: NLOHMANN_JSON_PASTE36
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE36(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 75
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2716
      start: 2715
    functionDepth: 0
    functionLinenumber: 2715
    functionLinenumberEnd: 2716
    functionName: NLOHMANN_JSON_PASTE37
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE37(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 77
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2717
      start: 2716
    functionDepth: 0
    functionLinenumber: 2716
    functionLinenumberEnd: 2717
    functionName: NLOHMANN_JSON_PASTE38
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE38(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 79
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2718
      start: 2717
    functionDepth: 0
    functionLinenumber: 2717
    functionLinenumberEnd: 2718
    functionName: NLOHMANN_JSON_PASTE39
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE39(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 81
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2719
      start: 2718
    functionDepth: 0
    functionLinenumber: 2718
    functionLinenumberEnd: 2719
    functionName: NLOHMANN_JSON_PASTE40
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE40(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 83
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2720
      start: 2719
    functionDepth: 0
    functionLinenumber: 2719
    functionLinenumberEnd: 2720
    functionName: NLOHMANN_JSON_PASTE41
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE41(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 85
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - ','
    - v41
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2721
      start: 2720
    functionDepth: 0
    functionLinenumber: 2720
    functionLinenumberEnd: 2721
    functionName: NLOHMANN_JSON_PASTE42
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE42(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 87
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - ','
    - v41
    - ','
    - v42
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2722
      start: 2721
    functionDepth: 0
    functionLinenumber: 2721
    functionLinenumberEnd: 2722
    functionName: NLOHMANN_JSON_PASTE43
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE43(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 89
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - ','
    - v41
    - ','
    - v42
    - ','
    - v43
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2723
      start: 2722
    functionDepth: 0
    functionLinenumber: 2722
    functionLinenumberEnd: 2723
    functionName: NLOHMANN_JSON_PASTE44
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE44(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42,
      v43)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 91
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - ','
    - v41
    - ','
    - v42
    - ','
    - v43
    - ','
    - v44
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2724
      start: 2723
    functionDepth: 0
    functionLinenumber: 2723
    functionLinenumberEnd: 2724
    functionName: NLOHMANN_JSON_PASTE45
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE45(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42,
      v43, v44)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 93
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - ','
    - v41
    - ','
    - v42
    - ','
    - v43
    - ','
    - v44
    - ','
    - v45
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2725
      start: 2724
    functionDepth: 0
    functionLinenumber: 2724
    functionLinenumberEnd: 2725
    functionName: NLOHMANN_JSON_PASTE46
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE46(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42,
      v43, v44, v45)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 95
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - ','
    - v41
    - ','
    - v42
    - ','
    - v43
    - ','
    - v44
    - ','
    - v45
    - ','
    - v46
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2726
      start: 2725
    functionDepth: 0
    functionLinenumber: 2725
    functionLinenumberEnd: 2726
    functionName: NLOHMANN_JSON_PASTE47
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE47(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42,
      v43, v44, v45, v46)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 97
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - ','
    - v41
    - ','
    - v42
    - ','
    - v43
    - ','
    - v44
    - ','
    - v45
    - ','
    - v46
    - ','
    - v47
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2727
      start: 2726
    functionDepth: 0
    functionLinenumber: 2726
    functionLinenumberEnd: 2727
    functionName: NLOHMANN_JSON_PASTE48
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE48(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42,
      v43, v44, v45, v46, v47)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 99
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - ','
    - v41
    - ','
    - v42
    - ','
    - v43
    - ','
    - v44
    - ','
    - v45
    - ','
    - v46
    - ','
    - v47
    - ','
    - v48
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2728
      start: 2727
    functionDepth: 0
    functionLinenumber: 2727
    functionLinenumberEnd: 2728
    functionName: NLOHMANN_JSON_PASTE49
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE49(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42,
      v43, v44, v45, v46, v47, v48)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 101
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - ','
    - v41
    - ','
    - v42
    - ','
    - v43
    - ','
    - v44
    - ','
    - v45
    - ','
    - v46
    - ','
    - v47
    - ','
    - v48
    - ','
    - v49
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2729
      start: 2728
    functionDepth: 0
    functionLinenumber: 2728
    functionLinenumberEnd: 2729
    functionName: NLOHMANN_JSON_PASTE50
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE50(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42,
      v43, v44, v45, v46, v47, v48, v49)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 103
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - ','
    - v41
    - ','
    - v42
    - ','
    - v43
    - ','
    - v44
    - ','
    - v45
    - ','
    - v46
    - ','
    - v47
    - ','
    - v48
    - ','
    - v49
    - ','
    - v50
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2730
      start: 2729
    functionDepth: 0
    functionLinenumber: 2729
    functionLinenumberEnd: 2730
    functionName: NLOHMANN_JSON_PASTE51
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE51(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42,
      v43, v44, v45, v46, v47, v48, v49, v50)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 105
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - ','
    - v41
    - ','
    - v42
    - ','
    - v43
    - ','
    - v44
    - ','
    - v45
    - ','
    - v46
    - ','
    - v47
    - ','
    - v48
    - ','
    - v49
    - ','
    - v50
    - ','
    - v51
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2731
      start: 2730
    functionDepth: 0
    functionLinenumber: 2730
    functionLinenumberEnd: 2731
    functionName: NLOHMANN_JSON_PASTE52
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE52(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42,
      v43, v44, v45, v46, v47, v48, v49, v50, v51)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 107
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - ','
    - v41
    - ','
    - v42
    - ','
    - v43
    - ','
    - v44
    - ','
    - v45
    - ','
    - v46
    - ','
    - v47
    - ','
    - v48
    - ','
    - v49
    - ','
    - v50
    - ','
    - v51
    - ','
    - v52
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2732
      start: 2731
    functionDepth: 0
    functionLinenumber: 2731
    functionLinenumberEnd: 2732
    functionName: NLOHMANN_JSON_PASTE53
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE53(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42,
      v43, v44, v45, v46, v47, v48, v49, v50, v51, v52)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 109
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - ','
    - v41
    - ','
    - v42
    - ','
    - v43
    - ','
    - v44
    - ','
    - v45
    - ','
    - v46
    - ','
    - v47
    - ','
    - v48
    - ','
    - v49
    - ','
    - v50
    - ','
    - v51
    - ','
    - v52
    - ','
    - v53
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2733
      start: 2732
    functionDepth: 0
    functionLinenumber: 2732
    functionLinenumberEnd: 2733
    functionName: NLOHMANN_JSON_PASTE54
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE54(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42,
      v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 111
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - ','
    - v41
    - ','
    - v42
    - ','
    - v43
    - ','
    - v44
    - ','
    - v45
    - ','
    - v46
    - ','
    - v47
    - ','
    - v48
    - ','
    - v49
    - ','
    - v50
    - ','
    - v51
    - ','
    - v52
    - ','
    - v53
    - ','
    - v54
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2734
      start: 2733
    functionDepth: 0
    functionLinenumber: 2733
    functionLinenumberEnd: 2734
    functionName: NLOHMANN_JSON_PASTE55
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE55(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42,
      v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 113
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - ','
    - v41
    - ','
    - v42
    - ','
    - v43
    - ','
    - v44
    - ','
    - v45
    - ','
    - v46
    - ','
    - v47
    - ','
    - v48
    - ','
    - v49
    - ','
    - v50
    - ','
    - v51
    - ','
    - v52
    - ','
    - v53
    - ','
    - v54
    - ','
    - v55
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2735
      start: 2734
    functionDepth: 0
    functionLinenumber: 2734
    functionLinenumberEnd: 2735
    functionName: NLOHMANN_JSON_PASTE56
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE56(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42,
      v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 115
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - ','
    - v41
    - ','
    - v42
    - ','
    - v43
    - ','
    - v44
    - ','
    - v45
    - ','
    - v46
    - ','
    - v47
    - ','
    - v48
    - ','
    - v49
    - ','
    - v50
    - ','
    - v51
    - ','
    - v52
    - ','
    - v53
    - ','
    - v54
    - ','
    - v55
    - ','
    - v56
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2736
      start: 2735
    functionDepth: 0
    functionLinenumber: 2735
    functionLinenumberEnd: 2736
    functionName: NLOHMANN_JSON_PASTE57
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE57(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42,
      v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 117
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - ','
    - v41
    - ','
    - v42
    - ','
    - v43
    - ','
    - v44
    - ','
    - v45
    - ','
    - v46
    - ','
    - v47
    - ','
    - v48
    - ','
    - v49
    - ','
    - v50
    - ','
    - v51
    - ','
    - v52
    - ','
    - v53
    - ','
    - v54
    - ','
    - v55
    - ','
    - v56
    - ','
    - v57
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2737
      start: 2736
    functionDepth: 0
    functionLinenumber: 2736
    functionLinenumberEnd: 2737
    functionName: NLOHMANN_JSON_PASTE58
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE58(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42,
      v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 119
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - ','
    - v41
    - ','
    - v42
    - ','
    - v43
    - ','
    - v44
    - ','
    - v45
    - ','
    - v46
    - ','
    - v47
    - ','
    - v48
    - ','
    - v49
    - ','
    - v50
    - ','
    - v51
    - ','
    - v52
    - ','
    - v53
    - ','
    - v54
    - ','
    - v55
    - ','
    - v56
    - ','
    - v57
    - ','
    - v58
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2738
      start: 2737
    functionDepth: 0
    functionLinenumber: 2737
    functionLinenumberEnd: 2738
    functionName: NLOHMANN_JSON_PASTE59
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE59(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42,
      v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 121
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - ','
    - v41
    - ','
    - v42
    - ','
    - v43
    - ','
    - v44
    - ','
    - v45
    - ','
    - v46
    - ','
    - v47
    - ','
    - v48
    - ','
    - v49
    - ','
    - v50
    - ','
    - v51
    - ','
    - v52
    - ','
    - v53
    - ','
    - v54
    - ','
    - v55
    - ','
    - v56
    - ','
    - v57
    - ','
    - v58
    - ','
    - v59
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2739
      start: 2738
    functionDepth: 0
    functionLinenumber: 2738
    functionLinenumberEnd: 2739
    functionName: NLOHMANN_JSON_PASTE60
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE60(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42,
      v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58,
      v59)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 123
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - ','
    - v41
    - ','
    - v42
    - ','
    - v43
    - ','
    - v44
    - ','
    - v45
    - ','
    - v46
    - ','
    - v47
    - ','
    - v48
    - ','
    - v49
    - ','
    - v50
    - ','
    - v51
    - ','
    - v52
    - ','
    - v53
    - ','
    - v54
    - ','
    - v55
    - ','
    - v56
    - ','
    - v57
    - ','
    - v58
    - ','
    - v59
    - ','
    - v60
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2740
      start: 2739
    functionDepth: 0
    functionLinenumber: 2739
    functionLinenumberEnd: 2740
    functionName: NLOHMANN_JSON_PASTE61
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE61(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42,
      v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58,
      v59, v60)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 125
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - ','
    - v41
    - ','
    - v42
    - ','
    - v43
    - ','
    - v44
    - ','
    - v45
    - ','
    - v46
    - ','
    - v47
    - ','
    - v48
    - ','
    - v49
    - ','
    - v50
    - ','
    - v51
    - ','
    - v52
    - ','
    - v53
    - ','
    - v54
    - ','
    - v55
    - ','
    - v56
    - ','
    - v57
    - ','
    - v58
    - ','
    - v59
    - ','
    - v60
    - ','
    - v61
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2741
      start: 2740
    functionDepth: 0
    functionLinenumber: 2740
    functionLinenumberEnd: 2741
    functionName: NLOHMANN_JSON_PASTE62
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE62(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42,
      v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58,
      v59, v60, v61)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 127
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - ','
    - v41
    - ','
    - v42
    - ','
    - v43
    - ','
    - v44
    - ','
    - v45
    - ','
    - v46
    - ','
    - v47
    - ','
    - v48
    - ','
    - v49
    - ','
    - v50
    - ','
    - v51
    - ','
    - v52
    - ','
    - v53
    - ','
    - v54
    - ','
    - v55
    - ','
    - v56
    - ','
    - v57
    - ','
    - v58
    - ','
    - v59
    - ','
    - v60
    - ','
    - v61
    - ','
    - v62
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2742
      start: 2741
    functionDepth: 0
    functionLinenumber: 2741
    functionLinenumberEnd: 2742
    functionName: NLOHMANN_JSON_PASTE63
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE63(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42,
      v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58,
      v59, v60, v61, v62)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 129
    argNames:
    - (
    - func
    - ','
    - v1
    - ','
    - v2
    - ','
    - v3
    - ','
    - v4
    - ','
    - v5
    - ','
    - v6
    - ','
    - v7
    - ','
    - v8
    - ','
    - v9
    - ','
    - v10
    - ','
    - v11
    - ','
    - v12
    - ','
    - v13
    - ','
    - v14
    - ','
    - v15
    - ','
    - v16
    - ','
    - v17
    - ','
    - v18
    - ','
    - v19
    - ','
    - v20
    - ','
    - v21
    - ','
    - v22
    - ','
    - v23
    - ','
    - v24
    - ','
    - v25
    - ','
    - v26
    - ','
    - v27
    - ','
    - v28
    - ','
    - v29
    - ','
    - v30
    - ','
    - v31
    - ','
    - v32
    - ','
    - v33
    - ','
    - v34
    - ','
    - v35
    - ','
    - v36
    - ','
    - v37
    - ','
    - v38
    - ','
    - v39
    - ','
    - v40
    - ','
    - v41
    - ','
    - v42
    - ','
    - v43
    - ','
    - v44
    - ','
    - v45
    - ','
    - v46
    - ','
    - v47
    - ','
    - v48
    - ','
    - v49
    - ','
    - v50
    - ','
    - v51
    - ','
    - v52
    - ','
    - v53
    - ','
    - v54
    - ','
    - v55
    - ','
    - v56
    - ','
    - v57
    - ','
    - v58
    - ','
    - v59
    - ','
    - v60
    - ','
    - v61
    - ','
    - v62
    - ','
    - v63
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2743
      start: 2742
    functionDepth: 0
    functionLinenumber: 2742
    functionLinenumberEnd: 2743
    functionName: NLOHMANN_JSON_PASTE64
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_PASTE64(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10,
      v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26,
      v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42,
      v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58,
      v59, v60, v61, v62, v63)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v1
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2745
      start: 2744
    functionDepth: 0
    functionLinenumber: 2744
    functionLinenumberEnd: 2745
    functionName: NLOHMANN_JSON_TO
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_TO(v1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v1
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2746
      start: 2745
    functionDepth: 0
    functionLinenumber: 2745
    functionLinenumberEnd: 2746
    functionName: NLOHMANN_JSON_FROM
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_FROM(v1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - v1
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2747
      start: 2746
    functionDepth: 0
    functionLinenumber: 2746
    functionLinenumberEnd: 2747
    functionName: NLOHMANN_JSON_FROM_WITH_DEFAULT
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_FROM_WITH_DEFAULT(v1)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Type
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2756
      start: 2753
    functionDepth: 0
    functionLinenumber: 2753
    functionLinenumberEnd: 2756
    functionName: NLOHMANN_DEFINE_TYPE_INTRUSIVE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_DEFINE_TYPE_INTRUSIVE(Type, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Type
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2760
      start: 2757
    functionDepth: 0
    functionLinenumber: 2757
    functionLinenumberEnd: 2760
    functionName: NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(Type, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Type
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2763
      start: 2761
    functionDepth: 0
    functionLinenumber: 2761
    functionLinenumberEnd: 2763
    functionName: NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE(Type, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Type
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2772
      start: 2769
    functionDepth: 0
    functionLinenumber: 2769
    functionLinenumberEnd: 2772
    functionName: NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(Type, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Type
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2775
      start: 2773
    functionDepth: 0
    functionLinenumber: 2773
    functionLinenumberEnd: 2775
    functionName: NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(Type, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - Type
    - ','
    - '...'
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2779
      start: 2776
    functionDepth: 0
    functionLinenumber: 2776
    functionLinenumberEnd: 2779
    functionName: NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(Type, ...)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 3
    argNames:
    - (
    - std_name
    - )
    argTypes:
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2811
      start: 2786
    functionDepth: 0
    functionLinenumber: 2786
    functionLinenumberEnd: 2811
    functionName: NLOHMANN_CAN_CALL_STD_FUNC_IMPL
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_CAN_CALL_STD_FUNC_IMPL(std_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2912,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2913,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2915,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2915,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2921,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2921,1
    - Dst: std::is_lt
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2932,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2936
      start: 2840
    functionDepth: 1
    functionLinenumber: 2840
    functionLinenumberEnd: 2936
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<std::size_t>
    - std::array::size
    - std::is_lt
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2912,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2913,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2915,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2915,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2921,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2921,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 6
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - value_t
    - value_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2923
      start: 2902
    functionDepth: 1
    functionLinenumber: 2902
    functionLinenumberEnd: 2923
    functionName: operator<(const value_t lhs, const value_t rhs) noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<std::size_t>
    - std::array::size
    linkageType: ''
    returnType: bool
    signature: bool operator<(const value_t lhs, const value_t rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::is_lt
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2932,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - value_t
    - value_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2933
      start: 2930
    functionDepth: 0
    functionLinenumber: 2930
    functionLinenumberEnd: 2933
    functionName: operator<(const value_t lhs, const value_t rhs) noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::is_lt
    linkageType: ''
    returnType: bool
    signature: bool operator<(const value_t lhs, const value_t rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2974,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2974,1
    - Dst: find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2975,1
    - Dst: replace
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2977,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2977,1
    - Dst: find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2978,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2978,1
    - Dst: replace_substring
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2992,1
    - Dst: replace_substring
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2993,1
    - Dst: replace_substring
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3007,1
    - Dst: replace_substring
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3008,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3011
      start: 2937
    functionDepth: 1
    functionLinenumber: 2937
    functionLinenumberEnd: 3011
    functionName: NLOHMANN_JSON_NAMESPACE_BEGIN
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - replace
    - JSON_ASSERT
    - find
    - empty
    - replace_substring
    - size
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_END
    signature: NLOHMANN_JSON_NAMESPACE_END NLOHMANN_JSON_NAMESPACE_BEGIN
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2974,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2974,1
    - Dst: find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2975,1
    - Dst: replace
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2977,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2977,1
    - Dst: find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2978,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2978,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 3
    argNames:
    - ' s'
    - ' f'
    - ' t'
    argTypes:
    - StringType
    - StringType
    - StringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2980
      start: 2971
    functionDepth: 1
    functionLinenumber: 2971
    functionLinenumberEnd: 2980
    functionName: replace_substring
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - replace
    - JSON_ASSERT
    - find
    - empty
    - size
    linkageType: ''
    returnType: void
    signature: "void replace_substring(StringType& s, const StringType& f,\n                              const
      StringType& t)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: replace_substring
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2992,1
    - Dst: replace_substring
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:2993,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - s
    argTypes:
    - StringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 2995
      start: 2990
    functionDepth: 2
    functionLinenumber: 2990
    functionLinenumberEnd: 2995
    functionName: escape
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - replace_substring
    linkageType: ''
    returnType: StringType
    signature: StringType escape(StringType s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: replace_substring
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3007,1
    - Dst: replace_substring
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3008,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - StringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3009
      start: 3005
    functionDepth: 2
    functionLinenumber: 3005
    functionLinenumberEnd: 3009
    functionName: unescape
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - replace_substring
    linkageType: ''
    returnType: void
    signature: void unescape(StringType& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3051
      start: 3030
    functionDepth: 0
    functionLinenumber: 3030
    functionLinenumberEnd: 3051
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3048
      start: 3045
    functionDepth: 0
    functionLinenumber: 3045
    functionLinenumberEnd: 3048
    functionName: operator size_t() const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator size_t() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3224,1
    - Dst: std::forward<Args>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3227
      start: 3076
    functionDepth: 0
    functionLinenumber: 3076
    functionLinenumberEnd: 3227
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    - static_cast<T>
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3128
      start: 3125
    functionDepth: 0
    functionLinenumber: 3125
    functionLinenumberEnd: 3128
    functionName: size
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1093
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t size() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3224,1
    - Dst: std::forward<Args>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3224,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3225
      start: 3222
    functionDepth: 0
    functionLinenumber: 3222
    functionLinenumberEnd: 3225
    functionName: make_array
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    - static_cast<T>
    linkageType: ''
    returnType: std::array<T, sizeof...(Args)>
    signature: std::array<T, sizeof...(Args)> make_array(Args&& ... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3310
      start: 3267
    functionDepth: 0
    functionLinenumber: 3267
    functionLinenumberEnd: 3310
    functionName: detail
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN detail
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: key_to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3517,1
    - Dst: std::declval<Args>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3517,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3520,1
    - Dst: std::declval<Args>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3520,1
    - Dst: std::declval<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3523,1
    - Dst: static_cast<int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3617,1
    - Dst: static_cast<char_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3622,1
    - Dst: static_cast<int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3627,1
    - Dst: static_cast<int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3641,1
    - Dst: static_cast<char_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3646,1
    - Dst: static_cast<int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3651,1
    - Dst: std::declval<R&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3744,1
    - Dst: std::declval<ConstructibleStringType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3828,1
    - Dst: std::declval<Compare>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3981,1
    - Dst: std::declval<A>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3981,1
    - Dst: std::declval<B>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3981,1
    - Dst: std::declval<Compare>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3982,1
    - Dst: std::declval<B>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3982,1
    - Dst: std::declval<A>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3982,1
    - Dst: std::declval<ObjectType&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4019,1
    - Dst: std::declval<KeyType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4019,1
    - Dst: test
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4045,1
    - Dst: static_cast<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4052,1
    - Dst: static_cast<CommonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4091,1
    - Dst: static_cast<CommonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4091,1
    - Dst: static_cast<CommonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4101,1
    - Dst: static_cast<CommonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4101,1
    - Dst: static_cast<CommonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4111,1
    - Dst: static_cast<CommonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4111,1
    - Dst: static_cast<CommonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4121,1
    - Dst: static_cast<CommonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4121,1
    - Dst: static_cast<CommonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4122,1
    - Dst: static_cast<CommonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4122,1
    - Dst: test
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4136,1
    - Dst: test
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4152,1
    CyclomaticComplexity: 48
    EdgeCount: 48
    ICount: 35
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4207
      start: 3438
    functionDepth: 14
    functionLinenumber: 3438
    functionLinenumberEnd: 4207
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - test
    - std::declval<A>
    - std::declval<KeyType>
    - std::declval<ObjectType&>
    - std::declval<B>
    - std::declval<Args>
    - static_cast<T>
    - static_cast<CommonType>
    - std::declval<T>
    - static_cast<char_type>
    - std::declval<Compare>
    - from_json
    - std::declval<R&>
    - static_cast<int_type>
    - key_to_json
    - std::declval<ConstructibleStringType>
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3618
      start: 3615
    functionDepth: 0
    functionLinenumber: 3615
    functionLinenumberEnd: 3618
    functionName: to_int_type
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - static_cast<int_type>
    linkageType: ''
    returnType: int_type
    signature: int_type to_int_type(char_type c) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3622,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3623
      start: 3620
    functionDepth: 0
    functionLinenumber: 3620
    functionLinenumberEnd: 3623
    functionName: to_char_type
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - static_cast<char_type>
    linkageType: ''
    returnType: char_type
    signature: char_type to_char_type(int_type i) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3627,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3628
      start: 3625
    functionDepth: 0
    functionLinenumber: 3625
    functionLinenumberEnd: 3628
    functionName: eof
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 37
    functionsReached:
    - static_cast<int_type>
    linkageType: ''
    returnType: int_type
    signature: int_type eof() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3641,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3642
      start: 3639
    functionDepth: 0
    functionLinenumber: 3639
    functionLinenumberEnd: 3642
    functionName: to_int_type
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - static_cast<int_type>
    linkageType: ''
    returnType: int_type
    signature: int_type to_int_type(char_type c) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<char_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3646,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - int_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3647
      start: 3644
    functionDepth: 0
    functionLinenumber: 3644
    functionLinenumberEnd: 3647
    functionName: to_char_type
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - static_cast<char_type>
    linkageType: ''
    returnType: char_type
    signature: char_type to_char_type(int_type i) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:3651,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 3652
      start: 3649
    functionDepth: 0
    functionLinenumber: 3649
    functionLinenumberEnd: 3652
    functionName: eof
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 37
    functionsReached:
    - static_cast<int_type>
    linkageType: ''
    returnType: int_type
    signature: int_type eof() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4052,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4053
      start: 4050
    functionDepth: 0
    functionLinenumber: 4050
    functionLinenumberEnd: 4053
    functionName: conditional_static_cast
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<T>
    linkageType: ''
    returnType: T
    signature: T conditional_static_cast(U value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - U
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4059
      start: 4056
    functionDepth: 0
    functionLinenumber: 4056
    functionLinenumberEnd: 4059
    functionName: conditional_static_cast
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: T
    signature: T conditional_static_cast(U value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<CommonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4091,1
    - Dst: static_cast<CommonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4091,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4092
      start: 4088
    functionDepth: 0
    functionLinenumber: 4088
    functionLinenumberEnd: 4092
    functionName: test
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - static_cast<CommonType>
    linkageType: ''
    returnType: bool
    signature: bool test(T val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<CommonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4101,1
    - Dst: static_cast<CommonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4101,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4102
      start: 4098
    functionDepth: 0
    functionLinenumber: 4098
    functionLinenumberEnd: 4102
    functionName: test
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - static_cast<CommonType>
    linkageType: ''
    returnType: bool
    signature: bool test(T val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<CommonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4111,1
    - Dst: static_cast<CommonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4111,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4112
      start: 4108
    functionDepth: 0
    functionLinenumber: 4108
    functionLinenumberEnd: 4112
    functionName: test
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - static_cast<CommonType>
    linkageType: ''
    returnType: bool
    signature: bool test(T val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<CommonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4121,1
    - Dst: static_cast<CommonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4121,1
    - Dst: static_cast<CommonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4122,1
    - Dst: static_cast<CommonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4123
      start: 4118
    functionDepth: 0
    functionLinenumber: 4118
    functionLinenumberEnd: 4123
    functionName: test
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - static_cast<CommonType>
    linkageType: ''
    returnType: bool
    signature: bool test(T val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4137
      start: 4134
    functionDepth: 1
    functionLinenumber: 4134
    functionLinenumberEnd: 4137
    functionName: test
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - test
    linkageType: ''
    returnType: bool
    signature: bool test(T val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4146
      start: 4143
    functionDepth: 0
    functionLinenumber: 4143
    functionLinenumberEnd: 4146
    functionName: test
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool test(T /*val*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: test
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - val
    argTypes:
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4153
      start: 4150
    functionDepth: 1
    functionLinenumber: 4150
    functionLinenumberEnd: 4153
    functionName: value_in_range_of
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - test
    linkageType: ''
    returnType: bool
    signature: bool value_in_range_of(T val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4175
      start: 4166
    functionDepth: 0
    functionLinenumber: 4166
    functionLinenumberEnd: 4175
    functionName: impl::is_c_string
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_c_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4175
      start: 4166
    functionDepth: 0
    functionLinenumber: 4166
    functionLinenumberEnd: 4175
    functionName: impl::is_c_string
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_c_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4197
      start: 4194
    functionDepth: 0
    functionLinenumber: 4194
    functionLinenumberEnd: 4197
    functionName: impl::is_transparent
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_transparent()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4197
      start: 4194
    functionDepth: 0
    functionLinenumber: 4194
    functionLinenumberEnd: 4197
    functionName: impl::is_transparent
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_transparent()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat_length
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4248,1
    - Dst: ::strlen
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4255,1
    - Dst: concat_length
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4255,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4261,1
    - Dst: concat_length
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4261,1
    - Dst: std::declval<StringType&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4269,1
    - Dst: std::declval < Arg && >
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4269,1
    - Dst: std::declval<StringType&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4275,1
    - Dst: std::declval < Arg && >
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4275,1
    - Dst: std::declval<StringType&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4281,1
    - Dst: std::declval<const Arg&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4281,1
    - Dst: std::declval<const Arg&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4281,1
    - Dst: std::declval<StringType&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4287,1
    - Dst: std::declval<const Arg&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4287,1
    - Dst: std::declval<const Arg&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4287,1
    - Dst: append
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4314,1
    - Dst: std::forward<Arg>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4314,1
    - Dst: concat_into
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4315,1
    - Dst: std::forward<Args>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4315,1
    - Dst: std::forward<Arg>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4323,1
    - Dst: concat_into
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4324,1
    - Dst: std::forward<Args>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4324,1
    - Dst: append
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4333,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4333,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4333,1
    - Dst: concat_into
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4334,1
    - Dst: std::forward<Args>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4334,1
    - Dst: append
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4344,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4344,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4344,1
    - Dst: concat_into
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4345,1
    - Dst: std::forward<Args>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4345,1
    - Dst: OutStringType::reserve
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4352,1
    - Dst: concat_length
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4352,1
    - Dst: concat_into
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4353,1
    - Dst: std::forward<Args>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4353,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4357
      start: 4230
    functionDepth: 1
    functionLinenumber: 4230
    functionLinenumberEnd: 4357
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - OutStringType::reserve
    - data
    - end
    - std::forward<Arg>
    - std::forward<Args>
    - concat_into
    - std::declval<StringType&>
    - ::strlen
    - begin
    - std::declval < Arg && >
    - concat_length
    - std::declval<const Arg&>
    - append
    - size
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4237
      start: 4234
    functionDepth: 0
    functionLinenumber: 4234
    functionLinenumberEnd: 4237
    functionName: concat_length
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t concat_length()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat_length
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4249
      start: 4246
    functionDepth: 1
    functionLinenumber: 4246
    functionLinenumberEnd: 4249
    functionName: concat_length
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - concat_length
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t concat_length(const char /*c*/, const Args& ... rest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::strlen
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4255,1
    - Dst: concat_length
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4255,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - cstr
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4256
      start: 4252
    functionDepth: 1
    functionLinenumber: 4252
    functionLinenumberEnd: 4256
    functionName: concat_length
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 3
    functionsReached:
    - concat_length
    - ::strlen
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t concat_length(const char* cstr, const Args& ... rest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4261,1
    - Dst: concat_length
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4261,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' str'
    argTypes:
    - StringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4262
      start: 4259
    functionDepth: 1
    functionLinenumber: 4259
    functionLinenumberEnd: 4262
    functionName: concat_length
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - concat_length
    - size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t concat_length(const StringType& str, const Args& ... rest)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4266
      start: 4265
    functionDepth: 0
    functionLinenumber: 4265
    functionLinenumberEnd: 4266
    functionName: concat_into
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void concat_into(OutStringType& /*out*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4314,1
    - Dst: std::forward<Arg>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4314,1
    - Dst: concat_into
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4315,1
    - Dst: std::forward<Args>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4315,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - ' arg'
    argTypes:
    - OutStringType
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4316
      start: 4312
    functionDepth: 1
    functionLinenumber: 4312
    functionLinenumberEnd: 4316
    functionName: concat_into
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - std::forward<Args>
    - concat_into
    - std::forward<Arg>
    - append
    linkageType: ''
    returnType: void
    signature: void concat_into(OutStringType& out, Arg && arg, Args && ... rest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<Arg>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4323,1
    - Dst: concat_into
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4324,1
    - Dst: std::forward<Args>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4324,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - ' arg'
    argTypes:
    - OutStringType
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4325
      start: 4321
    functionDepth: 1
    functionLinenumber: 4321
    functionLinenumberEnd: 4325
    functionName: concat_into
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 3
    functionsReached:
    - std::forward<Args>
    - concat_into
    - std::forward<Arg>
    linkageType: ''
    returnType: void
    signature: void concat_into(OutStringType& out, Arg&& arg, Args&& ... rest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4333,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4333,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4333,1
    - Dst: concat_into
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4334,1
    - Dst: std::forward<Args>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4334,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - ' arg'
    argTypes:
    - OutStringType
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4335
      start: 4331
    functionDepth: 1
    functionLinenumber: 4331
    functionLinenumberEnd: 4335
    functionName: concat_into
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - end
    - std::forward<Args>
    - concat_into
    - begin
    - append
    linkageType: ''
    returnType: void
    signature: void concat_into(OutStringType& out, const Arg& arg, Args&& ... rest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4344,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4344,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4344,1
    - Dst: concat_into
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4345,1
    - Dst: std::forward<Args>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4345,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 2
    argNames:
    - ' out'
    - ' arg'
    argTypes:
    - OutStringType
    - Arg
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4346
      start: 4342
    functionDepth: 1
    functionLinenumber: 4342
    functionLinenumberEnd: 4346
    functionName: concat_into
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 5
    functionsReached:
    - data
    - std::forward<Args>
    - concat_into
    - append
    - size
    linkageType: ''
    returnType: void
    signature: void concat_into(OutStringType& out, const Arg& arg, Args&& ... rest)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: OutStringType::reserve
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4352,1
    - Dst: concat_length
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4352,1
    - Dst: concat_into
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4353,1
    - Dst: std::forward<Args>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4353,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4355
      start: 4349
    functionDepth: 1
    functionLinenumber: 4349
    functionLinenumberEnd: 4355
    functionName: concat
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - concat_length
    - concat_into
    - std::forward<Args>
    - OutStringType::reserve
    linkageType: ''
    returnType: OutStringType
    signature: OutStringType concat(Args && ... args)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: what
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4377,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4389,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4389,1
    - Dst: auto*::m_parent::type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4404,1
    - Dst: auto*::m_parent::m_data::m_value::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4408,1
    - Dst: auto*::m_parent::m_data::m_value::array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4410,1
    - Dst: std::vector::emplace_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4412,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4412,1
    - Dst: std::vector::emplace_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4425,1
    - Dst: first::c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4425,1
    - Dst: std::vector::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4445,1
    - Dst: std::accumulate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4450,1
    - Dst: std::vector::rbegin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4450,1
    - Dst: std::vector::rend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4450,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4453,1
    - Dst: escape
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4453,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4455,1
    - Dst: static_cast<void>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4457,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4484,1
    - Dst: exception::name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4484,1
    - Dst: position_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4485,1
    - Dst: exception::diagnostics
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4485,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4486,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4492,1
    - Dst: exception::name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4492,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4493,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4493,1
    - Dst: exception::diagnostics
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4494,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4495,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4515,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4515,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4516,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4528,1
    - Dst: exception::name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4528,1
    - Dst: exception::diagnostics
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4528,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4529,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4546,1
    - Dst: exception::name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4546,1
    - Dst: exception::diagnostics
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4546,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4547,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4563,1
    - Dst: exception::name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4563,1
    - Dst: exception::diagnostics
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4563,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4564,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4580,1
    - Dst: exception::name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4580,1
    - Dst: exception::diagnostics
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4580,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4581,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 67
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4589
      start: 4358
    functionDepth: 3
    functionLinenumber: 4358
    functionLinenumberEnd: 4589
    functionName: NLOHMANN_JSON_NAMESPACE_BEGIN
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - exception::diagnostics
    - first::c_str
    - what
    - std::vector::empty
    - std::accumulate
    - auto*::m_parent::type
    - auto*::m_parent::m_data::m_value::array::size
    - std::string::c_str
    - std::vector::rend
    - to_string
    - auto*::m_parent::m_data::m_value::array
    - exception::name
    - position_string
    - static_cast<void>
    - std::vector::emplace_back
    - concat
    - std::vector::rbegin
    - escape
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_END
    signature: NLOHMANN_JSON_NAMESPACE_END NLOHMANN_JSON_NAMESPACE_BEGIN
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: exception::what
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4377,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4378
      start: 4375
    functionDepth: 1
    functionLinenumber: 4375
    functionLinenumberEnd: 4378
    functionName: exception::what
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - exception::what
    linkageType: ''
    returnType: char
    signature: char * what() const noexcept override
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4385
      start: 4384
    functionDepth: 0
    functionLinenumber: 4384
    functionLinenumberEnd: 4385
    functionName: "(3)\n    exception(int id_, const char* what_arg) : id(id_), m(what_arg)"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JSON_HEDLEY_NON_NULL
    signature: "JSON_HEDLEY_NON_NULL (3)\n    exception(int id_, const char* what_arg)
      : id(id_), m(what_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4389,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4389,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ename'
    - id_
    argTypes:
    - std::string
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4390
      start: 4387
    functionDepth: 2
    functionLinenumber: 4387
    functionLinenumberEnd: 4390
    functionName: exception::name
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - concat
    - to_string
    linkageType: ''
    returnType: std::string
    signature: std::string name(const std::string& ename, int id_)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4395
      start: 4392
    functionDepth: 0
    functionLinenumber: 4392
    functionLinenumberEnd: 4395
    functionName: exception::diagnostics
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string diagnostics(std::nullptr_t /*leaf_element*/)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: auto*::m_parent::type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4404,1
    - Dst: auto*::m_parent::m_data::m_value::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4408,1
    - Dst: auto*::m_parent::m_data::m_value::array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4410,1
    - Dst: std::vector::emplace_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4412,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4412,1
    - Dst: std::vector::emplace_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4425,1
    - Dst: first::c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4425,1
    - Dst: std::vector::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4445,1
    - Dst: std::accumulate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4450,1
    - Dst: std::vector::rbegin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4450,1
    - Dst: std::vector::rend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4450,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4453,1
    - Dst: escape
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4453,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4455,1
    - Dst: static_cast<void>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4457,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 40
    argCount: 1
    argNames:
    - leaf_element
    argTypes:
    - BasicJsonType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4460
      start: 4398
    functionDepth: 3
    functionLinenumber: 4398
    functionLinenumberEnd: 4460
    functionName: exception::diagnostics
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - first::c_str
    - std::vector::empty
    - std::accumulate
    - auto*::m_parent::type
    - auto*::m_parent::m_data::m_value::array::size
    - std::vector::rend
    - to_string
    - auto*::m_parent::m_data::m_value::array
    - static_cast<void>
    - std::vector::emplace_back
    - concat
    - std::vector::rbegin
    - escape
    linkageType: ''
    returnType: std::string
    signature: std::string diagnostics(const BasicJsonType* leaf_element)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4484,1
    - Dst: exception::name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4484,1
    - Dst: parse_error::position_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4485,1
    - Dst: exception::diagnostics
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4485,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4486,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - id_
    - ' pos'
    - ' what_arg'
    - context
    argTypes:
    - int
    - position_t
    - std::string
    - BasicJsonContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4487
      start: 4482
    functionDepth: 3
    functionLinenumber: 4482
    functionLinenumberEnd: 4487
    functionName: parse_error::create
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - exception::diagnostics
    - std::string::c_str
    - exception::name
    - parse_error::position_string
    - concat
    linkageType: ''
    returnType: parse_error
    signature: parse_error create(int id_, const position_t& pos, const std::string&
      what_arg, BasicJsonContext context)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4492,1
    - Dst: exception::name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4492,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4493,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4493,1
    - Dst: exception::diagnostics
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4494,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4495,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 4
    argNames:
    - id_
    - byte_
    - ' what_arg'
    - context
    argTypes:
    - int
    - std::size_t
    - std::string
    - BasicJsonContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4496
      start: 4490
    functionDepth: 3
    functionLinenumber: 4490
    functionLinenumberEnd: 4496
    functionName: parse_error::create
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - exception::diagnostics
    - std::string::c_str
    - to_string
    - exception::name
    - concat
    linkageType: ''
    returnType: parse_error
    signature: parse_error create(int id_, std::size_t byte_, const std::string& what_arg,
      BasicJsonContext context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 3
    argNames:
    - id_
    - byte_
    - what_arg
    argTypes:
    - int
    - std::size_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4511
      start: 4510
    functionDepth: 0
    functionLinenumber: 4510
    functionLinenumberEnd: 4511
    functionName: parse_error::parse_error
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void parse_error(int id_, std::size_t byte_, const char* what_arg)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4515,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4515,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4516,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' pos'
    argTypes:
    - position_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4517
      start: 4513
    functionDepth: 2
    functionLinenumber: 4513
    functionLinenumberEnd: 4517
    functionName: parse_error::position_string
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - concat
    - to_string
    linkageType: ''
    returnType: std::string
    signature: std::string position_string(const position_t& pos)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4528,1
    - Dst: exception::name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4528,1
    - Dst: exception::diagnostics
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4528,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4529,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - id_
    - ' what_arg'
    - context
    argTypes:
    - int
    - std::string
    - BasicJsonContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4530
      start: 4526
    functionDepth: 3
    functionLinenumber: 4526
    functionLinenumberEnd: 4530
    functionName: invalid_iterator::create
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - concat
    - exception::diagnostics
    - exception::name
    - std::string::c_str
    linkageType: ''
    returnType: invalid_iterator
    signature: invalid_iterator create(int id_, const std::string& what_arg, BasicJsonContext
      context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4535
      start: 4533
    functionDepth: 0
    functionLinenumber: 4533
    functionLinenumberEnd: 4535
    functionName: "(3)\n    invalid_iterator(int id_, const char* what_arg)\n        :
      exception(id_, what_arg)"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JSON_HEDLEY_NON_NULL
    signature: "JSON_HEDLEY_NON_NULL (3)\n    invalid_iterator(int id_, const char*
      what_arg)\n        : exception(id_, what_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4546,1
    - Dst: exception::name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4546,1
    - Dst: exception::diagnostics
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4546,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4547,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - id_
    - ' what_arg'
    - context
    argTypes:
    - int
    - std::string
    - BasicJsonContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4548
      start: 4544
    functionDepth: 3
    functionLinenumber: 4544
    functionLinenumberEnd: 4548
    functionName: type_error::create
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - concat
    - exception::diagnostics
    - exception::name
    - std::string::c_str
    linkageType: ''
    returnType: type_error
    signature: type_error create(int id_, const std::string& what_arg, BasicJsonContext
      context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4552
      start: 4551
    functionDepth: 0
    functionLinenumber: 4551
    functionLinenumberEnd: 4552
    functionName: "(3)\n    type_error(int id_, const char* what_arg) : exception(id_,
      what_arg)"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JSON_HEDLEY_NON_NULL
    signature: "JSON_HEDLEY_NON_NULL (3)\n    type_error(int id_, const char* what_arg)
      : exception(id_, what_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4563,1
    - Dst: exception::name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4563,1
    - Dst: exception::diagnostics
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4563,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - id_
    - ' what_arg'
    - context
    argTypes:
    - int
    - std::string
    - BasicJsonContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4565
      start: 4561
    functionDepth: 3
    functionLinenumber: 4561
    functionLinenumberEnd: 4565
    functionName: out_of_range::create
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - concat
    - exception::diagnostics
    - exception::name
    - std::string::c_str
    linkageType: ''
    returnType: out_of_range
    signature: out_of_range create(int id_, const std::string& what_arg, BasicJsonContext
      context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4569
      start: 4568
    functionDepth: 0
    functionLinenumber: 4568
    functionLinenumberEnd: 4569
    functionName: "(3)\n    out_of_range(int id_, const char* what_arg) : exception(id_,
      what_arg)"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JSON_HEDLEY_NON_NULL
    signature: "JSON_HEDLEY_NON_NULL (3)\n    out_of_range(int id_, const char* what_arg)
      : exception(id_, what_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4580,1
    - Dst: exception::name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4580,1
    - Dst: exception::diagnostics
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4580,1
    - Dst: std::string::c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4581,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - id_
    - ' what_arg'
    - context
    argTypes:
    - int
    - std::string
    - BasicJsonContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4582
      start: 4578
    functionDepth: 3
    functionLinenumber: 4578
    functionLinenumberEnd: 4582
    functionName: other_error::create
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - concat
    - exception::diagnostics
    - exception::name
    - std::string::c_str
    linkageType: ''
    returnType: other_error
    signature: other_error create(int id_, const std::string& what_arg, BasicJsonContext
      context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4586
      start: 4585
    functionDepth: 0
    functionLinenumber: 4585
    functionLinenumberEnd: 4586
    functionName: "(3)\n    other_error(int id_, const char* what_arg) : exception(id_,
      what_arg)"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JSON_HEDLEY_NON_NULL
    signature: "JSON_HEDLEY_NON_NULL (3)\n    other_error(int id_, const char* what_arg)
      : exception(id_, what_arg)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4617
      start: 4590
    functionDepth: 0
    functionLinenumber: 4590
    functionLinenumberEnd: 4617
    functionName: NLOHMANN_JSON_NAMESPACE_BEGIN
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_END
    signature: NLOHMANN_JSON_NAMESPACE_END NLOHMANN_JSON_NAMESPACE_BEGIN
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4640
      start: 4636
    functionDepth: 0
    functionLinenumber: 4636
    functionLinenumberEnd: 4640
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4648
      start: 4644
    functionDepth: 0
    functionLinenumber: 4644
    functionLinenumberEnd: 4648
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4666,1
    - Dst: is_null
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4666,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4668,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4668,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4668,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4668,1
    - Dst: static_cast<value_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4680,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4684,1
    - Dst: template get_ptr<const typename BasicJsonType::number_unsigned_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4684,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4689,1
    - Dst: template get_ptr<const typename BasicJsonType::number_integer_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4689,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4694,1
    - Dst: template get_ptr<const typename BasicJsonType::number_float_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4694,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4706,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4706,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4706,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4706,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4713,1
    - Dst: is_boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4713,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4715,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4715,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4715,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4715,1
    - Dst: template get_ptr<const typename BasicJsonType::boolean_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4717,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4723,1
    - Dst: is_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4723,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4725,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4725,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4725,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4725,1
    - Dst: template get_ptr<const typename BasicJsonType::string_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4727,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4739,1
    - Dst: is_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4739,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4741,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4741,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4741,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4741,1
    - Dst: template get_ptr<const typename BasicJsonType::string_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4744,1
    - Dst: get_arithmetic_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4750,1
    - Dst: get_arithmetic_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4756,1
    - Dst: get_arithmetic_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4762,1
    - Dst: get_arithmetic_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4771,1
    - Dst: static_cast<EnumType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4772,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4781,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4781,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4783,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4783,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4783,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4783,1
    - Dst: clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4785,1
    - Dst: std::transform
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4786,1
    - Dst: rbegin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4786,1
    - Dst: rend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4786,1
    - Dst: std::front_inserter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4787,1
    - Dst: template get<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4789,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4798,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4798,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4800,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4800,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4800,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4800,1
    - Dst: resize
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4802,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4802,1
    - Dst: std::transform
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4803,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4803,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4803,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4803,1
    - Dst: template get<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4806,1
    - Dst: template get<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4812,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4816,1
    - Dst: template get_ptr<const typename BasicJsonType::array_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4823,1
    - Dst: template get<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4829,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4833,1
    - Dst: reserve
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4843,1
    - Dst: std::declval<typename ConstructibleArrayType::size_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4843,1
    - Dst: template get<typename ConstructibleArrayType::value_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4844,1
    - Dst: ConstructibleArrayType::reserve
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4850,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4850,1
    - Dst: std::transform
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4851,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4851,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4851,1
    - Dst: std::inserter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4852,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4852,1
    - Dst: std::size_t::template get<typename ConstructibleArrayType::value_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4856,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4858,1
    - Dst: std::transform
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4871,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4872,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4872,1
    - Dst: std::inserter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4872,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4872,1
    - Dst: std::size_t::template get<typename ConstructibleArrayType::value_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4877,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4879,1
    - Dst: from_json_array_impl
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4891,1
    - Dst: template get<typename ConstructibleArrayType::value_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4892,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4895,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4895,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4897,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4897,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4897,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4897,1
    - Dst: from_json_array_impl
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4900,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4907,1
    - Dst: from_json_inplace_array_impl
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4912,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4912,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4914,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4914,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4916,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4916,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4916,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4916,1
    - Dst: from_json_inplace_array_impl
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4919,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4919,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4925,1
    - Dst: is_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4925,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4927,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4927,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4927,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4927,1
    - Dst: template get_ptr<const typename BasicJsonType::binary_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4930,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4937,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4937,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4939,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4939,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4939,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4939,1
    - Dst: template get_ptr<const typename BasicJsonType::object_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4943,1
    - Dst: std::transform
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4945,1
    - Dst: auto*::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4946,1
    - Dst: auto*::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4946,1
    - Dst: std::inserter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4947,1
    - Dst: ConstructibleObjectType::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4947,1
    - Dst: value_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4950,1
    - Dst: second::template get<typename ConstructibleObjectType::mapped_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4950,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4952,1
    - Dst: static_cast<value_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4969,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4973,1
    - Dst: template get_ptr<const typename BasicJsonType::number_unsigned_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4973,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4978,1
    - Dst: template get_ptr<const typename BasicJsonType::number_integer_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4978,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4983,1
    - Dst: template get_ptr<const typename BasicJsonType::number_float_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4983,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4988,1
    - Dst: template get_ptr<const typename BasicJsonType::boolean_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4988,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4999,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4999,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4999,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4999,1
    - Dst: std::make_tuple
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5006,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5006,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5012,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5013,1
    - Dst: from_json_tuple_impl
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5019,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5019,1
    - Dst: from_json_tuple_impl_base
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5025,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5025,1
    - Dst: from_json_tuple_impl_base
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5031,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5031,1
    - Dst: from_json_tuple_impl
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5036,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5036,1
    - Dst: std::forward<TupleRelated>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5036,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5038,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5038,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5040,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5040,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5040,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5040,1
    - Dst: from_json_tuple_impl
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5043,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5043,1
    - Dst: std::forward<TupleRelated>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5043,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5051,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5051,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5053,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5053,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5053,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5053,1
    - Dst: clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5055,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5058,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5058,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5060,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5060,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5060,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5060,1
    - Dst: emplace
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5062,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5062,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5062,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5071,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5071,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5073,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5073,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5073,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5073,1
    - Dst: clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5075,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5078,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5078,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5080,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5080,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5080,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5080,1
    - Dst: emplace
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5082,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5082,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5082,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5090,1
    - Dst: is_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5090,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5092,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5092,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5092,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5092,1
    - Dst: template get_ptr<const typename BasicJsonType::string_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5094,1
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5102,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5102,1
    - Dst: std::forward<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5102,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5103,1
    - Dst: std::forward<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5103,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5105,1
    - Dst: std::forward<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5105,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 185
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5109
      start: 4659
    functionDepth: 4
    functionLinenumber: 4659
    functionLinenumberEnd: 5109
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<value_t>
    - type_name
    - template get_ptr<const typename BasicJsonType::boolean_t*>
    - is_null
    - template get_ptr<const typename BasicJsonType::number_unsigned_t*>
    - is_array
    - noexcept
    - std::front_inserter
    - is_boolean
    - from_json_tuple_impl_base
    - is_string
    - rend
    - reserve
    - second::template get<typename ConstructibleObjectType::mapped_type>
    - auto*::end
    - template get_ptr<const typename BasicJsonType::string_t*>
    - type_error::create
    - size
    - begin
    - std::move
    - std::forward<T>
    - template get_ptr<const typename BasicJsonType::number_float_t*>
    - JSON_HEDLEY_UNLIKELY
    - is_binary
    - JSON_THROW
    - ConstructibleArrayType::reserve
    - std::transform
    - at
    - is_object
    - std::inserter
    - std::forward<BasicJsonType>
    - template get<T>
    - clear
    - concat
    - std::forward<TupleRelated>
    - emplace
    - from_json_inplace_array_impl
    - static_cast<ArithmeticType>
    - std::size_t::template get<typename ConstructibleArrayType::value_type>
    - template get<typename ConstructibleArrayType::value_type>
    - end
    - template get_ptr<const typename BasicJsonType::number_integer_t*>
    - value_type
    - resize
    - get_arithmetic_value
    - template get_ptr<const typename BasicJsonType::array_t*>
    - std::declval<typename ConstructibleArrayType::size_type>
    - static_cast<EnumType>
    - template get_ptr<const typename BasicJsonType::binary_t*>
    - std::make_tuple
    - from_json_tuple_impl
    - template get_ptr<const typename BasicJsonType::object_t*>
    - from_json_array_impl
    - auto*::begin
    - from_json
    - ConstructibleObjectType::begin
    - rbegin
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4666,1
    - Dst: is_null
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4666,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4668,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4668,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4668,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4668,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' n'
    argTypes:
    - BasicJsonType
    - typename std::nullptr_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4671
      start: 4664
    functionDepth: 4
    functionLinenumber: 4664
    functionLinenumberEnd: 4671
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - is_null
    - JSON_THROW
    - concat
    - type_error::create
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename std::nullptr_t& n)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4680,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4684,1
    - Dst: template get_ptr<const typename BasicJsonType::number_unsigned_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4684,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4689,1
    - Dst: template get_ptr<const typename BasicJsonType::number_integer_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4689,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4694,1
    - Dst: template get_ptr<const typename BasicJsonType::number_float_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4694,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4706,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4706,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4706,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4706,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - ArithmeticType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4708
      start: 4678
    functionDepth: 4
    functionLinenumber: 4678
    functionLinenumberEnd: 4708
    functionName: get_arithmetic_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - static_cast<ArithmeticType>
    - static_cast<value_t>
    - template get_ptr<const typename BasicJsonType::number_float_t*>
    - type_name
    - JSON_THROW
    - template get_ptr<const typename BasicJsonType::number_unsigned_t*>
    - template get_ptr<const typename BasicJsonType::number_integer_t*>
    - concat
    - type_error::create
    linkageType: ''
    returnType: void
    signature: void get_arithmetic_value(const BasicJsonType& j, ArithmeticType& val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4713,1
    - Dst: is_boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4713,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4715,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4715,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4715,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4715,1
    - Dst: template get_ptr<const typename BasicJsonType::boolean_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4717,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' b'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::boolean_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4718
      start: 4711
    functionDepth: 4
    functionLinenumber: 4711
    functionLinenumberEnd: 4718
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - template get_ptr<const typename BasicJsonType::boolean_t*>
    - JSON_THROW
    - is_boolean
    - concat
    - type_error::create
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::boolean_t&
      b)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4723,1
    - Dst: is_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4723,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4725,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4725,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4725,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4725,1
    - Dst: template get_ptr<const typename BasicJsonType::string_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4727,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4728
      start: 4721
    functionDepth: 4
    functionLinenumber: 4721
    functionLinenumberEnd: 4728
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - template get_ptr<const typename BasicJsonType::string_t*>
    - is_string
    - concat
    - type_error::create
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::string_t&
      s)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4739,1
    - Dst: is_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4739,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4741,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4741,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4741,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4741,1
    - Dst: template get_ptr<const typename BasicJsonType::string_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4744,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - StringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4745
      start: 4737
    functionDepth: 4
    functionLinenumber: 4737
    functionLinenumberEnd: 4745
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - template get_ptr<const typename BasicJsonType::string_t*>
    - is_string
    - concat
    - type_error::create
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, StringType& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_arithmetic_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4751
      start: 4748
    functionDepth: 5
    functionLinenumber: 4748
    functionLinenumberEnd: 4751
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - get_arithmetic_value
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::number_float_t&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_arithmetic_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4757
      start: 4754
    functionDepth: 5
    functionLinenumber: 4754
    functionLinenumberEnd: 4757
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - get_arithmetic_value
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::number_unsigned_t&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_arithmetic_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4763
      start: 4760
    functionDepth: 5
    functionLinenumber: 4760
    functionLinenumberEnd: 4763
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - get_arithmetic_value
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::number_integer_t&
      val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_arithmetic_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4771,1
    - Dst: static_cast<EnumType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4772,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' j'
    - ' e'
    argTypes:
    - BasicJsonType
    - EnumType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4773
      start: 4768
    functionDepth: 5
    functionLinenumber: 4768
    functionLinenumberEnd: 4773
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - static_cast<EnumType>
    - get_arithmetic_value
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, EnumType& e)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4781,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4781,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4783,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4783,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4783,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4783,1
    - Dst: clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4785,1
    - Dst: std::transform
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4786,1
    - Dst: rbegin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4786,1
    - Dst: rend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4786,1
    - Dst: std::front_inserter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4787,1
    - Dst: template get<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4789,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' j'
    - ' l'
    argTypes:
    - BasicJsonType
    - std::forward_list<T, Allocator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4791
      start: 4779
    functionDepth: 4
    functionLinenumber: 4779
    functionLinenumberEnd: 4791
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - std::transform
    - is_array
    - std::front_inserter
    - rend
    - template get<T>
    - clear
    - concat
    - type_error::create
    - rbegin
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::forward_list<T, Allocator>&
      l)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4798,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4798,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4800,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4800,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4800,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4800,1
    - Dst: resize
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4802,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4802,1
    - Dst: std::transform
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4803,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4803,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4803,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4803,1
    - Dst: template get<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4806,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' j'
    - ' l'
    argTypes:
    - BasicJsonType
    - std::valarray<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4808
      start: 4796
    functionDepth: 4
    functionLinenumber: 4796
    functionLinenumberEnd: 4808
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - std::transform
    - end
    - is_array
    - resize
    - begin
    - template get<T>
    - concat
    - type_error::create
    - size
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::valarray<T>& l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template get<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4812,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4816,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - (arr)
    argTypes:
    - BasicJsonType
    - T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4818
      start: 4811
    functionDepth: 1
    functionLinenumber: 4811
    functionLinenumberEnd: 4818
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - at
    - template get<T>
    linkageType: ''
    returnType: auto
    signature: 'auto from_json(const BasicJsonType& j, T (&arr)[N])  // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays)

      -> decltype(j.template get<T>(), void())'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template get_ptr<const typename BasicJsonType::array_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4823,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4824
      start: 4821
    functionDepth: 0
    functionLinenumber: 4821
    functionLinenumberEnd: 4824
    functionName: from_json_array_impl
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - template get_ptr<const typename BasicJsonType::array_t*>
    linkageType: ''
    returnType: void
    signature: void from_json_array_impl(const BasicJsonType& j, typename BasicJsonType::array_t&
      arr, priority_tag<3> /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: template get<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4829,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4833,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - std::array<T, N>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4835
      start: 4827
    functionDepth: 1
    functionLinenumber: 4827
    functionLinenumberEnd: 4835
    functionName: from_json_array_impl
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - at
    - template get<T>
    linkageType: ''
    returnType: auto
    signature: "auto from_json_array_impl(const BasicJsonType& j, std::array<T, N>&
      arr,\n                          priority_tag<2> /*unused*/)\n-> decltype(j.template
      get<T>(), void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reserve
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4843,1
    - Dst: std::declval<typename ConstructibleArrayType::size_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4843,1
    - Dst: template get<typename ConstructibleArrayType::value_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4844,1
    - Dst: ConstructibleArrayType::reserve
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4850,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4850,1
    - Dst: std::transform
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4851,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4851,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4851,1
    - Dst: std::inserter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4852,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4852,1
    - Dst: template get<typename ConstructibleArrayType::value_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4856,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4858,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - ConstructibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4859
      start: 4841
    functionDepth: 1
    functionLinenumber: 4841
    functionLinenumberEnd: 4859
    functionName: from_json_array_impl
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - std::declval<typename ConstructibleArrayType::size_type>
    - template get<typename ConstructibleArrayType::value_type>
    - ConstructibleArrayType::reserve
    - std::transform
    - end
    - std::inserter
    - reserve
    - std::move
    - begin
    - size
    linkageType: ''
    returnType: auto
    signature: "auto from_json_array_impl(const BasicJsonType& j, ConstructibleArrayType&
      arr, priority_tag<1> /*unused*/)\n-> decltype(\n    arr.reserve(std::declval<typename
      ConstructibleArrayType::size_type>()),\n    j.template get<typename ConstructibleArrayType::value_type>(),\n
      \   void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::transform
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4871,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4872,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4872,1
    - Dst: std::inserter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4872,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4872,1
    - Dst: template get<typename ConstructibleArrayType::value_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4877,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - ConstructibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4880
      start: 4865
    functionDepth: 1
    functionLinenumber: 4865
    functionLinenumberEnd: 4880
    functionName: from_json_array_impl
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - template get<typename ConstructibleArrayType::value_type>
    - std::transform
    - end
    - std::inserter
    - begin
    - std::move
    linkageType: ''
    returnType: void
    signature: "void from_json_array_impl(const BasicJsonType& j, ConstructibleArrayType&
      arr,\n                                 priority_tag<0> /*unused*/)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: from_json_array_impl
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4891,1
    - Dst: template get<typename ConstructibleArrayType::value_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4892,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4895,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4895,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4897,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4897,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4897,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4897,1
    - Dst: from_json_array_impl
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4900,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - ConstructibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4901
      start: 4890
    functionDepth: 4
    functionLinenumber: 4890
    functionLinenumberEnd: 4901
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - template get<typename ConstructibleArrayType::value_type>
    - is_array
    - from_json_array_impl
    - concat
    - type_error::create
    linkageType: ''
    returnType: auto
    signature: 'auto from_json(const BasicJsonType& j, ConstructibleArrayType& arr)

      -> decltype(from_json_array_impl(j, arr, priority_tag<3> {}),

      j.template get<typename ConstructibleArrayType::value_type>(),

      void())'
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4908
      start: 4904
    functionDepth: 0
    functionLinenumber: 4904
    functionLinenumberEnd: 4908
    functionName: from_json_inplace_array_impl
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - std::forward<BasicJsonType>
    linkageType: ''
    returnType: std::array<T, sizeof...(Idx)>
    signature: "std::array<T, sizeof...(Idx)> from_json_inplace_array_impl(BasicJsonType&&
      j,\n        identity_tag<std::array<T, sizeof...(Idx)>> /*unused*/, index_sequence<Idx...>
      /*unused*/)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: from_json_inplace_array_impl
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4912,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4912,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4914,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4914,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4916,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4916,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4916,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4916,1
    - Dst: from_json_inplace_array_impl
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4919,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4919,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - tag
    argTypes:
    - BasicJsonType
    - identity_tag<std::array<T, N>>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4920
      start: 4911
    functionDepth: 4
    functionLinenumber: 4911
    functionLinenumberEnd: 4920
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - is_array
    - std::forward<BasicJsonType>
    - concat
    - type_error::create
    - from_json_inplace_array_impl
    linkageType: ''
    returnType: auto
    signature: 'auto from_json(BasicJsonType&& j, identity_tag<std::array<T, N>> tag)

      -> decltype(from_json_inplace_array_impl(std::forward<BasicJsonType>(j), tag,
      make_index_sequence<N> {}))'
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4925,1
    - Dst: is_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4925,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4927,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4927,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4927,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4927,1
    - Dst: template get_ptr<const typename BasicJsonType::binary_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4930,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' bin'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::binary_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4931
      start: 4923
    functionDepth: 4
    functionLinenumber: 4923
    functionLinenumberEnd: 4931
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - is_binary
    - JSON_THROW
    - template get_ptr<const typename BasicJsonType::binary_t*>
    - concat
    - type_error::create
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, typename BasicJsonType::binary_t&
      bin)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4937,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4937,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4939,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4939,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4939,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4939,1
    - Dst: template get_ptr<const typename BasicJsonType::object_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4943,1
    - Dst: std::transform
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4945,1
    - Dst: auto*::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4946,1
    - Dst: auto*::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4946,1
    - Dst: std::inserter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4947,1
    - Dst: ConstructibleObjectType::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4947,1
    - Dst: value_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4950,1
    - Dst: second::template get<typename ConstructibleObjectType::mapped_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4950,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4952,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - ConstructibleObjectType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 4953
      start: 4935
    functionDepth: 4
    functionLinenumber: 4935
    functionLinenumberEnd: 4953
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - std::transform
    - ConstructibleObjectType::begin
    - value_type
    - is_object
    - template get_ptr<const typename BasicJsonType::object_t*>
    - std::inserter
    - auto*::begin
    - concat
    - second::template get<typename ConstructibleObjectType::mapped_type>
    - auto*::end
    - type_error::create
    - std::move
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, ConstructibleObjectType& obj)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<value_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4969,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4973,1
    - Dst: template get_ptr<const typename BasicJsonType::number_unsigned_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4973,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4978,1
    - Dst: template get_ptr<const typename BasicJsonType::number_integer_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4978,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4983,1
    - Dst: template get_ptr<const typename BasicJsonType::number_float_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4983,1
    - Dst: static_cast<ArithmeticType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4988,1
    - Dst: template get_ptr<const typename BasicJsonType::boolean_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4988,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4999,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4999,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4999,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:4999,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 27
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - ArithmeticType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5001
      start: 4967
    functionDepth: 4
    functionLinenumber: 4967
    functionLinenumberEnd: 5001
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - static_cast<ArithmeticType>
    - static_cast<value_t>
    - template get_ptr<const typename BasicJsonType::number_float_t*>
    - template get_ptr<const typename BasicJsonType::boolean_t*>
    - type_name
    - JSON_THROW
    - template get_ptr<const typename BasicJsonType::number_unsigned_t*>
    - template get_ptr<const typename BasicJsonType::number_integer_t*>
    - concat
    - type_error::create
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, ArithmeticType& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_tuple
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5006,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5006,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5007
      start: 5004
    functionDepth: 0
    functionLinenumber: 5004
    functionLinenumberEnd: 5007
    functionName: from_json_tuple_impl_base
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - std::make_tuple
    - std::forward<BasicJsonType>
    linkageType: ''
    returnType: std::tuple<Args...>
    signature: std::tuple<Args...> from_json_tuple_impl_base(BasicJsonType&& j, index_sequence<Idx...>
      /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5012,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5013,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5014
      start: 5010
    functionDepth: 0
    functionLinenumber: 5010
    functionLinenumberEnd: 5014
    functionName: from_json_tuple_impl
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - std::forward<BasicJsonType>
    linkageType: ''
    returnType: std::pair<A1, A2>
    signature: std::pair<A1, A2> from_json_tuple_impl(BasicJsonType&& j, identity_tag<std::pair<A1,
      A2>> /*unused*/, priority_tag<0> /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: from_json_tuple_impl
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5019,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5019,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' p'
    argTypes:
    - BasicJsonType
    - std::pair<A1, A2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5020
      start: 5017
    functionDepth: 1
    functionLinenumber: 5017
    functionLinenumberEnd: 5020
    functionName: from_json_tuple_impl
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - std::forward<BasicJsonType>
    - from_json_tuple_impl
    linkageType: ''
    returnType: void
    signature: void from_json_tuple_impl(BasicJsonType&& j, std::pair<A1, A2>& p,
      priority_tag<1> /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: from_json_tuple_impl_base
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5025,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5025,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5026
      start: 5023
    functionDepth: 1
    functionLinenumber: 5023
    functionLinenumberEnd: 5026
    functionName: from_json_tuple_impl
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - std::forward<BasicJsonType>
    - from_json_tuple_impl_base
    linkageType: ''
    returnType: std::tuple<Args...>
    signature: std::tuple<Args...> from_json_tuple_impl(BasicJsonType&& j, identity_tag<std::tuple<Args...>>
      /*unused*/, priority_tag<2> /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: from_json_tuple_impl_base
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5031,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5031,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' t'
    argTypes:
    - BasicJsonType
    - std::tuple<Args...>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5032
      start: 5029
    functionDepth: 1
    functionLinenumber: 5029
    functionLinenumberEnd: 5032
    functionName: from_json_tuple_impl
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - std::forward<BasicJsonType>
    - from_json_tuple_impl_base
    linkageType: ''
    returnType: void
    signature: void from_json_tuple_impl(BasicJsonType&& j, std::tuple<Args...>& t,
      priority_tag<3> /*unused*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: from_json_tuple_impl
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5036,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5036,1
    - Dst: std::forward<TupleRelated>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5036,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5038,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5038,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5040,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5040,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5040,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5040,1
    - Dst: from_json_tuple_impl
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5043,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5043,1
    - Dst: std::forward<TupleRelated>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5043,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' t'
    argTypes:
    - BasicJsonType
    - TupleRelated
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5044
      start: 5035
    functionDepth: 4
    functionLinenumber: 5035
    functionLinenumberEnd: 5044
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - from_json_tuple_impl
    - is_array
    - std::forward<BasicJsonType>
    - concat
    - std::forward<TupleRelated>
    - type_error::create
    linkageType: ''
    returnType: auto
    signature: 'auto from_json(BasicJsonType&& j, TupleRelated&& t)

      -> decltype(from_json_tuple_impl(std::forward<BasicJsonType>(j), std::forward<TupleRelated>(t),
      priority_tag<3> {}))'
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5051,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5051,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5053,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5053,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5053,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5053,1
    - Dst: clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5055,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5058,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5058,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5060,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5060,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5060,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5060,1
    - Dst: emplace
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5062,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5062,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5062,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' j'
    - ' m'
    argTypes:
    - BasicJsonType
    - std::map<Key, Value, Compare, Allocator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5064
      start: 5049
    functionDepth: 4
    functionLinenumber: 5049
    functionLinenumberEnd: 5064
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - at
    - is_array
    - clear
    - concat
    - emplace
    - type_error::create
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::map<Key, Value, Compare,
      Allocator>& m)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5071,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5071,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5073,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5073,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5073,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5073,1
    - Dst: clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5075,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5078,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5078,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5080,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5080,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5080,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5080,1
    - Dst: emplace
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5082,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5082,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5082,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 2
    argNames:
    - ' j'
    - ' m'
    argTypes:
    - BasicJsonType
    - std::unordered_map<Key, Value, Hash, KeyEqual, Allocator>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5084
      start: 5069
    functionDepth: 4
    functionLinenumber: 5069
    functionLinenumberEnd: 5084
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - at
    - is_array
    - clear
    - concat
    - emplace
    - type_error::create
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std::unordered_map<Key, Value,
      Hash, KeyEqual, Allocator>& m)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5090,1
    - Dst: is_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5090,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5092,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5092,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5092,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5092,1
    - Dst: template get_ptr<const typename BasicJsonType::string_t*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5094,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' p'
    argTypes:
    - BasicJsonType
    - std_fs::path
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5095
      start: 5088
    functionDepth: 4
    functionLinenumber: 5088
    functionLinenumberEnd: 5095
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - template get_ptr<const typename BasicJsonType::string_t*>
    - is_string
    - concat
    - type_error::create
    linkageType: ''
    returnType: void
    signature: void from_json(const BasicJsonType& j, std_fs::path& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5102,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5102,1
    - Dst: std::forward<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5102,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5103,1
    - Dst: std::forward<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5103,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5105,1
    - Dst: std::forward<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5105,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5106
      start: 5101
    functionDepth: 5
    functionLinenumber: 5101
    functionLinenumberEnd: 5106
    functionName: "operator()(const BasicJsonType& j, T&& val) const\n    noexcept(noexcept(from_json(j,
      std::forward<T>(val))))\n    -> decltype(from_json(j, std::forward<T>(val)))"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - noexcept
    - from_json
    - std::forward<T>
    linkageType: ''
    returnType: auto
    signature: "auto operator()(const BasicJsonType& j, T&& val) const\n    noexcept(noexcept(from_json(j,
      std::forward<T>(val))))\n    -> decltype(from_json(j, std::forward<T>(val)))"
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5183,1
    - Dst: std::declval<IteratorType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5193,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5212,1
    - Dst: iteration_proxy_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5244,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5265,1
    - Dst: m_object::type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5267,1
    - Dst: int_to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5274,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5282,1
    - Dst: value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5301,1
    - Dst: iteration_proxy_value<IteratorType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5328,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5328,1
    - Dst: iteration_proxy_value<IteratorType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5334,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5334,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5342,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5344,1
    - Dst: value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5350,1
    - Dst: value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5352,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5355
      start: 5174
    functionDepth: 1
    functionLinenumber: 5174
    functionLinenumberEnd: 5355
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::declval<IteratorType>
    - m_object::type
    - value
    - end
    - to_string
    - key
    - JSON_ASSERT
    - iteration_proxy_value<IteratorType>
    - int_to_string
    - begin
    - iteration_proxy_value
    - std::move
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' target'
    - value
    argTypes:
    - string_type
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5184
      start: 5179
    functionDepth: 1
    functionLinenumber: 5179
    functionLinenumberEnd: 5184
    functionName: int_to_string
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - to_string
    linkageType: ''
    returnType: void
    signature: void int_to_string( string_type& target, std::size_t value )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5208
      start: 5208
    functionDepth: 0
    functionLinenumber: 5208
    functionLinenumberEnd: 5208
    functionName: iteration_proxy_value::iteration_proxy_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iteration_proxy_value()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - it
    argTypes:
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5214
      start: 5209
    functionDepth: 1
    functionLinenumber: 5209
    functionLinenumberEnd: 5214
    functionName: iteration_proxy_value::iteration_proxy_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void iteration_proxy_value(IteratorType it, std::size_t array_index_
      = 0)\n    noexcept(std::is_nothrow_move_constructible<IteratorType>::value\n
      \            && std::is_nothrow_default_constructible<string_type>::value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5216
      start: 5216
    functionDepth: 0
    functionLinenumber: 5216
    functionLinenumberEnd: 5216
    functionName: iteration_proxy_value::iteration_proxy_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iteration_proxy_value(iteration_proxy_value const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5217
      start: 5217
    functionDepth: 0
    functionLinenumber: 5217
    functionLinenumberEnd: 5217
    functionName: '& operator=(iteration_proxy_value const&)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iteration_proxy_value
    signature: iteration_proxy_value & operator=(iteration_proxy_value const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5221
      start: 5219
    functionDepth: 0
    functionLinenumber: 5219
    functionLinenumberEnd: 5221
    functionName: iteration_proxy_value::iteration_proxy_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void iteration_proxy_value(iteration_proxy_value&&)\n    noexcept(std::is_nothrow_move_constructible<IteratorType>::value\n
      \            && std::is_nothrow_move_constructible<string_type>::value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5224
      start: 5222
    functionDepth: 0
    functionLinenumber: 5222
    functionLinenumberEnd: 5224
    functionName: "& operator=(iteration_proxy_value&&)\n    noexcept(std::is_nothrow_move_assignable<IteratorType>::value\n
      \            && std::is_nothrow_move_assignable<string_type>::value)"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iteration_proxy_value
    signature: "iteration_proxy_value & operator=(iteration_proxy_value&&)\n    noexcept(std::is_nothrow_move_assignable<IteratorType>::value\n
      \            && std::is_nothrow_move_assignable<string_type>::value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5225
      start: 5225
    functionDepth: 0
    functionLinenumber: 5225
    functionLinenumberEnd: 5225
    functionName: ~iteration_proxy_value()
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~iteration_proxy_value()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5231
      start: 5228
    functionDepth: 0
    functionLinenumber: 5228
    functionLinenumberEnd: 5231
    functionName: '& operator*() const'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iteration_proxy_value
    signature: iteration_proxy_value & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5240
      start: 5234
    functionDepth: 0
    functionLinenumber: 5234
    functionLinenumberEnd: 5240
    functionName: '& operator++()'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iteration_proxy_value
    signature: iteration_proxy_value & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iteration_proxy_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5248
      start: 5242
    functionDepth: 0
    functionLinenumber: 5242
    functionLinenumberEnd: 5248
    functionName: operator++(int)&
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - iteration_proxy_value
    linkageType: ''
    returnType: iteration_proxy_value
    signature: iteration_proxy_value operator++(int)&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - iteration_proxy_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5254
      start: 5251
    functionDepth: 0
    functionLinenumber: 5251
    functionLinenumberEnd: 5254
    functionName: operator==(const iteration_proxy_value& o) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const iteration_proxy_value& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - iteration_proxy_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5260
      start: 5257
    functionDepth: 0
    functionLinenumber: 5257
    functionLinenumberEnd: 5260
    functionName: operator!=(const iteration_proxy_value& o) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const iteration_proxy_value& o) const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5265,1
    - Dst: m_object::type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5267,1
    - Dst: int_to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5274,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5296
      start: 5263
    functionDepth: 2
    functionLinenumber: 5263
    functionLinenumberEnd: 5296
    functionName: '& key() const'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - key
    - JSON_ASSERT
    - int_to_string
    - m_object::type
    linkageType: ''
    returnType: string_type
    signature: string_type & key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iteration_proxy_value::value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5302
      start: 5299
    functionDepth: 1
    functionLinenumber: 5299
    functionLinenumberEnd: 5302
    functionName: iteration_proxy_value::value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - iteration_proxy_value::value
    linkageType: ''
    returnType: typename IteratorType::reference
    signature: typename IteratorType::reference value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5313
      start: 5313
    functionDepth: 0
    functionLinenumber: 5313
    functionLinenumberEnd: 5313
    functionName: iteration_proxy::iteration_proxy
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iteration_proxy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cont
    argTypes:
    - typename IteratorType::reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5317
      start: 5316
    functionDepth: 0
    functionLinenumber: 5316
    functionLinenumberEnd: 5317
    functionName: iteration_proxy::iteration_proxy
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iteration_proxy(typename IteratorType::reference cont) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5319
      start: 5319
    functionDepth: 0
    functionLinenumber: 5319
    functionLinenumberEnd: 5319
    functionName: iteration_proxy::iteration_proxy
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iteration_proxy(iteration_proxy const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5320
      start: 5320
    functionDepth: 0
    functionLinenumber: 5320
    functionLinenumberEnd: 5320
    functionName: '& operator=(iteration_proxy const&)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iteration_proxy
    signature: iteration_proxy & operator=(iteration_proxy const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5321
      start: 5321
    functionDepth: 0
    functionLinenumber: 5321
    functionLinenumberEnd: 5321
    functionName: iteration_proxy::iteration_proxy
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iteration_proxy(iteration_proxy&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5322
      start: 5322
    functionDepth: 0
    functionLinenumber: 5322
    functionLinenumberEnd: 5322
    functionName: '& operator=(iteration_proxy&&) noexcept'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iteration_proxy
    signature: iteration_proxy & operator=(iteration_proxy&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5323
      start: 5323
    functionDepth: 0
    functionLinenumber: 5323
    functionLinenumberEnd: 5323
    functionName: ~iteration_proxy()
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~iteration_proxy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iteration_proxy_value<IteratorType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5328,1
    - Dst: iteration_proxy::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5329
      start: 5326
    functionDepth: 1
    functionLinenumber: 5326
    functionLinenumberEnd: 5329
    functionName: iteration_proxy::begin
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - iteration_proxy::begin
    - iteration_proxy_value<IteratorType>
    linkageType: ''
    returnType: iteration_proxy_value<IteratorType>
    signature: iteration_proxy_value<IteratorType> begin() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iteration_proxy_value<IteratorType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5334,1
    - Dst: iteration_proxy::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5335
      start: 5332
    functionDepth: 1
    functionLinenumber: 5332
    functionLinenumberEnd: 5335
    functionName: iteration_proxy::end
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - iteration_proxy::end
    - iteration_proxy_value<IteratorType>
    linkageType: ''
    returnType: iteration_proxy_value<IteratorType>
    signature: iteration_proxy_value<IteratorType> end() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5342,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - nlohmann::detail::iteration_proxy_value<IteratorType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5345
      start: 5342
    functionDepth: 1
    functionLinenumber: 5342
    functionLinenumberEnd: 5345
    functionName: get
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 632
    functionsReached:
    - key
    linkageType: ''
    returnType: auto
    signature: auto get(const nlohmann::detail::iteration_proxy_value<IteratorType>&
      i) -> decltype(i.key())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5350,1
    - Dst: value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - nlohmann::detail::iteration_proxy_value<IteratorType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5353
      start: 5350
    functionDepth: 1
    functionLinenumber: 5350
    functionLinenumberEnd: 5353
    functionName: get
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 632
    functionsReached:
    - value
    linkageType: ''
    returnType: auto
    signature: auto get(const nlohmann::detail::iteration_proxy_value<IteratorType>&
      i) -> decltype(i.value())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5379,1
    - Dst: "std::declval <\n                            ::nlohmann::detail::iteration_proxy_value<IteratorType
        >>"
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5386
      start: 5356
    functionDepth: 2
    functionLinenumber: 5356
    functionLinenumberEnd: 5386
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - "std::declval <\n                            ::nlohmann::detail::iteration_proxy_value<IteratorType
      >>"
    - get
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_END
    signature: NLOHMANN_JSON_NAMESPACE_END namespace
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5427,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5430,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5440,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5443,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5449,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5451,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5452,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5460,1
    - Dst: template create<typename BasicJsonType::string_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5462,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5463,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5473,1
    - Dst: BasicJsonType::binary_t
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5475,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5476,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5482,1
    - Dst: BasicJsonType::binary_t
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5484,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5484,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5485,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5495,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5498,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5508,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5511,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5521,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5524,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5534,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5537,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5538,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5544,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5546,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5547,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5548,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5559,1
    - Dst: template create<typename BasicJsonType::array_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5561,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5561,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5561,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5562,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5563,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5569,1
    - Dst: m_data::m_value::array::reserve
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5572,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5572,1
    - Dst: m_data::m_value::array::push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5575,1
    - Dst: set_parent
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5576,1
    - Dst: m_data::m_value::array::back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5576,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5578,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5585,1
    - Dst: m_data::m_value::array::resize
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5588,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5588,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5589,1
    - Dst: std::copy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5591,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5591,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5591,1
    - Dst: m_data::m_value::array::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5591,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5593,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5594,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5604,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5607,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5608,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5614,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5616,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5617,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5618,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5628,1
    - Dst: template create<typename BasicJsonType::object_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5630,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5630,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5630,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5631,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5632,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5644,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5657,1
    - Dst: static_cast<typename BasicJsonType::boolean_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5657,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5664,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5670,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5670,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5677,1
    - Dst: static_cast<typename BasicJsonType::number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5677,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5684,1
    - Dst: static_cast<typename BasicJsonType::number_unsigned_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5684,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5691,1
    - Dst: static_cast<typename BasicJsonType::number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5691,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5700,1
    - Dst: static_cast<underlying_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5700,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5707,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5720,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5726,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5733,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5733,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5739,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5739,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5746,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5752,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5752,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5762,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5776,1
    - Dst: value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5776,1
    - Dst: std::get<Idx>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5782,1
    - Dst: to_json_tuple_impl
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5788,1
    - Dst: string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5795,1
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5802,1
    - Dst: to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5802,1
    - Dst: std::forward<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5802,1
    - Dst: to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5803,1
    - Dst: std::forward<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5803,1
    - Dst: to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5805,1
    - Dst: std::forward<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5805,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 145
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5808
      start: 5404
    functionDepth: 1
    functionLinenumber: 5404
    functionLinenumberEnd: 5808
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<typename BasicJsonType::number_unsigned_t>
    - noexcept
    - BasicJsonType::binary_t
    - begin
    - size
    - std::move
    - m_data::m_value::array::begin
    - static_cast<typename BasicJsonType::number_float_t>
    - std::forward<T>
    - m_data::m_value::array::push_back
    - string
    - key
    - set_parents
    - static_cast<underlying_type>
    - m_data::m_value::array::back
    - to_json
    - static_cast<typename BasicJsonType::boolean_t>
    - value
    - m_data::m_value::array::reserve
    - end
    - to_json_tuple_impl
    - set_parent
    - m_data::m_value::array::resize
    - construct
    - template create<typename BasicJsonType::object_t>
    - std::get<Idx>
    - static_cast<typename BasicJsonType::number_integer_t>
    - m_data::m_value::destroy
    - template create<typename BasicJsonType::string_t>
    - template create<typename BasicJsonType::array_t>
    - std::copy
    - assert_invariant
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5427,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - b
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::boolean_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5431
      start: 5425
    functionDepth: 1
    functionLinenumber: 5425
    functionLinenumberEnd: 5431
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - assert_invariant
    - m_data::m_value::destroy
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::boolean_t
      b) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5440,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5444
      start: 5438
    functionDepth: 1
    functionLinenumber: 5438
    functionLinenumberEnd: 5444
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - assert_invariant
    - m_data::m_value::destroy
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const typename BasicJsonType::string_t&
      s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5449,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5451,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5453
      start: 5447
    functionDepth: 1
    functionLinenumber: 5447
    functionLinenumberEnd: 5453
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - assert_invariant
    - m_data::m_value::destroy
    - std::move
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::string_t&&
      s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5460,1
    - Dst: template create<typename BasicJsonType::string_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5462,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' str'
    argTypes:
    - BasicJsonType
    - CompatibleStringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5464
      start: 5458
    functionDepth: 1
    functionLinenumber: 5458
    functionLinenumberEnd: 5464
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - assert_invariant
    - m_data::m_value::destroy
    - template create<typename BasicJsonType::string_t>
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const CompatibleStringType& str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5473,1
    - Dst: BasicJsonType::binary_t
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5475,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' b'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::binary_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5477
      start: 5471
    functionDepth: 1
    functionLinenumber: 5471
    functionLinenumberEnd: 5477
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - assert_invariant
    - m_data::m_value::destroy
    - BasicJsonType::binary_t
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const typename BasicJsonType::binary_t&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5482,1
    - Dst: BasicJsonType::binary_t
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5484,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5484,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' b'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::binary_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5486
      start: 5480
    functionDepth: 1
    functionLinenumber: 5480
    functionLinenumberEnd: 5486
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - assert_invariant
    - m_data::m_value::destroy
    - std::move
    - BasicJsonType::binary_t
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::binary_t&&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5495,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5499
      start: 5493
    functionDepth: 1
    functionLinenumber: 5493
    functionLinenumberEnd: 5499
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - assert_invariant
    - m_data::m_value::destroy
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::number_float_t
      val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5508,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5512
      start: 5506
    functionDepth: 1
    functionLinenumber: 5506
    functionLinenumberEnd: 5512
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - assert_invariant
    - m_data::m_value::destroy
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::number_unsigned_t
      val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5521,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5525
      start: 5519
    functionDepth: 1
    functionLinenumber: 5519
    functionLinenumberEnd: 5525
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - assert_invariant
    - m_data::m_value::destroy
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::number_integer_t
      val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5534,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5537,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5539
      start: 5532
    functionDepth: 1
    functionLinenumber: 5532
    functionLinenumberEnd: 5539
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - set_parents
    - assert_invariant
    - m_data::m_value::destroy
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const typename BasicJsonType::array_t&
      arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5544,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5546,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5547,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5549
      start: 5542
    functionDepth: 1
    functionLinenumber: 5542
    functionLinenumberEnd: 5549
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - set_parents
    - assert_invariant
    - m_data::m_value::destroy
    - std::move
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::array_t&&
      arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5559,1
    - Dst: template create<typename BasicJsonType::array_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5561,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5561,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5561,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5562,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - CompatibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5564
      start: 5554
    functionDepth: 1
    functionLinenumber: 5554
    functionLinenumberEnd: 5564
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - end
    - m_data::m_value::destroy
    - template create<typename BasicJsonType::array_t>
    - set_parents
    - assert_invariant
    - begin
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const CompatibleArrayType& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5569,1
    - Dst: m_data::m_value::array::reserve
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5572,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5572,1
    - Dst: m_data::m_value::array::push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5575,1
    - Dst: set_parent
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5576,1
    - Dst: m_data::m_value::array::back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5576,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5579
      start: 5567
    functionDepth: 1
    functionLinenumber: 5567
    functionLinenumberEnd: 5579
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - m_data::m_value::array::push_back
    - m_data::m_value::array::reserve
    - m_data::m_value::destroy
    - set_parent
    - assert_invariant
    - m_data::m_value::array::back
    - size
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const std::vector<bool>& arr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5585,1
    - Dst: m_data::m_value::array::resize
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5588,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5588,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5589,1
    - Dst: std::copy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5591,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5591,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5591,1
    - Dst: m_data::m_value::array::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5591,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5593,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - std::valarray<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5595
      start: 5583
    functionDepth: 1
    functionLinenumber: 5583
    functionLinenumberEnd: 5595
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - end
    - m_data::m_value::destroy
    - m_data::m_value::array::resize
    - std::copy
    - set_parents
    - assert_invariant
    - begin
    - size
    - m_data::m_value::array::begin
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const std::valarray<T>& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5604,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5607,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5609
      start: 5602
    functionDepth: 1
    functionLinenumber: 5602
    functionLinenumberEnd: 5609
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - set_parents
    - assert_invariant
    - m_data::m_value::destroy
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const typename BasicJsonType::object_t&
      obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5614,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5616,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5617,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5619
      start: 5612
    functionDepth: 1
    functionLinenumber: 5612
    functionLinenumberEnd: 5619
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - set_parents
    - assert_invariant
    - m_data::m_value::destroy
    - std::move
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::object_t&&
      obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5628,1
    - Dst: template create<typename BasicJsonType::object_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5630,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5630,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5630,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5631,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - CompatibleObjectType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5633
      start: 5623
    functionDepth: 1
    functionLinenumber: 5623
    functionLinenumberEnd: 5633
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - template create<typename BasicJsonType::object_t>
    - end
    - m_data::m_value::destroy
    - set_parents
    - assert_invariant
    - begin
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const CompatibleObjectType& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - b
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5645
      start: 5642
    functionDepth: 2
    functionLinenumber: 5642
    functionLinenumberEnd: 5645
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 17
    functionsReached:
    - construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, T b) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5657,1
    - Dst: static_cast<typename BasicJsonType::boolean_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' b'
    argTypes:
    - BasicJsonType
    - BoolRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5658
      start: 5655
    functionDepth: 2
    functionLinenumber: 5655
    functionLinenumberEnd: 5658
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 17
    functionsReached:
    - static_cast<typename BasicJsonType::boolean_t>
    - construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const BoolRef& b) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - CompatibleString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5665
      start: 5662
    functionDepth: 2
    functionLinenumber: 5662
    functionLinenumberEnd: 5665
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 17
    functionsReached:
    - construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const CompatibleString& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5670,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5671
      start: 5668
    functionDepth: 2
    functionLinenumber: 5668
    functionLinenumberEnd: 5671
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 17
    functionsReached:
    - construct
    - std::move
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, typename BasicJsonType::string_t&& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5677,1
    - Dst: static_cast<typename BasicJsonType::number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - FloatType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5678
      start: 5675
    functionDepth: 2
    functionLinenumber: 5675
    functionLinenumberEnd: 5678
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 17
    functionsReached:
    - construct
    - static_cast<typename BasicJsonType::number_float_t>
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, FloatType val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5684,1
    - Dst: static_cast<typename BasicJsonType::number_unsigned_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - CompatibleNumberUnsignedType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5685
      start: 5682
    functionDepth: 2
    functionLinenumber: 5682
    functionLinenumberEnd: 5685
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 17
    functionsReached:
    - static_cast<typename BasicJsonType::number_unsigned_t>
    - construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, CompatibleNumberUnsignedType val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5691,1
    - Dst: static_cast<typename BasicJsonType::number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - CompatibleNumberIntegerType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5692
      start: 5689
    functionDepth: 2
    functionLinenumber: 5689
    functionLinenumberEnd: 5692
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 17
    functionsReached:
    - static_cast<typename BasicJsonType::number_integer_t>
    - construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, CompatibleNumberIntegerType val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5700,1
    - Dst: static_cast<underlying_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - e
    argTypes:
    - BasicJsonType
    - EnumType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5701
      start: 5697
    functionDepth: 2
    functionLinenumber: 5697
    functionLinenumberEnd: 5701
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 17
    functionsReached:
    - static_cast<underlying_type>
    - construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, EnumType e) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' e'
    argTypes:
    - BasicJsonType
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5708
      start: 5705
    functionDepth: 2
    functionLinenumber: 5705
    functionLinenumberEnd: 5708
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 17
    functionsReached:
    - construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std::vector<bool>& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - CompatibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5721
      start: 5718
    functionDepth: 2
    functionLinenumber: 5718
    functionLinenumberEnd: 5721
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 17
    functionsReached:
    - construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const CompatibleArrayType& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' bin'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::binary_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5727
      start: 5724
    functionDepth: 2
    functionLinenumber: 5724
    functionLinenumberEnd: 5727
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 17
    functionsReached:
    - construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const typename BasicJsonType::binary_t&
      bin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5733,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - std::valarray<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5734
      start: 5731
    functionDepth: 2
    functionLinenumber: 5731
    functionLinenumberEnd: 5734
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 17
    functionsReached:
    - construct
    - std::move
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std::valarray<T>& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5739,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5739,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5740
      start: 5737
    functionDepth: 2
    functionLinenumber: 5737
    functionLinenumberEnd: 5740
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 17
    functionsReached:
    - construct
    - std::move
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, typename BasicJsonType::array_t&& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - CompatibleObjectType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5747
      start: 5744
    functionDepth: 2
    functionLinenumber: 5744
    functionLinenumberEnd: 5747
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 17
    functionsReached:
    - construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const CompatibleObjectType& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5752,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5752,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5753
      start: 5750
    functionDepth: 2
    functionLinenumber: 5750
    functionLinenumberEnd: 5753
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 17
    functionsReached:
    - construct
    - std::move
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, typename BasicJsonType::object_t&& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - (arr)
    argTypes:
    - BasicJsonType
    - T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5763
      start: 5760
    functionDepth: 2
    functionLinenumber: 5760
    functionLinenumberEnd: 5763
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 17
    functionsReached:
    - construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const T(&arr)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' p'
    argTypes:
    - BasicJsonType
    - std::pair<T1, T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5769
      start: 5766
    functionDepth: 0
    functionLinenumber: 5766
    functionLinenumberEnd: 5769
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std::pair<T1, T2>& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5776,1
    - Dst: value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' b'
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5777
      start: 5774
    functionDepth: 1
    functionLinenumber: 5774
    functionLinenumberEnd: 5777
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 17
    functionsReached:
    - key
    - value
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const T& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<Idx>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' t'
    argTypes:
    - BasicJsonType
    - Tuple
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5783
      start: 5780
    functionDepth: 0
    functionLinenumber: 5780
    functionLinenumberEnd: 5783
    functionName: to_json_tuple_impl
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - std::get<Idx>
    linkageType: ''
    returnType: void
    signature: void to_json_tuple_impl(BasicJsonType& j, const Tuple& t, index_sequence<Idx...>
      /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_json_tuple_impl
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' t'
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5789
      start: 5786
    functionDepth: 1
    functionLinenumber: 5786
    functionLinenumberEnd: 5789
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 17
    functionsReached:
    - to_json_tuple_impl
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const T& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' p'
    argTypes:
    - BasicJsonType
    - std_fs::path
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5796
      start: 5793
    functionDepth: 1
    functionLinenumber: 5793
    functionLinenumberEnd: 5796
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 17
    functionsReached:
    - string
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std_fs::path& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5802,1
    - Dst: to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5802,1
    - Dst: std::forward<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5802,1
    - Dst: to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5803,1
    - Dst: std::forward<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5803,1
    - Dst: to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5805,1
    - Dst: std::forward<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5806
      start: 5802
    functionDepth: 3
    functionLinenumber: 5802
    functionLinenumberEnd: 5806
    functionName: "operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(to_json(j,
      std::forward<T>(val))))\n    -> decltype(to_json(j, std::forward<T>(val)), void())"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    - noexcept
    - to_json
    linkageType: ''
    returnType: auto
    signature: "auto operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(to_json(j,
      std::forward<T>(val))))\n    -> decltype(to_json(j, std::forward<T>(val)), void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5838,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5838,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5838,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5839,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5839,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5841,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - TargetType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5842
      start: 5837
    functionDepth: 1
    functionLinenumber: 5837
    functionLinenumberEnd: 5842
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - std::forward<BasicJsonType>
    - noexcept
    - from_json
    linkageType: ''
    returnType: auto
    signature: "auto from_json(BasicJsonType && j, TargetType& val) noexcept(\n        noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j),
      val)))\n    -> decltype(::nlohmann::from_json(std::forward<BasicJsonType>(j),
      val), void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5848,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5848,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5848,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5849,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5849,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5851,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5851,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5852
      start: 5847
    functionDepth: 1
    functionLinenumber: 5847
    functionLinenumberEnd: 5852
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 5
    functionsReached:
    - std::forward<BasicJsonType>
    - noexcept
    - from_json
    linkageType: ''
    returnType: auto
    signature: "auto from_json(BasicJsonType && j) noexcept(\n    noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j),
      detail::identity_tag<TargetType> {})))\n    -> decltype(::nlohmann::from_json(std::forward<BasicJsonType>(j),
      detail::identity_tag<TargetType> {}))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5858,1
    - Dst: key_to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5858,1
    - Dst: std::forward<TargetType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5858,1
    - Dst: key_to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5859,1
    - Dst: std::forward<TargetType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5859,1
    - Dst: key_to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5861,1
    - Dst: std::forward<TargetType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - TargetType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5862
      start: 5857
    functionDepth: 14
    functionLinenumber: 5857
    functionLinenumberEnd: 5862
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 19
    functionsReached:
    - std::forward<TargetType>
    - noexcept
    - key_to_json
    linkageType: ''
    returnType: auto
    signature: "auto to_json(BasicJsonType& j, TargetType && val) noexcept(\n        noexcept(::nlohmann::to_json(j,
      std::forward<TargetType>(val))))\n    -> decltype(::nlohmann::to_json(j, std::forward<TargetType>(val)),
      void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5838,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5838,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5838,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5839,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5839,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5841,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - TargetType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5842
      start: 5837
    functionDepth: 1
    functionLinenumber: 5837
    functionLinenumberEnd: 5842
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 6
    functionsReached:
    - std::forward<BasicJsonType>
    - noexcept
    - from_json
    linkageType: ''
    returnType: auto
    signature: "auto from_json(BasicJsonType && j, TargetType& val) noexcept(\n        noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j),
      val)))\n    -> decltype(::nlohmann::from_json(std::forward<BasicJsonType>(j),
      val), void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5848,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5848,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5848,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5849,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5849,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5851,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5851,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5852
      start: 5847
    functionDepth: 1
    functionLinenumber: 5847
    functionLinenumberEnd: 5852
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 7
    functionsReached:
    - std::forward<BasicJsonType>
    - noexcept
    - from_json
    linkageType: ''
    returnType: auto
    signature: "auto from_json(BasicJsonType && j) noexcept(\n    noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j),
      detail::identity_tag<TargetType> {})))\n    -> decltype(::nlohmann::from_json(std::forward<BasicJsonType>(j),
      detail::identity_tag<TargetType> {}))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5858,1
    - Dst: key_to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5858,1
    - Dst: std::forward<TargetType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5858,1
    - Dst: key_to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5859,1
    - Dst: std::forward<TargetType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5859,1
    - Dst: key_to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5861,1
    - Dst: std::forward<TargetType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - TargetType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5862
      start: 5857
    functionDepth: 14
    functionLinenumber: 5857
    functionLinenumberEnd: 5862
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 20
    functionsReached:
    - std::forward<TargetType>
    - noexcept
    - key_to_json
    linkageType: ''
    returnType: auto
    signature: "auto to_json(BasicJsonType& j, TargetType && val) noexcept(\n        noexcept(::nlohmann::to_json(j,
      std::forward<TargetType>(val))))\n    -> decltype(::nlohmann::to_json(j, std::forward<TargetType>(val)),
      void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - byte_container_with_subtype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5934
      start: 5931
    functionDepth: 0
    functionLinenumber: 5931
    functionLinenumberEnd: 5934
    functionName: operator!=(const byte_container_with_subtype& rhs) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const byte_container_with_subtype& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - subtype_
    argTypes:
    - subtype_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5942
      start: 5938
    functionDepth: 0
    functionLinenumber: 5938
    functionLinenumberEnd: 5942
    functionName: set_subtype
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_subtype(subtype_type subtype_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<subtype_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5949
      start: 5946
    functionDepth: 0
    functionLinenumber: 5946
    functionLinenumberEnd: 5949
    functionName: subtype
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<subtype_type>
    linkageType: ''
    returnType: subtype_type
    signature: subtype_type subtype() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5956
      start: 5953
    functionDepth: 0
    functionLinenumber: 5953
    functionLinenumberEnd: 5956
    functionName: has_subtype
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_subtype() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5964
      start: 5960
    functionDepth: 0
    functionLinenumber: 5960
    functionLinenumberEnd: 5964
    functionName: clear_subtype
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear_subtype() noexcept
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6029,1
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6029,1
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6030,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6035,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6040,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6040,1
    - Dst: items
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6041,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6043,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6044,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6045,1
    - Dst: hash
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6045,1
    - Dst: value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6045,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6052,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6052,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6055,1
    - Dst: hash
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6055,1
    - Dst: template get_ref<const string_t&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6062,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6063,1
    - Dst: template get<bool>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6068,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6069,1
    - Dst: template get<number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6074,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6075,1
    - Dst: template get<number_unsigned_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6080,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6081,1
    - Dst: template get<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6086,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6087,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6092,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6092,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6093,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6094,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6095,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6095,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6095,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6096,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6098,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6109
      start: 5999
    functionDepth: 1
    functionLinenumber: 5999
    functionLinenumberEnd: 6109
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - template get<number_float_t>
    - hash
    - template get<bool>
    - value
    - template get<number_unsigned_t>
    - combine
    - template get<number_integer_t>
    - key
    - static_cast<std::size_t>
    - type
    - JSON_ASSERT
    - template get_ref<const string_t&>
    - get_binary
    - size
    - items
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - seed
    - h
    argTypes:
    - std::size_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6008
      start: 6004
    functionDepth: 0
    functionLinenumber: 6004
    functionLinenumberEnd: 6008
    functionName: combine
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t combine(std::size_t seed, std::size_t h) noexcept
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6029,1
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6029,1
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6030,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6035,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6040,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6040,1
    - Dst: items
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6041,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6043,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6044,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6045,1
    - Dst: hash
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6045,1
    - Dst: value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6045,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6052,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6052,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6055,1
    - Dst: hash
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6055,1
    - Dst: template get_ref<const string_t&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6062,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6063,1
    - Dst: template get<bool>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6068,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6069,1
    - Dst: template get<number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6074,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6075,1
    - Dst: template get<number_unsigned_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6080,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6081,1
    - Dst: template get<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6086,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6087,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6092,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6092,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6093,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6094,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6095,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6095,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6095,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6096,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6098,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6107
      start: 6022
    functionDepth: 1
    functionLinenumber: 6022
    functionLinenumberEnd: 6107
    functionName: hash
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 67
    functionsReached:
    - template get<number_float_t>
    - hash
    - template get<bool>
    - value
    - template get<number_unsigned_t>
    - combine
    - template get<number_integer_t>
    - key
    - static_cast<std::size_t>
    - type
    - JSON_ASSERT
    - template get_ref<const string_t&>
    - get_binary
    - size
    - items
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t hash(const BasicJsonType& j)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6196,1
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6204,1
    - Dst: std::fgetc
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6208,1
    - Dst: clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6236,1
    - Dst: rdstate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6236,1
    - Dst: rdbuf
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6241,1
    - Dst: sbumpc
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6261,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6263,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6263,1
    - Dst: clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6265,1
    - Dst: rdstate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6265,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6286,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6286,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6291,1
    - Dst: std::to_int_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6293,1
    - Dst: std::advance
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6294,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6298,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6328,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6328,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6330,1
    - Dst: get_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6336,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6341,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6346,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6346,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6347,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6347,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6352,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6352,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6353,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6353,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6354,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6354,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6359,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6359,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6360,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6360,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6361,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6361,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6362,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6362,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6368,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6386,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6386,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6388,1
    - Dst: get_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6394,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6399,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6404,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6404,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6405,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6405,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6410,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6410,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6411,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6411,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6412,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6412,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6417,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6417,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6419,1
    - Dst: get_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6419,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6420,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6421,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6422,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6423,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6424,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6429,1
    - Dst: fill_buffer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6452,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6454,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6455,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6459,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6460,1
    - Dst: fill_buffer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6470,1
    - Dst: adapter_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6491,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6491,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6491,1
    - Dst: adapter_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6515,1
    - Dst: base_adapter_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6515,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6515,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6515,1
    - Dst: rnpffi::FFI::iterator_create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6524,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6542,1
    - Dst: std::declval<ContainerType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6542,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6542,1
    - Dst: std::declval<ContainerType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6542,1
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6544,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6544,1
    - Dst: std::declval<ContainerType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6544,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6544,1
    - Dst: std::declval<ContainerType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6544,1
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6548,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6548,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6548,1
    - Dst: rnpffi::FFI::iterator_create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6557,1
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6564,1
    - Dst: input_stream_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6569,1
    - Dst: input_stream_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6574,1
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6578,1
    - Dst: std::declval<const char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6578,1
    - Dst: std::declval<const char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6578,1
    - Dst: std::strlen
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6590,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6590,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6591,1
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6592,1
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6596,1
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6598,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6614,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6614,1
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6621,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6625,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 131
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6632
      start: 6171
    functionDepth: 1
    functionLinenumber: 6171
    functionLinenumberEnd: 6632
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - pgp_source_t::eof
    - reinterpret_cast<const char*>
    - JSON_ASSERT
    - get_character
    - empty
    - begin
    - static_cast<unsigned int>
    - std::move
    - sbumpc
    - adapter_type
    - JSON_HEDLEY_UNLIKELY
    - input_stream_adapter
    - std::strlen
    - std::advance
    - clear
    - std::declval<ContainerType>
    - std::to_int_type
    - JSON_HEDLEY_LIKELY
    - rdstate
    - end
    - file_input_adapter
    - std::declval<const char*>
    - fill_buffer
    - rdbuf
    - input_adapter
    - rnpffi::FFI::iterator_create
    - std::fgetc
    - static_cast<std::char_traits<char>::int_type>
    - base_adapter_type
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - std::FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6197
      start: 6193
    functionDepth: 1
    functionLinenumber: 6193
    functionLinenumberEnd: 6197
    functionName: file_input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - JSON_ASSERT
    linkageType: ''
    returnType: void
    signature: void file_input_adapter(std::FILE* f) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6200
      start: 6200
    functionDepth: 0
    functionLinenumber: 6200
    functionLinenumberEnd: 6200
    functionName: file_input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_input_adapter(const file_input_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6201
      start: 6201
    functionDepth: 0
    functionLinenumber: 6201
    functionLinenumberEnd: 6201
    functionName: file_input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_input_adapter(file_input_adapter&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fgetc
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6209
      start: 6206
    functionDepth: 0
    functionLinenumber: 6206
    functionLinenumberEnd: 6209
    functionName: get_character
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - std::fgetc
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get_character() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6236,1
    - Dst: rdstate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6238
      start: 6230
    functionDepth: 1
    functionLinenumber: 6230
    functionLinenumberEnd: 6238
    functionName: ~input_stream_adapter()
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - clear
    - rdstate
    linkageType: ''
    returnType: void
    signature: void ~input_stream_adapter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rdbuf
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6242
      start: 6240
    functionDepth: 0
    functionLinenumber: 6240
    functionLinenumberEnd: 6242
    functionName: input_stream_adapter::input_stream_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - rdbuf
    linkageType: ''
    returnType: void
    signature: void input_stream_adapter(std::istream& i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6245
      start: 6245
    functionDepth: 0
    functionLinenumber: 6245
    functionLinenumberEnd: 6245
    functionName: input_stream_adapter::input_stream_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_stream_adapter(const input_stream_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6246
      start: 6246
    functionDepth: 0
    functionLinenumber: 6246
    functionLinenumberEnd: 6246
    functionName: '& operator=(input_stream_adapter&)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: input_stream_adapter
    signature: input_stream_adapter & operator=(input_stream_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6247
      start: 6247
    functionDepth: 0
    functionLinenumber: 6247
    functionLinenumberEnd: 6247
    functionName: '& operator=(input_stream_adapter&&)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: input_stream_adapter
    signature: input_stream_adapter & operator=(input_stream_adapter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - input_stream_adapter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6254
      start: 6249
    functionDepth: 0
    functionLinenumber: 6249
    functionLinenumberEnd: 6254
    functionName: input_stream_adapter::input_stream_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_stream_adapter(input_stream_adapter&& rhs) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sbumpc
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6261,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6263,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6263,1
    - Dst: clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6265,1
    - Dst: rdstate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6268
      start: 6259
    functionDepth: 1
    functionLinenumber: 6259
    functionLinenumberEnd: 6268
    functionName: input_stream_adapter::get_character
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - sbumpc
    - rdstate
    - JSON_HEDLEY_UNLIKELY
    - pgp_source_t::eof
    - clear
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get_character()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6286,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6287
      start: 6285
    functionDepth: 1
    functionLinenumber: 6285
    functionLinenumberEnd: 6287
    functionName: iterator_input_adapter::iterator_input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void iterator_input_adapter(IteratorType first, IteratorType last)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6291,1
    - Dst: std::to_int_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6293,1
    - Dst: std::advance
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6294,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6299
      start: 6289
    functionDepth: 1
    functionLinenumber: 6289
    functionLinenumberEnd: 6299
    functionName: iterator_input_adapter::get_character
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::to_int_type
    - pgp_source_t::eof
    - std::advance
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: typename char_traits<char_type>::int_type
    signature: typename char_traits<char_type>::int_type get_character()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6311
      start: 6308
    functionDepth: 0
    functionLinenumber: 6308
    functionLinenumberEnd: 6311
    functionName: iterator_input_adapter::empty
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6328,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6328,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6330,1
    - Dst: get_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6336,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6341,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6346,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6346,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6347,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6347,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6352,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6352,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6353,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6353,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6354,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6354,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6359,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6359,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6360,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6360,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6361,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6361,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6362,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6362,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6368,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 4
    argNames:
    - ' input'
    - ' utf8_bytes'
    - ' utf8_bytes_index'
    - ' utf8_bytes_filled'
    argTypes:
    - BaseInputAdapter
    - std::array<std::char_traits<char>::int_type, 4>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6372
      start: 6321
    functionDepth: 1
    functionLinenumber: 6321
    functionLinenumberEnd: 6372
    functionName: fill_buffer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - pgp_source_t::eof
    - get_character
    - empty
    - static_cast<std::char_traits<char>::int_type>
    - static_cast<unsigned int>
    linkageType: ''
    returnType: void
    signature: "void fill_buffer(BaseInputAdapter& input,\n                            std::array<std::char_traits<char>::int_type,
      4>& utf8_bytes,\n                            size_t& utf8_bytes_index,\n                            size_t&
      utf8_bytes_filled)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6386,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6386,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6388,1
    - Dst: get_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6394,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6399,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6404,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6404,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6405,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6405,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6410,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6410,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6411,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6411,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6412,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6412,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6417,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6417,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6419,1
    - Dst: get_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6419,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6420,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6421,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6422,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6423,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6424,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6429,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 4
    argNames:
    - ' input'
    - ' utf8_bytes'
    - ' utf8_bytes_index'
    - ' utf8_bytes_filled'
    argTypes:
    - BaseInputAdapter
    - std::array<std::char_traits<char>::int_type, 4>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6434
      start: 6379
    functionDepth: 1
    functionLinenumber: 6379
    functionLinenumberEnd: 6434
    functionName: fill_buffer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - pgp_source_t::eof
    - get_character
    - empty
    - static_cast<std::char_traits<char>::int_type>
    - static_cast<unsigned int>
    linkageType: ''
    returnType: void
    signature: "void fill_buffer(BaseInputAdapter& input,\n                            std::array<std::char_traits<char>::int_type,
      4>& utf8_bytes,\n                            size_t& utf8_bytes_index,\n                            size_t&
      utf8_bytes_filled)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - base
    argTypes:
    - BaseInputAdapter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6445
      start: 6444
    functionDepth: 0
    functionLinenumber: 6444
    functionLinenumberEnd: 6445
    functionName: wide_string_input_adapter::wide_string_input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wide_string_input_adapter(BaseInputAdapter base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wide_string_input_adapter::fill_buffer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6452,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6454,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6455,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6459,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6462
      start: 6447
    functionDepth: 1
    functionLinenumber: 6447
    functionLinenumberEnd: 6462
    functionName: wide_string_input_adapter::get_character
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_ASSERT
    - wide_string_input_adapter::fill_buffer
    linkageType: ''
    returnType: typename std::char_traits<char>::int_type
    signature: typename std::char_traits<char>::int_type get_character() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wide_string_input_adapter::fill_buffer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6471
      start: 6468
    functionDepth: 1
    functionLinenumber: 6468
    functionLinenumberEnd: 6471
    functionName: wide_string_input_adapter::fill_buffer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - wide_string_input_adapter::fill_buffer
    linkageType: ''
    returnType: void
    signature: void fill_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: adapter_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6491,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6491,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6492
      start: 6489
    functionDepth: 1
    functionLinenumber: 6489
    functionLinenumberEnd: 6492
    functionName: create
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 379
    functionsReached:
    - adapter_type
    - std::move
    linkageType: ''
    returnType: adapter_type
    signature: adapter_type create(IteratorType first, IteratorType last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: adapter_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6515,1
    - Dst: base_adapter_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6515,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6515,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6516
      start: 6513
    functionDepth: 1
    functionLinenumber: 6513
    functionLinenumberEnd: 6516
    functionName: create
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 379
    functionsReached:
    - adapter_type
    - base_adapter_type
    - std::move
    linkageType: ''
    returnType: adapter_type
    signature: adapter_type create(IteratorType first, IteratorType last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnpffi::FFI::iterator_create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6525
      start: 6521
    functionDepth: 1
    functionLinenumber: 6521
    functionLinenumberEnd: 6525
    functionName: input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - rnpffi::FFI::iterator_create
    linkageType: ''
    returnType: typename iterator_input_adapter_factory<IteratorType>::adapter_type
    signature: typename iterator_input_adapter_factory<IteratorType>::adapter_type
      input_adapter(IteratorType first, IteratorType last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6548,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6548,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' container'
    argTypes:
    - ContainerType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6549
      start: 6546
    functionDepth: 2
    functionLinenumber: 6546
    functionLinenumberEnd: 6549
    functionName: container_input_adapter_factory_impl::create
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - end
    - begin
    - input_adapter
    linkageType: ''
    returnType: adapter_type
    signature: adapter_type create(const ContainerType& container)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6548,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6548,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' container'
    argTypes:
    - ContainerType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6549
      start: 6546
    functionDepth: 2
    functionLinenumber: 6546
    functionLinenumberEnd: 6549
    functionName: container_input_adapter_factory_impl::create
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - end
    - begin
    - input_adapter
    linkageType: ''
    returnType: adapter_type
    signature: adapter_type create(const ContainerType& container)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnpffi::FFI::iterator_create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' container'
    argTypes:
    - ContainerType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6558
      start: 6555
    functionDepth: 1
    functionLinenumber: 6555
    functionLinenumberEnd: 6558
    functionName: input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 3
    functionsReached:
    - rnpffi::FFI::iterator_create
    linkageType: ''
    returnType: typename container_input_adapter_factory_impl::container_input_adapter_factory<ContainerType>::adapter_type
    signature: typename container_input_adapter_factory_impl::container_input_adapter_factory<ContainerType>::adapter_type
      input_adapter(const ContainerType& container)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - std::FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6565
      start: 6562
    functionDepth: 2
    functionLinenumber: 6562
    functionLinenumberEnd: 6565
    functionName: input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - file_input_adapter
    linkageType: ''
    returnType: file_input_adapter
    signature: file_input_adapter input_adapter(std::FILE* file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: input_stream_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' stream'
    argTypes:
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6570
      start: 6567
    functionDepth: 0
    functionLinenumber: 6567
    functionLinenumberEnd: 6570
    functionName: input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - input_stream_adapter
    linkageType: ''
    returnType: input_stream_adapter
    signature: input_stream_adapter input_adapter(std::istream& stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: input_stream_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' stream'
    argTypes:
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6575
      start: 6572
    functionDepth: 0
    functionLinenumber: 6572
    functionLinenumberEnd: 6575
    functionName: input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - input_stream_adapter
    linkageType: ''
    returnType: input_stream_adapter
    signature: input_stream_adapter input_adapter(std::istream&& stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::strlen
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6590,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6590,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6591,1
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - CharT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6593
      start: 6588
    functionDepth: 1
    functionLinenumber: 6588
    functionLinenumberEnd: 6593
    functionName: input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 5
    functionsReached:
    - reinterpret_cast<const char*>
    - std::strlen
    - input_adapter
    linkageType: ''
    returnType: contiguous_bytes_input_adapter
    signature: contiguous_bytes_input_adapter input_adapter(CharT b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6596,1
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (array)
    argTypes:
    - T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6599
      start: 6596
    functionDepth: 1
    functionLinenumber: 6596
    functionLinenumberEnd: 6599
    functionName: input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 6
    functionsReached:
    - input_adapter
    linkageType: ''
    returnType: auto
    signature: auto input_adapter(T (&array)[N]) -> decltype(input_adapter(array,
      array + N))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6614,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - b
    - l
    argTypes:
    - CharT
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6614
      start: 6613
    functionDepth: 0
    functionLinenumber: 6613
    functionLinenumberEnd: 6614
    functionName: span_input_adapter::span_input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void span_input_adapter(CharT b, std::size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6621
      start: 6620
    functionDepth: 2
    functionLinenumber: 6620
    functionLinenumberEnd: 6621
    functionName: span_input_adapter::span_input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - input_adapter
    linkageType: ''
    returnType: void
    signature: void span_input_adapter(IteratorType first, IteratorType last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6626
      start: 6623
    functionDepth: 1
    functionLinenumber: 6623
    functionLinenumberEnd: 6626
    functionName: '&& get()'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: contiguous_bytes_input_adapter
    signature: contiguous_bytes_input_adapter && get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6815
      start: 6813
    functionDepth: 0
    functionLinenumber: 6813
    functionLinenumberEnd: 6815
    functionName: json_sax_dom_parser
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_parser(BasicJsonType& r, const bool allow_exceptions_
      = true)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6818
      start: 6818
    functionDepth: 0
    functionLinenumber: 6818
    functionLinenumberEnd: 6818
    functionName: json_sax_dom_parser
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_parser(const json_sax_dom_parser&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6819
      start: 6819
    functionDepth: 0
    functionLinenumber: 6819
    functionLinenumberEnd: 6819
    functionName: json_sax_dom_parser
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_parser(json_sax_dom_parser&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6822
      start: 6822
    functionDepth: 0
    functionLinenumber: 6822
    functionLinenumberEnd: 6822
    functionName: ~json_sax_dom_parser()
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~json_sax_dom_parser()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6828
      start: 6824
    functionDepth: 0
    functionLinenumber: 6824
    functionLinenumberEnd: 6828
    functionName: 'null'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 165
    functionsReached:
    - handle_value
    linkageType: ''
    returnType: bool
    signature: bool null()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6834
      start: 6830
    functionDepth: 0
    functionLinenumber: 6830
    functionLinenumberEnd: 6834
    functionName: boolean
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 3
    functionsReached:
    - handle_value
    linkageType: ''
    returnType: bool
    signature: bool boolean(bool val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6840
      start: 6836
    functionDepth: 0
    functionLinenumber: 6836
    functionLinenumberEnd: 6840
    functionName: number_integer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 6
    functionsReached:
    - handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_integer(number_integer_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6846
      start: 6842
    functionDepth: 0
    functionLinenumber: 6842
    functionLinenumberEnd: 6846
    functionName: number_unsigned
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_unsigned(number_unsigned_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6852
      start: 6848
    functionDepth: 0
    functionLinenumber: 6848
    functionLinenumberEnd: 6852
    functionName: number_float
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_float(number_float_t val, const string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6858
      start: 6854
    functionDepth: 0
    functionLinenumber: 6854
    functionLinenumberEnd: 6858
    functionName: string
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 146
    functionsReached:
    - handle_value
    linkageType: ''
    returnType: bool
    signature: bool string(string_t& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6862,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - binary_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6864
      start: 6860
    functionDepth: 1
    functionLinenumber: 6860
    functionLinenumberEnd: 6864
    functionName: binary
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - handle_value
    - std::move
    linkageType: ''
    returnType: bool
    signature: bool binary(binary_t& val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6868,1
    - Dst: handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6868,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6870,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6870,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6870,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6872,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6872,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6872,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6872,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6872,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6876
      start: 6866
    functionDepth: 4
    functionLinenumber: 6866
    functionLinenumberEnd: 6876
    functionName: start_object
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - push_back
    - concat
    - to_string
    - static_cast<std::size_t>
    - back
    - handle_value
    - out_of_range::create
    linkageType: ''
    returnType: bool
    signature: bool start_object(std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6880,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6880,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6881,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6881,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6884,1
    - Dst: m_value::object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6886
      start: 6878
    functionDepth: 1
    functionLinenumber: 6878
    functionLinenumberEnd: 6886
    functionName: key
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 597
    functionsReached:
    - empty
    - JSON_ASSERT
    - m_value::object
    - back
    linkageType: ''
    returnType: bool
    signature: bool key(string_t& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6890,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6890,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6891,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6891,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6893,1
    - Dst: pop_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6896
      start: 6888
    functionDepth: 1
    functionLinenumber: 6888
    functionLinenumberEnd: 6896
    functionName: end_object
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - empty
    - JSON_ASSERT
    - pop_back
    - back
    linkageType: ''
    returnType: bool
    signature: bool end_object()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6900,1
    - Dst: handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6900,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6902,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6902,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6902,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6904,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6904,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6904,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6904,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6908
      start: 6898
    functionDepth: 4
    functionLinenumber: 6898
    functionLinenumberEnd: 6908
    functionName: start_array
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - push_back
    - concat
    - to_string
    - static_cast<std::size_t>
    - back
    - handle_value
    - out_of_range::create
    linkageType: ''
    returnType: bool
    signature: bool start_array(std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6912,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6912,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6913,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6913,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6915,1
    - Dst: pop_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6918
      start: 6910
    functionDepth: 1
    functionLinenumber: 6910
    functionLinenumberEnd: 6918
    functionName: end_array
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - empty
    - JSON_ASSERT
    - pop_back
    - back
    linkageType: ''
    returnType: bool
    signature: bool end_array()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6925,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - Exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6931
      start: 6921
    functionDepth: 1
    functionLinenumber: 6921
    functionLinenumberEnd: 6931
    functionName: parse_error
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    - JSON_THROW
    linkageType: ''
    returnType: bool
    signature: "bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/,\n
      \                    const Exception& ex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6936
      start: 6933
    functionDepth: 0
    functionLinenumber: 6933
    functionLinenumberEnd: 6936
    functionName: is_errored
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_errored() const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5183,1
    - Dst: std::declval<IteratorType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5193,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5212,1
    - Dst: iteration_proxy_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5244,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5265,1
    - Dst: m_object::type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5267,1
    - Dst: int_to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5274,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5282,1
    - Dst: value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5301,1
    - Dst: iteration_proxy_value<IteratorType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5328,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5328,1
    - Dst: iteration_proxy_value<IteratorType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5334,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5334,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5342,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5344,1
    - Dst: value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5350,1
    - Dst: value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5352,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 52
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5355
      start: 5174
    functionDepth: 2
    functionLinenumber: 5174
    functionLinenumberEnd: 5355
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::declval<IteratorType>
    - m_object::type
    - value
    - end
    - to_string
    - key
    - JSON_ASSERT
    - iteration_proxy_value<IteratorType>
    - int_to_string
    - begin
    - iteration_proxy_value
    - std::move
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5183,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' target'
    - value
    argTypes:
    - string_type
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5184
      start: 5179
    functionDepth: 1
    functionLinenumber: 5179
    functionLinenumberEnd: 5184
    functionName: int_to_string
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 3
    functionsReached:
    - to_string
    linkageType: ''
    returnType: void
    signature: void int_to_string( string_type& target, std::size_t value )
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5208
      start: 5208
    functionDepth: 0
    functionLinenumber: 5208
    functionLinenumberEnd: 5208
    functionName: iteration_proxy_value::iteration_proxy_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iteration_proxy_value()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5212,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - it
    argTypes:
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5214
      start: 5209
    functionDepth: 1
    functionLinenumber: 5209
    functionLinenumberEnd: 5214
    functionName: iteration_proxy_value::iteration_proxy_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: "void iteration_proxy_value(IteratorType it, std::size_t array_index_
      = 0)\n    noexcept(std::is_nothrow_move_constructible<IteratorType>::value\n
      \            && std::is_nothrow_default_constructible<string_type>::value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5216
      start: 5216
    functionDepth: 0
    functionLinenumber: 5216
    functionLinenumberEnd: 5216
    functionName: iteration_proxy_value::iteration_proxy_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iteration_proxy_value(iteration_proxy_value const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5217
      start: 5217
    functionDepth: 0
    functionLinenumber: 5217
    functionLinenumberEnd: 5217
    functionName: '& operator=(iteration_proxy_value const&)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iteration_proxy_value
    signature: iteration_proxy_value & operator=(iteration_proxy_value const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5221
      start: 5219
    functionDepth: 0
    functionLinenumber: 5219
    functionLinenumberEnd: 5221
    functionName: iteration_proxy_value::iteration_proxy_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: "void iteration_proxy_value(iteration_proxy_value&&)\n    noexcept(std::is_nothrow_move_constructible<IteratorType>::value\n
      \            && std::is_nothrow_move_constructible<string_type>::value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5224
      start: 5222
    functionDepth: 0
    functionLinenumber: 5222
    functionLinenumberEnd: 5224
    functionName: "& operator=(iteration_proxy_value&&)\n    noexcept(std::is_nothrow_move_assignable<IteratorType>::value\n
      \            && std::is_nothrow_move_assignable<string_type>::value)"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iteration_proxy_value
    signature: "iteration_proxy_value & operator=(iteration_proxy_value&&)\n    noexcept(std::is_nothrow_move_assignable<IteratorType>::value\n
      \            && std::is_nothrow_move_assignable<string_type>::value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5225
      start: 5225
    functionDepth: 0
    functionLinenumber: 5225
    functionLinenumberEnd: 5225
    functionName: ~iteration_proxy_value()
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~iteration_proxy_value()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5231
      start: 5228
    functionDepth: 0
    functionLinenumber: 5228
    functionLinenumberEnd: 5231
    functionName: '& operator*() const'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iteration_proxy_value
    signature: iteration_proxy_value & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5240
      start: 5234
    functionDepth: 0
    functionLinenumber: 5234
    functionLinenumberEnd: 5240
    functionName: '& operator++()'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iteration_proxy_value
    signature: iteration_proxy_value & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iteration_proxy_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5244,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5248
      start: 5242
    functionDepth: 0
    functionLinenumber: 5242
    functionLinenumberEnd: 5248
    functionName: operator++(int)&
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - iteration_proxy_value
    linkageType: ''
    returnType: iteration_proxy_value
    signature: iteration_proxy_value operator++(int)&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - iteration_proxy_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5254
      start: 5251
    functionDepth: 0
    functionLinenumber: 5251
    functionLinenumberEnd: 5254
    functionName: operator==(const iteration_proxy_value& o) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const iteration_proxy_value& o) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' o'
    argTypes:
    - iteration_proxy_value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5260
      start: 5257
    functionDepth: 0
    functionLinenumber: 5257
    functionLinenumberEnd: 5260
    functionName: operator!=(const iteration_proxy_value& o) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const iteration_proxy_value& o) const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5265,1
    - Dst: m_object::type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5267,1
    - Dst: int_to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5274,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5282,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5296
      start: 5263
    functionDepth: 2
    functionLinenumber: 5263
    functionLinenumberEnd: 5296
    functionName: '& key() const'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - key
    - JSON_ASSERT
    - int_to_string
    - m_object::type
    linkageType: ''
    returnType: string_type
    signature: string_type & key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iteration_proxy_value::value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5301,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5302
      start: 5299
    functionDepth: 1
    functionLinenumber: 5299
    functionLinenumberEnd: 5302
    functionName: iteration_proxy_value::value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - iteration_proxy_value::value
    linkageType: ''
    returnType: typename IteratorType::reference
    signature: typename IteratorType::reference value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5313
      start: 5313
    functionDepth: 0
    functionLinenumber: 5313
    functionLinenumberEnd: 5313
    functionName: iteration_proxy::iteration_proxy
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iteration_proxy()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - cont
    argTypes:
    - typename IteratorType::reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5317
      start: 5316
    functionDepth: 0
    functionLinenumber: 5316
    functionLinenumberEnd: 5317
    functionName: iteration_proxy::iteration_proxy
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iteration_proxy(typename IteratorType::reference cont) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5319
      start: 5319
    functionDepth: 0
    functionLinenumber: 5319
    functionLinenumberEnd: 5319
    functionName: iteration_proxy::iteration_proxy
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iteration_proxy(iteration_proxy const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5320
      start: 5320
    functionDepth: 0
    functionLinenumber: 5320
    functionLinenumberEnd: 5320
    functionName: '& operator=(iteration_proxy const&)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iteration_proxy
    signature: iteration_proxy & operator=(iteration_proxy const&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5321
      start: 5321
    functionDepth: 0
    functionLinenumber: 5321
    functionLinenumberEnd: 5321
    functionName: iteration_proxy::iteration_proxy
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iteration_proxy(iteration_proxy&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5322
      start: 5322
    functionDepth: 0
    functionLinenumber: 5322
    functionLinenumberEnd: 5322
    functionName: '& operator=(iteration_proxy&&) noexcept'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iteration_proxy
    signature: iteration_proxy & operator=(iteration_proxy&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5323
      start: 5323
    functionDepth: 0
    functionLinenumber: 5323
    functionLinenumberEnd: 5323
    functionName: ~iteration_proxy()
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~iteration_proxy()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iteration_proxy_value<IteratorType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5328,1
    - Dst: iteration_proxy::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5328,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5329
      start: 5326
    functionDepth: 1
    functionLinenumber: 5326
    functionLinenumberEnd: 5329
    functionName: iteration_proxy::begin
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - iteration_proxy::begin
    - iteration_proxy_value<IteratorType>
    linkageType: ''
    returnType: iteration_proxy_value<IteratorType>
    signature: iteration_proxy_value<IteratorType> begin() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iteration_proxy_value<IteratorType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5334,1
    - Dst: iteration_proxy::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5334,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5335
      start: 5332
    functionDepth: 1
    functionLinenumber: 5332
    functionLinenumberEnd: 5335
    functionName: iteration_proxy::end
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - iteration_proxy::end
    - iteration_proxy_value<IteratorType>
    linkageType: ''
    returnType: iteration_proxy_value<IteratorType>
    signature: iteration_proxy_value<IteratorType> end() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5342,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5344,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - nlohmann::detail::iteration_proxy_value<IteratorType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5345
      start: 5342
    functionDepth: 2
    functionLinenumber: 5342
    functionLinenumberEnd: 5345
    functionName: get
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 633
    functionsReached:
    - key
    linkageType: ''
    returnType: auto
    signature: auto get(const nlohmann::detail::iteration_proxy_value<IteratorType>&
      i) -> decltype(i.key())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5350,1
    - Dst: value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5352,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - nlohmann::detail::iteration_proxy_value<IteratorType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5353
      start: 5350
    functionDepth: 1
    functionLinenumber: 5350
    functionLinenumberEnd: 5353
    functionName: get
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 633
    functionsReached:
    - value
    linkageType: ''
    returnType: auto
    signature: auto get(const nlohmann::detail::iteration_proxy_value<IteratorType>&
      i) -> decltype(i.value())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5379,1
    - Dst: "std::declval <\n                            ::nlohmann::detail::iteration_proxy_value<IteratorType
        >>"
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5379,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5386
      start: 5356
    functionDepth: 2
    functionLinenumber: 5356
    functionLinenumberEnd: 5386
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - "std::declval <\n                            ::nlohmann::detail::iteration_proxy_value<IteratorType
      >>"
    - get
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_END
    signature: NLOHMANN_JSON_NAMESPACE_END namespace
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5427,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5430,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5440,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5443,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5449,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5451,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5452,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5460,1
    - Dst: template create<typename BasicJsonType::string_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5462,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5463,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5473,1
    - Dst: BasicJsonType::binary_t
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5475,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5476,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5482,1
    - Dst: BasicJsonType::binary_t
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5484,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5484,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5485,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5495,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5498,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5508,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5511,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5521,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5524,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5534,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5537,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5538,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5544,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5546,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5547,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5548,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5559,1
    - Dst: template create<typename BasicJsonType::array_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5561,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5561,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5561,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5562,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5563,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5569,1
    - Dst: m_data::m_value::array::reserve
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5572,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5572,1
    - Dst: m_data::m_value::array::push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5575,1
    - Dst: set_parent
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5576,1
    - Dst: m_data::m_value::array::back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5576,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5578,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5585,1
    - Dst: m_data::m_value::array::resize
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5588,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5588,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5589,1
    - Dst: std::copy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5591,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5591,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5591,1
    - Dst: m_data::m_value::array::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5591,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5593,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5594,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5604,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5607,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5608,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5614,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5616,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5617,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5618,1
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5628,1
    - Dst: template create<typename BasicJsonType::object_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5630,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5630,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5630,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5631,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5632,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5644,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5657,1
    - Dst: static_cast<typename BasicJsonType::boolean_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5657,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5664,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5670,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5670,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5677,1
    - Dst: static_cast<typename BasicJsonType::number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5677,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5684,1
    - Dst: static_cast<typename BasicJsonType::number_unsigned_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5684,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5691,1
    - Dst: static_cast<typename BasicJsonType::number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5691,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5700,1
    - Dst: static_cast<underlying_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5700,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5707,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5720,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5726,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5733,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5733,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5739,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5739,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5746,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5752,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5752,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5762,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5776,1
    - Dst: value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5776,1
    - Dst: std::get<Idx>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5782,1
    - Dst: to_json_tuple_impl
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5788,1
    - Dst: string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5795,1
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5802,1
    - Dst: to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5802,1
    - Dst: std::forward<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5802,1
    - Dst: to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5803,1
    - Dst: std::forward<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5803,1
    - Dst: to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5805,1
    - Dst: std::forward<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5805,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 145
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5808
      start: 5404
    functionDepth: 3
    functionLinenumber: 5404
    functionLinenumberEnd: 5808
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<typename BasicJsonType::number_unsigned_t>
    - noexcept
    - BasicJsonType::binary_t
    - begin
    - size
    - std::move
    - m_data::m_value::array::begin
    - static_cast<typename BasicJsonType::number_float_t>
    - std::forward<T>
    - m_data::m_value::array::push_back
    - string
    - key
    - set_parents
    - static_cast<underlying_type>
    - m_data::m_value::array::back
    - to_json
    - static_cast<typename BasicJsonType::boolean_t>
    - value
    - m_data::m_value::array::reserve
    - end
    - to_json_tuple_impl
    - set_parent
    - m_data::m_value::array::resize
    - construct
    - template create<typename BasicJsonType::object_t>
    - std::get<Idx>
    - static_cast<typename BasicJsonType::number_integer_t>
    - m_data::m_value::destroy
    - template create<typename BasicJsonType::string_t>
    - template create<typename BasicJsonType::array_t>
    - std::copy
    - assert_invariant
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5427,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5430,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - b
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::boolean_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5431
      start: 5425
    functionDepth: 1
    functionLinenumber: 5425
    functionLinenumberEnd: 5431
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 18
    functionsReached:
    - assert_invariant
    - m_data::m_value::destroy
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::boolean_t
      b) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5440,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5444
      start: 5438
    functionDepth: 1
    functionLinenumber: 5438
    functionLinenumberEnd: 5444
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 18
    functionsReached:
    - assert_invariant
    - m_data::m_value::destroy
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const typename BasicJsonType::string_t&
      s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5449,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5451,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5452,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5453
      start: 5447
    functionDepth: 1
    functionLinenumber: 5447
    functionLinenumberEnd: 5453
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 18
    functionsReached:
    - assert_invariant
    - m_data::m_value::destroy
    - std::move
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::string_t&&
      s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5460,1
    - Dst: template create<typename BasicJsonType::string_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5462,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5463,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' str'
    argTypes:
    - BasicJsonType
    - CompatibleStringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5464
      start: 5458
    functionDepth: 1
    functionLinenumber: 5458
    functionLinenumberEnd: 5464
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 18
    functionsReached:
    - assert_invariant
    - m_data::m_value::destroy
    - template create<typename BasicJsonType::string_t>
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const CompatibleStringType& str)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5473,1
    - Dst: BasicJsonType::binary_t
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5475,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5476,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' b'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::binary_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5477
      start: 5471
    functionDepth: 1
    functionLinenumber: 5471
    functionLinenumberEnd: 5477
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 18
    functionsReached:
    - assert_invariant
    - m_data::m_value::destroy
    - BasicJsonType::binary_t
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const typename BasicJsonType::binary_t&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5482,1
    - Dst: BasicJsonType::binary_t
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5484,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5484,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5485,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - ' b'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::binary_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5486
      start: 5480
    functionDepth: 1
    functionLinenumber: 5480
    functionLinenumberEnd: 5486
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 18
    functionsReached:
    - assert_invariant
    - m_data::m_value::destroy
    - std::move
    - BasicJsonType::binary_t
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::binary_t&&
      b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5495,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5498,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5499
      start: 5493
    functionDepth: 1
    functionLinenumber: 5493
    functionLinenumberEnd: 5499
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 18
    functionsReached:
    - assert_invariant
    - m_data::m_value::destroy
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::number_float_t
      val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5508,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5511,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5512
      start: 5506
    functionDepth: 1
    functionLinenumber: 5506
    functionLinenumberEnd: 5512
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 18
    functionsReached:
    - assert_invariant
    - m_data::m_value::destroy
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::number_unsigned_t
      val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5521,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5525
      start: 5519
    functionDepth: 1
    functionLinenumber: 5519
    functionLinenumberEnd: 5525
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 18
    functionsReached:
    - assert_invariant
    - m_data::m_value::destroy
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::number_integer_t
      val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5534,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5537,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5538,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5539
      start: 5532
    functionDepth: 1
    functionLinenumber: 5532
    functionLinenumberEnd: 5539
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 18
    functionsReached:
    - set_parents
    - assert_invariant
    - m_data::m_value::destroy
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const typename BasicJsonType::array_t&
      arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5544,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5546,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5547,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5548,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5549
      start: 5542
    functionDepth: 1
    functionLinenumber: 5542
    functionLinenumberEnd: 5549
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 18
    functionsReached:
    - set_parents
    - assert_invariant
    - m_data::m_value::destroy
    - std::move
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::array_t&&
      arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5559,1
    - Dst: template create<typename BasicJsonType::array_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5561,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5561,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5561,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5562,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5563,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - CompatibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5564
      start: 5554
    functionDepth: 1
    functionLinenumber: 5554
    functionLinenumberEnd: 5564
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 18
    functionsReached:
    - end
    - m_data::m_value::destroy
    - template create<typename BasicJsonType::array_t>
    - set_parents
    - assert_invariant
    - begin
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const CompatibleArrayType& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5569,1
    - Dst: m_data::m_value::array::reserve
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5572,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5572,1
    - Dst: m_data::m_value::array::push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5575,1
    - Dst: set_parent
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5576,1
    - Dst: m_data::m_value::array::back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5576,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5578,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5579
      start: 5567
    functionDepth: 1
    functionLinenumber: 5567
    functionLinenumberEnd: 5579
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 18
    functionsReached:
    - m_data::m_value::array::push_back
    - m_data::m_value::array::reserve
    - m_data::m_value::destroy
    - set_parent
    - assert_invariant
    - m_data::m_value::array::back
    - size
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const std::vector<bool>& arr)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5585,1
    - Dst: m_data::m_value::array::resize
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5588,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5588,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5589,1
    - Dst: std::copy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5591,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5591,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5591,1
    - Dst: m_data::m_value::array::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5591,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5593,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5594,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - std::valarray<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5595
      start: 5583
    functionDepth: 1
    functionLinenumber: 5583
    functionLinenumberEnd: 5595
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 18
    functionsReached:
    - end
    - m_data::m_value::destroy
    - m_data::m_value::array::resize
    - std::copy
    - set_parents
    - assert_invariant
    - begin
    - size
    - m_data::m_value::array::begin
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const std::valarray<T>& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5604,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5607,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5608,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5609
      start: 5602
    functionDepth: 1
    functionLinenumber: 5602
    functionLinenumberEnd: 5609
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 18
    functionsReached:
    - set_parents
    - assert_invariant
    - m_data::m_value::destroy
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const typename BasicJsonType::object_t&
      obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5614,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5616,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5617,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5618,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5619
      start: 5612
    functionDepth: 1
    functionLinenumber: 5612
    functionLinenumberEnd: 5619
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 18
    functionsReached:
    - set_parents
    - assert_invariant
    - m_data::m_value::destroy
    - std::move
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, typename BasicJsonType::object_t&&
      obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5628,1
    - Dst: template create<typename BasicJsonType::object_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5630,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5630,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5630,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5631,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5632,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - CompatibleObjectType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5633
      start: 5623
    functionDepth: 1
    functionLinenumber: 5623
    functionLinenumberEnd: 5633
    functionName: construct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 18
    functionsReached:
    - template create<typename BasicJsonType::object_t>
    - end
    - m_data::m_value::destroy
    - set_parents
    - assert_invariant
    - begin
    linkageType: ''
    returnType: void
    signature: void construct(BasicJsonType& j, const CompatibleObjectType& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5644,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - b
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5645
      start: 5642
    functionDepth: 2
    functionLinenumber: 5642
    functionLinenumberEnd: 5645
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 21
    functionsReached:
    - construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, T b) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5657,1
    - Dst: static_cast<typename BasicJsonType::boolean_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' b'
    argTypes:
    - BasicJsonType
    - BoolRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5658
      start: 5655
    functionDepth: 2
    functionLinenumber: 5655
    functionLinenumberEnd: 5658
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 21
    functionsReached:
    - static_cast<typename BasicJsonType::boolean_t>
    - construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const BoolRef& b) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5664,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - CompatibleString
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5665
      start: 5662
    functionDepth: 2
    functionLinenumber: 5662
    functionLinenumberEnd: 5665
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 21
    functionsReached:
    - construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const CompatibleString& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5670,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5670,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' s'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5671
      start: 5668
    functionDepth: 2
    functionLinenumber: 5668
    functionLinenumberEnd: 5671
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 21
    functionsReached:
    - construct
    - std::move
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, typename BasicJsonType::string_t&& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5677,1
    - Dst: static_cast<typename BasicJsonType::number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5677,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - FloatType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5678
      start: 5675
    functionDepth: 2
    functionLinenumber: 5675
    functionLinenumberEnd: 5678
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 21
    functionsReached:
    - construct
    - static_cast<typename BasicJsonType::number_float_t>
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, FloatType val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5684,1
    - Dst: static_cast<typename BasicJsonType::number_unsigned_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5684,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - CompatibleNumberUnsignedType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5685
      start: 5682
    functionDepth: 2
    functionLinenumber: 5682
    functionLinenumberEnd: 5685
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 21
    functionsReached:
    - static_cast<typename BasicJsonType::number_unsigned_t>
    - construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, CompatibleNumberUnsignedType val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5691,1
    - Dst: static_cast<typename BasicJsonType::number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5691,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - val
    argTypes:
    - BasicJsonType
    - CompatibleNumberIntegerType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5692
      start: 5689
    functionDepth: 2
    functionLinenumber: 5689
    functionLinenumberEnd: 5692
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 21
    functionsReached:
    - static_cast<typename BasicJsonType::number_integer_t>
    - construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, CompatibleNumberIntegerType val) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5700,1
    - Dst: static_cast<underlying_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - e
    argTypes:
    - BasicJsonType
    - EnumType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5701
      start: 5697
    functionDepth: 2
    functionLinenumber: 5697
    functionLinenumberEnd: 5701
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 21
    functionsReached:
    - static_cast<underlying_type>
    - construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, EnumType e) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5707,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' e'
    argTypes:
    - BasicJsonType
    - std::vector<bool>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5708
      start: 5705
    functionDepth: 2
    functionLinenumber: 5705
    functionLinenumberEnd: 5708
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 21
    functionsReached:
    - construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std::vector<bool>& e)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - CompatibleArrayType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5721
      start: 5718
    functionDepth: 2
    functionLinenumber: 5718
    functionLinenumberEnd: 5721
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 21
    functionsReached:
    - construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const CompatibleArrayType& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' bin'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::binary_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5727
      start: 5724
    functionDepth: 2
    functionLinenumber: 5724
    functionLinenumberEnd: 5727
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 21
    functionsReached:
    - construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const typename BasicJsonType::binary_t&
      bin)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5733,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5733,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - std::valarray<T>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5734
      start: 5731
    functionDepth: 2
    functionLinenumber: 5731
    functionLinenumberEnd: 5734
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 21
    functionsReached:
    - construct
    - std::move
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std::valarray<T>& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5739,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5739,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' arr'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5740
      start: 5737
    functionDepth: 2
    functionLinenumber: 5737
    functionLinenumberEnd: 5740
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 21
    functionsReached:
    - construct
    - std::move
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, typename BasicJsonType::array_t&& arr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5746,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - CompatibleObjectType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5747
      start: 5744
    functionDepth: 2
    functionLinenumber: 5744
    functionLinenumberEnd: 5747
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 21
    functionsReached:
    - construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const CompatibleObjectType& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5752,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5752,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' obj'
    argTypes:
    - BasicJsonType
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5753
      start: 5750
    functionDepth: 2
    functionLinenumber: 5750
    functionLinenumberEnd: 5753
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 21
    functionsReached:
    - construct
    - std::move
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, typename BasicJsonType::object_t&& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - (arr)
    argTypes:
    - BasicJsonType
    - T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5763
      start: 5760
    functionDepth: 2
    functionLinenumber: 5760
    functionLinenumberEnd: 5763
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 21
    functionsReached:
    - construct
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const T(&arr)[N])
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' p'
    argTypes:
    - BasicJsonType
    - std::pair<T1, T2>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5769
      start: 5766
    functionDepth: 0
    functionLinenumber: 5766
    functionLinenumberEnd: 5769
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 21
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std::pair<T1, T2>& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5776,1
    - Dst: value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5776,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' b'
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5777
      start: 5774
    functionDepth: 2
    functionLinenumber: 5774
    functionLinenumberEnd: 5777
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 21
    functionsReached:
    - key
    - value
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const T& b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::get<Idx>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5782,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' t'
    argTypes:
    - BasicJsonType
    - Tuple
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5783
      start: 5780
    functionDepth: 0
    functionLinenumber: 5780
    functionLinenumberEnd: 5783
    functionName: to_json_tuple_impl
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 3
    functionsReached:
    - std::get<Idx>
    linkageType: ''
    returnType: void
    signature: void to_json_tuple_impl(BasicJsonType& j, const Tuple& t, index_sequence<Idx...>
      /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_json_tuple_impl
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5788,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' t'
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5789
      start: 5786
    functionDepth: 1
    functionLinenumber: 5786
    functionLinenumberEnd: 5789
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 21
    functionsReached:
    - to_json_tuple_impl
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const T& t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5795,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' p'
    argTypes:
    - BasicJsonType
    - std_fs::path
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5796
      start: 5793
    functionDepth: 1
    functionLinenumber: 5793
    functionLinenumberEnd: 5796
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 21
    functionsReached:
    - string
    linkageType: ''
    returnType: void
    signature: void to_json(BasicJsonType& j, const std_fs::path& p)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5802,1
    - Dst: to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5802,1
    - Dst: std::forward<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5802,1
    - Dst: to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5803,1
    - Dst: std::forward<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5803,1
    - Dst: to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5805,1
    - Dst: std::forward<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5805,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5806
      start: 5802
    functionDepth: 3
    functionLinenumber: 5802
    functionLinenumberEnd: 5806
    functionName: "operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(to_json(j,
      std::forward<T>(val))))\n    -> decltype(to_json(j, std::forward<T>(val)), void())"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::forward<T>
    - noexcept
    - to_json
    linkageType: ''
    returnType: auto
    signature: "auto operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(to_json(j,
      std::forward<T>(val))))\n    -> decltype(to_json(j, std::forward<T>(val)), void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5838,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5838,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5838,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5839,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5839,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5841,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - TargetType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5842
      start: 5837
    functionDepth: 1
    functionLinenumber: 5837
    functionLinenumberEnd: 5842
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 8
    functionsReached:
    - std::forward<BasicJsonType>
    - noexcept
    - from_json
    linkageType: ''
    returnType: auto
    signature: "auto from_json(BasicJsonType && j, TargetType& val) noexcept(\n        noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j),
      val)))\n    -> decltype(::nlohmann::from_json(std::forward<BasicJsonType>(j),
      val), void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5848,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5848,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5848,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5849,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5849,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5851,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5851,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5852
      start: 5847
    functionDepth: 1
    functionLinenumber: 5847
    functionLinenumberEnd: 5852
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 9
    functionsReached:
    - std::forward<BasicJsonType>
    - noexcept
    - from_json
    linkageType: ''
    returnType: auto
    signature: "auto from_json(BasicJsonType && j) noexcept(\n    noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j),
      detail::identity_tag<TargetType> {})))\n    -> decltype(::nlohmann::from_json(std::forward<BasicJsonType>(j),
      detail::identity_tag<TargetType> {}))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5858,1
    - Dst: key_to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5858,1
    - Dst: std::forward<TargetType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5858,1
    - Dst: key_to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5859,1
    - Dst: std::forward<TargetType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5859,1
    - Dst: key_to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5861,1
    - Dst: std::forward<TargetType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - TargetType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5862
      start: 5857
    functionDepth: 14
    functionLinenumber: 5857
    functionLinenumberEnd: 5862
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 23
    functionsReached:
    - std::forward<TargetType>
    - noexcept
    - key_to_json
    linkageType: ''
    returnType: auto
    signature: "auto to_json(BasicJsonType& j, TargetType && val) noexcept(\n        noexcept(::nlohmann::to_json(j,
      std::forward<TargetType>(val))))\n    -> decltype(::nlohmann::to_json(j, std::forward<TargetType>(val)),
      void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5838,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5838,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5838,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5839,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5839,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5841,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5841,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - TargetType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5842
      start: 5837
    functionDepth: 1
    functionLinenumber: 5837
    functionLinenumberEnd: 5842
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 10
    functionsReached:
    - std::forward<BasicJsonType>
    - noexcept
    - from_json
    linkageType: ''
    returnType: auto
    signature: "auto from_json(BasicJsonType && j, TargetType& val) noexcept(\n        noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j),
      val)))\n    -> decltype(::nlohmann::from_json(std::forward<BasicJsonType>(j),
      val), void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5848,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5848,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5848,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5849,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5849,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5851,1
    - Dst: std::forward<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5851,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5852
      start: 5847
    functionDepth: 1
    functionLinenumber: 5847
    functionLinenumberEnd: 5852
    functionName: from_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 11
    functionsReached:
    - std::forward<BasicJsonType>
    - noexcept
    - from_json
    linkageType: ''
    returnType: auto
    signature: "auto from_json(BasicJsonType && j) noexcept(\n    noexcept(::nlohmann::from_json(std::forward<BasicJsonType>(j),
      detail::identity_tag<TargetType> {})))\n    -> decltype(::nlohmann::from_json(std::forward<BasicJsonType>(j),
      detail::identity_tag<TargetType> {}))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5858,1
    - Dst: key_to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5858,1
    - Dst: std::forward<TargetType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5858,1
    - Dst: key_to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5859,1
    - Dst: std::forward<TargetType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5859,1
    - Dst: key_to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5861,1
    - Dst: std::forward<TargetType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5861,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - ' val'
    argTypes:
    - BasicJsonType
    - TargetType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5862
      start: 5857
    functionDepth: 14
    functionLinenumber: 5857
    functionLinenumberEnd: 5862
    functionName: to_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 24
    functionsReached:
    - std::forward<TargetType>
    - noexcept
    - key_to_json
    linkageType: ''
    returnType: auto
    signature: "auto to_json(BasicJsonType& j, TargetType && val) noexcept(\n        noexcept(::nlohmann::to_json(j,
      std::forward<TargetType>(val))))\n    -> decltype(::nlohmann::to_json(j, std::forward<TargetType>(val)),
      void())"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - byte_container_with_subtype
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5934
      start: 5931
    functionDepth: 0
    functionLinenumber: 5931
    functionLinenumberEnd: 5934
    functionName: operator!=(const byte_container_with_subtype& rhs) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const byte_container_with_subtype& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - subtype_
    argTypes:
    - subtype_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5942
      start: 5938
    functionDepth: 0
    functionLinenumber: 5938
    functionLinenumberEnd: 5942
    functionName: set_subtype
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_subtype(subtype_type subtype_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<subtype_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:5948,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5949
      start: 5946
    functionDepth: 0
    functionLinenumber: 5946
    functionLinenumberEnd: 5949
    functionName: subtype
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<subtype_type>
    linkageType: ''
    returnType: subtype_type
    signature: subtype_type subtype() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5956
      start: 5953
    functionDepth: 0
    functionLinenumber: 5953
    functionLinenumberEnd: 5956
    functionName: has_subtype
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool has_subtype() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 5964
      start: 5960
    functionDepth: 0
    functionLinenumber: 5960
    functionLinenumberEnd: 5964
    functionName: clear_subtype
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void clear_subtype() noexcept
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6029,1
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6029,1
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6030,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6035,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6040,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6040,1
    - Dst: items
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6041,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6043,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6044,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6045,1
    - Dst: hash
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6045,1
    - Dst: value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6045,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6052,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6052,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6055,1
    - Dst: hash
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6055,1
    - Dst: template get_ref<const string_t&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6062,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6063,1
    - Dst: template get<bool>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6068,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6069,1
    - Dst: template get<number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6074,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6075,1
    - Dst: template get<number_unsigned_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6080,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6081,1
    - Dst: template get<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6086,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6087,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6092,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6092,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6093,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6094,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6095,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6095,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6095,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6096,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6098,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 47
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6109
      start: 5999
    functionDepth: 2
    functionLinenumber: 5999
    functionLinenumberEnd: 6109
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - template get<number_float_t>
    - hash
    - template get<bool>
    - value
    - template get<number_unsigned_t>
    - combine
    - template get<number_integer_t>
    - key
    - static_cast<std::size_t>
    - type
    - JSON_ASSERT
    - template get_ref<const string_t&>
    - get_binary
    - size
    - items
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - seed
    - h
    argTypes:
    - std::size_t
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6008
      start: 6004
    functionDepth: 0
    functionLinenumber: 6004
    functionLinenumberEnd: 6008
    functionName: combine
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t combine(std::size_t seed, std::size_t h) noexcept
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6029,1
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6029,1
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6030,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6035,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6040,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6040,1
    - Dst: items
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6041,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6043,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6044,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6045,1
    - Dst: hash
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6045,1
    - Dst: value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6045,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6052,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6052,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6055,1
    - Dst: hash
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6055,1
    - Dst: template get_ref<const string_t&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6062,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6063,1
    - Dst: template get<bool>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6068,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6069,1
    - Dst: template get<number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6074,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6075,1
    - Dst: template get<number_unsigned_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6080,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6081,1
    - Dst: template get<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6086,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6087,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6092,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6092,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6093,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6094,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6095,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6095,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6095,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6096,1
    - Dst: combine
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6098,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6104,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 43
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6107
      start: 6022
    functionDepth: 2
    functionLinenumber: 6022
    functionLinenumberEnd: 6107
    functionName: hash
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 69
    functionsReached:
    - template get<number_float_t>
    - hash
    - template get<bool>
    - value
    - template get<number_unsigned_t>
    - combine
    - template get<number_integer_t>
    - key
    - static_cast<std::size_t>
    - type
    - JSON_ASSERT
    - template get_ref<const string_t&>
    - get_binary
    - size
    - items
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t hash(const BasicJsonType& j)
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6196,1
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6204,1
    - Dst: std::fgetc
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6208,1
    - Dst: clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6236,1
    - Dst: rdstate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6236,1
    - Dst: rdbuf
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6241,1
    - Dst: sbumpc
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6261,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6263,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6263,1
    - Dst: clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6265,1
    - Dst: rdstate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6265,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6286,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6286,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6291,1
    - Dst: std::to_int_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6293,1
    - Dst: std::advance
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6294,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6298,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6328,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6328,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6330,1
    - Dst: get_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6336,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6341,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6346,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6346,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6347,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6347,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6352,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6352,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6353,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6353,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6354,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6354,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6359,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6359,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6360,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6360,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6361,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6361,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6362,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6362,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6368,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6386,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6386,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6388,1
    - Dst: get_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6394,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6399,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6404,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6404,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6405,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6405,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6410,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6410,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6411,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6411,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6412,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6412,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6417,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6417,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6419,1
    - Dst: get_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6419,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6420,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6421,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6422,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6423,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6424,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6429,1
    - Dst: fill_buffer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6452,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6454,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6455,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6459,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6460,1
    - Dst: fill_buffer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6470,1
    - Dst: adapter_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6491,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6491,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6491,1
    - Dst: adapter_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6515,1
    - Dst: base_adapter_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6515,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6515,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6515,1
    - Dst: rnpffi::FFI::iterator_create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6524,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6542,1
    - Dst: std::declval<ContainerType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6542,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6542,1
    - Dst: std::declval<ContainerType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6542,1
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6544,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6544,1
    - Dst: std::declval<ContainerType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6544,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6544,1
    - Dst: std::declval<ContainerType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6544,1
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6548,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6548,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6548,1
    - Dst: rnpffi::FFI::iterator_create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6557,1
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6564,1
    - Dst: input_stream_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6569,1
    - Dst: input_stream_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6574,1
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6578,1
    - Dst: std::declval<const char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6578,1
    - Dst: std::declval<const char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6578,1
    - Dst: std::strlen
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6590,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6590,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6591,1
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6592,1
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6596,1
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6598,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6614,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6614,1
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6621,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6625,1
    CyclomaticComplexity: 26
    EdgeCount: 26
    ICount: 131
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6632
      start: 6171
    functionDepth: 2
    functionLinenumber: 6171
    functionLinenumberEnd: 6632
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - pgp_source_t::eof
    - reinterpret_cast<const char*>
    - JSON_ASSERT
    - get_character
    - empty
    - begin
    - static_cast<unsigned int>
    - std::move
    - sbumpc
    - adapter_type
    - JSON_HEDLEY_UNLIKELY
    - input_stream_adapter
    - std::strlen
    - std::advance
    - clear
    - std::declval<ContainerType>
    - std::to_int_type
    - JSON_HEDLEY_LIKELY
    - rdstate
    - end
    - file_input_adapter
    - std::declval<const char*>
    - fill_buffer
    - rdbuf
    - input_adapter
    - rnpffi::FFI::iterator_create
    - std::fgetc
    - static_cast<std::char_traits<char>::int_type>
    - base_adapter_type
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - f
    argTypes:
    - std::FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6197
      start: 6193
    functionDepth: 1
    functionLinenumber: 6193
    functionLinenumberEnd: 6197
    functionName: file_input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 3
    functionsReached:
    - JSON_ASSERT
    linkageType: ''
    returnType: void
    signature: void file_input_adapter(std::FILE* f) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6200
      start: 6200
    functionDepth: 0
    functionLinenumber: 6200
    functionLinenumberEnd: 6200
    functionName: file_input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_input_adapter(const file_input_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6201
      start: 6201
    functionDepth: 0
    functionLinenumber: 6201
    functionLinenumberEnd: 6201
    functionName: file_input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void file_input_adapter(file_input_adapter&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::fgetc
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6209
      start: 6206
    functionDepth: 0
    functionLinenumber: 6206
    functionLinenumberEnd: 6209
    functionName: get_character
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - std::fgetc
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get_character() noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6236,1
    - Dst: rdstate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6236,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6238
      start: 6230
    functionDepth: 1
    functionLinenumber: 6230
    functionLinenumberEnd: 6238
    functionName: ~input_stream_adapter()
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - clear
    - rdstate
    linkageType: ''
    returnType: void
    signature: void ~input_stream_adapter()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rdbuf
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6241,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6242
      start: 6240
    functionDepth: 0
    functionLinenumber: 6240
    functionLinenumberEnd: 6242
    functionName: input_stream_adapter::input_stream_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - rdbuf
    linkageType: ''
    returnType: void
    signature: void input_stream_adapter(std::istream& i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6245
      start: 6245
    functionDepth: 0
    functionLinenumber: 6245
    functionLinenumberEnd: 6245
    functionName: input_stream_adapter::input_stream_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_stream_adapter(const input_stream_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6246
      start: 6246
    functionDepth: 0
    functionLinenumber: 6246
    functionLinenumberEnd: 6246
    functionName: '& operator=(input_stream_adapter&)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: input_stream_adapter
    signature: input_stream_adapter & operator=(input_stream_adapter&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6247
      start: 6247
    functionDepth: 0
    functionLinenumber: 6247
    functionLinenumberEnd: 6247
    functionName: '& operator=(input_stream_adapter&&)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: input_stream_adapter
    signature: input_stream_adapter & operator=(input_stream_adapter&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - input_stream_adapter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6254
      start: 6249
    functionDepth: 0
    functionLinenumber: 6249
    functionLinenumberEnd: 6254
    functionName: input_stream_adapter::input_stream_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void input_stream_adapter(input_stream_adapter&& rhs) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sbumpc
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6261,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6263,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6263,1
    - Dst: clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6265,1
    - Dst: rdstate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6265,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6268
      start: 6259
    functionDepth: 1
    functionLinenumber: 6259
    functionLinenumberEnd: 6268
    functionName: input_stream_adapter::get_character
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - sbumpc
    - rdstate
    - JSON_HEDLEY_UNLIKELY
    - pgp_source_t::eof
    - clear
    linkageType: ''
    returnType: std::char_traits<char>::int_type
    signature: std::char_traits<char>::int_type get_character()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6286,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6287
      start: 6285
    functionDepth: 1
    functionLinenumber: 6285
    functionLinenumberEnd: 6287
    functionName: iterator_input_adapter::iterator_input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void iterator_input_adapter(IteratorType first, IteratorType last)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6291,1
    - Dst: std::to_int_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6293,1
    - Dst: std::advance
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6294,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6298,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6299
      start: 6289
    functionDepth: 1
    functionLinenumber: 6289
    functionLinenumberEnd: 6299
    functionName: iterator_input_adapter::get_character
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::to_int_type
    - pgp_source_t::eof
    - std::advance
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: typename char_traits<char_type>::int_type
    signature: typename char_traits<char_type>::int_type get_character()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6311
      start: 6308
    functionDepth: 0
    functionLinenumber: 6308
    functionLinenumberEnd: 6311
    functionName: iterator_input_adapter::empty
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool empty() const
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6328,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6328,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6330,1
    - Dst: get_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6336,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6341,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6346,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6346,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6347,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6347,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6352,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6352,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6353,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6353,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6354,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6354,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6359,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6359,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6360,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6360,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6361,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6361,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6362,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6362,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6368,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 4
    argNames:
    - ' input'
    - ' utf8_bytes'
    - ' utf8_bytes_index'
    - ' utf8_bytes_filled'
    argTypes:
    - BaseInputAdapter
    - std::array<std::char_traits<char>::int_type, 4>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6372
      start: 6321
    functionDepth: 1
    functionLinenumber: 6321
    functionLinenumberEnd: 6372
    functionName: fill_buffer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - pgp_source_t::eof
    - get_character
    - empty
    - static_cast<std::char_traits<char>::int_type>
    - static_cast<unsigned int>
    linkageType: ''
    returnType: void
    signature: "void fill_buffer(BaseInputAdapter& input,\n                            std::array<std::char_traits<char>::int_type,
      4>& utf8_bytes,\n                            size_t& utf8_bytes_index,\n                            size_t&
      utf8_bytes_filled)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6386,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6386,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6388,1
    - Dst: get_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6394,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6399,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6404,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6404,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6405,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6405,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6410,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6410,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6411,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6411,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6412,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6412,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6417,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6417,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6419,1
    - Dst: get_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6419,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6420,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6421,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6422,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6423,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6424,1
    - Dst: static_cast<std::char_traits<char>::int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6429,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 33
    argCount: 4
    argNames:
    - ' input'
    - ' utf8_bytes'
    - ' utf8_bytes_index'
    - ' utf8_bytes_filled'
    argTypes:
    - BaseInputAdapter
    - std::array<std::char_traits<char>::int_type, 4>
    - size_t
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6434
      start: 6379
    functionDepth: 1
    functionLinenumber: 6379
    functionLinenumberEnd: 6434
    functionName: fill_buffer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - pgp_source_t::eof
    - get_character
    - empty
    - static_cast<std::char_traits<char>::int_type>
    - static_cast<unsigned int>
    linkageType: ''
    returnType: void
    signature: "void fill_buffer(BaseInputAdapter& input,\n                            std::array<std::char_traits<char>::int_type,
      4>& utf8_bytes,\n                            size_t& utf8_bytes_index,\n                            size_t&
      utf8_bytes_filled)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - base
    argTypes:
    - BaseInputAdapter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6445
      start: 6444
    functionDepth: 0
    functionLinenumber: 6444
    functionLinenumberEnd: 6445
    functionName: wide_string_input_adapter::wide_string_input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void wide_string_input_adapter(BaseInputAdapter base)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: wide_string_input_adapter::fill_buffer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6452,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6454,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6455,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6459,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6460,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6462
      start: 6447
    functionDepth: 2
    functionLinenumber: 6447
    functionLinenumberEnd: 6462
    functionName: wide_string_input_adapter::get_character
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_ASSERT
    - wide_string_input_adapter::fill_buffer
    linkageType: ''
    returnType: typename std::char_traits<char>::int_type
    signature: typename std::char_traits<char>::int_type get_character() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: wide_string_input_adapter::fill_buffer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6470,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6471
      start: 6468
    functionDepth: 1
    functionLinenumber: 6468
    functionLinenumberEnd: 6471
    functionName: wide_string_input_adapter::fill_buffer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - wide_string_input_adapter::fill_buffer
    linkageType: ''
    returnType: void
    signature: void fill_buffer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: adapter_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6491,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6491,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6491,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6492
      start: 6489
    functionDepth: 1
    functionLinenumber: 6489
    functionLinenumberEnd: 6492
    functionName: create
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 384
    functionsReached:
    - adapter_type
    - std::move
    linkageType: ''
    returnType: adapter_type
    signature: adapter_type create(IteratorType first, IteratorType last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: adapter_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6515,1
    - Dst: base_adapter_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6515,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6515,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6515,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6516
      start: 6513
    functionDepth: 1
    functionLinenumber: 6513
    functionLinenumberEnd: 6516
    functionName: create
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 384
    functionsReached:
    - adapter_type
    - base_adapter_type
    - std::move
    linkageType: ''
    returnType: adapter_type
    signature: adapter_type create(IteratorType first, IteratorType last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnpffi::FFI::iterator_create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6524,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6525
      start: 6521
    functionDepth: 1
    functionLinenumber: 6521
    functionLinenumberEnd: 6525
    functionName: input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 8
    functionsReached:
    - rnpffi::FFI::iterator_create
    linkageType: ''
    returnType: typename iterator_input_adapter_factory<IteratorType>::adapter_type
    signature: typename iterator_input_adapter_factory<IteratorType>::adapter_type
      input_adapter(IteratorType first, IteratorType last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6548,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6548,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' container'
    argTypes:
    - ContainerType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6549
      start: 6546
    functionDepth: 2
    functionLinenumber: 6546
    functionLinenumberEnd: 6549
    functionName: container_input_adapter_factory_impl::create
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - end
    - begin
    - input_adapter
    linkageType: ''
    returnType: adapter_type
    signature: adapter_type create(const ContainerType& container)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6548,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6548,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6548,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' container'
    argTypes:
    - ContainerType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6549
      start: 6546
    functionDepth: 2
    functionLinenumber: 6546
    functionLinenumberEnd: 6549
    functionName: container_input_adapter_factory_impl::create
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - end
    - begin
    - input_adapter
    linkageType: ''
    returnType: adapter_type
    signature: adapter_type create(const ContainerType& container)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnpffi::FFI::iterator_create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' container'
    argTypes:
    - ContainerType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6558
      start: 6555
    functionDepth: 1
    functionLinenumber: 6555
    functionLinenumberEnd: 6558
    functionName: input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 10
    functionsReached:
    - rnpffi::FFI::iterator_create
    linkageType: ''
    returnType: typename container_input_adapter_factory_impl::container_input_adapter_factory<ContainerType>::adapter_type
    signature: typename container_input_adapter_factory_impl::container_input_adapter_factory<ContainerType>::adapter_type
      input_adapter(const ContainerType& container)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6564,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - file
    argTypes:
    - std::FILE*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6565
      start: 6562
    functionDepth: 2
    functionLinenumber: 6562
    functionLinenumberEnd: 6565
    functionName: input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 11
    functionsReached:
    - file_input_adapter
    linkageType: ''
    returnType: file_input_adapter
    signature: file_input_adapter input_adapter(std::FILE* file)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: input_stream_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6569,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' stream'
    argTypes:
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6570
      start: 6567
    functionDepth: 0
    functionLinenumber: 6567
    functionLinenumberEnd: 6570
    functionName: input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 11
    functionsReached:
    - input_stream_adapter
    linkageType: ''
    returnType: input_stream_adapter
    signature: input_stream_adapter input_adapter(std::istream& stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: input_stream_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6574,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' stream'
    argTypes:
    - std::istream
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6575
      start: 6572
    functionDepth: 0
    functionLinenumber: 6572
    functionLinenumberEnd: 6575
    functionName: input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 11
    functionsReached:
    - input_stream_adapter
    linkageType: ''
    returnType: input_stream_adapter
    signature: input_stream_adapter input_adapter(std::istream&& stream)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::strlen
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6590,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6590,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6591,1
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6592,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - b
    argTypes:
    - CharT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6593
      start: 6588
    functionDepth: 1
    functionLinenumber: 6588
    functionLinenumberEnd: 6593
    functionName: input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 12
    functionsReached:
    - reinterpret_cast<const char*>
    - std::strlen
    - input_adapter
    linkageType: ''
    returnType: contiguous_bytes_input_adapter
    signature: contiguous_bytes_input_adapter input_adapter(CharT b)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6596,1
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6598,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - (array)
    argTypes:
    - T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6599
      start: 6596
    functionDepth: 1
    functionLinenumber: 6596
    functionLinenumberEnd: 6599
    functionName: input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 13
    functionsReached:
    - input_adapter
    linkageType: ''
    returnType: auto
    signature: auto input_adapter(T (&array)[N]) -> decltype(input_adapter(array,
      array + N))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<const char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6614,1
    - Dst: reinterpret_cast<const char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6614,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - b
    - l
    argTypes:
    - CharT
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6614
      start: 6613
    functionDepth: 0
    functionLinenumber: 6613
    functionLinenumberEnd: 6614
    functionName: span_input_adapter::span_input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const char*>
    linkageType: ''
    returnType: void
    signature: void span_input_adapter(CharT b, std::size_t l)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6621,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6621
      start: 6620
    functionDepth: 2
    functionLinenumber: 6620
    functionLinenumberEnd: 6621
    functionName: span_input_adapter::span_input_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - input_adapter
    linkageType: ''
    returnType: void
    signature: void span_input_adapter(IteratorType first, IteratorType last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6625,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6626
      start: 6623
    functionDepth: 1
    functionLinenumber: 6623
    functionLinenumberEnd: 6626
    functionName: '&& get()'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: contiguous_bytes_input_adapter
    signature: contiguous_bytes_input_adapter && get()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' r'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6815
      start: 6813
    functionDepth: 0
    functionLinenumber: 6813
    functionLinenumberEnd: 6815
    functionName: json_sax_dom_parser
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_parser(BasicJsonType& r, const bool allow_exceptions_
      = true)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6818
      start: 6818
    functionDepth: 0
    functionLinenumber: 6818
    functionLinenumberEnd: 6818
    functionName: json_sax_dom_parser
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_parser(const json_sax_dom_parser&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6819
      start: 6819
    functionDepth: 0
    functionLinenumber: 6819
    functionLinenumberEnd: 6819
    functionName: json_sax_dom_parser
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_parser(json_sax_dom_parser&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6822
      start: 6822
    functionDepth: 0
    functionLinenumber: 6822
    functionLinenumberEnd: 6822
    functionName: ~json_sax_dom_parser()
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~json_sax_dom_parser()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6826,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6828
      start: 6824
    functionDepth: 0
    functionLinenumber: 6824
    functionLinenumberEnd: 6828
    functionName: 'null'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 165
    functionsReached:
    - handle_value
    linkageType: ''
    returnType: bool
    signature: bool null()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6832,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6834
      start: 6830
    functionDepth: 0
    functionLinenumber: 6830
    functionLinenumberEnd: 6834
    functionName: boolean
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 3
    functionsReached:
    - handle_value
    linkageType: ''
    returnType: bool
    signature: bool boolean(bool val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6838,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6840
      start: 6836
    functionDepth: 0
    functionLinenumber: 6836
    functionLinenumberEnd: 6840
    functionName: number_integer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 6
    functionsReached:
    - handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_integer(number_integer_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6844,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6846
      start: 6842
    functionDepth: 0
    functionLinenumber: 6842
    functionLinenumberEnd: 6846
    functionName: number_unsigned
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_unsigned(number_unsigned_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6850,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6852
      start: 6848
    functionDepth: 0
    functionLinenumber: 6848
    functionLinenumberEnd: 6852
    functionName: number_float
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_float(number_float_t val, const string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6856,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6858
      start: 6854
    functionDepth: 0
    functionLinenumber: 6854
    functionLinenumberEnd: 6858
    functionName: string
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 153
    functionsReached:
    - handle_value
    linkageType: ''
    returnType: bool
    signature: bool string(string_t& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6862,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6862,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - binary_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6864
      start: 6860
    functionDepth: 1
    functionLinenumber: 6860
    functionLinenumberEnd: 6864
    functionName: binary
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 6
    functionsReached:
    - handle_value
    - std::move
    linkageType: ''
    returnType: bool
    signature: bool binary(binary_t& val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6868,1
    - Dst: handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6868,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6870,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6870,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6870,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6872,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6872,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6872,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6872,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6872,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6876
      start: 6866
    functionDepth: 4
    functionLinenumber: 6866
    functionLinenumberEnd: 6876
    functionName: start_object
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - push_back
    - concat
    - to_string
    - static_cast<std::size_t>
    - back
    - handle_value
    - out_of_range::create
    linkageType: ''
    returnType: bool
    signature: bool start_object(std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6880,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6880,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6881,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6881,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6884,1
    - Dst: m_value::object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6884,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6886
      start: 6878
    functionDepth: 1
    functionLinenumber: 6878
    functionLinenumberEnd: 6886
    functionName: key
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 604
    functionsReached:
    - empty
    - JSON_ASSERT
    - m_value::object
    - back
    linkageType: ''
    returnType: bool
    signature: bool key(string_t& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6890,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6890,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6891,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6891,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6893,1
    - Dst: pop_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6894,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6896
      start: 6888
    functionDepth: 1
    functionLinenumber: 6888
    functionLinenumberEnd: 6896
    functionName: end_object
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - empty
    - JSON_ASSERT
    - pop_back
    - back
    linkageType: ''
    returnType: bool
    signature: bool end_object()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6900,1
    - Dst: handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6900,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6902,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6902,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6902,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6904,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6904,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6904,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6904,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6904,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6908
      start: 6898
    functionDepth: 4
    functionLinenumber: 6898
    functionLinenumberEnd: 6908
    functionName: start_array
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - push_back
    - concat
    - to_string
    - static_cast<std::size_t>
    - back
    - handle_value
    - out_of_range::create
    linkageType: ''
    returnType: bool
    signature: bool start_array(std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6912,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6912,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6913,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6913,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6915,1
    - Dst: pop_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6916,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6918
      start: 6910
    functionDepth: 1
    functionLinenumber: 6910
    functionLinenumberEnd: 6918
    functionName: end_array
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - empty
    - JSON_ASSERT
    - pop_back
    - back
    linkageType: ''
    returnType: bool
    signature: bool end_array()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6925,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6928,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - Exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6931
      start: 6921
    functionDepth: 1
    functionLinenumber: 6921
    functionLinenumberEnd: 6931
    functionName: parse_error
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    - JSON_THROW
    linkageType: ''
    returnType: bool
    signature: "bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/,\n
      \                    const Exception& ex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6936
      start: 6933
    functionDepth: 0
    functionLinenumber: 6933
    functionLinenumberEnd: 6936
    functionName: is_errored
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_errored() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:6998,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' r'
    - cb
    argTypes:
    - BasicJsonType
    - parser_callback_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 6999
      start: 6993
    functionDepth: 1
    functionLinenumber: 6993
    functionLinenumberEnd: 6999
    functionName: json_sax_dom_callback_parser::json_sax_dom_callback_parser
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: "void json_sax_dom_callback_parser(BasicJsonType& r,\n                                 const
      parser_callback_t cb,\n                                 const bool allow_exceptions_
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7002
      start: 7002
    functionDepth: 0
    functionLinenumber: 7002
    functionLinenumberEnd: 7002
    functionName: json_sax_dom_callback_parser::json_sax_dom_callback_parser
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_callback_parser(const json_sax_dom_callback_parser&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7003
      start: 7003
    functionDepth: 0
    functionLinenumber: 7003
    functionLinenumberEnd: 7003
    functionName: json_sax_dom_callback_parser::json_sax_dom_callback_parser
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_sax_dom_callback_parser(json_sax_dom_callback_parser&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7004
      start: 7004
    functionDepth: 0
    functionLinenumber: 7004
    functionLinenumberEnd: 7004
    functionName: '& operator=(const json_sax_dom_callback_parser&)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_sax_dom_callback_parser
    signature: json_sax_dom_callback_parser & operator=(const json_sax_dom_callback_parser&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7005
      start: 7005
    functionDepth: 0
    functionLinenumber: 7005
    functionLinenumberEnd: 7005
    functionName: '& operator=(json_sax_dom_callback_parser&&)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_sax_dom_callback_parser
    signature: json_sax_dom_callback_parser & operator=(json_sax_dom_callback_parser&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7006
      start: 7006
    functionDepth: 0
    functionLinenumber: 7006
    functionLinenumberEnd: 7006
    functionName: ~json_sax_dom_callback_parser()
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~json_sax_dom_callback_parser()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_sax_dom_callback_parser::handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7010,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7012
      start: 7008
    functionDepth: 1
    functionLinenumber: 7008
    functionLinenumberEnd: 7012
    functionName: json_sax_dom_callback_parser::null
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool null()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_sax_dom_callback_parser::handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7018
      start: 7014
    functionDepth: 1
    functionLinenumber: 7014
    functionLinenumberEnd: 7018
    functionName: json_sax_dom_callback_parser::boolean
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool boolean(bool val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_sax_dom_callback_parser::handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7024
      start: 7020
    functionDepth: 1
    functionLinenumber: 7020
    functionLinenumberEnd: 7024
    functionName: json_sax_dom_callback_parser::number_integer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_integer(number_integer_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_sax_dom_callback_parser::handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7030
      start: 7026
    functionDepth: 1
    functionLinenumber: 7026
    functionLinenumberEnd: 7030
    functionName: json_sax_dom_callback_parser::number_unsigned
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_unsigned(number_unsigned_t val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_sax_dom_callback_parser::handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7034,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - val
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7036
      start: 7032
    functionDepth: 1
    functionLinenumber: 7032
    functionLinenumberEnd: 7036
    functionName: json_sax_dom_callback_parser::number_float
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool number_float(number_float_t val, const string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_sax_dom_callback_parser::handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7042
      start: 7038
    functionDepth: 1
    functionLinenumber: 7038
    functionLinenumberEnd: 7042
    functionName: json_sax_dom_callback_parser::string
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - json_sax_dom_callback_parser::handle_value
    linkageType: ''
    returnType: bool
    signature: bool string(string_t& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_sax_dom_callback_parser::handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7046,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7046,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - binary_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7048
      start: 7044
    functionDepth: 1
    functionLinenumber: 7044
    functionLinenumberEnd: 7048
    functionName: json_sax_dom_callback_parser::binary
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - json_sax_dom_callback_parser::handle_value
    - std::move
    linkageType: ''
    returnType: bool
    signature: bool binary(binary_t& val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: callback
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7053,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7053,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7053,1
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7054,1
    - Dst: json_sax_dom_callback_parser::handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7056,1
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7057,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7060,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7060,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7060,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7060,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7062,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7062,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7062,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7062,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7062,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7066
      start: 7050
    functionDepth: 4
    functionLinenumber: 7050
    functionLinenumberEnd: 7066
    functionName: json_sax_dom_callback_parser::start_object
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - push_back
    - json_sax_dom_callback_parser::handle_value
    - callback
    - to_string
    - static_cast<int>
    - back
    - static_cast<std::size_t>
    - concat
    - size
    - out_of_range::create
    linkageType: ''
    returnType: bool
    signature: bool start_object(std::size_t len)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: BasicJsonType
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7070,1
    - Dst: callback
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7073,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7073,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7073,1
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7074,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7077,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7079,1
    - Dst: m_value::object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7079,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7083
      start: 7068
    functionDepth: 1
    functionLinenumber: 7068
    functionLinenumberEnd: 7083
    functionName: json_sax_dom_callback_parser::key
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - push_back
    - BasicJsonType
    - callback
    - m_value::object
    - static_cast<int>
    - back
    - size
    linkageType: ''
    returnType: bool
    signature: bool key(string_t& val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7087,1
    - Dst: callback
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7089,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7089,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7089,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7089,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7092,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7096,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7100,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7100,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7101,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7101,1
    - Dst: pop_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7102,1
    - Dst: pop_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7103,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7105,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7105,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7105,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7108,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7108,1
    - Dst: auto::is_discarded
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7110,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7112,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7119
      start: 7085
    functionDepth: 1
    functionLinenumber: 7085
    functionLinenumberEnd: 7119
    functionName: json_sax_dom_callback_parser::end_object
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - auto::is_discarded
    - callback
    - static_cast<int>
    - back
    - JSON_ASSERT
    - pop_back
    - empty
    - size
    linkageType: ''
    returnType: bool
    signature: bool end_object()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: callback
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7123,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7123,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7123,1
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7124,1
    - Dst: json_sax_dom_callback_parser::handle_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7126,1
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7127,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7130,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7130,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7130,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7130,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7132,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7132,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7132,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7132,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7132,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7136
      start: 7121
    functionDepth: 4
    functionLinenumber: 7121
    functionLinenumberEnd: 7136
    functionName: json_sax_dom_callback_parser::start_array
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - push_back
    - json_sax_dom_callback_parser::handle_value
    - callback
    - to_string
    - static_cast<int>
    - back
    - static_cast<std::size_t>
    - concat
    - size
    - out_of_range::create
    linkageType: ''
    returnType: bool
    signature: bool start_array(std::size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7142,1
    - Dst: callback
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7144,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7144,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7144,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7144,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7147,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7152,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7156,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7156,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7157,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7157,1
    - Dst: pop_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7158,1
    - Dst: pop_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7159,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7162,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7162,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7164,1
    - Dst: m_value::array::pop_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7164,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7168
      start: 7138
    functionDepth: 1
    functionLinenumber: 7138
    functionLinenumberEnd: 7168
    functionName: json_sax_dom_callback_parser::end_array
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - callback
    - static_cast<int>
    - back
    - JSON_ASSERT
    - pop_back
    - m_value::array::pop_back
    - empty
    - size
    linkageType: ''
    returnType: bool
    signature: bool end_array()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7175,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7178,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - ' ex'
    argTypes:
    - Exception
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7181
      start: 7171
    functionDepth: 1
    functionLinenumber: 7171
    functionLinenumberEnd: 7181
    functionName: json_sax_dom_callback_parser::parse_error
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<void>
    - JSON_THROW
    linkageType: ''
    returnType: bool
    signature: "bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/,\n
      \                    const Exception& ex)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7186
      start: 7183
    functionDepth: 0
    functionLinenumber: 7183
    functionLinenumberEnd: 7186
    functionName: json_sax_dom_callback_parser::is_errored
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_errored() const
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7207,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7207,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7211,1
    - Dst: BasicJsonType
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7217,1
    - Dst: std::forward<Value>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7217,1
    - Dst: callback
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7220,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7220,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7220,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7228,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7230,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7236,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7242,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7242,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7242,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7245,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7247,1
    - Dst: m_value::array::emplace_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7247,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7247,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7248,1
    - Dst: m_value::array::back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7248,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7252,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7252,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7254,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7254,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7255,1
    - Dst: pop_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7256,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7263,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7264,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 29
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - Value
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7266
      start: 7205
    functionDepth: 1
    functionLinenumber: 7205
    functionLinenumberEnd: 7266
    functionName: json_sax_dom_callback_parser::handle_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 9
    functionsReached:
    - BasicJsonType
    - callback
    - JSON_ASSERT
    - back
    - static_cast<int>
    - m_value::array::back
    - pop_back
    - std::move
    - empty
    - std::forward<Value>
    - size
    - m_value::array::emplace_back
    linkageType: ''
    returnType: std::pair<bool, BasicJsonType*>
    signature: std::pair<bool, BasicJsonType*> handle_value(Value&& v, const bool
      skip_callback = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7301
      start: 7298
    functionDepth: 0
    functionLinenumber: 7298
    functionLinenumberEnd: 7301
    functionName: json_sax_acceptor::null
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool null()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7306
      start: 7303
    functionDepth: 0
    functionLinenumber: 7303
    functionLinenumberEnd: 7306
    functionName: json_sax_acceptor::boolean
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool boolean(bool /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7311
      start: 7308
    functionDepth: 0
    functionLinenumber: 7308
    functionLinenumberEnd: 7311
    functionName: json_sax_acceptor::number_integer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool number_integer(number_integer_t /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7316
      start: 7313
    functionDepth: 0
    functionLinenumber: 7313
    functionLinenumberEnd: 7316
    functionName: json_sax_acceptor::number_unsigned
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool number_unsigned(number_unsigned_t /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7321
      start: 7318
    functionDepth: 0
    functionLinenumber: 7318
    functionLinenumberEnd: 7321
    functionName: json_sax_acceptor::number_float
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool number_float(number_float_t /*unused*/, const string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7326
      start: 7323
    functionDepth: 0
    functionLinenumber: 7323
    functionLinenumberEnd: 7326
    functionName: json_sax_acceptor::string
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool string(string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7331
      start: 7328
    functionDepth: 0
    functionLinenumber: 7328
    functionLinenumberEnd: 7331
    functionName: json_sax_acceptor::binary
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool binary(binary_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7333,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7336
      start: 7333
    functionDepth: 0
    functionLinenumber: 7333
    functionLinenumberEnd: 7336
    functionName: json_sax_acceptor::start_object
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<std::size_t>
    linkageType: ''
    returnType: bool
    signature: bool start_object(std::size_t /*unused*/ = static_cast<std::size_t>(-1))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7341
      start: 7338
    functionDepth: 0
    functionLinenumber: 7338
    functionLinenumberEnd: 7341
    functionName: json_sax_acceptor::key
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool key(string_t& /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7346
      start: 7343
    functionDepth: 0
    functionLinenumber: 7343
    functionLinenumberEnd: 7346
    functionName: json_sax_acceptor::end_object
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool end_object()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7348,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7351
      start: 7348
    functionDepth: 0
    functionLinenumber: 7348
    functionLinenumberEnd: 7351
    functionName: json_sax_acceptor::start_array
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<std::size_t>
    linkageType: ''
    returnType: bool
    signature: bool start_array(std::size_t /*unused*/ = static_cast<std::size_t>(-1))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7356
      start: 7353
    functionDepth: 0
    functionLinenumber: 7353
    functionLinenumberEnd: 7356
    functionName: json_sax_acceptor::end_array
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool end_array()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7361
      start: 7358
    functionDepth: 0
    functionLinenumber: 7358
    functionLinenumberEnd: 7361
    functionName: json_sax_acceptor::parse_error
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/,
      const detail::exception& /*unused*/)
  - BBCount: 350
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7496,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7498,1
    - Dst: get_decimal_point
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7498,1
    - Dst: localeconv
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7517,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7518,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7544,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7550,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7554,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7554,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7558,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7558,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7562,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7562,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7570,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7591,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7591,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7591,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7591,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7592,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7594,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7594,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7596,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7597,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7599,1
    - Dst: reset
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7629,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7632,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7637,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7640,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7655,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7659,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7663,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7667,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7671,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7675,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7679,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7683,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7687,1
    - Dst: get_codepoint
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7693,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7696,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7706,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7706,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7706,1
    - Dst: get_codepoint
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7708,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7710,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7717,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7720,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7722,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7724,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7744,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7752,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7758,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7758,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7763,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7763,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7763,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7764,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7764,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7764,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7769,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7769,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7769,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7770,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7770,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7770,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7771,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7771,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7771,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7776,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7776,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7776,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7777,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7777,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7777,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7778,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7778,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7778,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7779,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7779,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7779,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8083,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8119,1
    - Dst: next_byte_in_range
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8119,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8129,1
    - Dst: next_byte_in_range
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8129,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8153,1
    - Dst: next_byte_in_range
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8153,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8163,1
    - Dst: next_byte_in_range
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8163,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8173,1
    - Dst: next_byte_in_range
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8173,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8185,1
    - Dst: next_byte_in_range
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8185,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8195,1
    - Dst: next_byte_in_range
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8195,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8218,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8225,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8229,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8244,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8246,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8255,1
    - Dst: unget
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8262,1
    - Dst: std::strtof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8286,1
    - Dst: std::strtod
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8292,1
    - Dst: std::strtold
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8298,1
    - Dst: reset
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8344,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8355,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8361,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8375,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8381,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8387,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8391,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8405,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8418,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8422,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8429,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8439,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8452,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8458,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8465,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8476,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8489,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8502,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8515,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8522,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8533,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8538,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8553,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8567,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8580,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8593,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8606,1
    - Dst: unget
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8617,1
    - Dst: std::strtoull
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8625,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8625,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8628,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8628,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8628,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8632,1
    - Dst: std::strtoll
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8641,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8641,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8644,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8644,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8644,1
    - Dst: static_cast<number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8648,1
    - Dst: strtof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8658,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8658,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8661,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8661,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8661,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8678,1
    - Dst: std::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8678,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8678,1
    CyclomaticComplexity: 104
    EdgeCount: 104
    ICount: 782
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8683
      start: 7397
    functionDepth: 2
    functionLinenumber: 7397
    functionLinenumberEnd: 8683
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - strtof
    - pgp_source_t::eof
    - data
    - static_cast<number_integer_t>
    - static_cast<char_int_type>
    - localeconv
    - JSON_ASSERT
    - begin
    - size
    - static_cast<unsigned int>
    - std::move
    - std::strtold
    - JSON_HEDLEY_UNLIKELY
    - std::strtod
    - std::strtof
    - unget
    - std::to_char_type
    - std::strtoll
    - JSON_HEDLEY_LIKELY
    - end
    - static_cast<int>
    - get
    - get_codepoint
    - std::strtoull
    - get_decimal_point
    - static_cast<number_unsigned_t>
    - next_byte_in_range
    - add
    - reset
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 19
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 37
    argCount: 1
    argNames:
    - t
    argTypes:
    - token_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7475
      start: 7434
    functionDepth: 0
    functionLinenumber: 7434
    functionLinenumberEnd: 7475
    functionName: lexer_base::token_type_name
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: char
    signature: char * token_type_name(const token_type t) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7496,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7498,1
    - Dst: lexer::get_decimal_point
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7498,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' adapter'
    argTypes:
    - InputAdapterType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7499
      start: 7495
    functionDepth: 1
    functionLinenumber: 7495
    functionLinenumberEnd: 7499
    functionName: lexer::lexer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - lexer::get_decimal_point
    - std::move
    - static_cast<char_int_type>
    linkageType: ''
    returnType: void
    signature: void lexer(InputAdapterType&& adapter, bool ignore_comments_ = false)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7502
      start: 7502
    functionDepth: 0
    functionLinenumber: 7502
    functionLinenumberEnd: 7502
    functionName: lexer::lexer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lexer(const lexer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7503
      start: 7503
    functionDepth: 0
    functionLinenumber: 7503
    functionLinenumberEnd: 7503
    functionName: lexer::lexer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void lexer(lexer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7504
      start: 7504
    functionDepth: 0
    functionLinenumber: 7504
    functionLinenumberEnd: 7504
    functionName: '& operator=(lexer&)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lexer
    signature: lexer & operator=(lexer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7505
      start: 7505
    functionDepth: 0
    functionLinenumber: 7505
    functionLinenumberEnd: 7505
    functionName: '& operator=(lexer&&)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: lexer
    signature: lexer & operator=(lexer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7506
      start: 7506
    functionDepth: 0
    functionLinenumber: 7506
    functionLinenumberEnd: 7506
    functionName: ~lexer()
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~lexer()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: localeconv
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7517,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7520
      start: 7514
    functionDepth: 1
    functionLinenumber: 7514
    functionLinenumberEnd: 7520
    functionName: lexer::get_decimal_point
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - JSON_ASSERT
    - localeconv
    linkageType: ''
    returnType: JSON_HEDLEY_PURE
    signature: JSON_HEDLEY_PURE get_decimal_point() noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7544,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7550,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7554,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7554,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7558,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7558,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7562,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7562,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7570,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 17
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7572
      start: 7541
    functionDepth: 2
    functionLinenumber: 7541
    functionLinenumberEnd: 7572
    functionName: lexer::get_codepoint
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - JSON_ASSERT
    - static_cast<unsigned int>
    - get
    linkageType: ''
    returnType: int
    signature: int get_codepoint()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7591,1
    - Dst: std::initializer_list<char_int_type>::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7591,1
    - Dst: std::initializer_list<char_int_type>::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7591,1
    - Dst: std::initializer_list<char_int_type>::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7591,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7592,1
    - Dst: std::initializer_list<char_int_type>::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7594,1
    - Dst: std::initializer_list<char_int_type>::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7594,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7596,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7597,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7599,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 13
    argCount: 1
    argNames:
    - ranges
    argTypes:
    - std::initializer_list<char_int_type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 7609
      start: 7589
    functionDepth: 2
    functionLinenumber: 7589
    functionLinenumberEnd: 7609
    functionName: lexer::next_byte_in_range
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::initializer_list<char_int_type>::begin
    - std::initializer_list<char_int_type>::size
    - JSON_ASSERT
    - get
    - add
    - std::initializer_list<char_int_type>::end
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: bool
    signature: bool next_byte_in_range(std::initializer_list<char_int_type> ranges)
  - BBCount: 208
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7629,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7632,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7637,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7640,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7655,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7659,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7663,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7667,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7671,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7675,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7679,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7683,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7687,1
    - Dst: lexer::get_codepoint
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7693,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7696,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7706,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7706,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7706,1
    - Dst: lexer::get_codepoint
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7708,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7710,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7717,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7720,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7722,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7724,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7744,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7752,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7758,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7758,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7763,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7763,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7763,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7764,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7764,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7764,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7769,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7769,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7769,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7770,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7770,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7770,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7771,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7771,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7771,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7776,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7776,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7776,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7777,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7777,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7777,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7778,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7778,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7778,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7779,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7779,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:7779,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8083,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8119,1
    - Dst: lexer::next_byte_in_range
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8119,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8129,1
    - Dst: lexer::next_byte_in_range
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8129,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8153,1
    - Dst: lexer::next_byte_in_range
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8153,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8163,1
    - Dst: lexer::next_byte_in_range
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8163,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8173,1
    - Dst: lexer::next_byte_in_range
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8173,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8185,1
    - Dst: lexer::next_byte_in_range
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8185,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8195,1
    - Dst: lexer::next_byte_in_range
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8195,1
    CyclomaticComplexity: 42
    EdgeCount: 42
    ICount: 408
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8210
      start: 7626
    functionDepth: 3
    functionLinenumber: 7626
    functionLinenumberEnd: 8210
    functionName: lexer::scan_string
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - lexer::get_codepoint
    - JSON_HEDLEY_UNLIKELY
    - pgp_source_t::eof
    - lexer::next_byte_in_range
    - static_cast<char_int_type>
    - static_cast<unsigned int>
    - JSON_ASSERT
    - static_cast<int>
    - get
    - add
    - reset
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: token_type
    signature: token_type scan_string()
  - BBCount: 15
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8218,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8225,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8229,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8244,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8246,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8255,1
    - Dst: unget
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8262,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 43
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8281
      start: 8216
    functionDepth: 2
    functionLinenumber: 8216
    functionLinenumberEnd: 8281
    functionName: lexer::scan_comment
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - unget
    - pgp_source_t::eof
    - get
    linkageType: ''
    returnType: bool
    signature: bool scan_comment()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: lexer::strtof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8286,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' f'
    - str
    - endptr
    argTypes:
    - float
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8287
      start: 8284
    functionDepth: 1
    functionLinenumber: 8284
    functionLinenumberEnd: 8287
    functionName: lexer::strtof
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - lexer::strtof
    linkageType: ''
    returnType: void
    signature: void strtof(float& f, const char* str, char** endptr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::strtod
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8292,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' f'
    - str
    - endptr
    argTypes:
    - double
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8293
      start: 8290
    functionDepth: 0
    functionLinenumber: 8290
    functionLinenumberEnd: 8293
    functionName: lexer::strtof
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - std::strtod
    linkageType: ''
    returnType: void
    signature: void strtof(double& f, const char* str, char** endptr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::strtold
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8298,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - ' f'
    - str
    - endptr
    argTypes:
    - long double
    - char*
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8299
      start: 8296
    functionDepth: 0
    functionLinenumber: 8296
    functionLinenumberEnd: 8299
    functionName: lexer::strtof
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - std::strtold
    linkageType: ''
    returnType: void
    signature: void strtof(long double& f, const char* str, char** endptr) noexcept
  - BBCount: 107
    BranchProfiles: []
    Callsites:
    - Dst: reset
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8344,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8355,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8361,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8375,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8381,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8387,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8391,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8405,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8418,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8422,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8429,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8439,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8452,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8458,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8465,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8476,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8489,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8502,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8515,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8522,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8533,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8538,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8553,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8567,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8580,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8593,1
    - Dst: add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8606,1
    - Dst: unget
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8617,1
    - Dst: std::strtoull
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8625,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8625,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8628,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8628,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8628,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8632,1
    - Dst: std::strtoll
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8641,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8641,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8644,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8644,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8644,1
    - Dst: static_cast<number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8648,1
    - Dst: lexer::strtof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8658,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8658,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8661,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8661,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8661,1
    CyclomaticComplexity: 36
    EdgeCount: 36
    ICount: 253
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8664
      start: 8341
    functionDepth: 2
    functionLinenumber: 8341
    functionLinenumberEnd: 8664
    functionName: lexer::scan_number
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - data
    - static_cast<number_integer_t>
    - lexer::strtof
    - std::strtoull
    - JSON_ASSERT
    - unget
    - static_cast<number_unsigned_t>
    - get
    - add
    - reset
    - std::strtoll
    - size
    linkageType: ''
    returnType: token_type
    signature: token_type scan_number()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8694,1
    - Dst: clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8695,1
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8696,1
    - Dst: std::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8696,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8697
      start: 8692
    functionDepth: 1
    functionLinenumber: 8692
    functionLinenumberEnd: 8697
    functionName: reset
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 36
    functionsReached:
    - clear
    - std::to_char_type
    - push_back
    linkageType: ''
    returnType: void
    signature: void reset() noexcept
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: get_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8721,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8724,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8724,1
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8726,1
    - Dst: std::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8726,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8736
      start: 8709
    functionDepth: 1
    functionLinenumber: 8709
    functionLinenumberEnd: 8736
    functionName: get
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 640
    functionsReached:
    - pgp_source_t::eof
    - push_back
    - get_character
    - std::to_char_type
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: char_int_type
    signature: char_int_type get()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8765,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8765,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8767,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8767,1
    - Dst: pop_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8768,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8770
      start: 8746
    functionDepth: 1
    functionLinenumber: 8746
    functionLinenumberEnd: 8770
    functionName: unget
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 3
    functionsReached:
    - pgp_source_t::eof
    - JSON_ASSERT
    - pop_back
    - empty
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: void
    signature: void unget()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8775,1
    - Dst: static_cast<typename string_t::value_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8775,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - char_int_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8776
      start: 8773
    functionDepth: 1
    functionLinenumber: 8773
    functionLinenumberEnd: 8776
    functionName: add
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 217
    functionsReached:
    - static_cast<typename string_t::value_type>
    - push_back
    linkageType: ''
    returnType: void
    signature: void add(char_int_type c)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8793
      start: 8790
    functionDepth: 0
    functionLinenumber: 8790
    functionLinenumberEnd: 8793
    functionName: get_number_unsigned
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: number_unsigned_t
    signature: number_unsigned_t get_number_unsigned() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8799
      start: 8796
    functionDepth: 0
    functionLinenumber: 8796
    functionLinenumberEnd: 8799
    functionName: get_number_float
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: number_float_t
    signature: number_float_t get_number_float() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8805
      start: 8802
    functionDepth: 0
    functionLinenumber: 8802
    functionLinenumberEnd: 8805
    functionName: get_string
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 5
    functionsReached: []
    linkageType: ''
    returnType: string_t
    signature: string_t & get_string()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8815
      start: 8812
    functionDepth: 0
    functionLinenumber: 8812
    functionLinenumberEnd: 8815
    functionName: get_position
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: position_t
    signature: position_t get_position() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<unsigned char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8826,1
    - Dst: static_cast<void>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8830,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8830,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8830,1
    - Dst: static_cast<unsigned char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8830,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8831,1
    - Dst: std::string::push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8836,1
    - Dst: static_cast<std::string::value_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8836,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8841
      start: 8820
    functionDepth: 1
    functionLinenumber: 8820
    functionLinenumberEnd: 8841
    functionName: get_token_string
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::array::data
    - static_cast<std::string::value_type>
    - static_cast<unsigned char>
    - static_cast<void>
    - std::array::size
    - std::string::push_back
    linkageType: ''
    returnType: std::string
    signature: std::string get_token_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8848
      start: 8844
    functionDepth: 0
    functionLinenumber: 8844
    functionLinenumberEnd: 8848
    functionName: get_error_message
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: JSON_HEDLEY_RETURNS_NON_NULL
    signature: JSON_HEDLEY_RETURNS_NON_NULL * get_error_message() const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8860,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8863,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8863,1
    - Dst: unget
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8868,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8870
      start: 8858
    functionDepth: 2
    functionLinenumber: 8858
    functionLinenumberEnd: 8870
    functionName: skip_bom
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - unget
    - get
    linkageType: ''
    returnType: bool
    signature: bool skip_bom()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8876,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8879
      start: 8872
    functionDepth: 2
    functionLinenumber: 8872
    functionLinenumberEnd: 8879
    functionName: skip_whitespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - get
    linkageType: ''
    returnType: void
    signature: void skip_whitespace()
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: skip_bom
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8884,1
    - Dst: skip_whitespace
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8891,1
    - Dst: scan_comment
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8896,1
    - Dst: skip_whitespace
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8902,1
    - Dst: static_cast<char_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8924,1
    - Dst: static_cast<char_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8924,1
    - Dst: static_cast<char_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8924,1
    - Dst: static_cast<char_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8924,1
    - Dst: scan_literal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8925,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8925,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8925,1
    - Dst: static_cast<char_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8929,1
    - Dst: static_cast<char_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8929,1
    - Dst: static_cast<char_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8929,1
    - Dst: static_cast<char_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8929,1
    - Dst: static_cast<char_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8929,1
    - Dst: scan_literal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8930,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8930,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8930,1
    - Dst: static_cast<char_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8934,1
    - Dst: static_cast<char_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8934,1
    - Dst: static_cast<char_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8934,1
    - Dst: static_cast<char_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8934,1
    - Dst: scan_literal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8935,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8935,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8935,1
    - Dst: scan_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8940,1
    - Dst: scan_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8954,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:8959,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 8967
      start: 8881
    functionDepth: 3
    functionLinenumber: 8881
    functionLinenumberEnd: 8967
    functionName: scan
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 9
    functionsReached:
    - skip_whitespace
    - scan_literal
    - std::array::data
    - scan_comment
    - pgp_source_t::eof
    - scan_string
    - scan_number
    - static_cast<char_type>
    - skip_bom
    - std::array::size
    linkageType: ''
    returnType: token_type
    signature: token_type scan()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::declval<T&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9035,1
    - Dst: std::declval<T&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9039,1
    - Dst: std::declval<bool>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9039,1
    - Dst: std::declval<T&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9043,1
    - Dst: std::declval<Integer>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9043,1
    - Dst: std::declval<T&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9047,1
    - Dst: std::declval<Unsigned>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9047,1
    - Dst: std::declval<T&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9050,1
    - Dst: std::declval<Float>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9051,1
    - Dst: std::declval<const String&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9051,1
    - Dst: std::declval<T&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9055,1
    - Dst: std::declval<String&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9055,1
    - Dst: std::declval<T&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9059,1
    - Dst: std::declval<Binary&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9059,1
    - Dst: std::declval<T&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9063,1
    - Dst: std::declval<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9063,1
    - Dst: std::declval<T&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9067,1
    - Dst: std::declval<String&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9067,1
    - Dst: std::declval<T&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9070,1
    - Dst: std::declval<T&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9074,1
    - Dst: std::declval<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9074,1
    - Dst: std::declval<T&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9077,1
    - Dst: std::declval<T&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9080,1
    - Dst: std::declval<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9081,1
    - Dst: std::declval<const std::string&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9081,1
    - Dst: std::declval<const Exception&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9082,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9169
      start: 9030
    functionDepth: 0
    functionLinenumber: 9030
    functionLinenumberEnd: 9169
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::declval<bool>
    - std::declval<const std::string&>
    - std::declval<std::size_t>
    - std::declval<String&>
    - std::declval<Binary&>
    - std::declval<T&>
    - std::declval<const Exception&>
    - std::declval<const String&>
    - std::declval<Float>
    - std::declval<Integer>
    - std::declval<Unsigned>
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 798
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9200,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9228,1
    - Dst: parse_bson_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9260,1
    - Dst: parse_cbor_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9264,1
    - Dst: parse_msgpack_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9268,1
    - Dst: parse_ubjson_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9273,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9278,1
    - Dst: get_ignore_noop
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9286,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9290,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9293,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9293,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9295,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9295,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9295,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9296,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9296,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9296,1
    - Dst: get_number<std::int32_t, true>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9315,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9317,1
    - Dst: start_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9317,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9317,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9322,1
    - Dst: parse_bson_element_list
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9322,1
    - Dst: end_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9327,1
    - Dst: std::back_inserter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9339,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9342,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9343,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9343,1
    - Dst: static_cast<typename string_t::value_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9351,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9369,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9371,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9372,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9372,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9373,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9373,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9373,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9376,1
    - Dst: static_cast<NumberType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9376,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9376,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9376,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9391,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9393,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9394,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9394,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9395,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9395,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9395,1
    - Dst: get_number<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9400,1
    - Dst: set_subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9401,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9403,1
    - Dst: get_number<double, true>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9424,1
    - Dst: number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9424,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9424,1
    - Dst: get_number<std::int32_t, true>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9431,1
    - Dst: get_bson_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9431,1
    - Dst: string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9431,1
    - Dst: parse_bson_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9436,1
    - Dst: parse_bson_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9441,1
    - Dst: get_number<std::int32_t, true>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9448,1
    - Dst: get_bson_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9448,1
    - Dst: binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9448,1
    - Dst: boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9453,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9453,1
    - Dst: 'null'
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9458,1
    - Dst: get_number<std::int32_t, true>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9464,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9464,1
    - Dst: get_number<std::int64_t, true>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9470,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9470,1
    - Dst: static_cast<void>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9476,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9476,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9476,1
    - Dst: static_cast<unsigned char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9476,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9477,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9478,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9479,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9479,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9500,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9502,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9502,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9508,1
    - Dst: get_bson_cstr
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9508,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9513,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9518,1
    - Dst: parse_bson_element_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9518,1
    - Dst: string_t::clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9524,1
    - Dst: get_number<std::int32_t, true>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9537,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9539,1
    - Dst: start_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9539,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9539,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9544,1
    - Dst: parse_bson_element_list
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9544,1
    - Dst: end_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9549,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9567,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9570,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9571,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9598,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9598,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9603,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9603,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9609,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9609,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9615,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9615,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9621,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9621,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9649,1
    - Dst: static_cast<std::int8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9649,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9654,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9654,1
    - Dst: static_cast<number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9654,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9660,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9660,1
    - Dst: static_cast<number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9660,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9666,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9666,1
    - Dst: static_cast<number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9666,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9672,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9672,1
    - Dst: static_cast<number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9672,1
    - Dst: static_cast<number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9673,1
    - Dst: get_cbor_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9708,1
    - Dst: binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9708,1
    - Dst: get_cbor_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9743,1
    - Dst: string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9743,1
    - Dst: get_cbor_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9771,1
    - Dst: conditional_static_cast
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9772,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9772,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9777,1
    - Dst: get_cbor_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9777,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9777,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9783,1
    - Dst: get_cbor_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9783,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9783,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9789,1
    - Dst: get_cbor_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9789,1
    - Dst: conditional_static_cast
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9789,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9795,1
    - Dst: get_cbor_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9795,1
    - Dst: conditional_static_cast
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9795,1
    - Dst: get_cbor_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9799,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9799,1
    - Dst: get_cbor_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9826,1
    - Dst: conditional_static_cast
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9826,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9826,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9831,1
    - Dst: get_cbor_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9831,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9831,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9837,1
    - Dst: get_cbor_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9837,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9837,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9843,1
    - Dst: get_cbor_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9843,1
    - Dst: conditional_static_cast
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9843,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9849,1
    - Dst: get_cbor_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9849,1
    - Dst: conditional_static_cast
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9849,1
    - Dst: get_cbor_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9853,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9853,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9879,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9880,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9880,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9881,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9881,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9892,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9898,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9904,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9910,1
    - Dst: parse_cbor_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9916,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9928,1
    - Dst: binary_t::set_subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9929,1
    - Dst: detail::conditional_static_cast<typename binary_t::subtype_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9929,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9935,1
    - Dst: binary_t::set_subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9936,1
    - Dst: detail::conditional_static_cast<typename binary_t::subtype_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9936,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9942,1
    - Dst: binary_t::set_subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9943,1
    - Dst: detail::conditional_static_cast<typename binary_t::subtype_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9943,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9949,1
    - Dst: binary_t::set_subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9950,1
    - Dst: detail::conditional_static_cast<typename binary_t::subtype_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9950,1
    - Dst: parse_cbor_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9954,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9956,1
    - Dst: get_cbor_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9957,1
    - Dst: binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9957,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9961,1
    - Dst: boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9967,1
    - Dst: boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9970,1
    - Dst: 'null'
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9973,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9977,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9978,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9978,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9982,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9983,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9983,1
    - Dst: static_cast<unsigned char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9988,1
    - Dst: static_cast<unsigned char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9989,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9999,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10004,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10005,1
    - Dst: std::ldexp
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10009,1
    - Dst: std::numeric_limits<double>::infinity
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10012,1
    - Dst: std::numeric_limits<double>::quiet_NaN
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10013,1
    - Dst: std::ldexp
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10015,1
    - Dst: number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10018,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10019,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10020,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10026,1
    - Dst: number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10026,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10026,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10032,1
    - Dst: number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10032,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10032,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10037,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10038,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10038,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10039,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10039,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10057,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10057,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10090,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10090,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10096,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10096,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10102,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10102,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10108,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10108,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10114,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10114,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10119,1
    - Dst: get_cbor_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10122,1
    - Dst: append
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10126,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10133,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10134,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10134,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10135,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10135,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10153,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10153,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10186,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10186,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10192,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10193,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10199,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10200,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10206,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10207,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10213,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10214,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10219,1
    - Dst: get_cbor_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10222,1
    - Dst: insert
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10226,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10226,1
    - Dst: binary_t::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10226,1
    - Dst: binary_t::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10226,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10233,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10234,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10234,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10235,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10235,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10249,1
    - Dst: start_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10249,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10254,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10258,1
    - Dst: parse_cbor_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10258,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10266,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10268,1
    - Dst: parse_cbor_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10268,1
    - Dst: end_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10275,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10287,1
    - Dst: start_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10287,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10295,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10299,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10300,1
    - Dst: get_cbor_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10300,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10300,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10305,1
    - Dst: parse_cbor_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10305,1
    - Dst: string_t::clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10309,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10314,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10316,1
    - Dst: get_cbor_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10316,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10316,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10321,1
    - Dst: parse_cbor_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10321,1
    - Dst: string_t::clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10325,1
    - Dst: end_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10330,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10342,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10345,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10346,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10477,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10477,1
    - Dst: get_msgpack_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10496,1
    - Dst: conditional_static_cast
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10496,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10496,1
    - Dst: get_msgpack_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10515,1
    - Dst: conditional_static_cast
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10515,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10515,1
    - Dst: get_msgpack_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10555,1
    - Dst: string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10555,1
    - Dst: 'null'
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10559,1
    - Dst: boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10562,1
    - Dst: boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10565,1
    - Dst: get_msgpack_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10580,1
    - Dst: binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10580,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10586,1
    - Dst: number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10586,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10586,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10592,1
    - Dst: number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10592,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10592,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10598,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10598,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10604,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10604,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10610,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10610,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10616,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10616,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10622,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10622,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10628,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10628,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10634,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10634,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10640,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10640,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10646,1
    - Dst: get_msgpack_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10646,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10646,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10652,1
    - Dst: get_msgpack_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10652,1
    - Dst: conditional_static_cast
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10652,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10658,1
    - Dst: get_msgpack_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10658,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10658,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10664,1
    - Dst: get_msgpack_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10664,1
    - Dst: conditional_static_cast
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10664,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10700,1
    - Dst: static_cast<std::int8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10700,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10704,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10705,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10705,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10706,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10706,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10723,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10723,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10764,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10764,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10770,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10770,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10776,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10776,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10782,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10782,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10787,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10788,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10788,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10789,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10789,1
    - Dst: set_subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10809,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10809,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10818,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10819,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10825,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10826,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10832,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10833,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10840,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10841,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10842,1
    - Dst: assign_and_return_true
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10843,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10850,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10851,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10852,1
    - Dst: assign_and_return_true
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10853,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10860,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10861,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10862,1
    - Dst: assign_and_return_true
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10863,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10869,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10870,1
    - Dst: assign_and_return_true
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10871,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10877,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10878,1
    - Dst: assign_and_return_true
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10879,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10885,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10886,1
    - Dst: assign_and_return_true
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10887,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10893,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10894,1
    - Dst: assign_and_return_true
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10895,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10901,1
    - Dst: get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10902,1
    - Dst: assign_and_return_true
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10903,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10917,1
    - Dst: start_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10917,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10924,1
    - Dst: parse_msgpack_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10924,1
    - Dst: end_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10930,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10939,1
    - Dst: start_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10939,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10947,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10948,1
    - Dst: get_msgpack_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10948,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10948,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10953,1
    - Dst: parse_msgpack_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10953,1
    - Dst: string_t::clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10957,1
    - Dst: end_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10960,1
    - Dst: get_ubjson_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10976,1
    - Dst: get_ignore_noop
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10976,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10997,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11000,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11000,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11010,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11010,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11016,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11016,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11022,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11022,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11028,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11028,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11034,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11034,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11044,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11044,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11054,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11054,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11064,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11064,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11070,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11081,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11081,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11081,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11094,1
    - Dst: get_ubjson_size_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11094,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11107,1
    - Dst: get_ubjson_size_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11107,1
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11111,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11119,1
    - Dst: get_ubjson_size_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11119,1
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11123,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11131,1
    - Dst: get_ubjson_size_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11131,1
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11135,1
    - Dst: get_ignore_noop
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11136,1
    - Dst: get_ignore_noop
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11157,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11165,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11165,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11169,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11176,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11176,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11182,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11182,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11182,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11183,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11185,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11192,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11192,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11198,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11198,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11198,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11199,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11201,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11208,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11208,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11214,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11214,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11214,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11215,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11217,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11224,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11224,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11230,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11230,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11230,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11231,1
    - Dst: value_in_range_of
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11233,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11235,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11235,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11235,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11236,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11238,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11249,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11249,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11253,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11264,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11264,1
    - Dst: conditional_static_cast
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11268,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11279,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11279,1
    - Dst: value_in_range_of
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11283,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11285,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11285,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11285,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11286,1
    - Dst: detail::conditional_static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11288,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11300,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11300,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11300,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11300,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11303,1
    - Dst: get_ubjson_ndarray_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11303,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11307,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11307,1
    - Dst: std::vector::at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11307,1
    - Dst: std::vector::at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11309,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11309,1
    - Dst: std::vector::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11312,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11324,1
    - Dst: start_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11324,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11324,1
    - Dst: start_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11324,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11324,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11334,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11334,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11334,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11334,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11336,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11336,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11336,1
    - Dst: end_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11342,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11351,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11362,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11362,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11362,1
    - Dst: get_ignore_noop
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11382,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11386,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11388,1
    - Dst: std::binary_search
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11388,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11388,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11388,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11390,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11391,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11391,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11392,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11392,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11395,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11395,1
    - Dst: get_ignore_noop
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11400,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11401,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11403,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11403,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11407,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11408,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11408,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11409,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11409,1
    - Dst: get_ubjson_size_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11412,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11417,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11417,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11417,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11418,1
    - Dst: get_ubjson_size_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11427,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11430,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11430,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11430,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11431,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11447,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11448,1
    - Dst: boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11451,1
    - Dst: boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11453,1
    - Dst: 'null'
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11456,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11461,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11461,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11467,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11467,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11473,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11473,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11479,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11479,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11485,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11485,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11495,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11495,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11505,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11505,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11515,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11515,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11524,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11525,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11525,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11529,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11530,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11530,1
    - Dst: static_cast<unsigned char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11535,1
    - Dst: static_cast<unsigned char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11536,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11546,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11551,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11552,1
    - Dst: std::ldexp
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11556,1
    - Dst: std::numeric_limits<double>::infinity
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11559,1
    - Dst: std::numeric_limits<double>::quiet_NaN
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11560,1
    - Dst: std::ldexp
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11562,1
    - Dst: number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11565,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11566,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11567,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11573,1
    - Dst: number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11573,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11573,1
    - Dst: get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11579,1
    - Dst: number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11579,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11579,1
    - Dst: get_ubjson_high_precision_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11584,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11589,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11590,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11590,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11594,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11596,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11597,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11597,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11598,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11598,1
    - Dst: static_cast<typename string_t::value_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11600,1
    - Dst: string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11601,1
    - Dst: get_ubjson_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11607,1
    - Dst: string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11607,1
    - Dst: get_ubjson_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11611,1
    - Dst: get_ubjson_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11614,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11619,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11620,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11620,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11620,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11629,1
    - Dst: get_ubjson_size_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11629,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11639,1
    - Dst: std::lower_bound
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11640,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11640,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11640,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11645,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11645,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11647,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11648,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11648,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11649,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11653,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11653,1
    - Dst: string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11653,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11664,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11664,1
    - Dst: start_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11664,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11671,1
    - Dst: get_ubjson_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11671,1
    - Dst: end_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11677,1
    - Dst: end_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11677,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11682,1
    - Dst: start_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11682,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11693,1
    - Dst: get_ubjson_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11693,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11704,1
    - Dst: parse_ubjson_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11704,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11713,1
    - Dst: start_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11713,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11713,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11720,1
    - Dst: parse_ubjson_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11720,1
    - Dst: get_ignore_noop
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11724,1
    - Dst: end_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11728,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11737,1
    - Dst: get_ubjson_size_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11737,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11745,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11746,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11746,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11747,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11753,1
    - Dst: start_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11753,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11762,1
    - Dst: get_ubjson_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11762,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11762,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11766,1
    - Dst: get_ubjson_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11766,1
    - Dst: string_t::clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11770,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11777,1
    - Dst: get_ubjson_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11777,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11777,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11781,1
    - Dst: parse_ubjson_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11781,1
    - Dst: string_t::clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11785,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11791,1
    - Dst: start_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11791,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11791,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11798,1
    - Dst: get_ubjson_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11798,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11798,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11802,1
    - Dst: parse_ubjson_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11802,1
    - Dst: get_ignore_noop
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11806,1
    - Dst: string_t::clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11807,1
    - Dst: end_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11811,1
    - Dst: get_ubjson_size_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11822,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11823,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11832,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11833,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11833,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11837,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11837,1
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11841,1
    - Dst: detail::lexer<BasicJsonType, ia_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11842,1
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11842,1
    - Dst: auto::scan
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11843,1
    - Dst: auto::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11844,1
    - Dst: auto::scan
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11845,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11849,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11851,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11851,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11852,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11852,1
    - Dst: auto::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11852,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11858,1
    - Dst: auto::get_number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11858,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11860,1
    - Dst: auto::get_number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11860,1
    - Dst: number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11862,1
    - Dst: auto::get_number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11862,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11862,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11878,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11878,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11879,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11879,1
    - Dst: auto::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11879,1
    - Dst: get_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11899,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11909,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11938,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11939,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11939,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11947,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11951,1
    - Dst: std::memcpy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11956,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11956,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11982,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11983,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11983,1
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11988,1
    - Dst: static_cast<typename string_t::value_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11988,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12015,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12016,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12016,1
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12021,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12021,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12034,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12034,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12036,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12037,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12037,1
    - Dst: static_cast<void>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12048,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12048,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12048,1
    - Dst: static_cast<unsigned char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12048,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12049,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12088,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12091,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12095,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12101,1
    - Dst: little_endianness
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12107,1
    CyclomaticComplexity: 338
    EdgeCount: 338
    ICount: 1606
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12153
      start: 9170
    functionDepth: 5
    functionLinenumber: 9170
    functionLinenumberEnd: 12153
    functionName: NLOHMANN_JSON_NAMESPACE_BEGIN
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - binary_t::end
    - get_ubjson_array
    - get_character
    - get_number<double, true>
    - get_bson_cstr
    - std::move
    - static_cast<unsigned int>
    - boolean
    - get_ubjson_size_value
    - static_cast<std::int8_t>
    - std::vector::empty
    - get_msgpack_binary
    - get_ubjson_value
    - static_cast<typename string_t::value_type>
    - parse_error::create
    - unexpect_eof
    - std::array::size
    - conditional_static_cast
    - auto::get_number_float
    - static_cast<number_float_t>
    - get_bson_binary
    - std::binary_search
    - get_number<std::uint8_t>
    - auto::get_number_unsigned
    - std::array::data
    - static_cast<number_integer_t>
    - push_back
    - number_float
    - std::numeric_limits<double>::quiet_NaN
    - end_array
    - get_cbor_binary
    - out_of_range::create
    - JSON_HEDLEY_UNLIKELY
    - parse_bson_element_internal
    - key
    - binary_t::set_subtype
    - concat
    - number_integer
    - get_ubjson_high_precision_number
    - get_string
    - insert
    - end_object
    - to_string
    - detail::conditional_static_cast<typename binary_t::subtype_type>
    - get
    - std::vector::size
    - set_subtype
    - parse_cbor_internal
    - get_msgpack_object
    - static_cast<void>
    - append
    - get_bson_string
    - static_cast<NumberType>
    - std::lower_bound
    - start_array
    - JSON_ASSERT
    - parse_ubjson_internal
    - get_number
    - begin
    - parse_bson_element_list
    - parse_msgpack_internal
    - exception_message
    - parse_bson_internal
    - get_number<std::int32_t, true>
    - get_ubjson_string
    - auto::get_number_integer
    - assign_and_return_true
    - detail::lexer<BasicJsonType, ia_type>
    - end
    - file_input_adapter
    - little_endianness
    - get_ubjson_object
    - get_number<std::int64_t, true>
    - value_in_range_of
    - number_unsigned
    - string_t::clear
    - get_cbor_string
    - static_cast<unsigned char>
    - static_cast<number_unsigned_t>
    - static_cast<std::uint8_t>
    - pgp_source_t::eof
    - static_cast<char_int_type>
    - auto::scan
    - static_cast<std::size_t>
    - get_token_string
    - get_binary
    - string
    - std::back_inserter
    - get_msgpack_array
    - std::vector::at
    - reinterpret_cast<char*>
    - get_cbor_object
    - get_ubjson_size_type
    - detail::conditional_static_cast<std::size_t>
    - get_ubjson_ndarray_size
    - auto::get_token_string
    - std::memcpy
    - std::numeric_limits<double>::infinity
    - binary
    - std::vector::push_back
    - parse_bson_array
    - get_cbor_array
    - parse_error
    - 'null'
    - binary_t::begin
    - std::ldexp
    - get_ignore_noop
    - static_cast<char>
    - start_object
    - get_msgpack_string
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_END
    signature: NLOHMANN_JSON_NAMESPACE_END NLOHMANN_JSON_NAMESPACE_BEGIN
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9201
      start: 9198
    functionDepth: 0
    functionLinenumber: 9198
    functionLinenumberEnd: 9201
    functionName: little_endianness
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: bool
    signature: bool little_endianness(int num = 1) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9228,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' adapter'
    argTypes:
    - InputAdapterType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9231
      start: 9228
    functionDepth: 1
    functionLinenumber: 9228
    functionLinenumberEnd: 9231
    functionName: binary_reader::binary_reader
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void binary_reader(InputAdapterType&& adapter, const input_format_t
      format = input_format_t::json) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9234
      start: 9234
    functionDepth: 0
    functionLinenumber: 9234
    functionLinenumberEnd: 9234
    functionName: binary_reader::binary_reader
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void binary_reader(const binary_reader&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9235
      start: 9235
    functionDepth: 0
    functionLinenumber: 9235
    functionLinenumberEnd: 9235
    functionName: binary_reader::binary_reader
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void binary_reader(binary_reader&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9236
      start: 9236
    functionDepth: 0
    functionLinenumber: 9236
    functionLinenumberEnd: 9236
    functionName: '& operator=(const binary_reader&)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: binary_reader
    signature: binary_reader & operator=(const binary_reader&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9237
      start: 9237
    functionDepth: 0
    functionLinenumber: 9237
    functionLinenumberEnd: 9237
    functionName: '& operator=(binary_reader&&)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: binary_reader
    signature: binary_reader & operator=(binary_reader&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9238
      start: 9238
    functionDepth: 0
    functionLinenumber: 9238
    functionLinenumberEnd: 9238
    functionName: ~binary_reader()
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~binary_reader()
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: parse_bson_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9260,1
    - Dst: parse_cbor_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9264,1
    - Dst: parse_msgpack_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9268,1
    - Dst: parse_ubjson_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9273,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9278,1
    - Dst: get_ignore_noop
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9286,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9290,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9293,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9293,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9295,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9295,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9295,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9296,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9296,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9296,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 31
    argCount: 2
    argNames:
    - format
    - sax_
    argTypes:
    - input_format_t
    - json_sax_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9301
      start: 9248
    functionDepth: 4
    functionLinenumber: 9248
    functionLinenumberEnd: 9301
    functionName: "(3)\n    bool sax_parse(const input_format_t format,\n                   json_sax_t*
      sax_,\n                   const bool strict = true,\n                   const
      cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error)"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - parse_msgpack_internal
    - JSON_HEDLEY_UNLIKELY
    - pgp_source_t::eof
    - parse_bson_internal
    - exception_message
    - parse_cbor_internal
    - get
    - parse_error
    - JSON_ASSERT
    - parse_error::create
    - get_ignore_noop
    - concat
    - parse_ubjson_internal
    - get_token_string
    linkageType: ''
    returnType: JSON_HEDLEY_NON_NULL
    signature: "JSON_HEDLEY_NON_NULL (3)\n    bool sax_parse(const input_format_t
      format,\n                   json_sax_t* sax_,\n                   const bool
      strict = true,\n                   const cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9315,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9317,1
    - Dst: start_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9317,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9317,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9322,1
    - Dst: binary_reader::parse_bson_element_list
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9322,1
    - Dst: end_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9327,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9328
      start: 9312
    functionDepth: 5
    functionLinenumber: 9312
    functionLinenumberEnd: 9328
    functionName: binary_reader::parse_bson_internal
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - end_object
    - static_cast<std::size_t>
    - binary_reader::parse_bson_element_list
    - binary_reader::get_number
    - start_object
    linkageType: ''
    returnType: bool
    signature: bool parse_bson_internal()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: std::back_inserter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9339,1
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9342,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9343,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9343,1
    - Dst: static_cast<typename string_t::value_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9351,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9353
      start: 9337
    functionDepth: 1
    functionLinenumber: 9337
    functionLinenumberEnd: 9353
    functionName: binary_reader::get_bson_cstr
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - std::back_inserter
    - static_cast<typename string_t::value_type>
    - unexpect_eof
    - binary_reader::get
    linkageType: ''
    returnType: bool
    signature: bool get_bson_cstr(string_t& result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9369,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9371,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9372,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9372,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9373,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9373,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9373,1
    - Dst: binary_reader::get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9376,1
    - Dst: static_cast<NumberType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9376,1
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9376,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9376,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 2
    argNames:
    - len
    - ' result'
    argTypes:
    - NumberType
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9377
      start: 9367
    functionDepth: 4
    functionLinenumber: 9367
    functionLinenumberEnd: 9377
    functionName: binary_reader::get_bson_string
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - binary_reader::get_string
    - static_cast<NumberType>
    - JSON_HEDLEY_UNLIKELY
    - pgp_source_t::eof
    - binary_reader::exception_message
    - binary_reader::get_token_string
    - parse_error
    - to_string
    - concat
    - parse_error::create
    - binary_reader::get
    linkageType: ''
    returnType: bool
    signature: bool get_bson_string(const NumberType len, string_t& result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9391,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9393,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9394,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9394,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9395,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9395,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9395,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9400,1
    - Dst: set_subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9401,1
    - Dst: binary_reader::get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9403,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - len
    - ' result'
    argTypes:
    - NumberType
    - binary_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9404
      start: 9389
    functionDepth: 4
    functionLinenumber: 9389
    functionLinenumberEnd: 9404
    functionName: binary_reader::get_bson_binary
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - binary_reader::get_binary
    - set_subtype
    - binary_reader::exception_message
    - binary_reader::get_token_string
    - parse_error
    - to_string
    - concat
    - parse_error::create
    - binary_reader::get_number
    linkageType: ''
    returnType: bool
    signature: bool get_bson_binary(const NumberType len, binary_t& result)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9424,1
    - Dst: number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9424,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9424,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9431,1
    - Dst: binary_reader::get_bson_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9431,1
    - Dst: string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9431,1
    - Dst: binary_reader::parse_bson_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9436,1
    - Dst: binary_reader::parse_bson_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9441,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9448,1
    - Dst: binary_reader::get_bson_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9448,1
    - Dst: binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9448,1
    - Dst: boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9453,1
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9453,1
    - Dst: 'null'
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9458,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9464,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9464,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9470,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9470,1
    - Dst: static_cast<void>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9476,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9476,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9476,1
    - Dst: static_cast<unsigned char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9476,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9477,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9478,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9479,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9479,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 34
    argCount: 2
    argNames:
    - element_type
    - element_type_parse_position
    argTypes:
    - char_int_type
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9482
      start: 9416
    functionDepth: 6
    functionLinenumber: 9416
    functionLinenumberEnd: 9482
    functionName: binary_reader::parse_bson_element_internal
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::array::data
    - number_float
    - boolean
    - string
    - concat
    - parse_error::create
    - std::array::size
    - binary_reader::parse_bson_array
    - binary_reader::get_number
    - number_integer
    - binary_reader::get
    - binary_reader::get_bson_string
    - binary_reader::get_bson_binary
    - binary_reader::parse_bson_internal
    - static_cast<number_float_t>
    - binary
    - 'null'
    - parse_error
    - static_cast<void>
    - static_cast<unsigned char>
    linkageType: ''
    returnType: bool
    signature: "bool parse_bson_element_internal(const char_int_type element_type,\n
      \                                    const std::size_t element_type_parse_position)"
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9500,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9502,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9502,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9508,1
    - Dst: binary_reader::get_bson_cstr
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9508,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9513,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9518,1
    - Dst: binary_reader::parse_bson_element_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9518,1
    - Dst: string_t::clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9524,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 17
    argCount: 1
    argNames:
    - is_array
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9528
      start: 9496
    functionDepth: 7
    functionLinenumber: 9496
    functionLinenumberEnd: 9528
    functionName: binary_reader::parse_bson_element_list
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - binary_reader::parse_bson_element_internal
    - JSON_HEDLEY_UNLIKELY
    - binary_reader::get_bson_cstr
    - key
    - string_t::clear
    - unexpect_eof
    - binary_reader::get
    linkageType: ''
    returnType: bool
    signature: bool parse_bson_element_list(const bool is_array)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9537,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9539,1
    - Dst: start_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9539,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9539,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9544,1
    - Dst: binary_reader::parse_bson_element_list
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9544,1
    - Dst: end_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9549,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 9550
      start: 9534
    functionDepth: 8
    functionLinenumber: 9534
    functionLinenumberEnd: 9550
    functionName: binary_reader::parse_bson_array
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - start_array
    - static_cast<std::size_t>
    - binary_reader::parse_bson_element_list
    - end_array
    - binary_reader::get_number
    linkageType: ''
    returnType: bool
    signature: bool parse_bson_array()
  - BBCount: 219
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9567,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9570,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9571,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9598,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9598,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9603,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9603,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9609,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9609,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9615,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9615,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9621,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9621,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9649,1
    - Dst: static_cast<std::int8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9649,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9654,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9654,1
    - Dst: static_cast<number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9654,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9660,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9660,1
    - Dst: static_cast<number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9660,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9666,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9666,1
    - Dst: static_cast<number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9666,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9672,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9672,1
    - Dst: static_cast<number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9672,1
    - Dst: static_cast<number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9673,1
    - Dst: binary_reader::get_cbor_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9708,1
    - Dst: binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9708,1
    - Dst: binary_reader::get_cbor_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9743,1
    - Dst: string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9743,1
    - Dst: binary_reader::get_cbor_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9771,1
    - Dst: conditional_static_cast
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9772,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9772,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9777,1
    - Dst: binary_reader::get_cbor_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9777,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9777,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9783,1
    - Dst: binary_reader::get_cbor_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9783,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9783,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9789,1
    - Dst: binary_reader::get_cbor_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9789,1
    - Dst: conditional_static_cast
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9789,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9795,1
    - Dst: binary_reader::get_cbor_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9795,1
    - Dst: conditional_static_cast
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9795,1
    - Dst: binary_reader::get_cbor_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9799,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9799,1
    - Dst: binary_reader::get_cbor_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9826,1
    - Dst: conditional_static_cast
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9826,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9826,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9831,1
    - Dst: binary_reader::get_cbor_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9831,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9831,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9837,1
    - Dst: binary_reader::get_cbor_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9837,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9837,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9843,1
    - Dst: binary_reader::get_cbor_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9843,1
    - Dst: conditional_static_cast
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9843,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9849,1
    - Dst: binary_reader::get_cbor_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9849,1
    - Dst: conditional_static_cast
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9849,1
    - Dst: binary_reader::get_cbor_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9853,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9853,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9879,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9880,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9880,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9881,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9881,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9892,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9898,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9904,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9910,1
    - Dst: binary_reader::parse_cbor_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9916,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9928,1
    - Dst: binary_t::set_subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9929,1
    - Dst: detail::conditional_static_cast<typename binary_t::subtype_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9929,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9935,1
    - Dst: binary_t::set_subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9936,1
    - Dst: detail::conditional_static_cast<typename binary_t::subtype_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9936,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9942,1
    - Dst: binary_t::set_subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9943,1
    - Dst: detail::conditional_static_cast<typename binary_t::subtype_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9943,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9949,1
    - Dst: binary_t::set_subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9950,1
    - Dst: detail::conditional_static_cast<typename binary_t::subtype_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9950,1
    - Dst: binary_reader::parse_cbor_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9954,1
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9956,1
    - Dst: binary_reader::get_cbor_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9957,1
    - Dst: binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9957,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9961,1
    - Dst: boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9967,1
    - Dst: boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9970,1
    - Dst: 'null'
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9973,1
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9977,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9978,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9978,1
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9982,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9983,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9983,1
    - Dst: static_cast<unsigned char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9988,1
    - Dst: static_cast<unsigned char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9989,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:9999,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10004,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10005,1
    - Dst: std::ldexp
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10009,1
    - Dst: std::numeric_limits<double>::infinity
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10012,1
    - Dst: std::numeric_limits<double>::quiet_NaN
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10013,1
    - Dst: std::ldexp
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10015,1
    - Dst: number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10018,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10019,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10020,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10026,1
    - Dst: number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10026,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10026,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10032,1
    - Dst: number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10032,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10032,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10037,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10038,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10038,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10039,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10039,1
    CyclomaticComplexity: 38
    EdgeCount: 38
    ICount: 333
    argCount: 2
    argNames:
    - get_char
    - tag_handler
    argTypes:
    - bool
    - cbor_tag_handler_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10042
      start: 9564
    functionDepth: 4
    functionLinenumber: 9564
    functionLinenumberEnd: 10042
    functionName: binary_reader::parse_cbor_internal
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - pgp_source_t::eof
    - static_cast<number_integer_t>
    - number_float
    - std::numeric_limits<double>::quiet_NaN
    - static_cast<std::size_t>
    - JSON_ASSERT
    - binary_reader::parse_cbor_internal
    - static_cast<unsigned int>
    - binary_reader::get_cbor_binary
    - boolean
    - static_cast<std::int8_t>
    - JSON_HEDLEY_UNLIKELY
    - binary_reader::get_token_string
    - string
    - binary_t::set_subtype
    - concat
    - parse_error::create
    - unexpect_eof
    - binary_reader::get_number
    - number_integer
    - binary_reader::get
    - conditional_static_cast
    - detail::conditional_static_cast<typename binary_t::subtype_type>
    - static_cast<number_float_t>
    - std::numeric_limits<double>::infinity
    - binary
    - binary_reader::get_cbor_string
    - binary_reader::exception_message
    - parse_error
    - number_unsigned
    - 'null'
    - binary_reader::get_cbor_object
    - binary_reader::get_cbor_array
    - static_cast<unsigned char>
    - static_cast<number_unsigned_t>
    - std::ldexp
    linkageType: ''
    returnType: bool
    signature: "bool parse_cbor_internal(const bool get_char,\n                             const
      cbor_tag_handler_t tag_handler)"
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10057,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10057,1
    - Dst: binary_reader::get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10090,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10090,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10096,1
    - Dst: binary_reader::get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10096,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10102,1
    - Dst: binary_reader::get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10102,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10108,1
    - Dst: binary_reader::get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10108,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10114,1
    - Dst: binary_reader::get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10114,1
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10119,1
    - Dst: binary_reader::get_cbor_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10122,1
    - Dst: append
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10126,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10133,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10134,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10134,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10135,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10135,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 56
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10138
      start: 10055
    functionDepth: 4
    functionLinenumber: 10055
    functionLinenumberEnd: 10138
    functionName: binary_reader::get_cbor_string
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - binary_reader::get_string
    - JSON_HEDLEY_UNLIKELY
    - binary_reader::get_cbor_string
    - binary_reader::exception_message
    - binary_reader::get_token_string
    - append
    - parse_error
    - concat
    - parse_error::create
    - unexpect_eof
    - binary_reader::get_number
    - static_cast<unsigned int>
    - binary_reader::get
    linkageType: ''
    returnType: bool
    signature: bool get_cbor_string(string_t& result)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10153,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10153,1
    - Dst: binary_reader::get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10186,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10186,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10192,1
    - Dst: binary_reader::get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10193,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10199,1
    - Dst: binary_reader::get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10200,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10206,1
    - Dst: binary_reader::get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10207,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10213,1
    - Dst: binary_reader::get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10214,1
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10219,1
    - Dst: binary_reader::get_cbor_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10222,1
    - Dst: insert
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10226,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10226,1
    - Dst: binary_t::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10226,1
    - Dst: binary_t::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10226,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10233,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10234,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10234,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10235,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10235,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 56
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - binary_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10238
      start: 10151
    functionDepth: 4
    functionLinenumber: 10151
    functionLinenumberEnd: 10238
    functionName: binary_reader::get_cbor_binary
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - binary_reader::get_cbor_binary
    - binary_t::end
    - JSON_HEDLEY_UNLIKELY
    - binary_reader::get_binary
    - binary_reader::exception_message
    - binary_reader::get_token_string
    - end
    - insert
    - binary_t::begin
    - parse_error
    - concat
    - parse_error::create
    - unexpect_eof
    - binary_reader::get_number
    - static_cast<unsigned int>
    - binary_reader::get
    linkageType: ''
    returnType: bool
    signature: bool get_cbor_binary(binary_t& result)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10249,1
    - Dst: start_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10249,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10254,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10258,1
    - Dst: binary_reader::parse_cbor_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10258,1
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10266,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10268,1
    - Dst: binary_reader::parse_cbor_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10268,1
    - Dst: end_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10275,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 18
    argCount: 2
    argNames:
    - len
    - tag_handler
    argTypes:
    - std::size_t
    - cbor_tag_handler_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10276
      start: 10246
    functionDepth: 5
    functionLinenumber: 10246
    functionLinenumberEnd: 10276
    functionName: binary_reader::get_cbor_array
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - start_array
    - static_cast<std::size_t>
    - binary_reader::parse_cbor_internal
    - end_array
    - binary_reader::get
    linkageType: ''
    returnType: bool
    signature: "bool get_cbor_array(const std::size_t len,\n                        const
      cbor_tag_handler_t tag_handler)"
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10287,1
    - Dst: start_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10287,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10295,1
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10299,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10300,1
    - Dst: binary_reader::get_cbor_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10300,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10300,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10305,1
    - Dst: binary_reader::parse_cbor_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10305,1
    - Dst: string_t::clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10309,1
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10314,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10316,1
    - Dst: binary_reader::get_cbor_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10316,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10316,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10321,1
    - Dst: binary_reader::parse_cbor_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10321,1
    - Dst: string_t::clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10325,1
    - Dst: end_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10330,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 29
    argCount: 2
    argNames:
    - len
    - tag_handler
    argTypes:
    - std::size_t
    - cbor_tag_handler_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10331
      start: 10284
    functionDepth: 5
    functionLinenumber: 10284
    functionLinenumberEnd: 10331
    functionName: binary_reader::get_cbor_object
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - binary_reader::get_cbor_string
    - JSON_HEDLEY_UNLIKELY
    - end_object
    - key
    - static_cast<std::size_t>
    - string_t::clear
    - binary_reader::parse_cbor_internal
    - start_object
    - binary_reader::get
    linkageType: ''
    returnType: bool
    signature: "bool get_cbor_object(const std::size_t len,\n                         const
      cbor_tag_handler_t tag_handler)"
  - BBCount: 258
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10342,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10345,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10346,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10477,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10477,1
    - Dst: binary_reader::get_msgpack_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10496,1
    - Dst: conditional_static_cast
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10496,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10496,1
    - Dst: binary_reader::get_msgpack_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10515,1
    - Dst: conditional_static_cast
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10515,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10515,1
    - Dst: binary_reader::get_msgpack_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10555,1
    - Dst: string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10555,1
    - Dst: 'null'
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10559,1
    - Dst: boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10562,1
    - Dst: boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10565,1
    - Dst: binary_reader::get_msgpack_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10580,1
    - Dst: binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10580,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10586,1
    - Dst: number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10586,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10586,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10592,1
    - Dst: number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10592,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10592,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10598,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10598,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10604,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10604,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10610,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10610,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10616,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10616,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10622,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10622,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10628,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10628,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10634,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10634,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10640,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10640,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10646,1
    - Dst: binary_reader::get_msgpack_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10646,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10646,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10652,1
    - Dst: binary_reader::get_msgpack_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10652,1
    - Dst: conditional_static_cast
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10652,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10658,1
    - Dst: binary_reader::get_msgpack_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10658,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10658,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10664,1
    - Dst: binary_reader::get_msgpack_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10664,1
    - Dst: conditional_static_cast
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10664,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10700,1
    - Dst: static_cast<std::int8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10700,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10704,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10705,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10705,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10706,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10706,1
    CyclomaticComplexity: 17
    EdgeCount: 17
    ICount: 302
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10709
      start: 10340
    functionDepth: 4
    functionLinenumber: 10340
    functionLinenumberEnd: 10709
    functionName: binary_reader::parse_msgpack_internal
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - pgp_source_t::eof
    - number_float
    - static_cast<std::size_t>
    - binary_reader::get_msgpack_object
    - static_cast<unsigned int>
    - boolean
    - static_cast<std::int8_t>
    - binary_reader::get_token_string
    - string
    - binary_reader::get_msgpack_binary
    - concat
    - parse_error::create
    - unexpect_eof
    - binary_reader::get_number
    - number_integer
    - binary_reader::get
    - conditional_static_cast
    - static_cast<number_float_t>
    - binary
    - binary_reader::get_msgpack_array
    - binary_reader::get_msgpack_string
    - binary_reader::exception_message
    - 'null'
    - number_unsigned
    - parse_error
    - static_cast<number_unsigned_t>
    linkageType: ''
    returnType: bool
    signature: bool parse_msgpack_internal()
  - BBCount: 38
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10723,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10723,1
    - Dst: binary_reader::get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10764,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10764,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10770,1
    - Dst: binary_reader::get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10770,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10776,1
    - Dst: binary_reader::get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10776,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10782,1
    - Dst: binary_reader::get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10782,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10787,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10788,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10788,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10789,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10789,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 52
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10792
      start: 10721
    functionDepth: 4
    functionLinenumber: 10721
    functionLinenumberEnd: 10792
    functionName: binary_reader::get_msgpack_string
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - binary_reader::get_string
    - JSON_HEDLEY_UNLIKELY
    - binary_reader::exception_message
    - binary_reader::get_token_string
    - parse_error
    - concat
    - parse_error::create
    - unexpect_eof
    - binary_reader::get_number
    - static_cast<unsigned int>
    linkageType: ''
    returnType: bool
    signature: bool get_msgpack_string(string_t& result)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: set_subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10809,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10809,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10818,1
    - Dst: binary_reader::get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10819,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10825,1
    - Dst: binary_reader::get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10826,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10832,1
    - Dst: binary_reader::get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10833,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10840,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10841,1
    - Dst: binary_reader::get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10842,1
    - Dst: assign_and_return_true
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10843,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10850,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10851,1
    - Dst: binary_reader::get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10852,1
    - Dst: assign_and_return_true
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10853,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10860,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10861,1
    - Dst: binary_reader::get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10862,1
    - Dst: assign_and_return_true
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10863,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10869,1
    - Dst: binary_reader::get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10870,1
    - Dst: assign_and_return_true
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10871,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10877,1
    - Dst: binary_reader::get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10878,1
    - Dst: assign_and_return_true
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10879,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10885,1
    - Dst: binary_reader::get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10886,1
    - Dst: assign_and_return_true
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10887,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10893,1
    - Dst: binary_reader::get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10894,1
    - Dst: assign_and_return_true
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10895,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10901,1
    - Dst: binary_reader::get_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10902,1
    - Dst: assign_and_return_true
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10903,1
    CyclomaticComplexity: 23
    EdgeCount: 23
    ICount: 41
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - binary_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10909
      start: 10804
    functionDepth: 1
    functionLinenumber: 10804
    functionLinenumberEnd: 10909
    functionName: binary_reader::get_msgpack_binary
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - static_cast<std::uint8_t>
    - binary_reader::get_binary
    - set_subtype
    - binary_reader::get_number
    - assign_and_return_true
    linkageType: ''
    returnType: bool
    signature: bool get_msgpack_binary(binary_t& result)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10917,1
    - Dst: start_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10917,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10924,1
    - Dst: binary_reader::parse_msgpack_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10924,1
    - Dst: end_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10930,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10931
      start: 10915
    functionDepth: 5
    functionLinenumber: 10915
    functionLinenumberEnd: 10931
    functionName: binary_reader::get_msgpack_array
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - end_array
    - binary_reader::parse_msgpack_internal
    - JSON_HEDLEY_UNLIKELY
    - start_array
    linkageType: ''
    returnType: bool
    signature: bool get_msgpack_array(const std::size_t len)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10939,1
    - Dst: start_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10939,1
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10947,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10948,1
    - Dst: binary_reader::get_msgpack_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10948,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10948,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10953,1
    - Dst: binary_reader::parse_msgpack_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10953,1
    - Dst: string_t::clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10957,1
    - Dst: end_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10960,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 15
    argCount: 1
    argNames:
    - len
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10961
      start: 10937
    functionDepth: 5
    functionLinenumber: 10937
    functionLinenumberEnd: 10961
    functionName: binary_reader::get_msgpack_object
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - binary_reader::parse_msgpack_internal
    - JSON_HEDLEY_UNLIKELY
    - binary_reader::get_msgpack_string
    - end_object
    - key
    - string_t::clear
    - start_object
    - binary_reader::get
    linkageType: ''
    returnType: bool
    signature: bool get_msgpack_object(const std::size_t len)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader::get_ubjson_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10976,1
    - Dst: binary_reader::get_ignore_noop
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10976,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 10977
      start: 10974
    functionDepth: 1
    functionLinenumber: 10974
    functionLinenumberEnd: 10977
    functionName: binary_reader::parse_ubjson_internal
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - binary_reader::get_ubjson_value
    - binary_reader::get_ignore_noop
    linkageType: ''
    returnType: bool
    signature: bool parse_ubjson_internal(const bool get_char = true)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:10997,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11000,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11000,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11010,1
    - Dst: binary_reader::get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11010,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11016,1
    - Dst: binary_reader::get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11016,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11022,1
    - Dst: binary_reader::get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11022,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11028,1
    - Dst: binary_reader::get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11028,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11034,1
    - Dst: binary_reader::get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11034,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11044,1
    - Dst: binary_reader::get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11044,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11054,1
    - Dst: binary_reader::get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11054,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11064,1
    - Dst: binary_reader::get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11064,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11070,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11081,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11081,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11081,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 50
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11082
      start: 10993
    functionDepth: 4
    functionLinenumber: 10993
    functionLinenumberEnd: 11082
    functionName: binary_reader::get_ubjson_string
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - binary_reader::get_string
    - JSON_HEDLEY_UNLIKELY
    - binary_reader::exception_message
    - binary_reader::get_token_string
    - parse_error
    - parse_error::create
    - unexpect_eof
    - binary_reader::get_number
    - binary_reader::get
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_string(string_t& result, const bool get_char = true)
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11094,1
    - Dst: binary_reader::get_ubjson_size_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11094,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11107,1
    - Dst: binary_reader::get_ubjson_size_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11107,1
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11111,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11119,1
    - Dst: binary_reader::get_ubjson_size_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11119,1
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11123,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11131,1
    - Dst: binary_reader::get_ubjson_size_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11131,1
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11135,1
    - Dst: binary_reader::get_ignore_noop
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11136,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 32
    argCount: 1
    argNames:
    - ' dim'
    argTypes:
    - std::vector<size_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11140
      start: 11088
    functionDepth: 1
    functionLinenumber: 11088
    functionLinenumberEnd: 11140
    functionName: binary_reader::get_ubjson_ndarray_size
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - binary_reader::get_ubjson_size_type
    - JSON_HEDLEY_UNLIKELY
    - push_back
    - binary_reader::get_ignore_noop
    - binary_reader::get_ubjson_size_value
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_ndarray_size(std::vector<size_t>& dim)
  - BBCount: 39
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader::get_ignore_noop
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11157,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11165,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11165,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11169,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11176,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11176,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11182,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11182,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11182,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11183,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11185,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11192,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11192,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11198,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11198,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11198,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11199,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11201,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11208,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11208,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11214,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11214,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11214,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11215,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11217,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11224,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11224,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11230,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11230,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11230,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11231,1
    - Dst: value_in_range_of
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11233,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11235,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11235,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11235,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11236,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11238,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11249,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11249,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11253,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11264,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11264,1
    - Dst: conditional_static_cast
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11268,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11279,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11279,1
    - Dst: value_in_range_of
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11283,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11285,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11285,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11285,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11286,1
    - Dst: detail::conditional_static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11288,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11300,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11300,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11300,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11300,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11303,1
    - Dst: binary_reader::get_ubjson_ndarray_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11303,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11307,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11307,1
    - Dst: std::vector::at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11307,1
    - Dst: std::vector::at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11309,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11309,1
    - Dst: std::vector::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11312,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11324,1
    - Dst: start_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11324,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11324,1
    - Dst: start_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11324,1
    - Dst: std::vector::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11324,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11334,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11334,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11334,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11334,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11336,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11336,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11336,1
    - Dst: end_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11342,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11351,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11362,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11362,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11362,1
    CyclomaticComplexity: 41
    EdgeCount: 41
    ICount: 135
    argCount: 2
    argNames:
    - ' result'
    - ' is_ndarray'
    argTypes:
    - std::size_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11363
      start: 11153
    functionDepth: 5
    functionLinenumber: 11153
    functionLinenumberEnd: 11363
    functionName: binary_reader::get_ubjson_size_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - start_array
    - static_cast<std::size_t>
    - end_array
    - out_of_range::create
    - JSON_HEDLEY_UNLIKELY
    - std::vector::empty
    - binary_reader::get_token_string
    - binary_reader::get_ignore_noop
    - key
    - std::vector::at
    - parse_error::create
    - binary_reader::get_number
    - detail::conditional_static_cast<std::size_t>
    - conditional_static_cast
    - std::vector::size
    - binary_reader::exception_message
    - binary_reader::get_ubjson_ndarray_size
    - value_in_range_of
    - parse_error
    - number_unsigned
    - static_cast<number_unsigned_t>
    - start_object
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_size_value(std::size_t& result, bool& is_ndarray, char_int_type
      prefix = 0)
  - BBCount: 10
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader::get_ignore_noop
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11382,1
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11386,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11388,1
    - Dst: std::binary_search
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11388,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11388,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11388,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11390,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11391,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11391,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11392,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11392,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11395,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11395,1
    - Dst: binary_reader::get_ignore_noop
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11400,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11401,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11403,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11403,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11407,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11408,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11408,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11409,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11409,1
    - Dst: binary_reader::get_ubjson_size_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11412,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11417,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11417,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11417,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11418,1
    - Dst: binary_reader::get_ubjson_size_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11427,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11430,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11430,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11430,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11431,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 34
    argCount: 1
    argNames:
    - ' result'
    argTypes:
    - std::pair<std::size_t, char_int_type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11437
      start: 11376
    functionDepth: 6
    functionLinenumber: 11376
    functionLinenumberEnd: 11437
    functionName: binary_reader::get_ubjson_size_type
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - std::binary_search
    - binary_reader::exception_message
    - binary_reader::get_token_string
    - binary_reader::get_ubjson_size_value
    - end
    - parse_error
    - binary_reader::get_ignore_noop
    - concat
    - parse_error::create
    - begin
    - unexpect_eof
    - binary_reader::get
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_size_type(std::pair<std::size_t, char_int_type>& result,
      bool inside_ndarray = false)
  - BBCount: 33
    BranchProfiles: []
    Callsites:
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11447,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11448,1
    - Dst: boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11451,1
    - Dst: boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11453,1
    - Dst: 'null'
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11456,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11461,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11461,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11467,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11467,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11473,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11473,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11479,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11479,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11485,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11485,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11495,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11495,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11505,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11505,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11515,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11515,1
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11524,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11525,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11525,1
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11529,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11530,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11530,1
    - Dst: static_cast<unsigned char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11535,1
    - Dst: static_cast<unsigned char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11536,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11546,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11551,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11552,1
    - Dst: std::ldexp
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11556,1
    - Dst: std::numeric_limits<double>::infinity
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11559,1
    - Dst: std::numeric_limits<double>::quiet_NaN
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11560,1
    - Dst: std::ldexp
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11562,1
    - Dst: number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11565,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11566,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11567,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11573,1
    - Dst: number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11573,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11573,1
    - Dst: binary_reader::get_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11579,1
    - Dst: number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11579,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11579,1
    - Dst: binary_reader::get_ubjson_high_precision_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11584,1
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11589,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11590,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11590,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11594,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11596,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11597,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11597,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11598,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11598,1
    - Dst: static_cast<typename string_t::value_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11600,1
    - Dst: string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11601,1
    - Dst: binary_reader::get_ubjson_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11607,1
    - Dst: string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11607,1
    - Dst: binary_reader::get_ubjson_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11611,1
    - Dst: binary_reader::get_ubjson_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11614,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11619,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11620,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11620,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11620,1
    CyclomaticComplexity: 27
    EdgeCount: 27
    ICount: 96
    argCount: 1
    argNames:
    - prefix
    argTypes:
    - char_int_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11621
      start: 11443
    functionDepth: 5
    functionLinenumber: 11443
    functionLinenumberEnd: 11621
    functionName: binary_reader::get_ubjson_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - pgp_source_t::eof
    - number_float
    - std::numeric_limits<double>::quiet_NaN
    - JSON_ASSERT
    - static_cast<unsigned int>
    - binary_reader::get_ubjson_string
    - boolean
    - JSON_HEDLEY_UNLIKELY
    - binary_reader::get_token_string
    - string
    - static_cast<typename string_t::value_type>
    - concat
    - parse_error::create
    - unexpect_eof
    - binary_reader::get_number
    - number_integer
    - binary_reader::get
    - static_cast<number_float_t>
    - std::numeric_limits<double>::infinity
    - binary_reader::get_ubjson_high_precision_number
    - binary_reader::exception_message
    - binary_reader::get_ubjson_array
    - 'null'
    - number_unsigned
    - parse_error
    - binary_reader::get_ubjson_object
    - static_cast<unsigned char>
    - std::ldexp
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_value(const char_int_type prefix)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11629,1
    - Dst: binary_reader::get_ubjson_size_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11629,1
    - Dst: static_cast<char_int_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11639,1
    - Dst: std::lower_bound
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11640,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11640,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11640,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11645,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11645,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11647,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11648,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11648,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11649,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11653,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11653,1
    - Dst: string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11653,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11664,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11664,1
    - Dst: start_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11664,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11671,1
    - Dst: binary_reader::get_ubjson_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11671,1
    - Dst: end_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11677,1
    - Dst: end_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11677,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11682,1
    - Dst: start_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11682,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11693,1
    - Dst: binary_reader::get_ubjson_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11693,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11704,1
    - Dst: binary_reader::parse_ubjson_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11704,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11713,1
    - Dst: start_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11713,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11713,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11720,1
    - Dst: binary_reader::parse_ubjson_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11720,1
    - Dst: binary_reader::get_ignore_noop
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11724,1
    - Dst: end_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11728,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 59
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11729
      start: 11626
    functionDepth: 7
    functionLinenumber: 11626
    functionLinenumberEnd: 11729
    functionName: binary_reader::get_ubjson_array
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - std::lower_bound
    - static_cast<char_int_type>
    - start_array
    - static_cast<std::size_t>
    - binary_reader::parse_ubjson_internal
    - end_array
    - begin
    - binary_reader::get_ubjson_size_type
    - JSON_HEDLEY_UNLIKELY
    - binary_reader::get_token_string
    - string
    - binary_reader::get_ignore_noop
    - key
    - binary_reader::get_ubjson_value
    - parse_error::create
    - end
    - end_object
    - binary_reader::exception_message
    - parse_error
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_array()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11737,1
    - Dst: binary_reader::get_ubjson_size_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11737,1
    - Dst: binary_reader::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11745,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11746,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11746,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11747,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11753,1
    - Dst: start_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11753,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11762,1
    - Dst: binary_reader::get_ubjson_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11762,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11762,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11766,1
    - Dst: binary_reader::get_ubjson_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11766,1
    - Dst: string_t::clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11770,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11777,1
    - Dst: binary_reader::get_ubjson_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11777,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11777,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11781,1
    - Dst: binary_reader::parse_ubjson_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11781,1
    - Dst: string_t::clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11785,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11791,1
    - Dst: start_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11791,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11791,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11798,1
    - Dst: binary_reader::get_ubjson_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11798,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11798,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11802,1
    - Dst: binary_reader::parse_ubjson_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11802,1
    - Dst: binary_reader::get_ignore_noop
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11806,1
    - Dst: string_t::clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11807,1
    - Dst: end_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11811,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 48
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11812
      start: 11734
    functionDepth: 7
    functionLinenumber: 11734
    functionLinenumberEnd: 11812
    functionName: binary_reader::get_ubjson_object
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - binary_reader::get_ubjson_size_type
    - JSON_HEDLEY_UNLIKELY
    - binary_reader::exception_message
    - binary_reader::get_token_string
    - parse_error
    - binary_reader::get_ubjson_string
    - key
    - string_t::clear
    - binary_reader::get_ubjson_value
    - static_cast<std::size_t>
    - binary_reader::get_ignore_noop
    - end_object
    - binary_reader::parse_ubjson_internal
    - parse_error::create
    - start_object
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_object()
  - BBCount: 22
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader::get_ubjson_size_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11822,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11823,1
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11832,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11833,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11833,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11837,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11837,1
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11841,1
    - Dst: detail::lexer<BasicJsonType, ia_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11842,1
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11842,1
    - Dst: auto::scan
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11843,1
    - Dst: auto::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11844,1
    - Dst: auto::scan
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11845,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11849,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11851,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11851,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11852,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11852,1
    - Dst: auto::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11852,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11858,1
    - Dst: auto::get_number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11858,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11860,1
    - Dst: auto::get_number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11860,1
    - Dst: number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11862,1
    - Dst: auto::get_number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11862,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11862,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11878,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11878,1
    - Dst: binary_reader::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11879,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11879,1
    - Dst: auto::get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11879,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11881
      start: 11817
    functionDepth: 6
    functionLinenumber: 11817
    functionLinenumberEnd: 11881
    functionName: binary_reader::get_ubjson_high_precision_number
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - auto::scan
    - number_float
    - binary_reader::get_ubjson_size_value
    - std::move
    - JSON_HEDLEY_UNLIKELY
    - auto::get_number_integer
    - concat
    - parse_error::create
    - unexpect_eof
    - number_integer
    - binary_reader::get
    - detail::lexer<BasicJsonType, ia_type>
    - auto::get_number_float
    - auto::get_token_string
    - file_input_adapter
    - std::vector::push_back
    - binary_reader::exception_message
    - parse_error
    - number_unsigned
    - static_cast<char>
    - auto::get_number_unsigned
    linkageType: ''
    returnType: bool
    signature: bool get_ubjson_high_precision_number()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11899,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11900
      start: 11896
    functionDepth: 1
    functionLinenumber: 11896
    functionLinenumberEnd: 11900
    functionName: binary_reader::get
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 15
    functionsReached:
    - get_character
    linkageType: ''
    returnType: char_int_type
    signature: char_int_type get()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11909,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11914
      start: 11905
    functionDepth: 2
    functionLinenumber: 11905
    functionLinenumberEnd: 11914
    functionName: binary_reader::get_ignore_noop
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 6
    functionsReached:
    - binary_reader::get
    linkageType: ''
    returnType: char_int_type
    signature: char_int_type get_ignore_noop()
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11938,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11939,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11939,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11947,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11951,1
    - Dst: std::memcpy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11956,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11956,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 2
    argNames:
    - format
    - ' result'
    argTypes:
    - input_format_t
    - NumberType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11958
      start: 11932
    functionDepth: 2
    functionLinenumber: 11932
    functionLinenumberEnd: 11958
    functionName: binary_reader::get_number
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 13
    functionsReached:
    - static_cast<std::uint8_t>
    - JSON_HEDLEY_UNLIKELY
    - std::array::data
    - std::memcpy
    - unexpect_eof
    - binary_reader::get
    linkageType: ''
    returnType: bool
    signature: bool get_number(const input_format_t format, NumberType& result)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11982,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11983,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11983,1
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11988,1
    - Dst: static_cast<typename string_t::value_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:11988,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - format
    - len
    - ' result'
    argTypes:
    - input_format_t
    - NumberType
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 11991
      start: 11975
    functionDepth: 2
    functionLinenumber: 11975
    functionLinenumberEnd: 11991
    functionName: binary_reader::get_string
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - push_back
    - static_cast<typename string_t::value_type>
    - unexpect_eof
    - binary_reader::get
    linkageType: ''
    returnType: bool
    signature: "bool get_string(const input_format_t format,\n                    const
      NumberType len,\n                    string_t& result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: binary_reader::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12015,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12016,1
    - Dst: unexpect_eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12016,1
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12021,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12021,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 3
    argNames:
    - format
    - len
    - ' result'
    argTypes:
    - input_format_t
    - NumberType
    - binary_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12024
      start: 12008
    functionDepth: 2
    functionLinenumber: 12008
    functionLinenumberEnd: 12024
    functionName: binary_reader::get_binary
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 3
    functionsReached:
    - static_cast<std::uint8_t>
    - JSON_HEDLEY_UNLIKELY
    - push_back
    - unexpect_eof
    - binary_reader::get
    linkageType: ''
    returnType: bool
    signature: "bool get_binary(const input_format_t format,\n                    const
      NumberType len,\n                    binary_t& result)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12034,1
    - Dst: pgp_source_t::eof
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12034,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12036,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12037,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12037,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - format
    - context
    argTypes:
    - input_format_t
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12040
      start: 12031
    functionDepth: 4
    functionLinenumber: 12031
    functionLinenumberEnd: 12040
    functionName: "(3)\n    bool unexpect_eof(const input_format_t format, const char*
      context) const"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - exception_message
    - JSON_HEDLEY_UNLIKELY
    - pgp_source_t::eof
    - parse_error
    - parse_error::create
    linkageType: ''
    returnType: JSON_HEDLEY_NON_NULL
    signature: "JSON_HEDLEY_NON_NULL (3)\n    bool unexpect_eof(const input_format_t
      format, const char* context) const"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12048,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12048,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12048,1
    - Dst: static_cast<unsigned char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12048,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12050
      start: 12045
    functionDepth: 1
    functionLinenumber: 12045
    functionLinenumberEnd: 12050
    functionName: binary_reader::get_token_string
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 13
    functionsReached:
    - static_cast<unsigned char>
    - std::array::data
    - static_cast<void>
    - std::array::size
    linkageType: ''
    returnType: std::string
    signature: std::string get_token_string() const
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12088,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12091,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 22
    argCount: 3
    argNames:
    - format
    - ' detail'
    - ' context'
    argTypes:
    - input_format_t
    - std::string
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12092
      start: 12058
    functionDepth: 2
    functionLinenumber: 12058
    functionLinenumberEnd: 12092
    functionName: binary_reader::exception_message
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 14
    functionsReached:
    - concat
    - JSON_ASSERT
    linkageType: ''
    returnType: std::string
    signature: "std::string exception_message(const input_format_t format,\n                                  const
      std::string& detail,\n                                  const std::string& context)
      const"
  - BBCount: 59
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12244,1
    - Dst: get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12248,1
    - Dst: sax_parse_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12266,1
    - Dst: get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12269,1
    - Dst: json_sax_dom_callback_parser::parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12271,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12271,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12272,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12273,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12273,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12274,1
    - Dst: json_sax_dom_callback_parser::is_errored
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12278,1
    - Dst: is_discarded
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12286,1
    - Dst: sax_parse_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12294,1
    - Dst: get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12297,1
    - Dst: json_sax_dom_parser::parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12299,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12299,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12300,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12301,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12301,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12301,1
    - Dst: json_sax_dom_parser::is_errored
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12305,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12312,1
    - Dst: sax_parse
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12324,1
    - Dst: sax_parse_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12332,1
    - Dst: get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12335,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12337,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12337,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12338,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12339,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12339,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12339,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12365,1
    - Dst: start_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12365,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12365,1
    - Dst: get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12371,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12373,1
    - Dst: end_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12373,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12381,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12383,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12383,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12384,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12385,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12385,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12385,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12387,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12387,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12387,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12393,1
    - Dst: get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12393,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12395,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12395,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12396,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12397,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12397,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12397,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12401,1
    - Dst: get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12404,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12410,1
    - Dst: start_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12410,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12410,1
    - Dst: get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12416,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12418,1
    - Dst: end_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12418,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12426,1
    - Dst: get_number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12434,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12436,1
    - Dst: std::isfinite
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12436,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12438,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12438,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12439,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12440,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12440,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12440,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12443,1
    - Dst: number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12443,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12443,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12453,1
    - Dst: boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12453,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12462,1
    - Dst: 'null'
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12462,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12471,1
    - Dst: boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12471,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12480,1
    - Dst: number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12480,1
    - Dst: get_number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12480,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12489,1
    - Dst: string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12489,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12489,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12498,1
    - Dst: number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12498,1
    - Dst: get_number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12498,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12508,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12508,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12509,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12510,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12510,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12510,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12514,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12514,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12516,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12516,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12517,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12518,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12518,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12522,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12522,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12523,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12524,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12524,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12524,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12534,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12534,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12535,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12536,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12536,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12536,1
    - Dst: std::vector::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12546,1
    - Dst: std::vector::back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12552,1
    - Dst: get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12555,1
    - Dst: get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12558,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12563,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12565,1
    - Dst: end_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12565,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12574,1
    - Dst: std::vector::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12574,1
    - Dst: std::vector::pop_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12575,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12580,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12580,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12581,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12582,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12582,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12582,1
    - Dst: get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12588,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12591,1
    - Dst: get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12591,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12593,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12593,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12594,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12595,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12595,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12595,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12598,1
    - Dst: key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12598,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12598,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12604,1
    - Dst: get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12604,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12606,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12606,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12607,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12608,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12608,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12608,1
    - Dst: get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12612,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12617,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12619,1
    - Dst: end_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12619,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12628,1
    - Dst: std::vector::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12628,1
    - Dst: std::vector::pop_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12629,1
    - Dst: parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12634,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12634,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12635,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12636,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12636,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12636,1
    - Dst: scan
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12643,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12650,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12652,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12659,1
    - Dst: get_error_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12659,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12660,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12664,1
    - Dst: lexer_base::token_type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12664,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12669,1
    - Dst: lexer_base::token_type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12669,1
    CyclomaticComplexity: 62
    EdgeCount: 62
    ICount: 201
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12686
      start: 12195
    functionDepth: 5
    functionLinenumber: 12195
    functionLinenumberEnd: 12686
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - get_number_integer
    - get_number_float
    - start_array
    - number_float
    - static_cast<std::size_t>
    - JSON_ASSERT
    - end_array
    - empty
    - get_token_string
    - is_discarded
    - std::move
    - out_of_range::create
    - boolean
    - exception_message
    - JSON_HEDLEY_UNLIKELY
    - std::vector::empty
    - get_position
    - get_number_unsigned
    - json_sax_dom_parser::parse_error
    - string
    - key
    - std::vector::back
    - concat
    - parse_error::create
    - number_integer
    - JSON_HEDLEY_LIKELY
    - get_error_message
    - json_sax_dom_callback_parser::parse_error
    - json_sax_dom_callback_parser::is_errored
    - json_sax_dom_parser::is_errored
    - sax_parse
    - get_string
    - std::vector::pop_back
    - end_object
    - std::isfinite
    - sax_parse_internal
    - std::vector::push_back
    - scan
    - lexer_base::token_type_name
    - get_token
    - parse_error
    - 'null'
    - number_unsigned
    - assert_invariant
    - start_object
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12244,1
    - Dst: parser::get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12248,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' adapter'
    argTypes:
    - InputAdapterType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12249
      start: 12239
    functionDepth: 1
    functionLinenumber: 12239
    functionLinenumberEnd: 12249
    functionName: parser::parser
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - parser::get_token
    - std::move
    linkageType: ''
    returnType: void
    signature: "void parser(InputAdapterType&& adapter,\n                    const
      parser_callback_t<BasicJsonType> cb = nullptr,\n                    const bool
      allow_exceptions_ = true,\n                    const bool skip_comments = false)"
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: parser::sax_parse_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12266,1
    - Dst: parser::get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12269,1
    - Dst: json_sax_dom_callback_parser::parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12271,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12271,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12272,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12273,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12273,1
    - Dst: parser::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12274,1
    - Dst: json_sax_dom_callback_parser::is_errored
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12278,1
    - Dst: is_discarded
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12286,1
    - Dst: parser::sax_parse_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12294,1
    - Dst: parser::get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12297,1
    - Dst: json_sax_dom_parser::parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12299,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12299,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12300,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12301,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12301,1
    - Dst: parser::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12301,1
    - Dst: json_sax_dom_parser::is_errored
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12305,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12312,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 24
    argCount: 2
    argNames:
    - strict
    - ' result'
    argTypes:
    - bool
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12313
      start: 12261
    functionDepth: 4
    functionLinenumber: 12261
    functionLinenumberEnd: 12313
    functionName: parser::parse
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - parser::exception_message
    - get_position
    - json_sax_dom_callback_parser::parse_error
    - json_sax_dom_callback_parser::is_errored
    - json_sax_dom_parser::parse_error
    - json_sax_dom_parser::is_errored
    - parser::get_token
    - parse_error::create
    - get_token_string
    - assert_invariant
    - parser::sax_parse_internal
    - is_discarded
    linkageType: ''
    returnType: void
    signature: void parse(const bool strict, BasicJsonType& result)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: sax_parse
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12324,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12325
      start: 12321
    functionDepth: 1
    functionLinenumber: 12321
    functionLinenumberEnd: 12325
    functionName: parser::accept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - sax_parse
    linkageType: ''
    returnType: bool
    signature: bool accept(const bool strict = true)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: sax_parse_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12332,1
    - Dst: get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12335,1
    - Dst: SAX*::parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12337,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12337,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12338,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12339,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12339,1
    - Dst: exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12339,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - sax
    argTypes:
    - SAX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12343
      start: 12328
    functionDepth: 4
    functionLinenumber: 12328
    functionLinenumberEnd: 12343
    functionName: "(2)\n    bool sax_parse(SAX* sax, const bool strict = true)"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - exception_message
    - get_position
    - get_token
    - parse_error::create
    - get_token_string
    - sax_parse_internal
    - SAX*::parse_error
    linkageType: ''
    returnType: JSON_HEDLEY_NON_NULL
    signature: "JSON_HEDLEY_NON_NULL (2)\n    bool sax_parse(SAX* sax, const bool
      strict = true)"
  - BBCount: 49
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12365,1
    - Dst: SAX*::start_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12365,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12365,1
    - Dst: parser::get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12371,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12373,1
    - Dst: SAX*::end_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12373,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12381,1
    - Dst: SAX*::parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12383,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12383,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12384,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12385,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12385,1
    - Dst: parser::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12385,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12387,1
    - Dst: SAX*::key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12387,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12387,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12393,1
    - Dst: parser::get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12393,1
    - Dst: SAX*::parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12395,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12395,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12396,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12397,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12397,1
    - Dst: parser::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12397,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12401,1
    - Dst: parser::get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12404,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12410,1
    - Dst: SAX*::start_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12410,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12410,1
    - Dst: parser::get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12416,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12418,1
    - Dst: SAX*::end_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12418,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12426,1
    - Dst: get_number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12434,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12436,1
    - Dst: std::isfinite
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12436,1
    - Dst: SAX*::parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12438,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12438,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12439,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12440,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12440,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12440,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12443,1
    - Dst: SAX*::number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12443,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12443,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12453,1
    - Dst: SAX*::boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12453,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12462,1
    - Dst: SAX*::null
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12462,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12471,1
    - Dst: SAX*::boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12471,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12480,1
    - Dst: SAX*::number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12480,1
    - Dst: get_number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12480,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12489,1
    - Dst: SAX*::string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12489,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12489,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12498,1
    - Dst: SAX*::number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12498,1
    - Dst: get_number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12498,1
    - Dst: SAX*::parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12508,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12508,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12509,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12510,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12510,1
    - Dst: parser::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12510,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12514,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12514,1
    - Dst: SAX*::parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12516,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12516,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12517,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12518,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12518,1
    - Dst: SAX*::parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12522,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12522,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12523,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12524,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12524,1
    - Dst: parser::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12524,1
    - Dst: SAX*::parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12534,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12534,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12535,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12536,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12536,1
    - Dst: parser::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12536,1
    - Dst: std::vector::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12546,1
    - Dst: std::vector::back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12552,1
    - Dst: parser::get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12555,1
    - Dst: parser::get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12558,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12563,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12565,1
    - Dst: SAX*::end_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12565,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12574,1
    - Dst: std::vector::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12574,1
    - Dst: std::vector::pop_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12575,1
    - Dst: SAX*::parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12580,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12580,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12581,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12582,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12582,1
    - Dst: parser::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12582,1
    - Dst: parser::get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12588,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12591,1
    - Dst: parser::get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12591,1
    - Dst: SAX*::parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12593,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12593,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12594,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12595,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12595,1
    - Dst: parser::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12595,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12598,1
    - Dst: SAX*::key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12598,1
    - Dst: get_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12598,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12604,1
    - Dst: parser::get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12604,1
    - Dst: SAX*::parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12606,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12606,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12607,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12608,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12608,1
    - Dst: parser::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12608,1
    - Dst: parser::get_token
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12612,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12617,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12619,1
    - Dst: SAX*::end_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12619,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12628,1
    - Dst: std::vector::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12628,1
    - Dst: std::vector::pop_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12629,1
    - Dst: SAX*::parse_error
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12634,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12634,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12635,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12636,1
    - Dst: get_position
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12636,1
    - Dst: parser::exception_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12636,1
    CyclomaticComplexity: 47
    EdgeCount: 47
    ICount: 150
    argCount: 1
    argNames:
    - sax
    argTypes:
    - SAX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12638
      start: 12348
    functionDepth: 5
    functionLinenumber: 12348
    functionLinenumberEnd: 12638
    functionName: parser::sax_parse_internal
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - get_number_integer
    - get_number_float
    - SAX*::end_object
    - SAX*::key
    - static_cast<std::size_t>
    - parser::get_token
    - JSON_ASSERT
    - get_token_string
    - SAX*::end_array
    - SAX*::number_integer
    - out_of_range::create
    - SAX*::parse_error
    - JSON_HEDLEY_UNLIKELY
    - std::vector::empty
    - get_position
    - get_number_unsigned
    - SAX*::start_object
    - SAX*::start_array
    - std::vector::back
    - SAX*::string
    - concat
    - SAX*::boolean
    - parse_error::create
    - SAX*::number_unsigned
    - JSON_HEDLEY_LIKELY
    - parser::exception_message
    - get_string
    - std::vector::pop_back
    - SAX*::number_float
    - std::isfinite
    - std::vector::push_back
    - SAX*::null
    linkageType: ''
    returnType: bool
    signature: bool sax_parse_internal(SAX* sax)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: scan
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12643,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12644
      start: 12641
    functionDepth: 4
    functionLinenumber: 12641
    functionLinenumberEnd: 12644
    functionName: parser::get_token
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 3
    functionsReached:
    - scan
    linkageType: ''
    returnType: token_type
    signature: token_type get_token()
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12650,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12652,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12659,1
    - Dst: get_error_message
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12659,1
    - Dst: get_token_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12660,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12664,1
    - Dst: lexer_base::token_type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12664,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12669,1
    - Dst: lexer_base::token_type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12669,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 14
    argCount: 2
    argNames:
    - expected
    - ' context'
    argTypes:
    - token_type
    - std::string
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12673
      start: 12646
    functionDepth: 2
    functionLinenumber: 12646
    functionLinenumberEnd: 12673
    functionName: parser::exception_message
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - get_error_message
    - lexer_base::token_type_name
    - concat
    - empty
    - get_token_string
    linkageType: ''
    returnType: std::string
    signature: std::string exception_message(const token_type expected, const std::string&
      context)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 38
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12834
      start: 12719
    functionDepth: 0
    functionLinenumber: 12719
    functionLinenumberEnd: 12834
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12747
      start: 12744
    functionDepth: 0
    functionLinenumber: 12744
    functionLinenumberEnd: 12747
    functionName: primitive_iterator_t::get_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: difference_type
    signature: difference_type get_value() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12753
      start: 12750
    functionDepth: 0
    functionLinenumber: 12750
    functionLinenumberEnd: 12753
    functionName: primitive_iterator_t::set_begin
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_begin() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12759
      start: 12756
    functionDepth: 0
    functionLinenumber: 12756
    functionLinenumberEnd: 12759
    functionName: primitive_iterator_t::set_end
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_end() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12765
      start: 12762
    functionDepth: 0
    functionLinenumber: 12762
    functionLinenumberEnd: 12765
    functionName: primitive_iterator_t::is_begin
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_begin() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12771
      start: 12768
    functionDepth: 0
    functionLinenumber: 12768
    functionLinenumberEnd: 12771
    functionName: primitive_iterator_t::is_end
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_end() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - primitive_iterator_t
    - primitive_iterator_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12776
      start: 12773
    functionDepth: 0
    functionLinenumber: 12773
    functionLinenumberEnd: 12776
    functionName: operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(primitive_iterator_t lhs, primitive_iterator_t rhs)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - primitive_iterator_t
    - primitive_iterator_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12781
      start: 12778
    functionDepth: 0
    functionLinenumber: 12778
    functionLinenumberEnd: 12781
    functionName: operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12788
      start: 12783
    functionDepth: 0
    functionLinenumber: 12783
    functionLinenumberEnd: 12788
    functionName: operator+(difference_type n) noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t operator+(difference_type n) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - primitive_iterator_t
    - primitive_iterator_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12793
      start: 12790
    functionDepth: 0
    functionLinenumber: 12790
    functionLinenumberEnd: 12793
    functionName: operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: difference_type
    signature: difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t
      rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12799
      start: 12795
    functionDepth: 0
    functionLinenumber: 12795
    functionLinenumberEnd: 12799
    functionName: '& operator++() noexcept'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t & operator++() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12806
      start: 12801
    functionDepth: 0
    functionLinenumber: 12801
    functionLinenumberEnd: 12806
    functionName: operator++(int)& noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t operator++(int)& noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12812
      start: 12808
    functionDepth: 0
    functionLinenumber: 12808
    functionLinenumberEnd: 12812
    functionName: '& operator--() noexcept'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t & operator--() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12819
      start: 12814
    functionDepth: 0
    functionLinenumber: 12814
    functionLinenumberEnd: 12819
    functionName: operator--(int)& noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t operator--(int)& noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12825
      start: 12821
    functionDepth: 0
    functionLinenumber: 12821
    functionLinenumberEnd: 12825
    functionName: '& operator+=(difference_type n) noexcept'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t & operator+=(difference_type n) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12831
      start: 12827
    functionDepth: 0
    functionLinenumber: 12827
    functionLinenumberEnd: 12831
    functionName: '& operator-=(difference_type n) noexcept'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: primitive_iterator_t
    signature: primitive_iterator_t & operator-=(difference_type n) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12858
      start: 12835
    functionDepth: 0
    functionLinenumber: 12835
    functionLinenumberEnd: 12858
    functionName: NLOHMANN_JSON_NAMESPACE_BEGIN
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_END
    signature: NLOHMANN_JSON_NAMESPACE_END NLOHMANN_JSON_NAMESPACE_BEGIN
  - BBCount: 47
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12970,1
    - Dst: json_reverse_iterator::json_reverse_iterator
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12976,1
    - Dst: json_reverse_iterator::json_reverse_iterator
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12982,1
    - Dst: primitive_iterator_t
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12996,1
    - Dst: set_begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13065,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13067,1
    - Dst: m_data::m_value::object::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13073,1
    - Dst: m_data::m_value::array::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13079,1
    - Dst: primitive_iterator::set_end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13086,1
    - Dst: primitive_iterator::set_begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13099,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13111,1
    - Dst: m_data::m_value::object::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13117,1
    - Dst: m_data::m_value::array::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13123,1
    - Dst: primitive_iterator::set_end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13137,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13150,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13156,1
    - Dst: m_data::m_value::object::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13156,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13162,1
    - Dst: m_data::m_value::array::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13162,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13167,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13167,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13178,1
    - Dst: primitive_iterator::is_begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13178,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13183,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13183,1
    CyclomaticComplexity: 18
    EdgeCount: 18
    ICount: 112
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13186
      start: 12890
    functionDepth: 4
    functionLinenumber: 12890
    functionLinenumberEnd: 13186
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - primitive_iterator::set_begin
    - m_data::m_value::object::begin
    - JSON_THROW
    - m_data::m_value::object::end
    - primitive_iterator_t
    - primitive_iterator::set_end
    - json_reverse_iterator::json_reverse_iterator
    - JSON_ASSERT
    - m_data::m_value::array::end
    - invalid_iterator::create
    - primitive_iterator::is_begin
    - set_begin
    - JSON_HEDLEY_LIKELY
    - m_data::m_value::array::begin
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 35
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12970,1
    - Dst: json_reverse_iterator::json_reverse_iterator
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12976,1
    - Dst: json_reverse_iterator::json_reverse_iterator
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12982,1
    - Dst: primitive_iterator_t
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12996,1
    - Dst: set_begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13065,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13067,1
    - Dst: m_data::m_value::object::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13073,1
    - Dst: m_data::m_value::array::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13079,1
    - Dst: primitive_iterator::set_end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13086,1
    - Dst: primitive_iterator::set_begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13099,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13111,1
    - Dst: m_data::m_value::object::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13117,1
    - Dst: m_data::m_value::array::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13123,1
    - Dst: primitive_iterator::set_end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13137,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 84
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13141
      start: 12915
    functionDepth: 1
    functionLinenumber: 12915
    functionLinenumberEnd: 13141
    functionName: set_end
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - primitive_iterator::set_begin
    - m_data::m_value::object::begin
    - m_data::m_value::object::end
    - primitive_iterator_t
    - primitive_iterator::set_end
    - json_reverse_iterator::json_reverse_iterator
    - JSON_ASSERT
    - m_data::m_value::array::end
    - set_begin
    - m_data::m_value::array::begin
    linkageType: ''
    returnType: "class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-special-member-functions)\n{\n
      \   /// the iterator with BasicJsonType of different const-ness\n    using other_iter_impl
      = iter_impl<typename std::conditional<std::is_const<BasicJsonType>::value, typename
      std::remove_const<BasicJsonType>::type, const BasicJsonType>::type>;\n    ///
      allow basic_json to access private members\n    friend other_iter_impl;\n    friend
      BasicJsonType;\n    friend iteration_proxy<iter_impl>;\n    friend iteration_proxy_value<iter_impl>;\n\n
      \   using object_t = typename BasicJsonType::object_t;\n    using array_t =
      typename BasicJsonType::array_t;\n    // make sure BasicJsonType is basic_json
      or const basic_json\n    static_assert(is_basic_json<typename std::remove_const<BasicJsonType>::type>::value,\n
      \                 \"iter_impl only accepts (const) basic_json\");\n    // superficial
      check for the LegacyBidirectionalIterator named requirement\n    static_assert(std::is_base_of<std::bidirectional_iterator_tag,
      std::bidirectional_iterator_tag>::value\n                  &&  std::is_base_of<std::bidirectional_iterator_tag,
      typename std::iterator_traits<typename array_t::iterator>::iterator_category>::value,\n
      \                 \"basic_json iterator assumes array and object type iterators
      satisfy the LegacyBidirectionalIterator named requirement.\");\n\n  public:\n
      \   /// The std::iterator class template (used as a base class to provide typedefs)
      is deprecated in C++17.\n    /// The C++ Standard has never required user-defined
      iterators to derive from std::iterator.\n    /// A user-defined iterator should
      provide publicly accessible typedefs named\n    /// iterator_category, value_type,
      difference_type, pointer, and reference.\n    /// Note that value_type is required
      to be non-const, even for constant iterators.\n    using iterator_category =
      std::bidirectional_iterator_tag;\n\n    /// the type of the values when the
      iterator is dereferenced\n    using value_type = typename BasicJsonType::value_type;\n
      \   /// a type to represent differences between iterators\n    using difference_type
      = typename BasicJsonType::difference_type;\n    /// defines a pointer to the
      type iterated over (value_type)\n    using pointer = typename std::conditional<std::is_const<BasicJsonType>::value,\n
      \         typename BasicJsonType::const_pointer,\n          typename BasicJsonType::pointer>::type;\n
      \   /// defines a reference to the type iterated over (value_type)\n    using
      reference =\n        typename std::conditional<std::is_const<BasicJsonType>::value,\n
      \       typename BasicJsonType::const_reference,\n        typename BasicJsonType::reference>::type;\n\n
      \   iter_impl() = default;\n    ~iter_impl() = default;\n    iter_impl(iter_impl&&)
      noexcept = default;\n    iter_impl& operator=(iter_impl&&) noexcept = default;\n\n
      \   /*!\n    @brief constructor for a given JSON instance\n    @param[in] object
      \ pointer to a JSON object for this iterator\n    @pre object != nullptr\n    @post
      The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    explicit
      iter_impl(pointer object) noexcept : m_object(object)\n    {\n        JSON_ASSERT(m_object
      != nullptr);\n\n        switch (m_object->m_data.m_type)\n        {\n            case
      value_t::object:\n            {\n                m_it.object_iterator = typename
      object_t::iterator();\n                break;\n            }\n\n            case
      value_t::array:\n            {\n                m_it.array_iterator = typename
      array_t::iterator();\n                break;\n            }\n\n            case
      value_t::null:\n            case value_t::string:\n            case value_t::boolean:\n
      \           case value_t::number_integer:\n            case value_t::number_unsigned:\n
      \           case value_t::number_float:\n            case value_t::binary:\n
      \           case value_t::discarded:\n            default:\n            {\n
      \               m_it.primitive_iterator = primitive_iterator_t();\n                break;\n
      \           }\n        }\n    }\n\n    /*!\n    @note The conventional copy
      constructor and copy assignment are implicitly\n          defined. Combined
      with the following converting constructor and\n          assignment, they support:
      (1) copy from iterator to iterator, (2)\n          copy from const iterator
      to const iterator, and (3) conversion from\n          iterator to const iterator.
      However conversion from const iterator\n          to iterator is not defined.\n
      \   */\n\n    /*!\n    @brief const copy constructor\n    @param[in] other const
      iterator to copy from\n    @note This copy constructor had to be defined explicitly
      to circumvent a bug\n          occurring on msvc v19.0 compiler (VS 2015) debug
      build. For more\n          information refer to: https://github.com/nlohmann/json/issues/1608\n
      \   */\n    iter_impl(const iter_impl<const BasicJsonType>& other) noexcept\n
      \       : m_object(other.m_object), m_it(other.m_it)\n    {}\n\n    /*!\n    @brief
      converting assignment\n    @param[in] other const iterator to copy from\n    @return
      const/non-const iterator\n    @note It is not checked whether @a other is initialized.\n
      \   */\n    iter_impl& operator=(const iter_impl<const BasicJsonType>& other)
      noexcept\n    {\n        if (&other != this)\n        {\n            m_object
      = other.m_object;\n            m_it = other.m_it;\n        }\n        return
      *this;\n    }\n\n    /*!\n    @brief converting constructor\n    @param[in]
      other  non-const iterator to copy from\n    @note It is not checked whether
      @a other is initialized.\n    */\n    iter_impl(const iter_impl<typename std::remove_const<BasicJsonType>::type>&
      other) noexcept\n        : m_object(other.m_object), m_it(other.m_it)\n    {}\n\n
      \   /*!\n    @brief converting assignment\n    @param[in] other  non-const iterator
      to copy from\n    @return const/non-const iterator\n    @note It is not checked
      whether @a other is initialized.\n    */\n    iter_impl& operator=(const iter_impl<typename
      std::remove_const<BasicJsonType>::type>& other) noexcept // NOLINT(cert-oop54-cpp)\n
      \   {\n        m_object = other.m_object;\n        m_it = other.m_it;\n        return
      *this;\n    }\n\n  JSON_PRIVATE_UNLESS_TESTED:\n    /*!\n    @brief set the
      iterator to the first value\n    @pre The iterator is initialized; i.e. `m_object
      != nullptr`.\n    */\n    void set_begin() noexcept\n    {\n        JSON_ASSERT(m_object
      != nullptr);\n\n        switch (m_object->m_data.m_type)\n        {\n            case
      value_t::object:\n            {\n                m_it.object_iterator = m_object->m_data.m_value.object->begin();\n
      \               break;\n            }\n\n            case value_t::array:\n
      \           {\n                m_it.array_iterator = m_object->m_data.m_value.array->begin();\n
      \               break;\n            }\n\n            case value_t::null:\n            {\n
      \               // set to end so begin()==end() is true: null is empty\n                m_it.primitive_iterator.set_end();\n
      \               break;\n            }\n\n            case value_t::string:\n
      \           case value_t::boolean:\n            case value_t::number_integer:\n
      \           case value_t::number_unsigned:\n            case value_t::number_float:\n
      \           case value_t::binary:\n            case value_t::discarded:\n            default:\n
      \           {\n                m_it.primitive_iterator.set_begin();\n                break;\n
      \           }\n        }\n    }"
    signature: "class iter_impl // NOLINT(cppcoreguidelines-special-member-functions,hicpp-special-member-functions)\n{\n
      \   /// the iterator with BasicJsonType of different const-ness\n    using other_iter_impl
      = iter_impl<typename std::conditional<std::is_const<BasicJsonType>::value, typename
      std::remove_const<BasicJsonType>::type, const BasicJsonType>::type>;\n    ///
      allow basic_json to access private members\n    friend other_iter_impl;\n    friend
      BasicJsonType;\n    friend iteration_proxy<iter_impl>;\n    friend iteration_proxy_value<iter_impl>;\n\n
      \   using object_t = typename BasicJsonType::object_t;\n    using array_t =
      typename BasicJsonType::array_t;\n    // make sure BasicJsonType is basic_json
      or const basic_json\n    static_assert(is_basic_json<typename std::remove_const<BasicJsonType>::type>::value,\n
      \                 \"iter_impl only accepts (const) basic_json\");\n    // superficial
      check for the LegacyBidirectionalIterator named requirement\n    static_assert(std::is_base_of<std::bidirectional_iterator_tag,
      std::bidirectional_iterator_tag>::value\n                  &&  std::is_base_of<std::bidirectional_iterator_tag,
      typename std::iterator_traits<typename array_t::iterator>::iterator_category>::value,\n
      \                 \"basic_json iterator assumes array and object type iterators
      satisfy the LegacyBidirectionalIterator named requirement.\");\n\n  public:\n
      \   /// The std::iterator class template (used as a base class to provide typedefs)
      is deprecated in C++17.\n    /// The C++ Standard has never required user-defined
      iterators to derive from std::iterator.\n    /// A user-defined iterator should
      provide publicly accessible typedefs named\n    /// iterator_category, value_type,
      difference_type, pointer, and reference.\n    /// Note that value_type is required
      to be non-const, even for constant iterators.\n    using iterator_category =
      std::bidirectional_iterator_tag;\n\n    /// the type of the values when the
      iterator is dereferenced\n    using value_type = typename BasicJsonType::value_type;\n
      \   /// a type to represent differences between iterators\n    using difference_type
      = typename BasicJsonType::difference_type;\n    /// defines a pointer to the
      type iterated over (value_type)\n    using pointer = typename std::conditional<std::is_const<BasicJsonType>::value,\n
      \         typename BasicJsonType::const_pointer,\n          typename BasicJsonType::pointer>::type;\n
      \   /// defines a reference to the type iterated over (value_type)\n    using
      reference =\n        typename std::conditional<std::is_const<BasicJsonType>::value,\n
      \       typename BasicJsonType::const_reference,\n        typename BasicJsonType::reference>::type;\n\n
      \   iter_impl() = default;\n    ~iter_impl() = default;\n    iter_impl(iter_impl&&)
      noexcept = default;\n    iter_impl& operator=(iter_impl&&) noexcept = default;\n\n
      \   /*!\n    @brief constructor for a given JSON instance\n    @param[in] object
      \ pointer to a JSON object for this iterator\n    @pre object != nullptr\n    @post
      The iterator is initialized; i.e. `m_object != nullptr`.\n    */\n    explicit
      iter_impl(pointer object) noexcept : m_object(object)\n    {\n        JSON_ASSERT(m_object
      != nullptr);\n\n        switch (m_object->m_data.m_type)\n        {\n            case
      value_t::object:\n            {\n                m_it.object_iterator = typename
      object_t::iterator();\n                break;\n            }\n\n            case
      value_t::array:\n            {\n                m_it.array_iterator = typename
      array_t::iterator();\n                break;\n            }\n\n            case
      value_t::null:\n            case value_t::string:\n            case value_t::boolean:\n
      \           case value_t::number_integer:\n            case value_t::number_unsigned:\n
      \           case value_t::number_float:\n            case value_t::binary:\n
      \           case value_t::discarded:\n            default:\n            {\n
      \               m_it.primitive_iterator = primitive_iterator_t();\n                break;\n
      \           }\n        }\n    }\n\n    /*!\n    @note The conventional copy
      constructor and copy assignment are implicitly\n          defined. Combined
      with the following converting constructor and\n          assignment, they support:
      (1) copy from iterator to iterator, (2)\n          copy from const iterator
      to const iterator, and (3) conversion from\n          iterator to const iterator.
      However conversion from const iterator\n          to iterator is not defined.\n
      \   */\n\n    /*!\n    @brief const copy constructor\n    @param[in] other const
      iterator to copy from\n    @note This copy constructor had to be defined explicitly
      to circumvent a bug\n          occurring on msvc v19.0 compiler (VS 2015) debug
      build. For more\n          information refer to: https://github.com/nlohmann/json/issues/1608\n
      \   */\n    iter_impl(const iter_impl<const BasicJsonType>& other) noexcept\n
      \       : m_object(other.m_object), m_it(other.m_it)\n    {}\n\n    /*!\n    @brief
      converting assignment\n    @param[in] other const iterator to copy from\n    @return
      const/non-const iterator\n    @note It is not checked whether @a other is initialized.\n
      \   */\n    iter_impl& operator=(const iter_impl<const BasicJsonType>& other)
      noexcept\n    {\n        if (&other != this)\n        {\n            m_object
      = other.m_object;\n            m_it = other.m_it;\n        }\n        return
      *this;\n    }\n\n    /*!\n    @brief converting constructor\n    @param[in]
      other  non-const iterator to copy from\n    @note It is not checked whether
      @a other is initialized.\n    */\n    iter_impl(const iter_impl<typename std::remove_const<BasicJsonType>::type>&
      other) noexcept\n        : m_object(other.m_object), m_it(other.m_it)\n    {}\n\n
      \   /*!\n    @brief converting assignment\n    @param[in] other  non-const iterator
      to copy from\n    @return const/non-const iterator\n    @note It is not checked
      whether @a other is initialized.\n    */\n    iter_impl& operator=(const iter_impl<typename
      std::remove_const<BasicJsonType>::type>& other) noexcept // NOLINT(cert-oop54-cpp)\n
      \   {\n        m_object = other.m_object;\n        m_it = other.m_it;\n        return
      *this;\n    }\n\n  JSON_PRIVATE_UNLESS_TESTED:\n    /*!\n    @brief set the
      iterator to the first value\n    @pre The iterator is initialized; i.e. `m_object
      != nullptr`.\n    */\n    void set_begin() noexcept\n    {\n        JSON_ASSERT(m_object
      != nullptr);\n\n        switch (m_object->m_data.m_type)\n        {\n            case
      value_t::object:\n            {\n                m_it.object_iterator = m_object->m_data.m_value.object->begin();\n
      \               break;\n            }\n\n            case value_t::array:\n
      \           {\n                m_it.array_iterator = m_object->m_data.m_value.array->begin();\n
      \               break;\n            }\n\n            case value_t::null:\n            {\n
      \               // set to end so begin()==end() is true: null is empty\n                m_it.primitive_iterator.set_end();\n
      \               break;\n            }\n\n            case value_t::string:\n
      \           case value_t::boolean:\n            case value_t::number_integer:\n
      \           case value_t::number_unsigned:\n            case value_t::number_float:\n
      \           case value_t::binary:\n            case value_t::discarded:\n            default:\n
      \           {\n                m_it.primitive_iterator.set_begin();\n                break;\n
      \           }\n        }\n    } set_end() noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12957
      start: 12957
    functionDepth: 0
    functionLinenumber: 12957
    functionLinenumberEnd: 12957
    functionName: iter_impl::iter_impl
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iter_impl()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12958
      start: 12958
    functionDepth: 0
    functionLinenumber: 12958
    functionLinenumberEnd: 12958
    functionName: ~iter_impl()
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~iter_impl()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12959
      start: 12959
    functionDepth: 0
    functionLinenumber: 12959
    functionLinenumberEnd: 12959
    functionName: iter_impl::iter_impl
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iter_impl(iter_impl&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 12960
      start: 12960
    functionDepth: 0
    functionLinenumber: 12960
    functionLinenumberEnd: 12960
    functionName: '& operator=(iter_impl&&) noexcept'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator=(iter_impl&&) noexcept
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12970,1
    - Dst: json_reverse_iterator::json_reverse_iterator
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12976,1
    - Dst: json_reverse_iterator::json_reverse_iterator
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12982,1
    - Dst: primitive_iterator_t
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:12996,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 1
    argNames:
    - object
    argTypes:
    - pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13000
      start: 12968
    functionDepth: 1
    functionLinenumber: 12968
    functionLinenumberEnd: 13000
    functionName: iter_impl::iter_impl
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - primitive_iterator_t
    - JSON_ASSERT
    - json_reverse_iterator::json_reverse_iterator
    linkageType: ''
    returnType: void
    signature: void iter_impl(pointer object) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl<const BasicJsonType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13020
      start: 13018
    functionDepth: 0
    functionLinenumber: 13018
    functionLinenumberEnd: 13020
    functionName: iter_impl::iter_impl
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iter_impl(const iter_impl<const BasicJsonType>& other) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl<const BasicJsonType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13036
      start: 13028
    functionDepth: 0
    functionLinenumber: 13028
    functionLinenumberEnd: 13036
    functionName: '& operator=(const iter_impl<const BasicJsonType>& other) noexcept'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator=(const iter_impl<const BasicJsonType>& other)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl<typename std::remove_const<BasicJsonType>::type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13045
      start: 13043
    functionDepth: 0
    functionLinenumber: 13043
    functionLinenumberEnd: 13045
    functionName: iter_impl::iter_impl
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void iter_impl(const iter_impl<typename std::remove_const<BasicJsonType>::type>&
      other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl<typename std::remove_const<BasicJsonType>::type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13058
      start: 13053
    functionDepth: 0
    functionLinenumber: 13053
    functionLinenumberEnd: 13058
    functionName: '& operator=(const iter_impl<typename std::remove_const<BasicJsonType>::type>&
      other) noexcept'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator=(const iter_impl<typename std::remove_const<BasicJsonType>::type>&
      other) noexcept
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::object::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13073,1
    - Dst: m_data::m_value::array::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13079,1
    - Dst: primitive_iterator::set_end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13086,1
    - Dst: primitive_iterator::set_begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13099,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 24
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13102
      start: 13069
    functionDepth: 2
    functionLinenumber: 13069
    functionLinenumberEnd: 13102
    functionName: (m_object->m_data.m_type)
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - primitive_iterator::set_begin
    - primitive_iterator::set_end
    - m_data::m_value::object::begin
    - m_data::m_value::array::begin
    linkageType: ''
    returnType: switch
    signature: switch (m_object->m_data.m_type)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13194,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13200,1
    - Dst: m_data::m_value::object::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13200,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13206,1
    - Dst: m_data::m_value::array::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13206,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13220,1
    - Dst: primitive_iterator::is_begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13220,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13225,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13225,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13228
      start: 13192
    functionDepth: 4
    functionLinenumber: 13192
    functionLinenumberEnd: 13228
    functionName: operator->() const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_THROW
    - m_data::m_value::object::end
    - JSON_ASSERT
    - m_data::m_value::array::end
    - invalid_iterator::create
    - primitive_iterator::is_begin
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: pointer
    signature: pointer operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13239
      start: 13234
    functionDepth: 0
    functionLinenumber: 13234
    functionLinenumberEnd: 13239
    functionName: operator++(int)&
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator++(int)&
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13247,1
    - Dst: std::advance
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13253,1
    - Dst: std::advance
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13259,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13279
      start: 13245
    functionDepth: 1
    functionLinenumber: 13245
    functionLinenumberEnd: 13279
    functionName: '& operator++()'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_ASSERT
    - std::advance
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13290
      start: 13285
    functionDepth: 0
    functionLinenumber: 13285
    functionLinenumberEnd: 13290
    functionName: operator--(int)&
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator--(int)&
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13298,1
    - Dst: std::advance
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13304,1
    - Dst: std::advance
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13310,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13330
      start: 13296
    functionDepth: 1
    functionLinenumber: 13296
    functionLinenumberEnd: 13330
    functionName: '& operator--()'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_ASSERT
    - std::advance
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator--()
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13340,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13342,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13342,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13345,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - IterImpl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13366
      start: 13337
    functionDepth: 4
    functionLinenumber: 13337
    functionLinenumberEnd: 13366
    functionName: operator==(const IterImpl& other) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_ASSERT
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - invalid_iterator::create
    linkageType: ''
    returnType: bool
    signature: bool operator==(const IterImpl& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - IterImpl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13376
      start: 13373
    functionDepth: 0
    functionLinenumber: 13373
    functionLinenumberEnd: 13376
    functionName: operator!=(const IterImpl& other) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const IterImpl& other) const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13385,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13387,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13387,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13390,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13395,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13395,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13411
      start: 13382
    functionDepth: 4
    functionLinenumber: 13382
    functionLinenumberEnd: 13411
    functionName: operator<(const iter_impl& other) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_ASSERT
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - invalid_iterator::create
    linkageType: ''
    returnType: bool
    signature: bool operator<(const iter_impl& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: other
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13420
      start: 13417
    functionDepth: 0
    functionLinenumber: 13417
    functionLinenumberEnd: 13420
    functionName: operator<=(const iter_impl& other) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - other
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const iter_impl& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13429
      start: 13426
    functionDepth: 0
    functionLinenumber: 13426
    functionLinenumberEnd: 13429
    functionName: operator>(const iter_impl& other) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>(const iter_impl& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13438
      start: 13435
    functionDepth: 0
    functionLinenumber: 13435
    functionLinenumberEnd: 13438
    functionName: operator>=(const iter_impl& other) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const iter_impl& other) const
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13446,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13451,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13451,1
    - Dst: std::advance
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13455,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 23
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13475
      start: 13444
    functionDepth: 4
    functionLinenumber: 13444
    functionLinenumberEnd: 13475
    functionName: '& operator+=(difference_type i)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_ASSERT
    - std::advance
    - JSON_THROW
    - invalid_iterator::create
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator+=(difference_type i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13484
      start: 13481
    functionDepth: 0
    functionLinenumber: 13481
    functionLinenumberEnd: 13484
    functionName: '& operator-=(difference_type i)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl & operator-=(difference_type i)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13495
      start: 13490
    functionDepth: 0
    functionLinenumber: 13490
    functionLinenumberEnd: 13495
    functionName: operator+(difference_type i) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator+(difference_type i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - i
    - ' it'
    argTypes:
    - difference_type
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13506
      start: 13501
    functionDepth: 0
    functionLinenumber: 13501
    functionLinenumberEnd: 13506
    functionName: operator+(difference_type i, const iter_impl& it)
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: friend
    signature: friend operator+(difference_type i, const iter_impl& it)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13517
      start: 13512
    functionDepth: 0
    functionLinenumber: 13512
    functionLinenumberEnd: 13517
    functionName: operator-(difference_type i) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: iter_impl
    signature: iter_impl operator-(difference_type i) const
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13525,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13530,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13530,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 18
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - iter_impl
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13546
      start: 13523
    functionDepth: 4
    functionLinenumber: 13523
    functionLinenumberEnd: 13546
    functionName: operator-(const iter_impl& other) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_ASSERT
    - JSON_THROW
    - invalid_iterator::create
    linkageType: ''
    returnType: difference_type
    signature: difference_type operator-(const iter_impl& other) const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13554,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13559,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13559,1
    - Dst: std::next
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13562,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13565,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13565,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13576,1
    - Dst: primitive_iterator::get_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13576,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13581,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13581,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 23
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13584
      start: 13552
    functionDepth: 4
    functionLinenumber: 13552
    functionLinenumberEnd: 13584
    functionName: operator[](difference_type n) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_THROW
    - primitive_iterator::get_value
    - std::next
    - JSON_ASSERT
    - invalid_iterator::create
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: reference
    signature: reference operator[](difference_type n) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13592,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13594,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13594,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13599,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13599,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13600
      start: 13590
    functionDepth: 4
    functionLinenumber: 13590
    functionLinenumberEnd: 13600
    functionName: key
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 613
    functionsReached:
    - JSON_THROW
    - is_object
    - JSON_ASSERT
    - invalid_iterator::create
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: typename object_t::key_type
    signature: typename object_t::key_type & key() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13609
      start: 13606
    functionDepth: 0
    functionLinenumber: 13606
    functionLinenumberEnd: 13609
    functionName: value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 101
    functionsReached: []
    linkageType: ''
    returnType: reference
    signature: reference value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13687,1
    - Dst: base_iterator::operator++
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13687,1
    - Dst: static_cast<json_reverse_iterator&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13693,1
    - Dst: base_iterator::operator++
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13693,1
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13699,1
    - Dst: base_iterator::operator--
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13699,1
    - Dst: static_cast<json_reverse_iterator&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13705,1
    - Dst: base_iterator::operator--
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13705,1
    - Dst: static_cast<json_reverse_iterator&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13711,1
    - Dst: base_iterator::operator+=
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13711,1
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13717,1
    - Dst: base_iterator::operator+
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13717,1
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13723,1
    - Dst: base_iterator::operator-
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13723,1
    - Dst: base_iterator
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13729,1
    - Dst: base_iterator
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13729,1
    - Dst: std::declval<Base>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13739,1
    - Dst: base
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13741,1
    - Dst: auto::key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13742,1
    - Dst: base
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13748,1
    - Dst: it
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13753
      start: 13641
    functionDepth: 2
    functionLinenumber: 13641
    functionLinenumberEnd: 13753
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<json_reverse_iterator>
    - base
    - std::declval<Base>
    - static_cast<json_reverse_iterator&>
    - base_iterator::operator+=
    - it
    - base_iterator
    - base_iterator::operator+
    - auto::key
    - base_iterator::operator--
    - base_iterator::operator-
    - base_iterator::operator++
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' it'
    argTypes:
    - typename base_iterator::iterator_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13679
      start: 13678
    functionDepth: 0
    functionLinenumber: 13678
    functionLinenumberEnd: 13679
    functionName: json_reverse_iterator::json_reverse_iterator
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_reverse_iterator(const typename base_iterator::iterator_type&
      it) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' it'
    argTypes:
    - base_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13682
      start: 13682
    functionDepth: 0
    functionLinenumber: 13682
    functionLinenumberEnd: 13682
    functionName: json_reverse_iterator::json_reverse_iterator
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_reverse_iterator(const base_iterator& it) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13687,1
    - Dst: base_iterator::operator++
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13687,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13688
      start: 13685
    functionDepth: 0
    functionLinenumber: 13685
    functionLinenumberEnd: 13688
    functionName: operator++(int)&
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<json_reverse_iterator>
    - base_iterator::operator++
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator operator++(int)&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13693,1
    - Dst: base_iterator::operator++
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13693,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13694
      start: 13691
    functionDepth: 0
    functionLinenumber: 13691
    functionLinenumberEnd: 13694
    functionName: '& operator++()'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<json_reverse_iterator&>
    - base_iterator::operator++
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator & operator++()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13699,1
    - Dst: base_iterator::operator--
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13699,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13700
      start: 13697
    functionDepth: 0
    functionLinenumber: 13697
    functionLinenumberEnd: 13700
    functionName: operator--(int)&
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<json_reverse_iterator>
    - base_iterator::operator--
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator operator--(int)&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13705,1
    - Dst: base_iterator::operator--
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13706
      start: 13703
    functionDepth: 0
    functionLinenumber: 13703
    functionLinenumberEnd: 13706
    functionName: '& operator--()'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - base_iterator::operator--
    - static_cast<json_reverse_iterator&>
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator & operator--()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13711,1
    - Dst: base_iterator::operator+=
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13711,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13712
      start: 13709
    functionDepth: 0
    functionLinenumber: 13709
    functionLinenumberEnd: 13712
    functionName: '& operator+=(difference_type i)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<json_reverse_iterator&>
    - base_iterator::operator+=
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator & operator+=(difference_type i)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13717,1
    - Dst: base_iterator::operator+
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13717,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13718
      start: 13715
    functionDepth: 0
    functionLinenumber: 13715
    functionLinenumberEnd: 13718
    functionName: operator+(difference_type i) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<json_reverse_iterator>
    - base_iterator::operator+
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator operator+(difference_type i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<json_reverse_iterator>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13723,1
    - Dst: base_iterator::operator-
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13723,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - i
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13724
      start: 13721
    functionDepth: 0
    functionLinenumber: 13721
    functionLinenumberEnd: 13724
    functionName: operator-(difference_type i) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<json_reverse_iterator>
    - base_iterator::operator-
    linkageType: ''
    returnType: json_reverse_iterator
    signature: json_reverse_iterator operator-(difference_type i) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: base_iterator
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13729,1
    - Dst: base_iterator
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13729,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - json_reverse_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13730
      start: 13727
    functionDepth: 0
    functionLinenumber: 13727
    functionLinenumberEnd: 13730
    functionName: operator-(const json_reverse_iterator& other) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - base_iterator
    linkageType: ''
    returnType: difference_type
    signature: difference_type operator-(const json_reverse_iterator& other) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - n
    argTypes:
    - difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13736
      start: 13733
    functionDepth: 0
    functionLinenumber: 13733
    functionLinenumberEnd: 13736
    functionName: operator[](difference_type n) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: reference
    signature: reference operator[](difference_type n) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::declval<Base>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13739,1
    - Dst: json_reverse_iterator::base
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13741,1
    - Dst: auto::key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13742,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13743
      start: 13739
    functionDepth: 2
    functionLinenumber: 13739
    functionLinenumberEnd: 13743
    functionName: json_reverse_iterator::key
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - auto::key
    - std::declval<Base>
    - json_reverse_iterator::base
    linkageType: ''
    returnType: auto
    signature: auto key() const -> decltype(std::declval<Base>().key())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_reverse_iterator::base
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13748,1
    - Dst: it
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13749,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13750
      start: 13746
    functionDepth: 0
    functionLinenumber: 13746
    functionLinenumberEnd: 13750
    functionName: json_reverse_iterator::value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - it
    - json_reverse_iterator::base
    linkageType: ''
    returnType: reference
    signature: reference value() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13797
      start: 13774
    functionDepth: 0
    functionLinenumber: 13774
    functionLinenumberEnd: 13797
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13853
      start: 13835
    functionDepth: 0
    functionLinenumber: 13835
    functionLinenumberEnd: 13853
    functionName: string_t_helper
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN string_t_helper
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13859
      start: 13855
    functionDepth: 0
    functionLinenumber: 13855
    functionLinenumberEnd: 13859
    functionName: string_t_helper
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: NLOHMANN_BASIC_JSON_TPL_DECLARATION
    signature: NLOHMANN_BASIC_JSON_TPL_DECLARATION string_t_helper<NLOHMANN_BASIC_JSON_TPL>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: split
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13868,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13869
      start: 13867
    functionDepth: 1
    functionLinenumber: 13867
    functionLinenumberEnd: 13869
    functionName: json_pointer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - split
    linkageType: ''
    returnType: void
    signature: void json_pointer(const string_t& s = "")
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13875,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13875,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13875,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13879,1
    - Dst: escape
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13879,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13881
      start: 13873
    functionDepth: 3
    functionLinenumber: 13873
    functionLinenumberEnd: 13881
    functionName: to_string
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 32
    functionsReached:
    - escape
    - std::accumulate
    - end
    - vpaths_concat
    - begin
    linkageType: ''
    returnType: string_t
    signature: string_t to_string() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13888,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13889
      start: 13886
    functionDepth: 4
    functionLinenumber: 13886
    functionLinenumberEnd: 13889
    functionName: operator string_t() const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: void
    signature: void operator string_t() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13896,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' o'
    - ' ptr'
    argTypes:
    - std::ostream
    - json_pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13898
      start: 13894
    functionDepth: 4
    functionLinenumber: 13894
    functionLinenumberEnd: 13898
    functionName: '& operator<<(std::ostream& o, const json_pointer& ptr)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: friend
    signature: friend & operator<<(std::ostream& o, const json_pointer& ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13905,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13905,1
    - Dst: reference_tokens::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13906,1
    - Dst: reference_tokens::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13907,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' ptr'
    argTypes:
    - json_pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13909
      start: 13903
    functionDepth: 1
    functionLinenumber: 13903
    functionLinenumberEnd: 13909
    functionName: '& operator/=(const json_pointer& ptr)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - end
    - insert
    - reference_tokens::begin
    - reference_tokens::end
    linkageType: ''
    returnType: json_pointer
    signature: json_pointer & operator/=(const json_pointer& ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13915,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13915,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - token
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13917
      start: 13913
    functionDepth: 1
    functionLinenumber: 13913
    functionLinenumberEnd: 13917
    functionName: '& operator/=(string_t token)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - push_back
    linkageType: ''
    returnType: json_pointer
    signature: json_pointer & operator/=(string_t token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13923,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - array_idx
    argTypes:
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13924
      start: 13921
    functionDepth: 4
    functionLinenumber: 13921
    functionLinenumberEnd: 13924
    functionName: '& operator/=(std::size_t array_idx)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - to_string
    linkageType: ''
    returnType: json_pointer
    signature: json_pointer & operator/=(std::size_t array_idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_pointer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13931,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - json_pointer
    - json_pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13932
      start: 13928
    functionDepth: 2
    functionLinenumber: 13928
    functionLinenumberEnd: 13932
    functionName: "json_pointer operator/(const json_pointer& lhs,\n                                  const
      json_pointer& rhs)"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - json_pointer
    linkageType: ''
    returnType: friend
    signature: "friend json_pointer operator/(const json_pointer& lhs,\n                                  const
      json_pointer& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_pointer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13938,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - token
    argTypes:
    - json_pointer
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13939
      start: 13936
    functionDepth: 2
    functionLinenumber: 13936
    functionLinenumberEnd: 13939
    functionName: json_pointer operator/(const json_pointer& lhs, string_t token)
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - json_pointer
    linkageType: ''
    returnType: friend
    signature: friend json_pointer operator/(const json_pointer& lhs, string_t token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_pointer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13945,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - array_idx
    argTypes:
    - json_pointer
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13946
      start: 13943
    functionDepth: 2
    functionLinenumber: 13943
    functionLinenumberEnd: 13946
    functionName: json_pointer operator/(const json_pointer& lhs, std::size_t array_idx)
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - json_pointer
    linkageType: ''
    returnType: friend
    signature: friend json_pointer operator/(const json_pointer& lhs, std::size_t
      array_idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13952,1
    - Dst: json_pointer::pop_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13958,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13960
      start: 13950
    functionDepth: 1
    functionLinenumber: 13950
    functionLinenumberEnd: 13960
    functionName: parent_pointer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - empty
    - json_pointer::pop_back
    linkageType: ''
    returnType: json_pointer
    signature: json_pointer parent_pointer() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13966,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13966,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13968,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13968,1
    - Dst: pop_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13971,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13972
      start: 13964
    functionDepth: 4
    functionLinenumber: 13964
    functionLinenumberEnd: 13972
    functionName: pop_back
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 18
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - pop_back
    - empty
    - out_of_range::create
    linkageType: ''
    returnType: void
    signature: void pop_back()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13978,1
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13978,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13980,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13980,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13983,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13984
      start: 13976
    functionDepth: 4
    functionLinenumber: 13976
    functionLinenumberEnd: 13984
    functionName: back
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 216
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - back
    - empty
    - out_of_range::create
    linkageType: ''
    returnType: string_t
    signature: string_t & back() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13990,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' token'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13991
      start: 13988
    functionDepth: 1
    functionLinenumber: 13988
    functionLinenumberEnd: 13991
    functionName: push_back
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 151
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void push_back(const string_t& token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13997,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:13997,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' token'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 13998
      start: 13995
    functionDepth: 1
    functionLinenumber: 13995
    functionLinenumberEnd: 13998
    functionName: push_back
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 152
    functionsReached:
    - std::move
    - push_back
    linkageType: ''
    returnType: void
    signature: void push_back(string_t&& token)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14004,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14005
      start: 14002
    functionDepth: 1
    functionLinenumber: 14002
    functionLinenumberEnd: 14005
    functionName: empty
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 193
    functionsReached:
    - empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const noexcept
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: auto*::type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14087,1
    - Dst: result
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14094,1
    - Dst: result
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14099,1
    - Dst: result
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14107,1
    - Dst: result
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14114,1
    - Dst: array_index<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14114,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14132,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14132,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 30
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14137
      start: 14079
    functionDepth: 4
    functionLinenumber: 14079
    functionLinenumberEnd: 14137
    functionName: get_and_create
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - array_index<BasicJsonType>
    - JSON_THROW
    - auto*::type
    - type_error::create
    - result
    linkageType: ''
    returnType: BasicJsonType
    signature: BasicJsonType & get_and_create(BasicJsonType& j) const
  - BBCount: 14
    BranchProfiles: []
    Callsites:
    - Dst: BasicJsonType*::is_null
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14164,1
    - Dst: std::all_of
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14168,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14168,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14168,1
    - Dst: std::isdigit
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14171,1
    - Dst: BasicJsonType*::type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14180,1
    - Dst: ptr
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14185,1
    - Dst: ptr
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14194,1
    - Dst: BasicJsonType*::m_data::m_value::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14194,1
    - Dst: ptr
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14199,1
    - Dst: array_index<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14199,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14213,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14213,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14213,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 32
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - BasicJsonType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14218
      start: 14159
    functionDepth: 4
    functionLinenumber: 14159
    functionLinenumberEnd: 14218
    functionName: get_unchecked
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - BasicJsonType*::is_null
    - BasicJsonType*::type
    - array_index<BasicJsonType>
    - JSON_THROW
    - end
    - std::isdigit
    - ptr
    - std::all_of
    - vpaths_concat
    - begin
    - BasicJsonType*::m_data::m_value::array::size
    - out_of_range::create
    linkageType: ''
    returnType: BasicJsonType
    signature: BasicJsonType & get_unchecked(BasicJsonType* ptr) const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: BasicJsonType*::type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14231,1
    - Dst: BasicJsonType*::at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14236,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14242,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14245,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14245,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14245,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14246,1
    - Dst: BasicJsonType*::m_data::m_value::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14246,1
    - Dst: BasicJsonType*::at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14251,1
    - Dst: array_index<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14251,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14264,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14264,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14264,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - BasicJsonType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14269
      start: 14227
    functionDepth: 4
    functionLinenumber: 14227
    functionLinenumberEnd: 14269
    functionName: get_checked
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - BasicJsonType*::type
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - BasicJsonType*::at
    - array_index<BasicJsonType>
    - to_string
    - BasicJsonType*::m_data::m_value::array::size
    - vpaths_concat
    - out_of_range::create
    linkageType: ''
    returnType: BasicJsonType
    signature: BasicJsonType & get_checked(BasicJsonType* ptr) const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: BasicJsonType*::type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14289,1
    - Dst: ptr
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14294,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14300,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14303,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14303,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14303,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14303,1
    - Dst: BasicJsonType*::m_data::m_value::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14303,1
    - Dst: ptr
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14307,1
    - Dst: array_index<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14307,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14320,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14320,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14320,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - BasicJsonType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14325
      start: 14285
    functionDepth: 4
    functionLinenumber: 14285
    functionLinenumberEnd: 14325
    functionName: get_unchecked
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - BasicJsonType*::type
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - array_index<BasicJsonType>
    - to_string
    - ptr
    - BasicJsonType*::m_data::m_value::array::size
    - vpaths_concat
    - out_of_range::create
    linkageType: ''
    returnType: BasicJsonType
    signature: BasicJsonType & get_unchecked(const BasicJsonType* ptr) const
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: BasicJsonType*::type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14338,1
    - Dst: BasicJsonType*::at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14343,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14349,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14352,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14352,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14352,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14353,1
    - Dst: BasicJsonType*::m_data::m_value::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14353,1
    - Dst: BasicJsonType*::at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14358,1
    - Dst: array_index<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14358,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14371,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14371,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14371,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 26
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - BasicJsonType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14376
      start: 14334
    functionDepth: 4
    functionLinenumber: 14334
    functionLinenumberEnd: 14376
    functionName: get_checked
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - BasicJsonType*::type
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - BasicJsonType*::at
    - array_index<BasicJsonType>
    - to_string
    - BasicJsonType*::m_data::m_value::array::size
    - vpaths_concat
    - out_of_range::create
    linkageType: ''
    returnType: BasicJsonType
    signature: BasicJsonType & get_checked(const BasicJsonType* ptr) const
  - BBCount: 19
    BranchProfiles: []
    Callsites:
    - Dst: BasicJsonType*::type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14387,1
    - Dst: BasicJsonType*::contains
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14391,1
    - Dst: ptr
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14397,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14403,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14408,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14408,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14413,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14413,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14415,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14420,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14422,1
    - Dst: array_index<BasicJsonType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14430,1
    - Dst: BasicJsonType*::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14431,1
    - Dst: ptr
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14437,1
    CyclomaticComplexity: 16
    EdgeCount: 16
    ICount: 46
    argCount: 1
    argNames:
    - ptr
    argTypes:
    - BasicJsonType*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14460
      start: 14383
    functionDepth: 1
    functionLinenumber: 14383
    functionLinenumberEnd: 14460
    functionName: contains
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 24
    functionsReached:
    - BasicJsonType*::type
    - JSON_HEDLEY_UNLIKELY
    - array_index<BasicJsonType>
    - ptr
    - BasicJsonType*::contains
    - BasicJsonType*::size
    - size
    linkageType: ''
    returnType: bool
    signature: bool contains(const BasicJsonType* ptr) const
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14476,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14482,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14484,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14484,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14484,1
    - Dst: find_first_of
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14492,1
    - Dst: find_first_of
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14501,1
    - Dst: substr
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14505,1
    - Dst: auto::find_first_of
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14508,1
    - Dst: auto::find_first_of
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14510,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14512,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14515,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14515,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14519,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14519,1
    - Dst: unescape
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14524,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14525,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 18
    argCount: 1
    argNames:
    - ' reference_string'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14529
      start: 14471
    functionDepth: 4
    functionLinenumber: 14471
    functionLinenumberEnd: 14529
    functionName: split
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - auto::size
    - substr
    - std::vector::push_back
    - find_first_of
    - JSON_ASSERT
    - unescape
    - empty
    - parse_error::create
    - vpaths_concat
    - auto::find_first_of
    linkageType: ''
    returnType: std::vector<string_t>
    signature: std::vector<string_t> split(const string_t& reference_string)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14645
      start: 14640
    functionDepth: 0
    functionLinenumber: 14640
    functionLinenumberEnd: 14645
    functionName: convert
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_pointer<string_t>
    signature: json_pointer<string_t> convert() const&
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14650,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14652
      start: 14647
    functionDepth: 1
    functionLinenumber: 14647
    functionLinenumberEnd: 14652
    functionName: convert
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: json_pointer<string_t>
    signature: json_pointer<string_t> convert()&&
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - json_pointer<RefStringTypeRhs>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14662
      start: 14659
    functionDepth: 0
    functionLinenumber: 14659
    functionLinenumberEnd: 14662
    functionName: operator==(const json_pointer<RefStringTypeRhs>& rhs) const noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool operator==(const json_pointer<RefStringTypeRhs>& rhs) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_pointer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14669,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14670
      start: 14667
    functionDepth: 2
    functionLinenumber: 14667
    functionLinenumberEnd: 14670
    functionName: operator==(const string_t& rhs) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - json_pointer
    linkageType: ''
    returnType: bool
    signature: bool operator==(const string_t& rhs) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' rhs'
    argTypes:
    - json_pointer<RefStringTypeRhs>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14677
      start: 14674
    functionDepth: 0
    functionLinenumber: 14674
    functionLinenumberEnd: 14677
    functionName: operator<=>(const json_pointer<RefStringTypeRhs>& rhs) const noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::strong_ordering
    signature: std::strong_ordering operator<=>(const json_pointer<RefStringTypeRhs>&
      rhs) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - json_pointer<RefStringTypeLhs>
    - json_pointer<RefStringTypeRhs>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14740
      start: 14736
    functionDepth: 0
    functionLinenumber: 14736
    functionLinenumberEnd: 14740
    functionName: "operator==(const json_pointer<RefStringTypeLhs>& lhs,\n                       const
      json_pointer<RefStringTypeRhs>& rhs) noexcept"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator==(const json_pointer<RefStringTypeLhs>& lhs,\n                       const
      json_pointer<RefStringTypeRhs>& rhs) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_pointer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14748,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - json_pointer<RefStringTypeLhs>
    - StringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14749
      start: 14745
    functionDepth: 2
    functionLinenumber: 14745
    functionLinenumberEnd: 14749
    functionName: "operator==(const json_pointer<RefStringTypeLhs>& lhs,\n                       const
      StringType& rhs)"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - json_pointer
    linkageType: ''
    returnType: bool
    signature: "bool operator==(const json_pointer<RefStringTypeLhs>& lhs,\n                       const
      StringType& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_pointer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14757,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - StringType
    - json_pointer<RefStringTypeRhs>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14758
      start: 14754
    functionDepth: 2
    functionLinenumber: 14754
    functionLinenumberEnd: 14758
    functionName: "operator==(const StringType& lhs,\n                       const
      json_pointer<RefStringTypeRhs>& rhs)"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - json_pointer
    linkageType: ''
    returnType: bool
    signature: "bool operator==(const StringType& lhs,\n                       const
      json_pointer<RefStringTypeRhs>& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - json_pointer<RefStringTypeLhs>
    - json_pointer<RefStringTypeRhs>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14765
      start: 14761
    functionDepth: 0
    functionLinenumber: 14761
    functionLinenumberEnd: 14765
    functionName: "operator!=(const json_pointer<RefStringTypeLhs>& lhs,\n                       const
      json_pointer<RefStringTypeRhs>& rhs) noexcept"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=(const json_pointer<RefStringTypeLhs>& lhs,\n                       const
      json_pointer<RefStringTypeRhs>& rhs) noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - json_pointer<RefStringTypeLhs>
    - StringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14774
      start: 14770
    functionDepth: 0
    functionLinenumber: 14770
    functionLinenumberEnd: 14774
    functionName: "operator!=(const json_pointer<RefStringTypeLhs>& lhs,\n                       const
      StringType& rhs)"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=(const json_pointer<RefStringTypeLhs>& lhs,\n                       const
      StringType& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - StringType
    - json_pointer<RefStringTypeRhs>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14783
      start: 14779
    functionDepth: 0
    functionLinenumber: 14779
    functionLinenumberEnd: 14783
    functionName: "operator!=(const StringType& lhs,\n                       const
      json_pointer<RefStringTypeRhs>& rhs)"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator!=(const StringType& lhs,\n                       const
      json_pointer<RefStringTypeRhs>& rhs)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' lhs'
    - ' rhs'
    argTypes:
    - json_pointer<RefStringTypeLhs>
    - json_pointer<RefStringTypeRhs>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14790
      start: 14786
    functionDepth: 0
    functionLinenumber: 14786
    functionLinenumberEnd: 14790
    functionName: "operator<(const json_pointer<RefStringTypeLhs>& lhs,\n                      const
      json_pointer<RefStringTypeRhs>& rhs) noexcept"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: "bool operator<(const json_pointer<RefStringTypeLhs>& lhs,\n                      const
      json_pointer<RefStringTypeRhs>& rhs) noexcept"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14825,1
    - Dst: std::forward<Args>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14840,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14854,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 14
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14874
      start: 14814
    functionDepth: 1
    functionLinenumber: 14814
    functionLinenumberEnd: 14874
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    - std::move
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14825,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14826
      start: 14824
    functionDepth: 1
    functionLinenumber: 14824
    functionLinenumberEnd: 14826
    functionName: json_ref::json_ref
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: void
    signature: void json_ref(value_type&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14830
      start: 14828
    functionDepth: 0
    functionLinenumber: 14828
    functionLinenumberEnd: 14830
    functionName: json_ref::json_ref
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_ref(const value_type& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - init
    argTypes:
    - std::initializer_list<json_ref>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14834
      start: 14832
    functionDepth: 0
    functionLinenumber: 14832
    functionLinenumberEnd: 14834
    functionName: json_ref::json_ref
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_ref(std::initializer_list<json_ref> init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<Args>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14840,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14841
      start: 14839
    functionDepth: 0
    functionLinenumber: 14839
    functionLinenumberEnd: 14841
    functionName: json_ref::json_ref
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::forward<Args>
    linkageType: ''
    returnType: void
    signature: void json_ref(Args && ... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14844
      start: 14844
    functionDepth: 0
    functionLinenumber: 14844
    functionLinenumberEnd: 14844
    functionName: json_ref::json_ref
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_ref(json_ref&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14845
      start: 14845
    functionDepth: 0
    functionLinenumber: 14845
    functionLinenumberEnd: 14845
    functionName: json_ref::json_ref
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_ref(const json_ref&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14846
      start: 14846
    functionDepth: 0
    functionLinenumber: 14846
    functionLinenumberEnd: 14846
    functionName: '& operator=(const json_ref&)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_ref
    signature: json_ref & operator=(const json_ref&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14847
      start: 14847
    functionDepth: 0
    functionLinenumber: 14847
    functionLinenumberEnd: 14847
    functionName: '& operator=(json_ref&&)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: json_ref
    signature: json_ref & operator=(json_ref&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14848
      start: 14848
    functionDepth: 0
    functionLinenumber: 14848
    functionLinenumberEnd: 14848
    functionName: ~json_ref()
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~json_ref()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14857
      start: 14850
    functionDepth: 1
    functionLinenumber: 14850
    functionLinenumberEnd: 14857
    functionName: json_ref::moved_or_copied
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::move
    linkageType: ''
    returnType: value_type
    signature: value_type moved_or_copied() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14862
      start: 14859
    functionDepth: 0
    functionLinenumber: 14859
    functionLinenumberEnd: 14862
    functionName: '& operator*() const'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: value_type
    signature: value_type & operator*() const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14867
      start: 14864
    functionDepth: 0
    functionLinenumber: 14864
    functionLinenumberEnd: 14867
    functionName: '* operator->() const'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: value_type
    signature: value_type * operator->() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14972,1
    - Dst: insert
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14978,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14978,1
    - Dst: put
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14997,1
    - Dst: write
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15003,1
    - Dst: static_cast<std::streamsize>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15003,1
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15022,1
    - Dst: append
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15028,1
    - Dst: std::make_shared<output_vector_adapter<CharType, AllocatorType>>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15041,1
    - Dst: std::make_shared<output_stream_adapter<CharType>>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15045,1
    - Dst: std::make_shared<output_string_adapter<CharType, StringType>>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15049,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15060
      start: 14939
    functionDepth: 2
    functionLinenumber: 14939
    functionLinenumberEnd: 15060
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<output_vector_adapter<CharType, AllocatorType>>
    - put
    - push_back
    - std::make_shared<output_string_adapter<CharType, StringType>>
    - end
    - insert
    - static_cast<std::streamsize>
    - write
    - std::make_shared<output_stream_adapter<CharType>>
    - append
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14948
      start: 14948
    functionDepth: 0
    functionLinenumber: 14948
    functionLinenumberEnd: 14948
    functionName: ~output_adapter_protocol()
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~output_adapter_protocol()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14950
      start: 14950
    functionDepth: 0
    functionLinenumber: 14950
    functionLinenumberEnd: 14950
    functionName: output_adapter_protocol
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void output_adapter_protocol()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14951
      start: 14951
    functionDepth: 0
    functionLinenumber: 14951
    functionLinenumberEnd: 14951
    functionName: output_adapter_protocol
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void output_adapter_protocol(const output_adapter_protocol&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14952
      start: 14952
    functionDepth: 0
    functionLinenumber: 14952
    functionLinenumberEnd: 14952
    functionName: output_adapter_protocol
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void output_adapter_protocol(output_adapter_protocol&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14953
      start: 14953
    functionDepth: 0
    functionLinenumber: 14953
    functionLinenumberEnd: 14953
    functionName: '& operator=(const output_adapter_protocol&)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: output_adapter_protocol
    signature: output_adapter_protocol & operator=(const output_adapter_protocol&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14954
      start: 14954
    functionDepth: 0
    functionLinenumber: 14954
    functionLinenumberEnd: 14954
    functionName: '& operator=(output_adapter_protocol&&) noexcept'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: output_adapter_protocol
    signature: output_adapter_protocol & operator=(output_adapter_protocol&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<CharType, AllocatorType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14968
      start: 14966
    functionDepth: 0
    functionLinenumber: 14966
    functionLinenumberEnd: 14968
    functionName: output_vector_adapter::output_vector_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void output_vector_adapter(std::vector<CharType, AllocatorType>& vec)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14972,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - CharType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14973
      start: 14970
    functionDepth: 2
    functionLinenumber: 14970
    functionLinenumberEnd: 14973
    functionName: output_vector_adapter::write_character
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void write_character(CharType c) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14978,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14978,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - length
    argTypes:
    - CharType*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14979
      start: 14975
    functionDepth: 1
    functionLinenumber: 14975
    functionLinenumberEnd: 14979
    functionName: "(2)\n    void write_characters(const CharType* s, std::size_t length)
      override"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - end
    - insert
    linkageType: ''
    returnType: JSON_HEDLEY_NON_NULL
    signature: "JSON_HEDLEY_NON_NULL (2)\n    void write_characters(const CharType*
      s, std::size_t length) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::basic_ostream<CharType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14993
      start: 14991
    functionDepth: 0
    functionLinenumber: 14991
    functionLinenumberEnd: 14993
    functionName: output_stream_adapter::output_stream_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void output_stream_adapter(std::basic_ostream<CharType>& s) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: put
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:14997,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - CharType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 14998
      start: 14995
    functionDepth: 0
    functionLinenumber: 14995
    functionLinenumberEnd: 14998
    functionName: output_stream_adapter::write_character
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - put
    linkageType: ''
    returnType: void
    signature: void write_character(CharType c) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15003,1
    - Dst: static_cast<std::streamsize>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - length
    argTypes:
    - CharType*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15004
      start: 15000
    functionDepth: 0
    functionLinenumber: 15000
    functionLinenumberEnd: 15004
    functionName: "(2)\n    void write_characters(const CharType* s, std::size_t length)
      override"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - write
    - static_cast<std::streamsize>
    linkageType: ''
    returnType: JSON_HEDLEY_NON_NULL
    signature: "JSON_HEDLEY_NON_NULL (2)\n    void write_characters(const CharType*
      s, std::size_t length) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - StringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15018
      start: 15016
    functionDepth: 0
    functionLinenumber: 15016
    functionLinenumberEnd: 15018
    functionName: output_string_adapter::output_string_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void output_string_adapter(StringType& s) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15022,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - c
    argTypes:
    - CharType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15023
      start: 15020
    functionDepth: 2
    functionLinenumber: 15020
    functionLinenumberEnd: 15023
    functionName: output_string_adapter::write_character
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: void
    signature: void write_character(CharType c) override
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: append
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15028,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - length
    argTypes:
    - CharType*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15029
      start: 15025
    functionDepth: 0
    functionLinenumber: 15025
    functionLinenumberEnd: 15029
    functionName: "(2)\n    void write_characters(const CharType* s, std::size_t length)
      override"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - append
    linkageType: ''
    returnType: JSON_HEDLEY_NON_NULL
    signature: "JSON_HEDLEY_NON_NULL (2)\n    void write_characters(const CharType*
      s, std::size_t length) override"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<output_vector_adapter<CharType, AllocatorType>>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15041,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' vec'
    argTypes:
    - std::vector<CharType, AllocatorType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15041
      start: 15040
    functionDepth: 0
    functionLinenumber: 15040
    functionLinenumberEnd: 15041
    functionName: output_adapter::output_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<output_vector_adapter<CharType, AllocatorType>>
    linkageType: ''
    returnType: void
    signature: void output_adapter(std::vector<CharType, AllocatorType>& vec)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<output_stream_adapter<CharType>>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15045,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - std::basic_ostream<CharType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15045
      start: 15044
    functionDepth: 0
    functionLinenumber: 15044
    functionLinenumberEnd: 15045
    functionName: output_adapter::output_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<output_stream_adapter<CharType>>
    linkageType: ''
    returnType: void
    signature: void output_adapter(std::basic_ostream<CharType>& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::make_shared<output_string_adapter<CharType, StringType>>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' s'
    argTypes:
    - StringType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15049
      start: 15048
    functionDepth: 0
    functionLinenumber: 15048
    functionLinenumberEnd: 15049
    functionName: output_adapter::output_adapter
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::make_shared<output_string_adapter<CharType, StringType>>
    linkageType: ''
    returnType: void
    signature: void output_adapter(StringType& s)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15054
      start: 15051
    functionDepth: 0
    functionLinenumber: 15051
    functionLinenumberEnd: 15054
    functionName: operator output_adapter_t<CharType>()
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator output_adapter_t<CharType>()
  - BBCount: 242
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15090,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15092,1
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15101,1
    - Dst: write_bson_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15105,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15120,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15120,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15120,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15120,1
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15130,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15134,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15134,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15140,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15141,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15142,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15155,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15155,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15159,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15159,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15160,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15160,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15164,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15164,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15165,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15165,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15169,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15169,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15170,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15170,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15174,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15174,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15175,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15175,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15185,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15185,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15189,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15189,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15190,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15190,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15194,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15194,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15195,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15195,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15199,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15199,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15200,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15200,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15204,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15204,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15205,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15205,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15215,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15215,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15219,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15219,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15220,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15220,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15224,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15224,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15225,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15225,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15229,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15229,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15230,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15230,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15234,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15234,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15235,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15235,1
    - Dst: std::isnan
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15242,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15245,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15245,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15246,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15246,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15247,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15247,1
    - Dst: std::isinf
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15249,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15252,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15252,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15253,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15253,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15253,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15254,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15254,1
    - Dst: write_compact_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15258,1
    - Dst: m_data::m_value::string::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15266,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15269,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15269,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15273,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15273,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15274,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15274,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15278,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15278,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15279,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15279,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15283,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15283,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15284,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15284,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15289,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15289,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15290,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15290,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15295,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15296,1
    - Dst: m_data::m_value::string::c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15296,1
    - Dst: m_data::m_value::string::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15297,1
    - Dst: m_data::m_value::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15304,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15307,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15307,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15311,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15311,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15312,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15312,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15316,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15316,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15317,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15317,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15321,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15321,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15322,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15322,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15327,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15327,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15328,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15328,1
    - Dst: write_cbor
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15335,1
    - Dst: m_data::m_value::binary::has_subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15342,1
    - Dst: m_data::m_value::binary::subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15344,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15346,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15346,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15347,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15347,1
    - Dst: m_data::m_value::binary::subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15347,1
    - Dst: m_data::m_value::binary::subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15349,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15351,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15351,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15352,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15352,1
    - Dst: m_data::m_value::binary::subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15352,1
    - Dst: m_data::m_value::binary::subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15354,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15356,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15356,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15357,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15357,1
    - Dst: m_data::m_value::binary::subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15357,1
    - Dst: m_data::m_value::binary::subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15359,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15361,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15361,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15362,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15362,1
    - Dst: m_data::m_value::binary::subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15362,1
    - Dst: m_data::m_value::binary::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15367,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15370,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15370,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15374,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15374,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15375,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15375,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15379,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15379,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15380,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15380,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15384,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15384,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15385,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15385,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15390,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15390,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15391,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15391,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15396,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15397,1
    - Dst: m_data::m_value::binary::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15397,1
    - Dst: m_data::m_value::object::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15406,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15409,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15409,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15413,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15413,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15414,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15414,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15418,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15418,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15419,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15419,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15423,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15423,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15424,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15424,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15429,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15429,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15430,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15430,1
    - Dst: write_cbor
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15437,1
    - Dst: write_cbor
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15438,1
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15454,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15458,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15458,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15464,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15465,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15466,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15480,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15480,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15485,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15485,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15486,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15486,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15491,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15491,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15492,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15492,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15497,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15497,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15498,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15498,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15503,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15503,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15504,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15504,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15512,1
    - Dst: static_cast<std::int8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15512,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15518,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15518,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15519,1
    - Dst: static_cast<std::int8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15519,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15525,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15525,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15526,1
    - Dst: static_cast<std::int16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15526,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15532,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15532,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15533,1
    - Dst: static_cast<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15533,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15539,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15539,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15540,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15540,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15551,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15551,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15556,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15556,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15557,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15557,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15562,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15562,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15563,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15563,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15568,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15568,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15569,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15569,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15574,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15574,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15575,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15575,1
    - Dst: write_compact_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15582,1
    - Dst: m_data::m_value::string::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15589,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15593,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15593,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15598,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15598,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15599,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15599,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15604,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15604,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15605,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15605,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15610,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15610,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15611,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15611,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15615,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15616,1
    - Dst: m_data::m_value::string::c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15616,1
    - Dst: m_data::m_value::string::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15617,1
    - Dst: m_data::m_value::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15624,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15628,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15628,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15633,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15633,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15634,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15634,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15639,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15639,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15640,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15640,1
    - Dst: write_msgpack
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15646,1
    - Dst: m_data::m_value::binary::has_subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15655,1
    - Dst: m_data::m_value::binary::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15658,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15695,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15695,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15698,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15698,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15707,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15707,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15708,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15708,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15716,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15716,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15717,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15717,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15723,1
    - Dst: static_cast<std::int8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15723,1
    - Dst: m_data::m_value::binary::subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15723,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15727,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15728,1
    - Dst: m_data::m_value::binary::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15728,1
    - Dst: m_data::m_value::object::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15737,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15741,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15741,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15746,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15746,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15747,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15747,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15752,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15752,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15753,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15753,1
    - Dst: write_msgpack
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15759,1
    - Dst: write_msgpack
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15760,1
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15782,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15788,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15788,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15797,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15798,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15799,1
    - Dst: write_number_with_ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15806,1
    - Dst: write_number_with_ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15812,1
    - Dst: write_number_with_ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15818,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15826,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15826,1
    - Dst: write_number_with_ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15828,1
    - Dst: m_data::m_value::string::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15828,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15829,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15830,1
    - Dst: m_data::m_value::string::c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15830,1
    - Dst: m_data::m_value::string::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15831,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15839,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15839,1
    - Dst: m_data::m_value::array::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15843,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15845,1
    - Dst: ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15846,1
    - Dst: front
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15846,1
    - Dst: std::all_of
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15847,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15847,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15847,1
    - Dst: ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15850,1
    - Dst: std::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15855,1
    - Dst: std::vector::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15855,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15855,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15855,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15858,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15858,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15859,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15865,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15865,1
    - Dst: write_number_with_ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15866,1
    - Dst: m_data::m_value::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15866,1
    - Dst: write_ubjson
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15871,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15876,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15876,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15886,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15886,1
    - Dst: m_data::m_value::binary::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15889,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15891,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15892,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15892,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15893,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15898,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15898,1
    - Dst: write_number_with_ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15899,1
    - Dst: m_data::m_value::binary::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15899,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15904,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15905,1
    - Dst: m_data::m_value::binary::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15905,1
    - Dst: m_data::m_value::binary::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15906,1
    - Dst: m_data::m_value::binary::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15910,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15912,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15912,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15913,1
    - Dst: m_data::m_value::binary::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15913,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15919,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15919,1
    - Dst: m_data::m_value::object::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15927,1
    - Dst: m_data::m_value::object::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15927,1
    - Dst: m_data::m_value::object::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15927,1
    - Dst: m_data::m_value::object::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15927,1
    - Dst: m_data::m_value::object::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15927,1
    - Dst: m_data::m_value::object::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15927,1
    - Dst: m_data::m_value::object::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15927,1
    - Dst: write_bjdata_ndarray
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15929,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15937,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15937,1
    - Dst: m_data::m_value::object::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15941,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15943,1
    - Dst: ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15944,1
    - Dst: front
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15944,1
    - Dst: std::all_of
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15945,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15945,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15945,1
    - Dst: ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15948,1
    - Dst: std::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15953,1
    - Dst: std::vector::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15953,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15953,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15953,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15956,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15956,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15957,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15963,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15963,1
    - Dst: write_number_with_ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15964,1
    - Dst: m_data::m_value::object::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15964,1
    - Dst: write_number_with_ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15969,1
    - Dst: first::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15969,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15970,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15971,1
    - Dst: first::c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15971,1
    - Dst: first::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15972,1
    - Dst: write_ubjson
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15973,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15978,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15978,1
    - Dst: find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16001,1
    - Dst: static_cast<typename string_t::value_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16001,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16002,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16004,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16004,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16004,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16004,1
    - Dst: static_cast<void>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16005,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16008,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16017,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16017,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16018,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16019,1
    - Dst: c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16019,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16020,1
    - Dst: write_bson_entry_header
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16029,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16030,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16030,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16030,1
    - Dst: write_bson_entry_header
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16039,1
    - Dst: write_number<double>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16040,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16048,1
    - Dst: write_bson_entry_header
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16057,1
    - Dst: write_number<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16059,1
    - Dst: static_cast<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16059,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16059,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16060,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16061,1
    - Dst: c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16061,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16062,1
    - Dst: write_bson_entry_header
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16070,1
    - Dst: write_bson_entry_header
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16091,1
    - Dst: write_number<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16092,1
    - Dst: static_cast<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16092,1
    - Dst: write_bson_entry_header
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16096,1
    - Dst: write_number<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16097,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16097,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16106,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16117,1
    - Dst: write_bson_entry_header
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16119,1
    - Dst: write_number<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16120,1
    - Dst: static_cast<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16120,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16122,1
    - Dst: write_bson_entry_header
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16124,1
    - Dst: write_number<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16125,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16125,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16129,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16129,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16129,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16129,1
    - Dst: write_bson_entry_header
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16139,1
    - Dst: write_bson_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16140,1
    - Dst: std::accumulate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16150,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16150,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16150,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16150,1
    - Dst: calc_bson_element_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16152,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16152,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16163,1
    - Dst: write_bson_entry_header
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16172,1
    - Dst: write_number<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16173,1
    - Dst: static_cast<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16173,1
    - Dst: calc_bson_array_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16173,1
    - Dst: write_bson_element
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16179,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16179,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16182,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16182,1
    - Dst: write_bson_entry_header
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16191,1
    - Dst: write_number<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16193,1
    - Dst: static_cast<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16193,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16193,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16194,1
    - Dst: has_subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16194,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16194,1
    - Dst: subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16194,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16194,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16196,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16196,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16196,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16196,1
    - Dst: calc_bson_entry_header_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16206,1
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16207,1
    - Dst: calc_bson_object_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16210,1
    - Dst: calc_bson_array_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16213,1
    - Dst: calc_bson_binary_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16216,1
    - Dst: calc_bson_integer_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16225,1
    - Dst: calc_bson_unsigned_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16228,1
    - Dst: calc_bson_string_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16231,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16239,1
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16254,1
    - Dst: write_bson_object_entry
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16257,1
    - Dst: write_bson_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16260,1
    - Dst: write_bson_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16263,1
    - Dst: write_bson_boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16266,1
    - Dst: write_bson_double
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16269,1
    - Dst: write_bson_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16272,1
    - Dst: write_bson_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16275,1
    - Dst: write_bson_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16278,1
    - Dst: write_bson_null
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16281,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16286,1
    - Dst: std::accumulate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16300,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16300,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16300,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16300,1
    - Dst: calc_bson_element_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16303,1
    - Dst: write_number<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16315,1
    - Dst: static_cast<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16315,1
    - Dst: calc_bson_object_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16315,1
    - Dst: write_bson_element
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16319,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16322,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16322,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16331,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16336,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16345,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16350,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16366,1
    - Dst: get_ubjson_float_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16366,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16368,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16378,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16382,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16382,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16384,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16384,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16390,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16390,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16392,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16392,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16394,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16398,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16398,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16400,1
    - Dst: static_cast<std::int16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16400,1
    - Dst: static_cast<uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16402,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16406,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16406,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16408,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16408,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16410,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16414,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16414,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16416,1
    - Dst: static_cast<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16416,1
    - Dst: static_cast<uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16418,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16422,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16422,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16424,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16424,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16426,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16430,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16430,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16432,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16432,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16438,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16438,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16440,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16440,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16446,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16446,1
    - Dst: BasicJsonType
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16449,1
    - Dst: write_number_with_ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16450,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16450,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16451,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16453,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16453,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16453,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16470,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16470,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16472,1
    - Dst: static_cast<std::int8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16472,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16474,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16474,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16478,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16478,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16480,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16480,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16486,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16486,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16488,1
    - Dst: static_cast<std::int16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16488,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16490,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16490,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16494,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16494,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16496,1
    - Dst: static_cast<uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16496,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16502,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16502,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16504,1
    - Dst: static_cast<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16504,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16506,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16506,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16510,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16510,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16512,1
    - Dst: static_cast<uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16512,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16518,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16518,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16520,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16520,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16527,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16527,1
    - Dst: BasicJsonType
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16530,1
    - Dst: write_number_with_ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16531,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16531,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16532,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16534,1
    - Dst: to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16534,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16534,1
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16545,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16589,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16593,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16597,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16601,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16605,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16609,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16613,1
    - Dst: get_ubjson_float_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16626,1
    - Dst: std::map::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16664,1
    - Dst: static_cast<string_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16664,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16664,1
    - Dst: std::map::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16665,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16672,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16673,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16675,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16679,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16684,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16685,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16686,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16687,1
    - Dst: write_ubjson
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16690,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16690,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16695,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16697,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16697,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16702,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16704,1
    - Dst: static_cast<std::int8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16704,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16709,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16711,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16711,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16716,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16718,1
    - Dst: static_cast<std::int16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16718,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16723,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16725,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16725,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16730,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16732,1
    - Dst: static_cast<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16732,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16737,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16739,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16739,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16744,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16746,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16746,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16751,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16753,1
    - Dst: static_cast<float>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16753,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16758,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16760,1
    - Dst: static_cast<double>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16760,1
    - Dst: std::memcpy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16788,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16788,1
    - Dst: std::reverse
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16794,1
    - Dst: std::array::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16794,1
    - Dst: std::array::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16794,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16797,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16797,1
    - Dst: static_cast<double>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16806,1
    - Dst: static_cast<double>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16806,1
    - Dst: std::numeric_limits<float>::lowest
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16806,1
    - Dst: static_cast<double>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16807,1
    - Dst: static_cast<double>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16807,1
    - Dst: static_cast<double>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16808,1
    - Dst: static_cast<float>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16808,1
    - Dst: static_cast<double>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16808,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16810,1
    - Dst: get_cbor_float_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16811,1
    - Dst: static_cast<float>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16811,1
    - Dst: get_msgpack_float_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16812,1
    - Dst: static_cast<float>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16812,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16813,1
    - Dst: static_cast<float>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16813,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16817,1
    - Dst: get_cbor_float_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16818,1
    - Dst: get_msgpack_float_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16819,1
    - Dst: write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16820,1
    - Dst: reinterpret_cast<char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16836,1
    - Dst: std::memcpy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16846,1
    - Dst: little_endianness
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16870,1
    CyclomaticComplexity: 275
    EdgeCount: 275
    ICount: 933
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16876
      start: 15061
    functionDepth: 4
    functionLinenumber: 15061
    functionLinenumberEnd: 16876
    functionName: NLOHMANN_JSON_NAMESPACE_BEGIN
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - write_character
    - static_cast<std::int16_t>
    - std::vector::begin
    - std::move
    - ubjson_prefix
    - static_cast<std::int8_t>
    - JSON_THROW
    - reinterpret_cast<const CharType*>
    - BasicJsonType
    - at
    - static_cast<typename string_t::value_type>
    - write_number<std::int64_t>
    - m_data::m_value::binary::has_subtype
    - m_data::m_value::string::size
    - first::c_str
    - get_msgpack_float_prefix
    - write_number<double>
    - write_bson_entry_header
    - write_bson_string
    - write_compact_float
    - write_bson_binary
    - static_cast<uint32_t>
    - find
    - write_bson_object
    - m_data::m_value::binary::subtype
    - std::array::data
    - data
    - write_bson_integer
    - static_cast<float>
    - static_cast<std::uint32_t>
    - get_ubjson_float_prefix
    - std::array::end
    - type_error::create
    - std::reverse
    - size
    - out_of_range::create
    - std::map::find
    - JSON_HEDLEY_UNLIKELY
    - write_characters
    - m_data::m_value::array::size
    - get_cbor_float_prefix
    - concat
    - type
    - calc_bson_element_size
    - static_cast<uint64_t>
    - m_data::m_value::binary::data
    - std::map::end
    - m_data::m_value::object::end
    - write_bson_element
    - to_string
    - m_data::m_value::object::size
    - static_cast<double>
    - first::size
    - calc_bson_entry_header_size
    - std::find
    - std::all_of
    - write_bson_array
    - write_bson_boolean
    - calc_bson_string_size
    - static_cast<uint16_t>
    - static_cast<void>
    - c_str
    - write_bson_object_entry
    - type_name
    - calc_bson_unsigned_size
    - JSON_ASSERT
    - m_data::m_value::object::find
    - static_cast<std::int32_t>
    - begin
    - static_cast<std::uint16_t>
    - static_cast<string_t>
    - std::isinf
    - m_data::m_value::binary::size
    - write_ubjson
    - calc_bson_binary_size
    - std::isnan
    - end
    - write_bson_null
    - m_data::m_value::object::empty
    - calc_bson_integer_size
    - std::vector::end
    - little_endianness
    - write_msgpack
    - write_number
    - std::array::begin
    - std::numeric_limits<float>::lowest
    - write_cbor
    - write_bson_double
    - m_data::m_value::string::c_str
    - static_cast<std::uint8_t>
    - std::accumulate
    - static_cast<std::size_t>
    - subtype
    - front
    - write_number_with_ubjson_prefix
    - write_bson_unsigned
    - to_char_type
    - static_cast<std::int64_t>
    - m_data::m_value::array::empty
    - calc_bson_object_size
    - reinterpret_cast<char*>
    - write_number<std::int32_t>
    - write_bjdata_ndarray
    - m_data::m_value::binary::empty
    - static_cast<std::uint64_t>
    - std::memcpy
    - auto::size
    - has_subtype
    - calc_bson_array_size
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_END
    signature: NLOHMANN_JSON_NAMESPACE_END NLOHMANN_JSON_NAMESPACE_BEGIN
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15090,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15092,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - adapter
    argTypes:
    - output_adapter_t<CharType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15093
      start: 15090
    functionDepth: 1
    functionLinenumber: 15090
    functionLinenumberEnd: 15093
    functionName: binary_writer::binary_writer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_ASSERT
    - std::move
    linkageType: ''
    returnType: void
    signature: void binary_writer(output_adapter_t<CharType> adapter)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15101,1
    - Dst: binary_writer::write_bson_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15105,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15120,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15120,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15120,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15123
      start: 15099
    functionDepth: 4
    functionLinenumber: 15099
    functionLinenumberEnd: 15123
    functionName: binary_writer::write_bson
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - type_name
    - JSON_THROW
    - binary_writer::write_bson_object
    - concat
    - type_error::create
    - type
    linkageType: ''
    returnType: void
    signature: void write_bson(const BasicJsonType& j)
  - BBCount: 52
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15130,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15134,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15134,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15140,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15141,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15142,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15155,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15155,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15159,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15159,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15160,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15160,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15164,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15164,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15165,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15165,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15169,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15169,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15170,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15170,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15174,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15174,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15175,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15175,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15185,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15185,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15189,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15189,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15190,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15190,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15194,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15194,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15195,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15195,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15199,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15199,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15200,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15200,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15204,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15204,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15205,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15205,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15215,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15215,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15219,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15219,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15220,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15220,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15224,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15224,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15225,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15225,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15229,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15229,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15230,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15230,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15234,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15234,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15235,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15235,1
    - Dst: std::isnan
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15242,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15245,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15245,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15246,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15246,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15247,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15247,1
    - Dst: std::isinf
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15249,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15252,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15252,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15253,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15253,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15253,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15254,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15254,1
    - Dst: binary_writer::write_compact_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15258,1
    - Dst: m_data::m_value::string::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15266,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15269,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15269,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15273,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15273,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15274,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15274,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15278,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15278,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15279,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15279,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15283,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15283,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15284,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15284,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15289,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15289,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15290,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15290,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15295,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15296,1
    - Dst: m_data::m_value::string::c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15296,1
    - Dst: m_data::m_value::string::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15297,1
    - Dst: m_data::m_value::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15304,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15307,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15307,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15311,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15311,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15312,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15312,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15316,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15316,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15317,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15317,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15321,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15321,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15322,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15322,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15327,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15327,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15328,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15328,1
    - Dst: binary_writer::write_cbor
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15335,1
    - Dst: m_data::m_value::binary::has_subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15342,1
    - Dst: m_data::m_value::binary::subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15344,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15346,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15346,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15347,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15347,1
    - Dst: m_data::m_value::binary::subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15347,1
    - Dst: m_data::m_value::binary::subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15349,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15351,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15351,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15352,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15352,1
    - Dst: m_data::m_value::binary::subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15352,1
    - Dst: m_data::m_value::binary::subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15354,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15356,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15356,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15357,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15357,1
    - Dst: m_data::m_value::binary::subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15357,1
    - Dst: m_data::m_value::binary::subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15359,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15361,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15361,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15362,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15362,1
    - Dst: m_data::m_value::binary::subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15362,1
    - Dst: m_data::m_value::binary::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15367,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15370,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15370,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15374,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15374,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15375,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15375,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15379,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15379,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15380,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15380,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15384,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15384,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15385,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15385,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15390,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15390,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15391,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15391,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15396,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15397,1
    - Dst: m_data::m_value::binary::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15397,1
    - Dst: m_data::m_value::object::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15406,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15409,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15409,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15413,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15413,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15414,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15414,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15418,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15418,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15419,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15419,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15423,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15423,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15424,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15424,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15429,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15429,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15430,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15430,1
    - Dst: binary_writer::write_cbor
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15437,1
    - Dst: binary_writer::write_cbor
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15438,1
    CyclomaticComplexity: 53
    EdgeCount: 53
    ICount: 205
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15447
      start: 15128
    functionDepth: 1
    functionLinenumber: 15128
    functionLinenumberEnd: 15447
    functionName: binary_writer::write_cbor
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - m_data::m_value::binary::subtype
    - static_cast<std::uint8_t>
    - write_character
    - static_cast<std::uint32_t>
    - static_cast<std::uint16_t>
    - reinterpret_cast<const CharType*>
    - write_characters
    - std::isinf
    - binary_writer::to_char_type
    - m_data::m_value::binary::size
    - m_data::m_value::array::size
    - binary_writer::write_compact_float
    - type
    - m_data::m_value::binary::has_subtype
    - m_data::m_value::string::size
    - m_data::m_value::binary::data
    - std::isnan
    - static_cast<std::uint64_t>
    - binary_writer::write_cbor
    - m_data::m_value::object::size
    - binary_writer::write_number
    - m_data::m_value::string::c_str
    linkageType: ''
    returnType: void
    signature: void write_cbor(const BasicJsonType& j)
  - BBCount: 50
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15454,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15458,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15458,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15464,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15465,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15466,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15480,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15480,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15485,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15485,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15486,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15486,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15491,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15491,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15492,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15492,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15497,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15497,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15498,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15498,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15503,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15503,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15504,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15504,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15512,1
    - Dst: static_cast<std::int8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15512,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15518,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15518,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15519,1
    - Dst: static_cast<std::int8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15519,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15525,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15525,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15526,1
    - Dst: static_cast<std::int16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15526,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15532,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15532,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15533,1
    - Dst: static_cast<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15533,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15539,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15539,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15540,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15540,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15551,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15551,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15556,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15556,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15557,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15557,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15562,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15562,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15563,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15563,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15568,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15568,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15569,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15569,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15574,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15574,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15575,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15575,1
    - Dst: binary_writer::write_compact_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15582,1
    - Dst: m_data::m_value::string::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15589,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15593,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15593,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15598,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15598,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15599,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15599,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15604,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15604,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15605,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15605,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15610,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15610,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15611,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15611,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15615,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15616,1
    - Dst: m_data::m_value::string::c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15616,1
    - Dst: m_data::m_value::string::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15617,1
    - Dst: m_data::m_value::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15624,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15628,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15628,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15633,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15633,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15634,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15634,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15639,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15639,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15640,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15640,1
    - Dst: binary_writer::write_msgpack
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15646,1
    - Dst: m_data::m_value::binary::has_subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15655,1
    - Dst: m_data::m_value::binary::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15658,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15695,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15695,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15698,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15698,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15707,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15707,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15708,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15708,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15716,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15716,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15717,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15717,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15723,1
    - Dst: static_cast<std::int8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15723,1
    - Dst: m_data::m_value::binary::subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15723,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15727,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15728,1
    - Dst: m_data::m_value::binary::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15728,1
    - Dst: m_data::m_value::object::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15737,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15741,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15741,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15746,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15746,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15747,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15747,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15752,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15752,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15753,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15753,1
    - Dst: binary_writer::write_msgpack
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15759,1
    - Dst: binary_writer::write_msgpack
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15760,1
    CyclomaticComplexity: 56
    EdgeCount: 56
    ICount: 183
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15769
      start: 15452
    functionDepth: 1
    functionLinenumber: 15452
    functionLinenumberEnd: 15769
    functionName: binary_writer::write_msgpack
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - m_data::m_value::binary::subtype
    - static_cast<std::uint8_t>
    - write_character
    - static_cast<std::uint32_t>
    - static_cast<std::int16_t>
    - static_cast<std::int32_t>
    - static_cast<std::uint16_t>
    - static_cast<std::int8_t>
    - reinterpret_cast<const CharType*>
    - write_characters
    - static_cast<std::int64_t>
    - binary_writer::to_char_type
    - m_data::m_value::binary::size
    - m_data::m_value::array::size
    - binary_writer::write_compact_float
    - type
    - m_data::m_value::binary::has_subtype
    - m_data::m_value::string::size
    - m_data::m_value::binary::data
    - static_cast<std::uint64_t>
    - m_data::m_value::object::size
    - binary_writer::write_number
    - binary_writer::write_msgpack
    - m_data::m_value::string::c_str
    linkageType: ''
    returnType: void
    signature: void write_msgpack(const BasicJsonType& j)
  - BBCount: 32
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15782,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15788,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15788,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15797,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15798,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15799,1
    - Dst: binary_writer::write_number_with_ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15806,1
    - Dst: binary_writer::write_number_with_ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15812,1
    - Dst: binary_writer::write_number_with_ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15818,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15826,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15826,1
    - Dst: binary_writer::write_number_with_ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15828,1
    - Dst: m_data::m_value::string::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15828,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15829,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15830,1
    - Dst: m_data::m_value::string::c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15830,1
    - Dst: m_data::m_value::string::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15831,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15839,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15839,1
    - Dst: m_data::m_value::array::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15843,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15845,1
    - Dst: binary_writer::ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15846,1
    - Dst: front
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15846,1
    - Dst: std::all_of
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15847,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15847,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15847,1
    - Dst: binary_writer::ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15850,1
    - Dst: std::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15855,1
    - Dst: std::vector::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15855,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15855,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15855,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15858,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15858,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15859,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15865,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15865,1
    - Dst: binary_writer::write_number_with_ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15866,1
    - Dst: m_data::m_value::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15866,1
    - Dst: binary_writer::write_ubjson
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15871,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15876,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15876,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15886,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15886,1
    - Dst: m_data::m_value::binary::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15889,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15891,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15892,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15892,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15893,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15898,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15898,1
    - Dst: binary_writer::write_number_with_ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15899,1
    - Dst: m_data::m_value::binary::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15899,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15904,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15905,1
    - Dst: m_data::m_value::binary::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15905,1
    - Dst: m_data::m_value::binary::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15906,1
    - Dst: m_data::m_value::binary::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15910,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15912,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15912,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15913,1
    - Dst: m_data::m_value::binary::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15913,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15919,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15919,1
    - Dst: m_data::m_value::object::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15927,1
    - Dst: m_data::m_value::object::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15927,1
    - Dst: m_data::m_value::object::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15927,1
    - Dst: m_data::m_value::object::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15927,1
    - Dst: m_data::m_value::object::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15927,1
    - Dst: m_data::m_value::object::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15927,1
    - Dst: m_data::m_value::object::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15927,1
    - Dst: binary_writer::write_bjdata_ndarray
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15929,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15937,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15937,1
    - Dst: m_data::m_value::object::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15941,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15943,1
    - Dst: binary_writer::ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15944,1
    - Dst: front
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15944,1
    - Dst: std::all_of
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15945,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15945,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15945,1
    - Dst: binary_writer::ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15948,1
    - Dst: std::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15953,1
    - Dst: std::vector::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15953,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15953,1
    - Dst: std::vector::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15953,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15956,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15956,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15957,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15963,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15963,1
    - Dst: binary_writer::write_number_with_ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15964,1
    - Dst: m_data::m_value::object::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15964,1
    - Dst: binary_writer::write_number_with_ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15969,1
    - Dst: first::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15969,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15970,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15971,1
    - Dst: first::c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15971,1
    - Dst: first::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15972,1
    - Dst: binary_writer::write_ubjson
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15973,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15978,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:15978,1
    CyclomaticComplexity: 46
    EdgeCount: 46
    ICount: 121
    argCount: 3
    argNames:
    - ' j'
    - use_count
    - use_type
    argTypes:
    - BasicJsonType
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 15988
      start: 15778
    functionDepth: 2
    functionLinenumber: 15778
    functionLinenumberEnd: 15988
    functionName: binary_writer::write_ubjson
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - write_character
    - JSON_ASSERT
    - m_data::m_value::object::find
    - front
    - begin
    - std::vector::begin
    - reinterpret_cast<const CharType*>
    - write_characters
    - binary_writer::write_number_with_ubjson_prefix
    - binary_writer::to_char_type
    - m_data::m_value::array::empty
    - m_data::m_value::binary::size
    - m_data::m_value::array::size
    - binary_writer::write_ubjson
    - type
    - m_data::m_value::string::size
    - first::c_str
    - m_data::m_value::binary::data
    - m_data::m_value::binary::empty
    - m_data::m_value::object::end
    - end
    - m_data::m_value::object::empty
    - m_data::m_value::object::size
    - binary_writer::write_bjdata_ndarray
    - std::vector::end
    - first::size
    - std::find
    - std::all_of
    - binary_writer::ubjson_prefix
    - m_data::m_value::string::c_str
    linkageType: ''
    returnType: void
    signature: "void write_ubjson(const BasicJsonType& j, const bool use_count,\n
      \                     const bool use_type, const bool add_prefix = true,\n                      const
      bool use_bjdata = false)"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16001,1
    - Dst: static_cast<typename string_t::value_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16001,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16002,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16004,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16004,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16004,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16004,1
    - Dst: static_cast<void>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16005,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16008,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' name'
    - ' j'
    argTypes:
    - string_t
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16009
      start: 15999
    functionDepth: 4
    functionLinenumber: 15999
    functionLinenumberEnd: 16009
    functionName: binary_writer::calc_bson_entry_header_size
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - to_string
    - find
    - static_cast<void>
    - static_cast<typename string_t::value_type>
    - concat
    - size
    - out_of_range::create
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_entry_header_size(const string_t& name, const
      BasicJsonType& j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16017,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16017,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16018,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16019,1
    - Dst: c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16019,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16020,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - element_type
    argTypes:
    - string_t
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16021
      start: 16014
    functionDepth: 1
    functionLinenumber: 16014
    functionLinenumberEnd: 16021
    functionName: binary_writer::write_bson_entry_header
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - reinterpret_cast<const CharType*>
    - write_characters
    - write_character
    - binary_writer::to_char_type
    - c_str
    - size
    linkageType: ''
    returnType: void
    signature: "void write_bson_entry_header(const string_t& name,\n                                 const
      std::uint8_t element_type)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer::write_bson_entry_header
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16029,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16030,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16030,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16030,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - value
    argTypes:
    - string_t
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16031
      start: 16026
    functionDepth: 2
    functionLinenumber: 16026
    functionLinenumberEnd: 16031
    functionName: binary_writer::write_bson_boolean
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - binary_writer::write_bson_entry_header
    - binary_writer::to_char_type
    - write_character
    linkageType: ''
    returnType: void
    signature: "void write_bson_boolean(const string_t& name,\n                            const
      bool value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer::write_bson_entry_header
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16039,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16040,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - value
    argTypes:
    - string_t
    - double
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16041
      start: 16036
    functionDepth: 2
    functionLinenumber: 16036
    functionLinenumberEnd: 16041
    functionName: binary_writer::write_bson_double
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - binary_writer::write_bson_entry_header
    - binary_writer::write_number
    linkageType: ''
    returnType: void
    signature: "void write_bson_double(const string_t& name,\n                           const
      double value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16048,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16049
      start: 16046
    functionDepth: 1
    functionLinenumber: 16046
    functionLinenumberEnd: 16049
    functionName: binary_writer::calc_bson_string_size
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_string_size(const string_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer::write_bson_entry_header
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16057,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16059,1
    - Dst: static_cast<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16059,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16059,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16060,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16061,1
    - Dst: c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16061,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16062,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' name'
    - ' value'
    argTypes:
    - string_t
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16063
      start: 16054
    functionDepth: 2
    functionLinenumber: 16054
    functionLinenumberEnd: 16063
    functionName: binary_writer::write_bson_string
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - binary_writer::write_number
    - reinterpret_cast<const CharType*>
    - binary_writer::write_bson_entry_header
    - write_characters
    - c_str
    - static_cast<std::int32_t>
    - size
    linkageType: ''
    returnType: void
    signature: "void write_bson_string(const string_t& name,\n                           const
      string_t& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer::write_bson_entry_header
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16070,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' name'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16071
      start: 16068
    functionDepth: 2
    functionLinenumber: 16068
    functionLinenumberEnd: 16071
    functionName: binary_writer::write_bson_null
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - binary_writer::write_bson_entry_header
    linkageType: ''
    returnType: void
    signature: void write_bson_null(const string_t& name)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16081
      start: 16076
    functionDepth: 0
    functionLinenumber: 16076
    functionLinenumberEnd: 16081
    functionName: binary_writer::calc_bson_integer_size
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_integer_size(const std::int64_t value)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer::write_bson_entry_header
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16091,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16092,1
    - Dst: static_cast<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16092,1
    - Dst: binary_writer::write_bson_entry_header
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16096,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16097,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16097,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - ' name'
    - value
    argTypes:
    - string_t
    - std::int64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16099
      start: 16086
    functionDepth: 2
    functionLinenumber: 16086
    functionLinenumberEnd: 16099
    functionName: binary_writer::write_bson_integer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - binary_writer::write_bson_entry_header
    - static_cast<std::int32_t>
    - binary_writer::write_number
    - static_cast<std::int64_t>
    linkageType: ''
    returnType: void
    signature: "void write_bson_integer(const string_t& name,\n                            const
      std::int64_t value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16109
      start: 16104
    functionDepth: 0
    functionLinenumber: 16104
    functionLinenumberEnd: 16109
    functionName: binary_writer::calc_bson_unsigned_size
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<std::uint64_t>
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_unsigned_size(const std::uint64_t value) noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16117,1
    - Dst: binary_writer::write_bson_entry_header
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16119,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16120,1
    - Dst: static_cast<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16120,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16122,1
    - Dst: binary_writer::write_bson_entry_header
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16124,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16125,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16125,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16129,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16129,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16129,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16129,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 11
    argCount: 2
    argNames:
    - ' name'
    - ' j'
    argTypes:
    - string_t
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16131
      start: 16114
    functionDepth: 4
    functionLinenumber: 16114
    functionLinenumberEnd: 16131
    functionName: binary_writer::write_bson_unsigned
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - binary_writer::write_number
    - JSON_THROW
    - binary_writer::write_bson_entry_header
    - static_cast<std::uint64_t>
    - to_string
    - static_cast<std::int64_t>
    - concat
    - static_cast<std::int32_t>
    - out_of_range::create
    linkageType: ''
    returnType: void
    signature: "void write_bson_unsigned(const string_t& name,\n                             const
      BasicJsonType& j)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer::write_bson_entry_header
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16139,1
    - Dst: binary_writer::write_bson_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16140,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' name'
    - ' value'
    argTypes:
    - string_t
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16141
      start: 16136
    functionDepth: 2
    functionLinenumber: 16136
    functionLinenumberEnd: 16141
    functionName: binary_writer::write_bson_object_entry
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - binary_writer::write_bson_entry_header
    - binary_writer::write_bson_object
    linkageType: ''
    returnType: void
    signature: "void write_bson_object_entry(const string_t& name,\n                                 const
      typename BasicJsonType::object_t& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16150,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16150,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16150,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16150,1
    - Dst: binary_writer::calc_bson_element_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16152,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16152,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16156
      start: 16146
    functionDepth: 4
    functionLinenumber: 16146
    functionLinenumberEnd: 16156
    functionName: binary_writer::calc_bson_array_size
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::accumulate
    - end
    - binary_writer::calc_bson_element_size
    - to_string
    - static_cast<std::size_t>
    - begin
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_array_size(const typename BasicJsonType::array_t&
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename BasicJsonType::binary_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16164
      start: 16161
    functionDepth: 1
    functionLinenumber: 16161
    functionLinenumberEnd: 16164
    functionName: binary_writer::calc_bson_binary_size
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - size
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_binary_size(const typename BasicJsonType::binary_t&
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer::write_bson_entry_header
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16172,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16173,1
    - Dst: static_cast<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16173,1
    - Dst: binary_writer::calc_bson_array_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16173,1
    - Dst: binary_writer::write_bson_element
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16179,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16179,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16182,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16182,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' name'
    - ' value'
    argTypes:
    - string_t
    - typename BasicJsonType::array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16183
      start: 16169
    functionDepth: 5
    functionLinenumber: 16169
    functionLinenumberEnd: 16183
    functionName: binary_writer::write_bson_array
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - binary_writer::write_number
    - binary_writer::write_bson_entry_header
    - write_character
    - to_string
    - binary_writer::to_char_type
    - binary_writer::calc_bson_array_size
    - static_cast<std::int32_t>
    - binary_writer::write_bson_element
    linkageType: ''
    returnType: void
    signature: "void write_bson_array(const string_t& name,\n                          const
      typename BasicJsonType::array_t& value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer::write_bson_entry_header
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16191,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16193,1
    - Dst: static_cast<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16193,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16193,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16194,1
    - Dst: has_subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16194,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16194,1
    - Dst: subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16194,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16194,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16196,1
    - Dst: reinterpret_cast<const CharType*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16196,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16196,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16196,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 2
    argNames:
    - ' name'
    - ' value'
    argTypes:
    - string_t
    - binary_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16197
      start: 16188
    functionDepth: 2
    functionLinenumber: 16188
    functionLinenumberEnd: 16197
    functionName: binary_writer::write_bson_binary
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - binary_writer::write_number
    - static_cast<std::uint8_t>
    - data
    - reinterpret_cast<const CharType*>
    - binary_writer::write_bson_entry_header
    - has_subtype
    - write_characters
    - subtype
    - static_cast<std::int32_t>
    - size
    linkageType: ''
    returnType: void
    signature: "void write_bson_binary(const string_t& name,\n                           const
      binary_t& value)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer::calc_bson_entry_header_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16206,1
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16207,1
    - Dst: binary_writer::calc_bson_object_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16210,1
    - Dst: binary_writer::calc_bson_array_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16213,1
    - Dst: binary_writer::calc_bson_binary_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16216,1
    - Dst: binary_writer::calc_bson_integer_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16225,1
    - Dst: binary_writer::calc_bson_unsigned_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16228,1
    - Dst: binary_writer::calc_bson_string_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16231,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16239,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - ' name'
    - ' j'
    argTypes:
    - string_t
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16243
      start: 16203
    functionDepth: 5
    functionLinenumber: 16203
    functionLinenumberEnd: 16243
    functionName: binary_writer::calc_bson_element_size
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - binary_writer::calc_bson_object_size
    - binary_writer::calc_bson_entry_header_size
    - binary_writer::calc_bson_integer_size
    - binary_writer::calc_bson_unsigned_size
    - binary_writer::calc_bson_string_size
    - JSON_ASSERT
    - binary_writer::calc_bson_binary_size
    - binary_writer::calc_bson_array_size
    - type
    linkageType: ''
    returnType: std::size_t
    signature: "std::size_t calc_bson_element_size(const string_t& name,\n            const
      BasicJsonType& j)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16254,1
    - Dst: binary_writer::write_bson_object_entry
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16257,1
    - Dst: binary_writer::write_bson_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16260,1
    - Dst: binary_writer::write_bson_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16263,1
    - Dst: binary_writer::write_bson_boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16266,1
    - Dst: binary_writer::write_bson_double
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16269,1
    - Dst: binary_writer::write_bson_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16272,1
    - Dst: binary_writer::write_bson_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16275,1
    - Dst: binary_writer::write_bson_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16278,1
    - Dst: binary_writer::write_bson_null
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16281,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16286,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 25
    argCount: 2
    argNames:
    - ' name'
    - ' j'
    argTypes:
    - string_t
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16290
      start: 16251
    functionDepth: 6
    functionLinenumber: 16251
    functionLinenumberEnd: 16290
    functionName: binary_writer::write_bson_element
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - binary_writer::write_bson_binary
    - binary_writer::write_bson_double
    - binary_writer::write_bson_boolean
    - binary_writer::write_bson_array
    - binary_writer::write_bson_integer
    - binary_writer::write_bson_string
    - binary_writer::write_bson_object_entry
    - JSON_ASSERT
    - binary_writer::write_bson_unsigned
    - binary_writer::write_bson_null
    - type
    linkageType: ''
    returnType: void
    signature: "void write_bson_element(const string_t& name,\n                            const
      BasicJsonType& j)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::accumulate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16300,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16300,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16300,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16300,1
    - Dst: binary_writer::calc_bson_element_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16303,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16307
      start: 16298
    functionDepth: 6
    functionLinenumber: 16298
    functionLinenumberEnd: 16307
    functionName: binary_writer::calc_bson_object_size
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - std::accumulate
    - end
    - binary_writer::calc_bson_element_size
    - static_cast<std::size_t>
    - begin
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t calc_bson_object_size(const typename BasicJsonType::object_t&
      value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16315,1
    - Dst: static_cast<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16315,1
    - Dst: binary_writer::calc_bson_object_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16315,1
    - Dst: binary_writer::write_bson_element
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16319,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16322,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16322,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename BasicJsonType::object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16323
      start: 16313
    functionDepth: 7
    functionLinenumber: 16313
    functionLinenumberEnd: 16323
    functionName: binary_writer::write_bson_object
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - binary_writer::write_number
    - binary_writer::calc_bson_object_size
    - write_character
    - binary_writer::to_char_type
    - static_cast<std::int32_t>
    - binary_writer::write_bson_element
    linkageType: ''
    returnType: void
    signature: void write_bson_object(const typename BasicJsonType::object_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16331,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16332
      start: 16329
    functionDepth: 1
    functionLinenumber: 16329
    functionLinenumberEnd: 16332
    functionName: binary_writer::get_cbor_float_prefix
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - binary_writer::to_char_type
    linkageType: ''
    returnType: CharType
    signature: CharType get_cbor_float_prefix(float /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16336,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16337
      start: 16334
    functionDepth: 1
    functionLinenumber: 16334
    functionLinenumberEnd: 16337
    functionName: binary_writer::get_cbor_float_prefix
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - binary_writer::to_char_type
    linkageType: ''
    returnType: CharType
    signature: CharType get_cbor_float_prefix(double /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16345,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16346
      start: 16343
    functionDepth: 1
    functionLinenumber: 16343
    functionLinenumberEnd: 16346
    functionName: binary_writer::get_msgpack_float_prefix
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - binary_writer::to_char_type
    linkageType: ''
    returnType: CharType
    signature: CharType get_msgpack_float_prefix(float /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16350,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16351
      start: 16348
    functionDepth: 1
    functionLinenumber: 16348
    functionLinenumberEnd: 16351
    functionName: binary_writer::get_msgpack_float_prefix
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - binary_writer::to_char_type
    linkageType: ''
    returnType: CharType
    signature: CharType get_msgpack_float_prefix(double /*unused*/)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16366,1
    - Dst: binary_writer::get_ubjson_float_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16366,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16368,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 3
    argNames:
    - n
    - add_prefix
    - use_bjdata
    argTypes:
    - NumberType
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16369
      start: 16360
    functionDepth: 1
    functionLinenumber: 16360
    functionLinenumberEnd: 16369
    functionName: binary_writer::write_number_with_ubjson_prefix
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - binary_writer::get_ubjson_float_prefix
    - binary_writer::write_number
    - write_character
    linkageType: ''
    returnType: void
    signature: "void write_number_with_ubjson_prefix(const NumberType n,\n                                         const
      bool add_prefix,\n                                         const bool use_bjdata)"
  - BBCount: 18
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16378,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16382,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16382,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16384,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16384,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16390,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16390,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16392,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16392,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16394,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16398,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16398,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16400,1
    - Dst: static_cast<std::int16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16400,1
    - Dst: static_cast<uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16402,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16406,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16406,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16408,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16408,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16410,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16414,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16414,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16416,1
    - Dst: static_cast<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16416,1
    - Dst: static_cast<uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16418,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16422,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16422,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16424,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16424,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16426,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16430,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16430,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16432,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16432,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16438,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16438,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16440,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16440,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16446,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16446,1
    - Dst: BasicJsonType
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16449,1
    - Dst: binary_writer::write_number_with_ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16450,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16450,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16451,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16453,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16453,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16453,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 57
    argCount: 3
    argNames:
    - n
    - add_prefix
    - use_bjdata
    argTypes:
    - NumberType
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16456
      start: 16374
    functionDepth: 1
    functionLinenumber: 16374
    functionLinenumberEnd: 16456
    functionName: binary_writer::write_number_with_ubjson_prefix
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - binary_writer::write_number
    - static_cast<std::uint8_t>
    - static_cast<uint64_t>
    - static_cast<std::uint16_t>
    - auto::size
    - BasicJsonType
    - static_cast<std::uint64_t>
    - write_character
    - static_cast<std::int64_t>
    - binary_writer::to_char_type
    - binary_writer::write_number_with_ubjson_prefix
    - static_cast<std::uint32_t>
    - static_cast<std::int16_t>
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: "void write_number_with_ubjson_prefix(const NumberType n,\n                                         const
      bool add_prefix,\n                                         const bool use_bjdata)"
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16470,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16470,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16472,1
    - Dst: static_cast<std::int8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16472,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16474,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16474,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16478,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16478,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16480,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16480,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16486,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16486,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16488,1
    - Dst: static_cast<std::int16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16488,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16490,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16490,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16494,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16494,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16496,1
    - Dst: static_cast<uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16496,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16502,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16502,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16504,1
    - Dst: static_cast<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16504,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16506,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16506,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16510,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16510,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16512,1
    - Dst: static_cast<uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16512,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16518,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16518,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16520,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16520,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16527,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16527,1
    - Dst: BasicJsonType
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16530,1
    - Dst: binary_writer::write_number_with_ubjson_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16531,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16531,1
    - Dst: auto::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16532,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16534,1
    - Dst: binary_writer::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16534,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16534,1
    CyclomaticComplexity: 25
    EdgeCount: 25
    ICount: 51
    argCount: 3
    argNames:
    - n
    - add_prefix
    - use_bjdata
    argTypes:
    - NumberType
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16538
      start: 16462
    functionDepth: 1
    functionLinenumber: 16462
    functionLinenumberEnd: 16538
    functionName: binary_writer::write_number_with_ubjson_prefix
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 3
    functionsReached:
    - binary_writer::write_number
    - static_cast<std::int8_t>
    - static_cast<std::uint8_t>
    - static_cast<uint32_t>
    - auto::size
    - BasicJsonType
    - write_character
    - static_cast<std::int64_t>
    - binary_writer::to_char_type
    - binary_writer::write_number_with_ubjson_prefix
    - static_cast<uint16_t>
    - static_cast<std::int16_t>
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: void
    signature: "void write_number_with_ubjson_prefix(const NumberType n,\n                                         const
      bool add_prefix,\n                                         const bool use_bjdata)"
  - BBCount: 27
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16545,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16589,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16593,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16597,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16601,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16605,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16609,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16613,1
    - Dst: binary_writer::get_ubjson_float_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16626,1
    CyclomaticComplexity: 28
    EdgeCount: 28
    ICount: 70
    argCount: 2
    argNames:
    - ' j'
    - use_bjdata
    argTypes:
    - BasicJsonType
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16642
      start: 16543
    functionDepth: 1
    functionLinenumber: 16543
    functionLinenumberEnd: 16642
    functionName: binary_writer::ubjson_prefix
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - binary_writer::get_ubjson_float_prefix
    - static_cast<std::uint64_t>
    - type
    linkageType: ''
    returnType: CharType
    signature: CharType ubjson_prefix(const BasicJsonType& j, const bool use_bjdata)
      const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16647
      start: 16644
    functionDepth: 0
    functionLinenumber: 16644
    functionLinenumberEnd: 16647
    functionName: binary_writer::get_ubjson_float_prefix
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: CharType
    signature: CharType get_ubjson_float_prefix(float /*unused*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16652
      start: 16649
    functionDepth: 0
    functionLinenumber: 16649
    functionLinenumberEnd: 16652
    functionName: binary_writer::get_ubjson_float_prefix
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: CharType
    signature: CharType get_ubjson_float_prefix(double /*unused*/)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: std::map::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16664,1
    - Dst: static_cast<string_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16664,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16664,1
    - Dst: std::map::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16665,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16672,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16673,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16675,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16679,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16684,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16685,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16686,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16687,1
    - Dst: binary_writer::write_ubjson
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16690,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16690,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16695,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16697,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16697,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16702,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16704,1
    - Dst: static_cast<std::int8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16704,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16709,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16711,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16711,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16716,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16718,1
    - Dst: static_cast<std::int16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16718,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16723,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16725,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16725,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16730,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16732,1
    - Dst: static_cast<std::int32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16732,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16737,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16739,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16739,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16744,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16746,1
    - Dst: static_cast<std::int64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16746,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16751,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16753,1
    - Dst: static_cast<float>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16753,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16758,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16760,1
    - Dst: static_cast<double>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16760,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 59
    argCount: 3
    argNames:
    - ' value'
    - use_count
    - use_type
    argTypes:
    - typename BasicJsonType::object_t
    - bool
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16764
      start: 16657
    functionDepth: 3
    functionLinenumber: 16657
    functionLinenumberEnd: 16764
    functionName: binary_writer::write_bjdata_ndarray
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - binary_writer::write_number
    - std::map::find
    - static_cast<std::uint8_t>
    - static_cast<std::int8_t>
    - static_cast<std::uint16_t>
    - std::map::end
    - at
    - static_cast<std::uint32_t>
    - static_cast<string_t>
    - write_character
    - static_cast<std::uint64_t>
    - static_cast<std::int64_t>
    - static_cast<std::size_t>
    - static_cast<float>
    - static_cast<double>
    - binary_writer::write_ubjson
    - static_cast<std::int16_t>
    - static_cast<std::int32_t>
    linkageType: ''
    returnType: bool
    signature: bool write_bjdata_ndarray(const typename BasicJsonType::object_t& value,
      const bool use_count, const bool use_type)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16788,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16788,1
    - Dst: std::reverse
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16794,1
    - Dst: std::array::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16794,1
    - Dst: std::array::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16794,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16797,1
    - Dst: std::array::data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16797,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - NumberType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16798
      start: 16784
    functionDepth: 1
    functionLinenumber: 16784
    functionLinenumberEnd: 16798
    functionName: binary_writer::write_number
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 13
    functionsReached:
    - std::array::data
    - write_characters
    - std::array::begin
    - std::memcpy
    - std::array::end
    - std::reverse
    linkageType: ''
    returnType: void
    signature: void write_number(const NumberType n, const bool OutputIsLittleEndian
      = false)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<double>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16806,1
    - Dst: static_cast<double>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16806,1
    - Dst: std::numeric_limits<float>::lowest
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16806,1
    - Dst: static_cast<double>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16807,1
    - Dst: static_cast<double>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16807,1
    - Dst: static_cast<double>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16808,1
    - Dst: static_cast<float>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16808,1
    - Dst: static_cast<double>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16808,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16810,1
    - Dst: binary_writer::get_cbor_float_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16811,1
    - Dst: static_cast<float>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16811,1
    - Dst: binary_writer::get_msgpack_float_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16812,1
    - Dst: static_cast<float>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16812,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16813,1
    - Dst: static_cast<float>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16813,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16817,1
    - Dst: binary_writer::get_cbor_float_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16818,1
    - Dst: binary_writer::get_msgpack_float_prefix
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16819,1
    - Dst: binary_writer::write_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16820,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - n
    - format
    argTypes:
    - number_float_t
    - detail::input_format_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16825
      start: 16800
    functionDepth: 2
    functionLinenumber: 16800
    functionLinenumberEnd: 16825
    functionName: binary_writer::write_compact_float
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - binary_writer::write_number
    - binary_writer::get_msgpack_float_prefix
    - write_character
    - binary_writer::get_cbor_float_prefix
    - std::numeric_limits<float>::lowest
    - static_cast<float>
    - static_cast<double>
    linkageType: ''
    returnType: void
    signature: void write_compact_float(const number_float_t n, detail::input_format_t
      format)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reinterpret_cast<char*>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16836,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16837
      start: 16834
    functionDepth: 0
    functionLinenumber: 16834
    functionLinenumberEnd: 16837
    functionName: binary_writer::to_char_type
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 13
    functionsReached:
    - reinterpret_cast<char*>
    linkageType: ''
    returnType: CharType
    signature: CharType to_char_type(std::uint8_t x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16846,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16848
      start: 16841
    functionDepth: 0
    functionLinenumber: 16841
    functionLinenumberEnd: 16848
    functionName: binary_writer::to_char_type
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 13
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: CharType
    signature: CharType to_char_type(std::uint8_t x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16855
      start: 16852
    functionDepth: 0
    functionLinenumber: 16852
    functionLinenumberEnd: 16855
    functionName: binary_writer::to_char_type
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: CharType
    signature: CharType to_char_type(std::uint8_t x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - InputCharType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16866
      start: 16863
    functionDepth: 0
    functionLinenumber: 16863
    functionLinenumberEnd: 16866
    functionName: binary_writer::to_char_type
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 13
    functionsReached: []
    linkageType: ''
    returnType: CharType
    signature: CharType to_char_type(InputCharType x) noexcept
  - BBCount: 21
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16960,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16979,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16980,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17056,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17075,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17076,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17098,1
    - Dst: std::isfinite
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17098,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17099,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17118,1
    - Dst: reinterpret_bits<bits_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17118,1
    - Dst: diyfp
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17124,1
    - Dst: diyfp
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17125,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17125,1
    - Dst: diyfp
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17149,1
    - Dst: diyfp
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17151,1
    - Dst: diyfp
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17152,1
    - Dst: dtoa_impl::normalize
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17155,1
    - Dst: dtoa_impl::normalize_to
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17158,1
    - Dst: dtoa_impl::normalize
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17160,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17379,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17380,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17382,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17385,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17386,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17386,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17386,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17388,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17389,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17390,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17456,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17457,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17458,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17459,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17484,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17512,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17513,1
    - Dst: gnupg_sexp_t::add_sub
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17515,1
    - Dst: gnupg_sexp_t::add_sub
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17516,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17527,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17534,1
    - Dst: find_largest_pow10
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17537,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17570,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17571,1
    - Dst: grisu2_round
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17607,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17657,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17668,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17677,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17678,1
    - Dst: grisu2_round
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17712,1
    - Dst: JSON_HEDLEY_NON_NULL
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17734,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17738,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17739,1
    - Dst: get_cached_power_for_binary_exponent
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17750,1
    - Dst: dtoa_impl::mul
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17755,1
    - Dst: dtoa_impl::mul
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17756,1
    - Dst: dtoa_impl::mul
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17757,1
    - Dst: grisu2_digit_gen
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17785,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17800,1
    - Dst: std::isfinite
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17800,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17801,1
    - Dst: compute_boundaries
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17820,1
    - Dst: static_cast<double>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17820,1
    - Dst: compute_boundaries
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17822,1
    - Dst: grisu2
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17825,1
    - Dst: JSON_HEDLEY_NON_NULL
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17833,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17837,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17838,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17850,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17856,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17860,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17862,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17866,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17868,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17870,1
    - Dst: JSON_HEDLEY_NON_NULL
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17885,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17890,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17891,1
    - Dst: std::memset
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17905,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17905,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17905,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17909,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17917,1
    - Dst: std::memmove
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17919,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17919,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17919,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17919,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17921,1
    - Dst: std::memmove
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17929,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17929,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17929,1
    - Dst: std::memset
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17932,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17932,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17933,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17933,1
    - Dst: std::memmove
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17948,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17948,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17950,1
    - Dst: append_exponent
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17954,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17975,1
    - Dst: std::isfinite
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17975,1
    - Dst: std::signbit
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17978,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18000,1
    - Dst: dtoa_impl::grisu2
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18008,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18010,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18017,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18018,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18019,1
    - Dst: dtoa_impl::format_buffer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18021,1
    CyclomaticComplexity: 32
    EdgeCount: 32
    ICount: 200
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18022
      start: 16928
    functionDepth: 2
    functionLinenumber: 16928
    functionLinenumberEnd: 18022
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - grisu2_digit_gen
    - get_cached_power_for_binary_exponent
    - JSON_ASSERT
    - static_cast<std::size_t>
    - compute_boundaries
    - static_cast<std::uint32_t>
    - JSON_HEDLEY_NON_NULL
    - diyfp
    - static_cast<size_t>
    - dtoa_impl::normalize_to
    - std::signbit
    - append_exponent
    - dtoa_impl::format_buffer
    - std::array::size
    - reinterpret_bits<bits_type>
    - gnupg_sexp_t::add_sub
    - std::memset
    - grisu2
    - std::memmove
    - dtoa_impl::normalize
    - static_cast<std::uint64_t>
    - std::memcpy
    - static_cast<int>
    - grisu2_round
    - static_cast<double>
    - std::isfinite
    - dtoa_impl::grisu2
    - find_largest_pow10
    - dtoa_impl::mul
    - static_cast<char>
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: NLOHMANN_JSON_NAMESPACE_BEGIN namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - source
    argTypes:
    - Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16962
      start: 16955
    functionDepth: 0
    functionLinenumber: 16955
    functionLinenumberEnd: 16962
    functionName: dtoa_impl::reinterpret_bits
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: Target
    signature: Target reinterpret_bits(const Source source)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - f_
    - e_
    argTypes:
    - std::uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16971
      start: 16971
    functionDepth: 0
    functionLinenumber: 16971
    functionLinenumberEnd: 16971
    functionName: dtoa_impl::diyfp
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void diyfp(std::uint64_t f_, int e_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16979,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - diyfp
    - diyfp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16983
      start: 16977
    functionDepth: 1
    functionLinenumber: 16977
    functionLinenumberEnd: 16983
    functionName: dtoa_impl::sub
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_ASSERT
    linkageType: ''
    returnType: diyfp
    signature: diyfp sub(const diyfp& x, const diyfp& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - diyfp
    - diyfp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17048
      start: 16989
    functionDepth: 0
    functionLinenumber: 16989
    functionLinenumberEnd: 17048
    functionName: dtoa_impl::mul
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: diyfp
    signature: diyfp mul(const diyfp& x, const diyfp& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17056,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - diyfp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17065
      start: 17054
    functionDepth: 1
    functionLinenumber: 17054
    functionLinenumberEnd: 17065
    functionName: dtoa_impl::normalize
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - JSON_ASSERT
    linkageType: ''
    returnType: diyfp
    signature: diyfp normalize(diyfp x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17075,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' x'
    - target_exponent
    argTypes:
    - diyfp
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17079
      start: 17071
    functionDepth: 1
    functionLinenumber: 17071
    functionLinenumberEnd: 17079
    functionName: dtoa_impl::normalize_to
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - JSON_ASSERT
    linkageType: ''
    returnType: diyfp
    signature: diyfp normalize_to(const diyfp& x, const int target_exponent) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17098,1
    - Dst: std::isfinite
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17098,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17099,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17118,1
    - Dst: dtoa_impl::reinterpret_bits
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17118,1
    - Dst: dtoa_impl::diyfp
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17124,1
    - Dst: dtoa_impl::diyfp
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17125,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17125,1
    - Dst: dtoa_impl::diyfp
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17149,1
    - Dst: dtoa_impl::diyfp
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17151,1
    - Dst: dtoa_impl::diyfp
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17152,1
    - Dst: dtoa_impl::normalize
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17155,1
    - Dst: dtoa_impl::normalize_to
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17158,1
    - Dst: dtoa_impl::normalize
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - FloatType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17161
      start: 17096
    functionDepth: 2
    functionLinenumber: 17096
    functionLinenumberEnd: 17161
    functionName: dtoa_impl::compute_boundaries
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - dtoa_impl::normalize_to
    - dtoa_impl::normalize
    - static_cast<std::uint64_t>
    - dtoa_impl::reinterpret_bits
    - JSON_ASSERT
    - static_cast<int>
    - dtoa_impl::diyfp
    - std::isfinite
    linkageType: ''
    returnType: boundaries
    signature: boundaries compute_boundaries(FloatType value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17379,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17380,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17382,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17385,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17386,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17386,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17386,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17388,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17389,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17393
      start: 17235
    functionDepth: 1
    functionLinenumber: 17235
    functionLinenumberEnd: 17393
    functionName: dtoa_impl::get_cached_power_for_binary_exponent
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<int>
    - JSON_ASSERT
    - static_cast<std::size_t>
    - std::array::size
    linkageType: ''
    returnType: cached_power
    signature: cached_power get_cached_power_for_binary_exponent(int e)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - n
    - ' pow10'
    argTypes:
    - std::uint32_t
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17451
      start: 17399
    functionDepth: 0
    functionLinenumber: 17399
    functionLinenumberEnd: 17451
    functionName: dtoa_impl::find_largest_pow10
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int find_largest_pow10(const std::uint32_t n, std::uint32_t& pow10)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17456,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17457,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17458,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17459,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17484,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 6
    argNames:
    - buf
    - len
    - dist
    - delta
    - rest
    - ten_k
    argTypes:
    - char*
    - int
    - std::uint64_t
    - std::uint64_t
    - std::uint64_t
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17488
      start: 17453
    functionDepth: 1
    functionLinenumber: 17453
    functionLinenumberEnd: 17488
    functionName: dtoa_impl::grisu2_round
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_ASSERT
    linkageType: ''
    returnType: void
    signature: "void grisu2_round(char* buf, int len, std::uint64_t dist, std::uint64_t
      delta,\n                         std::uint64_t rest, std::uint64_t ten_k)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17512,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17513,1
    - Dst: gnupg_sexp_t::add_sub
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17515,1
    - Dst: gnupg_sexp_t::add_sub
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17516,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17527,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17534,1
    - Dst: dtoa_impl::find_largest_pow10
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17537,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17570,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17571,1
    - Dst: dtoa_impl::grisu2_round
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17607,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17657,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17668,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17677,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17678,1
    - Dst: dtoa_impl::grisu2_round
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17712,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 6
    argNames:
    - buffer
    - ' length'
    - ' decimal_exponent'
    - M_minus
    - w
    - M_plus
    argTypes:
    - char*
    - int
    - int
    - diyfp
    - diyfp
    - diyfp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17727
      start: 17494
    functionDepth: 2
    functionLinenumber: 17494
    functionLinenumberEnd: 17727
    functionName: dtoa_impl::grisu2_digit_gen
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - dtoa_impl::grisu2_round
    - dtoa_impl::find_largest_pow10
    - JSON_ASSERT
    - static_cast<std::uint32_t>
    - static_cast<char>
    - gnupg_sexp_t::add_sub
    linkageType: ''
    returnType: void
    signature: "void grisu2_digit_gen(char* buffer, int& length, int& decimal_exponent,\n
      \                            diyfp M_minus, diyfp w, diyfp M_plus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17738,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17739,1
    - Dst: dtoa_impl::get_cached_power_for_binary_exponent
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17750,1
    - Dst: dtoa_impl::mul
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17755,1
    - Dst: dtoa_impl::mul
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17756,1
    - Dst: dtoa_impl::mul
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17757,1
    - Dst: dtoa_impl::grisu2_digit_gen
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - buf
    - ' len'
    - ' decimal_exponent'
    - m_minus
    - v
    - m_plus
    argTypes:
    - char*
    - int
    - int
    - diyfp
    - diyfp
    - diyfp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17786
      start: 17735
    functionDepth: 3
    functionLinenumber: 17735
    functionLinenumberEnd: 17786
    functionName: dtoa_impl::grisu2
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - dtoa_impl::mul
    - JSON_ASSERT
    - dtoa_impl::get_cached_power_for_binary_exponent
    - dtoa_impl::grisu2_digit_gen
    linkageType: ''
    returnType: void
    signature: "void grisu2(char* buf, int& len, int& decimal_exponent,\n                   diyfp
      m_minus, diyfp v, diyfp m_plus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17800,1
    - Dst: std::isfinite
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17800,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17801,1
    - Dst: dtoa_impl::compute_boundaries
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17820,1
    - Dst: static_cast<double>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17820,1
    - Dst: dtoa_impl::compute_boundaries
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17822,1
    - Dst: dtoa_impl::grisu2
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - buf
    - ' len'
    - ' decimal_exponent'
    - value
    argTypes:
    - char*
    - int
    - int
    - FloatType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17826
      start: 17794
    functionDepth: 4
    functionLinenumber: 17794
    functionLinenumberEnd: 17826
    functionName: '(1)

      void grisu2(char* buf, int& len, int& decimal_exponent, FloatType value)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - dtoa_impl::grisu2
    - dtoa_impl::compute_boundaries
    - JSON_ASSERT
    - static_cast<double>
    - std::isfinite
    linkageType: ''
    returnType: JSON_HEDLEY_NON_NULL
    signature: 'JSON_HEDLEY_NON_NULL (1)

      void grisu2(char* buf, int& len, int& decimal_exponent, FloatType value)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17837,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17838,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17850,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17856,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17860,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17862,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17866,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17868,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17870,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - buf
    - e
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17874
      start: 17835
    functionDepth: 1
    functionLinenumber: 17835
    functionLinenumberEnd: 17874
    functionName: dtoa_impl::append_exponent
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_ASSERT
    - static_cast<char>
    - static_cast<std::uint32_t>
    linkageType: ''
    returnType: char
    signature: char * append_exponent(char* buf, int e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17890,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17891,1
    - Dst: std::memset
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17905,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17905,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17905,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17909,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17917,1
    - Dst: std::memmove
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17919,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17919,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17919,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17919,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17921,1
    - Dst: std::memmove
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17929,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17929,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17929,1
    - Dst: std::memset
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17932,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17932,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17933,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17933,1
    - Dst: std::memmove
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17948,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17948,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17950,1
    - Dst: dtoa_impl::append_exponent
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17954,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 5
    argNames:
    - buf
    - len
    - decimal_exponent
    - min_exp
    - max_exp
    argTypes:
    - char*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17955
      start: 17887
    functionDepth: 2
    functionLinenumber: 17887
    functionLinenumberEnd: 17955
    functionName: dtoa_impl::format_buffer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - std::memmove
    - dtoa_impl::append_exponent
    - JSON_ASSERT
    - std::memset
    linkageType: ''
    returnType: char
    signature: "char * format_buffer(char* buf, int len, int decimal_exponent,\n                           int
      min_exp, int max_exp)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::memcpy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16960,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - source
    argTypes:
    - Source
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16962
      start: 16955
    functionDepth: 0
    functionLinenumber: 16955
    functionLinenumberEnd: 16962
    functionName: dtoa_impl::reinterpret_bits
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - std::memcpy
    linkageType: ''
    returnType: Target
    signature: Target reinterpret_bits(const Source source)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - f_
    - e_
    argTypes:
    - std::uint64_t
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16971
      start: 16971
    functionDepth: 0
    functionLinenumber: 16971
    functionLinenumberEnd: 16971
    functionName: dtoa_impl::diyfp
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void diyfp(std::uint64_t f_, int e_) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16979,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:16980,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - diyfp
    - diyfp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 16983
      start: 16977
    functionDepth: 1
    functionLinenumber: 16977
    functionLinenumberEnd: 16983
    functionName: dtoa_impl::sub
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_ASSERT
    linkageType: ''
    returnType: diyfp
    signature: diyfp sub(const diyfp& x, const diyfp& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - ' x'
    - ' y'
    argTypes:
    - diyfp
    - diyfp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17048
      start: 16989
    functionDepth: 0
    functionLinenumber: 16989
    functionLinenumberEnd: 17048
    functionName: dtoa_impl::mul
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: diyfp
    signature: diyfp mul(const diyfp& x, const diyfp& y) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17056,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - x
    argTypes:
    - diyfp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17065
      start: 17054
    functionDepth: 1
    functionLinenumber: 17054
    functionLinenumberEnd: 17065
    functionName: dtoa_impl::normalize
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - JSON_ASSERT
    linkageType: ''
    returnType: diyfp
    signature: diyfp normalize(diyfp x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17075,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17076,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' x'
    - target_exponent
    argTypes:
    - diyfp
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17079
      start: 17071
    functionDepth: 1
    functionLinenumber: 17071
    functionLinenumberEnd: 17079
    functionName: dtoa_impl::normalize_to
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - JSON_ASSERT
    linkageType: ''
    returnType: diyfp
    signature: diyfp normalize_to(const diyfp& x, const int target_exponent) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17098,1
    - Dst: std::isfinite
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17098,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17099,1
    - Dst: static_cast<std::uint64_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17118,1
    - Dst: dtoa_impl::reinterpret_bits
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17118,1
    - Dst: dtoa_impl::diyfp
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17124,1
    - Dst: dtoa_impl::diyfp
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17125,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17125,1
    - Dst: dtoa_impl::diyfp
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17149,1
    - Dst: dtoa_impl::diyfp
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17151,1
    - Dst: dtoa_impl::diyfp
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17152,1
    - Dst: dtoa_impl::normalize
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17155,1
    - Dst: dtoa_impl::normalize_to
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17158,1
    - Dst: dtoa_impl::normalize
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17160,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - value
    argTypes:
    - FloatType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17161
      start: 17096
    functionDepth: 2
    functionLinenumber: 17096
    functionLinenumberEnd: 17161
    functionName: dtoa_impl::compute_boundaries
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - dtoa_impl::normalize_to
    - dtoa_impl::normalize
    - static_cast<std::uint64_t>
    - dtoa_impl::reinterpret_bits
    - JSON_ASSERT
    - static_cast<int>
    - dtoa_impl::diyfp
    - std::isfinite
    linkageType: ''
    returnType: boundaries
    signature: boundaries compute_boundaries(FloatType value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17379,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17380,1
    - Dst: static_cast<int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17382,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17385,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17386,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17386,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17386,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17388,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17389,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17390,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 1
    argNames:
    - e
    argTypes:
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17393
      start: 17235
    functionDepth: 1
    functionLinenumber: 17235
    functionLinenumberEnd: 17393
    functionName: dtoa_impl::get_cached_power_for_binary_exponent
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - static_cast<int>
    - JSON_ASSERT
    - static_cast<std::size_t>
    - std::array::size
    linkageType: ''
    returnType: cached_power
    signature: cached_power get_cached_power_for_binary_exponent(int e)
  - BBCount: 10
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 39
    argCount: 2
    argNames:
    - n
    - ' pow10'
    argTypes:
    - std::uint32_t
    - std::uint32_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17451
      start: 17399
    functionDepth: 0
    functionLinenumber: 17399
    functionLinenumberEnd: 17451
    functionName: dtoa_impl::find_largest_pow10
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: int
    signature: int find_largest_pow10(const std::uint32_t n, std::uint32_t& pow10)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17456,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17457,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17458,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17459,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17484,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 10
    argCount: 6
    argNames:
    - buf
    - len
    - dist
    - delta
    - rest
    - ten_k
    argTypes:
    - char*
    - int
    - std::uint64_t
    - std::uint64_t
    - std::uint64_t
    - std::uint64_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17488
      start: 17453
    functionDepth: 1
    functionLinenumber: 17453
    functionLinenumberEnd: 17488
    functionName: dtoa_impl::grisu2_round
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - JSON_ASSERT
    linkageType: ''
    returnType: void
    signature: "void grisu2_round(char* buf, int len, std::uint64_t dist, std::uint64_t
      delta,\n                         std::uint64_t rest, std::uint64_t ten_k)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17512,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17513,1
    - Dst: gnupg_sexp_t::add_sub
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17515,1
    - Dst: gnupg_sexp_t::add_sub
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17516,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17527,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17534,1
    - Dst: dtoa_impl::find_largest_pow10
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17537,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17570,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17571,1
    - Dst: dtoa_impl::grisu2_round
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17607,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17657,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17668,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17677,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17678,1
    - Dst: dtoa_impl::grisu2_round
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17712,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 32
    argCount: 6
    argNames:
    - buffer
    - ' length'
    - ' decimal_exponent'
    - M_minus
    - w
    - M_plus
    argTypes:
    - char*
    - int
    - int
    - diyfp
    - diyfp
    - diyfp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17727
      start: 17494
    functionDepth: 2
    functionLinenumber: 17494
    functionLinenumberEnd: 17727
    functionName: dtoa_impl::grisu2_digit_gen
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - dtoa_impl::grisu2_round
    - dtoa_impl::find_largest_pow10
    - JSON_ASSERT
    - static_cast<std::uint32_t>
    - static_cast<char>
    - gnupg_sexp_t::add_sub
    linkageType: ''
    returnType: void
    signature: "void grisu2_digit_gen(char* buffer, int& length, int& decimal_exponent,\n
      \                            diyfp M_minus, diyfp w, diyfp M_plus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17738,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17739,1
    - Dst: dtoa_impl::get_cached_power_for_binary_exponent
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17750,1
    - Dst: dtoa_impl::mul
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17755,1
    - Dst: dtoa_impl::mul
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17756,1
    - Dst: dtoa_impl::mul
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17757,1
    - Dst: dtoa_impl::grisu2_digit_gen
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17785,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 6
    argNames:
    - buf
    - ' len'
    - ' decimal_exponent'
    - m_minus
    - v
    - m_plus
    argTypes:
    - char*
    - int
    - int
    - diyfp
    - diyfp
    - diyfp
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17786
      start: 17735
    functionDepth: 3
    functionLinenumber: 17735
    functionLinenumberEnd: 17786
    functionName: dtoa_impl::grisu2
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - dtoa_impl::mul
    - JSON_ASSERT
    - dtoa_impl::get_cached_power_for_binary_exponent
    - dtoa_impl::grisu2_digit_gen
    linkageType: ''
    returnType: void
    signature: "void grisu2(char* buf, int& len, int& decimal_exponent,\n                   diyfp
      m_minus, diyfp v, diyfp m_plus)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17800,1
    - Dst: std::isfinite
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17800,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17801,1
    - Dst: compute_boundaries
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17820,1
    - Dst: static_cast<double>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17820,1
    - Dst: compute_boundaries
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17822,1
    - Dst: grisu2
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17825,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 4
    argNames:
    - buf
    - ' len'
    - ' decimal_exponent'
    - value
    argTypes:
    - char*
    - int
    - int
    - FloatType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17826
      start: 17794
    functionDepth: 1
    functionLinenumber: 17794
    functionLinenumberEnd: 17826
    functionName: '(1)

      void grisu2(char* buf, int& len, int& decimal_exponent, FloatType value)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - grisu2
    - JSON_ASSERT
    - compute_boundaries
    - static_cast<double>
    - std::isfinite
    linkageType: ''
    returnType: JSON_HEDLEY_NON_NULL
    signature: 'JSON_HEDLEY_NON_NULL (1)

      void grisu2(char* buf, int& len, int& decimal_exponent, FloatType value)'
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17837,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17838,1
    - Dst: static_cast<std::uint32_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17850,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17856,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17860,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17862,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17866,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17868,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17870,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 25
    argCount: 2
    argNames:
    - buf
    - e
    argTypes:
    - char*
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17874
      start: 17835
    functionDepth: 1
    functionLinenumber: 17835
    functionLinenumberEnd: 17874
    functionName: dtoa_impl::append_exponent
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - JSON_ASSERT
    - static_cast<char>
    - static_cast<std::uint32_t>
    linkageType: ''
    returnType: char
    signature: char * append_exponent(char* buf, int e)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17890,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17891,1
    - Dst: std::memset
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17905,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17905,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17905,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17909,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17917,1
    - Dst: std::memmove
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17919,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17919,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17919,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17919,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17921,1
    - Dst: std::memmove
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17929,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17929,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17929,1
    - Dst: std::memset
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17932,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17932,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17933,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17933,1
    - Dst: std::memmove
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17948,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17948,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17950,1
    - Dst: dtoa_impl::append_exponent
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:17954,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 31
    argCount: 5
    argNames:
    - buf
    - len
    - decimal_exponent
    - min_exp
    - max_exp
    argTypes:
    - char*
    - int
    - int
    - int
    - int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 17955
      start: 17887
    functionDepth: 2
    functionLinenumber: 17887
    functionLinenumberEnd: 17955
    functionName: dtoa_impl::format_buffer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - static_cast<size_t>
    - std::memmove
    - dtoa_impl::append_exponent
    - JSON_ASSERT
    - std::memset
    linkageType: ''
    returnType: char
    signature: "char * format_buffer(char* buf, int len, int decimal_exponent,\n                           int
      min_exp, int max_exp)"
  - BBCount: 53
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18077,1
    - Dst: std::localeconv
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18078,1
    - Dst: std::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18079,1
    - Dst: std::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18080,1
    - Dst: m_data::m_value::object::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18125,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18127,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18133,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18137,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18137,1
    - Dst: resize
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18139,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18139,1
    - Dst: m_data::m_value::object::cbegin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18143,1
    - Dst: m_data::m_value::object::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18144,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18146,1
    - Dst: c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18146,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18147,1
    - Dst: dump_escaped
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18148,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18149,1
    - Dst: dump
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18150,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18151,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18155,1
    - Dst: m_data::m_value::object::cend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18155,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18156,1
    - Dst: std::next
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18156,1
    - Dst: m_data::m_value::object::cend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18156,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18157,1
    - Dst: c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18157,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18158,1
    - Dst: dump_escaped
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18159,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18160,1
    - Dst: dump
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18161,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18163,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18164,1
    - Dst: c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18164,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18165,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18169,1
    - Dst: m_data::m_value::object::cbegin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18172,1
    - Dst: m_data::m_value::object::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18173,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18175,1
    - Dst: dump_escaped
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18176,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18177,1
    - Dst: dump
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18178,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18179,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18183,1
    - Dst: m_data::m_value::object::cend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18183,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18184,1
    - Dst: std::next
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18184,1
    - Dst: m_data::m_value::object::cend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18184,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18185,1
    - Dst: dump_escaped
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18186,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18187,1
    - Dst: dump
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18188,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18190,1
    - Dst: m_data::m_value::array::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18198,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18200,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18206,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18210,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18210,1
    - Dst: resize
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18212,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18212,1
    - Dst: m_data::m_value::array::cbegin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18216,1
    - Dst: m_data::m_value::array::cend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18217,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18219,1
    - Dst: c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18219,1
    - Dst: dump
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18220,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18221,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18225,1
    - Dst: m_data::m_value::array::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18225,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18226,1
    - Dst: c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18226,1
    - Dst: dump
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18227,1
    - Dst: m_data::m_value::array::back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18227,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18229,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18230,1
    - Dst: c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18230,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18231,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18235,1
    - Dst: m_data::m_value::array::cbegin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18238,1
    - Dst: m_data::m_value::array::cend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18239,1
    - Dst: dump
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18241,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18242,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18246,1
    - Dst: m_data::m_value::array::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18246,1
    - Dst: dump
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18247,1
    - Dst: m_data::m_value::array::back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18247,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18249,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18257,1
    - Dst: dump_escaped
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18258,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18259,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18267,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18271,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18271,1
    - Dst: resize
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18273,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18273,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18276,1
    - Dst: c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18276,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18278,1
    - Dst: m_data::m_value::binary::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18280,1
    - Dst: m_data::m_value::binary::cbegin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18282,1
    - Dst: m_data::m_value::binary::cend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18283,1
    - Dst: dump_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18285,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18286,1
    - Dst: dump_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18288,1
    - Dst: m_data::m_value::binary::back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18288,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18291,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18292,1
    - Dst: c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18292,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18294,1
    - Dst: m_data::m_value::binary::has_subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18295,1
    - Dst: dump_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18297,1
    - Dst: m_data::m_value::binary::subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18297,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18301,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18303,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18304,1
    - Dst: c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18304,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18305,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18309,1
    - Dst: m_data::m_value::binary::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18311,1
    - Dst: m_data::m_value::binary::cbegin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18313,1
    - Dst: m_data::m_value::binary::cend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18314,1
    - Dst: dump_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18316,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18317,1
    - Dst: dump_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18319,1
    - Dst: m_data::m_value::binary::back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18319,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18322,1
    - Dst: m_data::m_value::binary::has_subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18323,1
    - Dst: dump_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18325,1
    - Dst: m_data::m_value::binary::subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18325,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18326,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18330,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18340,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18344,1
    - Dst: dump_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18351,1
    - Dst: dump_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18357,1
    - Dst: dump_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18363,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18369,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18375,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18380,1
    - Dst: dump_escaped
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18399,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18409,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18411,1
    - Dst: static_cast<void>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18477,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18477,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18478,1
    - Dst: static_cast<void>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18484,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18484,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18485,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18486,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18503,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18505,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18505,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18521,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18521,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18521,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18521,1
    - Dst: hex_bytes
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18521,1
    - Dst: std::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18554,1
    - Dst: std::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18555,1
    - Dst: std::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18556,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18562,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18564,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18564,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18579,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18598,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18603,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18603,1
    - Dst: switch
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18609,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18613,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18613,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18613,1
    - Dst: hex_bytes
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18613,1
    - Dst: static_cast<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18613,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18613,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18619,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18619,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18626,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18626,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18634,1
    CyclomaticComplexity: 52
    EdgeCount: 52
    ICount: 294
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18678
      start: 18025
    functionDepth: 5
    functionLinenumber: 18025
    functionLinenumberEnd: 18678
    functionName: NLOHMANN_JSON_NAMESPACE_BEGIN
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - m_data::m_value::binary::subtype
    - static_cast<std::uint8_t>
    - std::localeconv
    - data
    - m_data::m_value::binary::cbegin
    - write_character
    - m_data::m_value::object::cbegin
    - JSON_ASSERT
    - m_data::m_value::object::cend
    - dump_escaped
    - dump_integer
    - type_error::create
    - size
    - std::move
    - static_cast<std::uint16_t>
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - write_characters
    - back
    - std::to_char_type
    - m_data::m_value::array::empty
    - concat
    - m_data::m_value::array::cbegin
    - m_data::m_value::array::back
    - JSON_HEDLEY_LIKELY
    - m_data::m_value::binary::cend
    - m_data::m_value::binary::has_subtype
    - hex_bytes
    - m_data::m_value::binary::empty
    - m_data::m_value::object::empty
    - resize
    - std::next
    - m_data::m_value::object::size
    - to_string
    - m_data::m_value::array::cend
    - m_data::m_value::binary::back
    - dump
    - static_cast<void>
    - c_str
    - dump_float
    - switch
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_END
    signature: NLOHMANN_JSON_NAMESPACE_END NLOHMANN_JSON_NAMESPACE_BEGIN
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18077,1
    - Dst: std::localeconv
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18078,1
    - Dst: std::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18079,1
    - Dst: std::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18080,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - s
    - ichar
    argTypes:
    - output_adapter_t<char>
    - char
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18084
      start: 18075
    functionDepth: 1
    functionLinenumber: 18075
    functionLinenumberEnd: 18084
    functionName: serializer::serializer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::to_char_type
    - std::localeconv
    - std::move
    linkageType: ''
    returnType: void
    signature: "void serializer(output_adapter_t<char> s, const char ichar,\n               error_handler_t
      error_handler_ = error_handler_t::strict)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18087
      start: 18087
    functionDepth: 0
    functionLinenumber: 18087
    functionLinenumberEnd: 18087
    functionName: serializer::serializer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void serializer(const serializer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18088
      start: 18088
    functionDepth: 0
    functionLinenumber: 18088
    functionLinenumberEnd: 18088
    functionName: '& operator=(const serializer&)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: serializer
    signature: serializer & operator=(const serializer&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18089
      start: 18089
    functionDepth: 0
    functionLinenumber: 18089
    functionLinenumberEnd: 18089
    functionName: serializer::serializer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void serializer(serializer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18090
      start: 18090
    functionDepth: 0
    functionLinenumber: 18090
    functionLinenumberEnd: 18090
    functionName: '& operator=(serializer&&)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: serializer
    signature: serializer & operator=(serializer&&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18091
      start: 18091
    functionDepth: 0
    functionLinenumber: 18091
    functionLinenumberEnd: 18091
    functionName: ~serializer()
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void ~serializer()
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: m_data::m_value::object::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18125,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18127,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18133,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18137,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18137,1
    - Dst: resize
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18139,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18139,1
    - Dst: m_data::m_value::object::cbegin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18143,1
    - Dst: m_data::m_value::object::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18144,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18146,1
    - Dst: c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18146,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18147,1
    - Dst: dump_escaped
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18148,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18149,1
    - Dst: serializer::dump
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18150,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18151,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18155,1
    - Dst: m_data::m_value::object::cend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18155,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18156,1
    - Dst: std::next
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18156,1
    - Dst: m_data::m_value::object::cend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18156,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18157,1
    - Dst: c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18157,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18158,1
    - Dst: dump_escaped
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18159,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18160,1
    - Dst: serializer::dump
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18161,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18163,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18164,1
    - Dst: c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18164,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18165,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18169,1
    - Dst: m_data::m_value::object::cbegin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18172,1
    - Dst: m_data::m_value::object::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18173,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18175,1
    - Dst: dump_escaped
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18176,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18177,1
    - Dst: serializer::dump
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18178,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18179,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18183,1
    - Dst: m_data::m_value::object::cend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18183,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18184,1
    - Dst: std::next
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18184,1
    - Dst: m_data::m_value::object::cend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18184,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18185,1
    - Dst: dump_escaped
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18186,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18187,1
    - Dst: serializer::dump
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18188,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18190,1
    - Dst: m_data::m_value::array::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18198,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18200,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18206,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18210,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18210,1
    - Dst: resize
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18212,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18212,1
    - Dst: m_data::m_value::array::cbegin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18216,1
    - Dst: m_data::m_value::array::cend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18217,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18219,1
    - Dst: c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18219,1
    - Dst: serializer::dump
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18220,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18221,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18225,1
    - Dst: m_data::m_value::array::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18225,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18226,1
    - Dst: c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18226,1
    - Dst: serializer::dump
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18227,1
    - Dst: m_data::m_value::array::back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18227,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18229,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18230,1
    - Dst: c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18230,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18231,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18235,1
    - Dst: m_data::m_value::array::cbegin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18238,1
    - Dst: m_data::m_value::array::cend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18239,1
    - Dst: serializer::dump
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18241,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18242,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18246,1
    - Dst: m_data::m_value::array::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18246,1
    - Dst: serializer::dump
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18247,1
    - Dst: m_data::m_value::array::back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18247,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18249,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18257,1
    - Dst: dump_escaped
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18258,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18259,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18267,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18271,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18271,1
    - Dst: resize
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18273,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18273,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18276,1
    - Dst: c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18276,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18278,1
    - Dst: m_data::m_value::binary::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18280,1
    - Dst: m_data::m_value::binary::cbegin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18282,1
    - Dst: m_data::m_value::binary::cend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18283,1
    - Dst: dump_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18285,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18286,1
    - Dst: dump_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18288,1
    - Dst: m_data::m_value::binary::back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18288,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18291,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18292,1
    - Dst: c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18292,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18294,1
    - Dst: m_data::m_value::binary::has_subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18295,1
    - Dst: dump_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18297,1
    - Dst: m_data::m_value::binary::subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18297,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18301,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18303,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18304,1
    - Dst: c_str
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18304,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18305,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18309,1
    - Dst: m_data::m_value::binary::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18311,1
    - Dst: m_data::m_value::binary::cbegin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18313,1
    - Dst: m_data::m_value::binary::cend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18314,1
    - Dst: dump_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18316,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18317,1
    - Dst: dump_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18319,1
    - Dst: m_data::m_value::binary::back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18319,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18322,1
    - Dst: m_data::m_value::binary::has_subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18323,1
    - Dst: dump_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18325,1
    - Dst: m_data::m_value::binary::subtype
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18325,1
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18326,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18330,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18340,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18344,1
    - Dst: dump_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18351,1
    - Dst: dump_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18357,1
    - Dst: dump_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18363,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18369,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18375,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18380,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 164
    argCount: 4
    argNames:
    - ' val'
    - pretty_print
    - ensure_ascii
    - indent_step
    argTypes:
    - BasicJsonType
    - bool
    - bool
    - unsigned int
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18382
      start: 18115
    functionDepth: 5
    functionLinenumber: 18115
    functionLinenumberEnd: 18382
    functionName: serializer::dump
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - m_data::m_value::binary::subtype
    - m_data::m_value::binary::cbegin
    - write_character
    - m_data::m_value::object::cbegin
    - JSON_ASSERT
    - m_data::m_value::object::cend
    - dump_escaped
    - dump_integer
    - size
    - JSON_HEDLEY_UNLIKELY
    - write_characters
    - m_data::m_value::array::empty
    - m_data::m_value::array::cbegin
    - m_data::m_value::array::back
    - m_data::m_value::binary::cend
    - m_data::m_value::binary::has_subtype
    - m_data::m_value::binary::empty
    - m_data::m_value::object::empty
    - resize
    - serializer::dump
    - m_data::m_value::object::size
    - std::next
    - m_data::m_value::array::cend
    - m_data::m_value::binary::back
    - c_str
    - dump_float
    linkageType: ''
    returnType: void
    signature: "void dump(const BasicJsonType& val,\n              const bool pretty_print,\n
      \             const bool ensure_ascii,\n              const unsigned int indent_step,\n
      \             const unsigned int current_indent = 0)"
  - BBCount: 24
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18477,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18477,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18478,1
    - Dst: static_cast<void>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18484,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18484,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18485,1
    - Dst: static_cast<std::uint16_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18486,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18503,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18505,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18505,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18521,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18521,1
    - Dst: concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18521,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18521,1
    - Dst: hex_bytes
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18521,1
    - Dst: std::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18554,1
    - Dst: std::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18555,1
    - Dst: std::to_char_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18556,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18562,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18564,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18564,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18579,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 107
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18594
      start: 18413
    functionDepth: 4
    functionLinenumber: 18413
    functionLinenumberEnd: 18594
    functionName: serializer::switch
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<std::uint16_t>
    - data
    - JSON_THROW
    - write_characters
    - to_string
    - JSON_ASSERT
    - std::to_char_type
    - static_cast<void>
    - concat
    - type_error::create
    - size
    - hex_bytes
    linkageType: ''
    returnType: void
    signature: void switch (decode(state, codepoint, byte))
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - byte
    argTypes:
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18692
      start: 18685
    functionDepth: 0
    functionLinenumber: 18685
    functionLinenumberEnd: 18692
    functionName: hex_bytes
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached: []
    linkageType: ''
    returnType: std::string
    signature: std::string hex_bytes(std::uint8_t byte)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - NumberType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18699
      start: 18696
    functionDepth: 0
    functionLinenumber: 18696
    functionLinenumberEnd: 18699
    functionName: is_negative_number
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_negative_number(NumberType x)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18705
      start: 18702
    functionDepth: 0
    functionLinenumber: 18702
    functionLinenumberEnd: 18705
    functionName: is_negative_number
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_negative_number(NumberType /*unused*/)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: write_character
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18743,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18748,1
    - Dst: is_negative_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18754,1
    - Dst: remove_sign
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18757,1
    - Dst: static_cast<number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18757,1
    - Dst: count_digits
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18760,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18764,1
    - Dst: count_digits
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18765,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18769,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18769,1
    - Dst: static_cast<unsigned>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18779,1
    - Dst: static_cast<unsigned>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18787,1
    - Dst: static_cast<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18793,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18796,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18796,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 27
    argCount: 1
    argNames:
    - x
    argTypes:
    - NumberType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18797
      start: 18722
    functionDepth: 1
    functionLinenumber: 18722
    functionLinenumberEnd: 18797
    functionName: dump_integer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - static_cast<unsigned>
    - data
    - static_cast<number_integer_t>
    - remove_sign
    - count_digits
    - write_character
    - static_cast<char>
    - write_characters
    - JSON_ASSERT
    - is_negative_number
    - static_cast<number_unsigned_t>
    - begin
    - size
    linkageType: ''
    returnType: void
    signature: void dump_integer(NumberType x)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::isfinite
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18810,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18812,1
    - Dst: dump_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18825,1
    - Dst: std::integral_constant<bool, is_ieee_single_or_double>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18825,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 6
    argCount: 1
    argNames:
    - x
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18826
      start: 18807
    functionDepth: 1
    functionLinenumber: 18807
    functionLinenumberEnd: 18826
    functionName: dump_float
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 3
    functionsReached:
    - dump_float
    - std::integral_constant<bool, is_ieee_single_or_double>
    - std::isfinite
    - write_characters
    linkageType: ''
    returnType: void
    signature: void dump_float(number_float_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18830,1
    - Dst: ::nlohmann::detail::to_chars
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18831,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18831,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18833,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - x
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18834
      start: 18828
    functionDepth: 1
    functionLinenumber: 18828
    functionLinenumberEnd: 18834
    functionName: dump_float
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 3
    functionsReached:
    - ::nlohmann::detail::to_chars
    - static_cast<size_t>
    - data
    - write_characters
    - size
    linkageType: ''
    returnType: void
    signature: void dump_float(number_float_t x, std::true_type /*is_ieee_single_or_double*/)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18843,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18843,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18846,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18848,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18848,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18848,1
    - Dst: std::remove
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18854,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18854,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18854,1
    - Dst: std::fill
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18855,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18855,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18856,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18856,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18857,1
    - Dst: std::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18864,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18864,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18864,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18865,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18871,1
    - Dst: data
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18871,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18871,1
    - Dst: std::none_of
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18875,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18875,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18875,1
    - Dst: write_characters
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18883,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 19
    argCount: 1
    argNames:
    - x
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18885
      start: 18836
    functionDepth: 1
    functionLinenumber: 18836
    functionLinenumberEnd: 18885
    functionName: dump_float
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 3
    functionsReached:
    - std::fill
    - data
    - std::none_of
    - end
    - write_characters
    - JSON_ASSERT
    - static_cast<std::size_t>
    - std::find
    - begin
    - std::remove
    - size
    linkageType: ''
    returnType: void
    signature: void dump_float(number_float_t x, std::false_type /*is_ieee_single_or_double*/)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18930,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18930,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18937,1
    - Dst: static_cast<size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18937,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18938,1
    - Dst: std::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18938,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 3
    argNames:
    - ' state'
    - ' codep'
    - byte
    argTypes:
    - std::uint8_t
    - std::uint32_t
    - std::uint8_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18941
      start: 18908
    functionDepth: 1
    functionLinenumber: 18908
    functionLinenumberEnd: 18941
    functionName: decode
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 14
    functionsReached:
    - JSON_ASSERT
    - static_cast<size_t>
    - std::array::size
    linkageType: ''
    returnType: std::uint8_t
    signature: std::uint8_t decode(std::uint8_t& state, std::uint32_t& codep, const
      std::uint8_t byte) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18952
      start: 18948
    functionDepth: 1
    functionLinenumber: 18948
    functionLinenumberEnd: 18952
    functionName: remove_sign
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - JSON_ASSERT
    linkageType: ''
    returnType: number_unsigned_t
    signature: number_unsigned_t remove_sign(number_unsigned_t x)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18965,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:18966,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - x
    argTypes:
    - number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 18967
      start: 18963
    functionDepth: 1
    functionLinenumber: 18963
    functionLinenumberEnd: 18967
    functionName: remove_sign
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - JSON_ASSERT
    - static_cast<number_unsigned_t>
    linkageType: ''
    returnType: number_unsigned_t
    signature: number_unsigned_t remove_sign(number_integer_t x) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19050,1
    - Dst: Container
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19050,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19050
      start: 19050
    functionDepth: 1
    functionLinenumber: 19050
    functionLinenumberEnd: 19050
    functionName: ordered_map
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - noexcept
    - Container
    linkageType: ''
    returnType: void
    signature: void ordered_map() noexcept(noexcept(Container()))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19051,1
    - Dst: Container
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19051,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' alloc'
    argTypes:
    - Allocator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19051
      start: 19051
    functionDepth: 1
    functionLinenumber: 19051
    functionLinenumberEnd: 19051
    functionName: ordered_map
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - noexcept
    - Container
    linkageType: ''
    returnType: void
    signature: void ordered_map(const Allocator& alloc) noexcept(noexcept(Container(alloc)))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Allocator
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19053,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - It
    - It
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19054
      start: 19053
    functionDepth: 0
    functionLinenumber: 19053
    functionLinenumberEnd: 19054
    functionName: ordered_map
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - Allocator
    linkageType: ''
    returnType: void
    signature: void ordered_map(It first, It last, const Allocator& alloc = Allocator())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: Allocator
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19055,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - init
    argTypes:
    - std::initializer_list<value_type>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19056
      start: 19055
    functionDepth: 0
    functionLinenumber: 19055
    functionLinenumberEnd: 19056
    functionName: ordered_map
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - Allocator
    linkageType: ''
    returnType: void
    signature: void ordered_map(std::initializer_list<value_type> init, const Allocator&
      alloc = Allocator() )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19060,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19060,1
    - Dst: m_compare
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19062,1
    - Dst: emplace_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19067,1
    - Dst: std::forward<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19067,1
    - Dst: std::prev
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19068,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19068,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' key'
    - ' t'
    argTypes:
    - key_type
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19069
      start: 19058
    functionDepth: 1
    functionLinenumber: 19058
    functionLinenumberEnd: 19069
    functionName: emplace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 7
    functionsReached:
    - emplace_back
    - m_compare
    - std::prev
    - end
    - begin
    - std::forward<T>
    linkageType: ''
    returnType: std::pair<iterator, bool>
    signature: std::pair<iterator, bool> emplace(const key_type& key, T&& t)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19075,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19075,1
    - Dst: m_compare
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19077,1
    - Dst: emplace_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19082,1
    - Dst: std::forward<KeyType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19082,1
    - Dst: std::forward<T>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19082,1
    - Dst: std::prev
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19083,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19083,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - ' key'
    - ' t'
    argTypes:
    - KeyType
    - T
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19084
      start: 19073
    functionDepth: 1
    functionLinenumber: 19073
    functionLinenumberEnd: 19084
    functionName: emplace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 7
    functionsReached:
    - std::forward<KeyType>
    - emplace_back
    - m_compare
    - std::prev
    - end
    - begin
    - std::forward<T>
    linkageType: ''
    returnType: std::pair<iterator, bool>
    signature: std::pair<iterator, bool> emplace(KeyType && key, T && t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19088,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19089
      start: 19086
    functionDepth: 2
    functionLinenumber: 19086
    functionLinenumberEnd: 19089
    functionName: '& operator[](const key_type& key)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - emplace
    linkageType: ''
    returnType: T
    signature: T & operator[](const key_type& key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19095,1
    - Dst: std::forward<KeyType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19095,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - KeyType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19096
      start: 19093
    functionDepth: 2
    functionLinenumber: 19093
    functionLinenumberEnd: 19096
    functionName: '& operator[](KeyType && key)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::forward<KeyType>
    - emplace
    linkageType: ''
    returnType: T
    signature: T & operator[](KeyType && key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19100,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19101
      start: 19098
    functionDepth: 1
    functionLinenumber: 19098
    functionLinenumberEnd: 19101
    functionName: '& operator[](const key_type& key) const'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - at
    linkageType: ''
    returnType: T
    signature: T & operator[](const key_type& key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19107,1
    - Dst: std::forward<KeyType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19107,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - KeyType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19108
      start: 19105
    functionDepth: 1
    functionLinenumber: 19105
    functionLinenumberEnd: 19108
    functionName: '& operator[](KeyType && key) const'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - at
    - std::forward<KeyType>
    linkageType: ''
    returnType: T
    signature: T & operator[](KeyType && key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19112,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19112,1
    - Dst: m_compare
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19114,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19120,1
    - Dst: std::out_of_range
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19120,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19121
      start: 19110
    functionDepth: 1
    functionLinenumber: 19110
    functionLinenumberEnd: 19121
    functionName: at
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 362
    functionsReached:
    - std::out_of_range
    - JSON_THROW
    - m_compare
    - end
    - begin
    linkageType: ''
    returnType: T
    signature: T & at(const key_type& key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19127,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19127,1
    - Dst: m_compare
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19129,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19135,1
    - Dst: std::out_of_range
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19135,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - KeyType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19136
      start: 19125
    functionDepth: 1
    functionLinenumber: 19125
    functionLinenumberEnd: 19136
    functionName: at
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 362
    functionsReached:
    - std::out_of_range
    - JSON_THROW
    - m_compare
    - end
    - begin
    linkageType: ''
    returnType: T
    signature: T & at(KeyType && key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19140,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19140,1
    - Dst: m_compare
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19142,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19148,1
    - Dst: std::out_of_range
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19148,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19149
      start: 19138
    functionDepth: 1
    functionLinenumber: 19138
    functionLinenumberEnd: 19149
    functionName: at
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 362
    functionsReached:
    - std::out_of_range
    - JSON_THROW
    - m_compare
    - end
    - begin
    linkageType: ''
    returnType: T
    signature: T & at(const key_type& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19155,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19155,1
    - Dst: m_compare
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19157,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19163,1
    - Dst: std::out_of_range
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19163,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - KeyType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19164
      start: 19153
    functionDepth: 1
    functionLinenumber: 19153
    functionLinenumberEnd: 19164
    functionName: at
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 362
    functionsReached:
    - std::out_of_range
    - JSON_THROW
    - m_compare
    - end
    - begin
    linkageType: ''
    returnType: T
    signature: T & at(KeyType && key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19168,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19168,1
    - Dst: m_compare
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19170,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19173,1
    - Dst: auto::~value_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19175,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19176,1
    - Dst: value_type::value_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19176,1
    - Dst: pop_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19178,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 12
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19183
      start: 19166
    functionDepth: 5
    functionLinenumber: 19166
    functionLinenumberEnd: 19183
    functionName: erase
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 55
    functionsReached:
    - m_compare
    - end
    - auto::~value_type
    - value_type::value_type
    - pop_back
    - begin
    - std::move
    linkageType: ''
    returnType: size_type
    signature: size_type erase(const key_type& key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19189,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19189,1
    - Dst: m_compare
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19191,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19194,1
    - Dst: auto::~value_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19196,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19197,1
    - Dst: value_type::value_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19197,1
    - Dst: pop_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19199,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - KeyType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19204
      start: 19187
    functionDepth: 5
    functionLinenumber: 19187
    functionLinenumberEnd: 19204
    functionName: erase
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 55
    functionsReached:
    - m_compare
    - end
    - auto::~value_type
    - value_type::value_type
    - pop_back
    - begin
    - std::move
    linkageType: ''
    returnType: size_type
    signature: size_type erase(KeyType && key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erase
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19208,1
    - Dst: std::next
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19208,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - pos
    argTypes:
    - iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19209
      start: 19206
    functionDepth: 1
    functionLinenumber: 19206
    functionLinenumberEnd: 19209
    functionName: erase
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 56
    functionsReached:
    - std::next
    - erase
    linkageType: ''
    returnType: iterator
    signature: iterator erase(iterator pos)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: std::distance
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19218,1
    - Dst: std::distance
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19219,1
    - Dst: pgp::pkt::sigsub::List::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19219,1
    - Dst: std::next
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19241,1
    - Dst: sexp::append
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19241,1
    - Dst: auto::~value_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19243,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19244,1
    - Dst: std::next
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19244,1
    - Dst: value_type::value_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19244,1
    - Dst: pgp::mpi::resize
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19252,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19252,1
    - Dst: static_cast<size_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19252,1
    - Dst: pgp::pkt::sigsub::List::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19261,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - iterator
    - iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19262
      start: 19211
    functionDepth: 2
    functionLinenumber: 19211
    functionLinenumberEnd: 19262
    functionName: erase
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 56
    functionsReached:
    - pgp::mpi::resize
    - pgp::pkt::sigsub::List::begin
    - auto::~value_type
    - size
    - std::distance
    - std::next
    - value_type::value_type
    - static_cast<size_type>
    - sexp::append
    - std::move
    linkageType: ''
    returnType: iterator
    signature: iterator erase(iterator first, iterator last)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19266,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19266,1
    - Dst: m_compare
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19268,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19274
      start: 19264
    functionDepth: 1
    functionLinenumber: 19264
    functionLinenumberEnd: 19274
    functionName: count
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 179
    functionsReached:
    - m_compare
    - end
    - begin
    linkageType: ''
    returnType: size_type
    signature: size_type count(const key_type& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19280,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19280,1
    - Dst: m_compare
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19282,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - KeyType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19288
      start: 19278
    functionDepth: 1
    functionLinenumber: 19278
    functionLinenumberEnd: 19288
    functionName: count
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 179
    functionsReached:
    - m_compare
    - end
    - begin
    linkageType: ''
    returnType: size_type
    signature: size_type count(KeyType && key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19292,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19292,1
    - Dst: m_compare
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19294,1
    - Dst: sexp::append
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19300
      start: 19290
    functionDepth: 1
    functionLinenumber: 19290
    functionLinenumberEnd: 19300
    functionName: find
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 58
    functionsReached:
    - m_compare
    - end
    - begin
    - sexp::append
    linkageType: ''
    returnType: iterator
    signature: iterator find(const key_type& key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19306,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19306,1
    - Dst: m_compare
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19308,1
    - Dst: sexp::append
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19313,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 7
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - KeyType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19314
      start: 19304
    functionDepth: 1
    functionLinenumber: 19304
    functionLinenumberEnd: 19314
    functionName: find
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 58
    functionsReached:
    - m_compare
    - end
    - begin
    - sexp::append
    linkageType: ''
    returnType: iterator
    signature: iterator find(KeyType && key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19318,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19318,1
    - Dst: m_compare
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19320,1
    - Dst: sexp::append
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19325,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 7
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19326
      start: 19316
    functionDepth: 1
    functionLinenumber: 19316
    functionLinenumberEnd: 19326
    functionName: find
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 58
    functionsReached:
    - m_compare
    - end
    - begin
    - sexp::append
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator find(const key_type& key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: emplace
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19330,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19330,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19331
      start: 19328
    functionDepth: 2
    functionLinenumber: 19328
    functionLinenumberEnd: 19331
    functionName: insert
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 62
    functionsReached:
    - emplace
    - std::move
    linkageType: ''
    returnType: std::pair<iterator, bool>
    signature: std::pair<iterator, bool> insert( value_type&& value )
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19335,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19335,1
    - Dst: m_compare
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19337,1
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19342,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19343,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19344
      start: 19333
    functionDepth: 2
    functionLinenumber: 19333
    functionLinenumberEnd: 19344
    functionName: insert
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 62
    functionsReached:
    - m_compare
    - end
    - begin
    - push_back
    linkageType: ''
    returnType: std::pair<iterator, bool>
    signature: std::pair<iterator, bool> insert( const value_type& value )
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19355,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - InputIt
    - InputIt
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19357
      start: 19351
    functionDepth: 1
    functionLinenumber: 19351
    functionLinenumberEnd: 19357
    functionName: insert
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 63
    functionsReached:
    - insert
    linkageType: ''
    returnType: void
    signature: void insert(InputIt first, InputIt last)
  - BBCount: 29
    BranchProfiles: []
    Callsites:
    - Dst: ::nlohmann::detail::parser<basic_json, InputAdapterType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19441,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19441,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19442,1
    - Dst: allocator_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19544,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19558,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19558,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19559,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19560,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19582,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19583,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19584,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19585,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19603,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19605,1
    - Dst: rnp::ossl_allocator::deallocate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19687,1
    - Dst: rnp::ossl_allocator::allocate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19689,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19690,1
    - Dst: std::unique_ptr::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19690,1
    - Dst: std::forward<Args>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19690,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19691,1
    - Dst: std::unique_ptr::release
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19692,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19761,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19767,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19773,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19779,1
    - Dst: static_cast<boolean_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19785,1
    - Dst: static_cast<number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19791,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19797,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19803,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19817,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19819,1
    - Dst: other_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19819,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19827,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19830,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19830,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19833,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19836,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19836,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19839,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19842,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19842,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19845,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19848,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19848,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19851,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19854,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19854,1
    - Dst: std::vector::reserve
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19876,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19876,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19877,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19877,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19877,1
    - Dst: std::back_inserter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19877,1
    - Dst: std::vector::reserve
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19881,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19881,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19884,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19884,1
    - Dst: std::vector::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19888,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19891,1
    - Dst: std::vector::back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19891,1
    - Dst: std::vector::pop_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19892,1
    - Dst: basic_json::is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19896,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19898,1
    - Dst: basic_json::m_data::m_value::array::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19898,1
    - Dst: basic_json::m_data::m_value::array::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19898,1
    - Dst: std::back_inserter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19898,1
    - Dst: basic_json::m_data::m_value::array::clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19900,1
    - Dst: basic_json::is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19902,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19906,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19906,1
    - Dst: basic_json::m_data::m_value::object::clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19909,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19922,1
    - Dst: rnp::ossl_allocator::deallocate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19923,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19930,1
    - Dst: rnp::ossl_allocator::deallocate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19931,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19938,1
    - Dst: rnp::ossl_allocator::deallocate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19939,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19946,1
    - Dst: rnp::ossl_allocator::deallocate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19947,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19986,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19987,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19988,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19989,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19995,1
    - Dst: is_structured
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19995,1
    - Dst: std::all_of
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19995,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19995,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19995,1
    - Dst: static_cast<void>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20002,1
    CyclomaticComplexity: 51
    EdgeCount: 51
    ICount: 176
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20003
      start: 19378
    functionDepth: 5
    functionLinenumber: 19378
    functionLinenumberEnd: 20003
    functionName: "NLOHMANN_BASIC_JSON_TPL_DECLARATION\nclass basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-special-member-functions)\n
      \   : public ::nlohmann::detail::json_base_class<CustomBaseClass>"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<number_integer_t>
    - static_cast<boolean_t>
    - is_structured
    - JSON_ASSERT
    - std::unique_ptr::get
    - create
    - vpaths_concat
    - begin
    - std::move
    - size
    - JSON_HEDLEY_UNLIKELY
    - std::vector::empty
    - JSON_THROW
    - std::back_inserter
    - allocator_type
    - basic_json::is_object
    - std::vector::back
    - basic_json::is_array
    - end
    - other_error::create
    - std::vector::pop_back
    - ::nlohmann::detail::parser<basic_json, InputAdapterType>
    - std::forward<Args>
    - to_string
    - static_cast<number_float_t>
    - basic_json::m_data::m_value::array::end
    - basic_json::m_data::m_value::array::clear
    - rnp::ossl_allocator::allocate
    - std::all_of
    - construct
    - std::vector::push_back
    - std::unique_ptr::release
    - basic_json::m_data::m_value::object::clear
    - std::vector::reserve
    - rnp::ossl_allocator::deallocate
    - rnp_buffer_destroy
    - basic_json::m_data::m_value::array::begin
    - static_cast<number_unsigned_t>
    - static_cast<void>
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_BEGIN
    signature: "NLOHMANN_JSON_NAMESPACE_BEGIN NLOHMANN_BASIC_JSON_TPL_DECLARATION\nclass
      basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-special-member-functions)\n
      \   : public ::nlohmann::detail::json_base_class<CustomBaseClass>"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ::nlohmann::detail::parser<basic_json, InputAdapterType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19441,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19441,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19442,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - adapter
    argTypes:
    - InputAdapterType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19443
      start: 19434
    functionDepth: 1
    functionLinenumber: 19434
    functionLinenumberEnd: 19443
    functionName: parser
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - ::nlohmann::detail::parser<basic_json, InputAdapterType>
    - std::move
    linkageType: ''
    returnType: ::nlohmann::detail::parser<basic_json, InputAdapterType>
    signature: "::nlohmann::detail::parser<basic_json, InputAdapterType> parser(\n
      \       InputAdapterType adapter,\n        detail::parser_callback_t<basic_json>cb
      = nullptr,\n        const bool allow_exceptions = true,\n        const bool
      ignore_comments = false\n                                 )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: allocator_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19544,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19545
      start: 19542
    functionDepth: 0
    functionLinenumber: 19542
    functionLinenumberEnd: 19545
    functionName: get_allocator
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - allocator_type
    linkageType: ''
    returnType: allocator_type
    signature: allocator_type get_allocator()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19558,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19558,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19559,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19560,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19582,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19583,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19584,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19585,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19603,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19605,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 26
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19610
      start: 19549
    functionDepth: 4
    functionLinenumber: 19549
    functionLinenumberEnd: 19610
    functionName: meta
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - vpaths_concat
    - to_string
    linkageType: ''
    returnType: JSON_HEDLEY_WARN_UNUSED_RESULT
    signature: JSON_HEDLEY_WARN_UNUSED_RESULT meta()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp::ossl_allocator::deallocate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19687,1
    - Dst: rnp::ossl_allocator::allocate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19689,1
    - Dst: construct
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19690,1
    - Dst: std::unique_ptr::get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19690,1
    - Dst: std::forward<Args>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19690,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19691,1
    - Dst: std::unique_ptr::release
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19692,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19693
      start: 19675
    functionDepth: 2
    functionLinenumber: 19675
    functionLinenumberEnd: 19693
    functionName: create
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 435
    functionsReached:
    - std::unique_ptr::release
    - rnp::ossl_allocator::deallocate
    - std::forward<Args>
    - JSON_ASSERT
    - std::unique_ptr::get
    - rnp::ossl_allocator::allocate
    - construct
    linkageType: ''
    returnType: "private:\n\n    /// helper for exception-safe object creation\n    template<typename
      T, typename... Args>"
    signature: "private:\n\n    /// helper for exception-safe object creation\n    template<typename
      T, typename... Args> * create(Args&& ... args)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19745
      start: 19745
    functionDepth: 0
    functionLinenumber: 19745
    functionLinenumberEnd: 19745
    functionName: json_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_value()
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - boolean_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19747
      start: 19747
    functionDepth: 0
    functionLinenumber: 19747
    functionLinenumberEnd: 19747
    functionName: json_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_value(boolean_t v) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - number_integer_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19749
      start: 19749
    functionDepth: 0
    functionLinenumber: 19749
    functionLinenumberEnd: 19749
    functionName: json_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_value(number_integer_t v) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - number_unsigned_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19751
      start: 19751
    functionDepth: 0
    functionLinenumber: 19751
    functionLinenumberEnd: 19751
    functionName: json_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_value(number_unsigned_t v) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - number_float_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19753
      start: 19753
    functionDepth: 0
    functionLinenumber: 19753
    functionLinenumberEnd: 19753
    functionName: json_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void json_value(number_float_t v) noexcept
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19761,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19767,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19773,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19779,1
    - Dst: static_cast<boolean_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19785,1
    - Dst: static_cast<number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19791,1
    - Dst: static_cast<number_unsigned_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19797,1
    - Dst: static_cast<number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19803,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19817,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19819,1
    - Dst: other_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19819,1
    CyclomaticComplexity: 12
    EdgeCount: 12
    ICount: 47
    argCount: 1
    argNames:
    - t
    argTypes:
    - value_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19824
      start: 19755
    functionDepth: 4
    functionLinenumber: 19755
    functionLinenumberEnd: 19824
    functionName: json_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - static_cast<number_integer_t>
    - static_cast<boolean_t>
    - other_error::create
    - static_cast<number_float_t>
    - static_cast<number_unsigned_t>
    - create
    linkageType: ''
    returnType: void
    signature: void json_value(value_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19827,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19827
      start: 19827
    functionDepth: 2
    functionLinenumber: 19827
    functionLinenumberEnd: 19827
    functionName: json_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - create
    linkageType: ''
    returnType: void
    signature: void json_value(const string_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19830,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19830,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19830
      start: 19830
    functionDepth: 2
    functionLinenumber: 19830
    functionLinenumberEnd: 19830
    functionName: json_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - create
    - std::move
    linkageType: ''
    returnType: void
    signature: void json_value(string_t&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19833,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19833
      start: 19833
    functionDepth: 2
    functionLinenumber: 19833
    functionLinenumberEnd: 19833
    functionName: json_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - create
    linkageType: ''
    returnType: void
    signature: void json_value(const object_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19836,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19836,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19836
      start: 19836
    functionDepth: 2
    functionLinenumber: 19836
    functionLinenumberEnd: 19836
    functionName: json_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - create
    - std::move
    linkageType: ''
    returnType: void
    signature: void json_value(object_t&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19839,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19839
      start: 19839
    functionDepth: 2
    functionLinenumber: 19839
    functionLinenumberEnd: 19839
    functionName: json_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - create
    linkageType: ''
    returnType: void
    signature: void json_value(const array_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19842,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19842,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19842
      start: 19842
    functionDepth: 2
    functionLinenumber: 19842
    functionLinenumberEnd: 19842
    functionName: json_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - create
    - std::move
    linkageType: ''
    returnType: void
    signature: void json_value(array_t&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19845,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename binary_t::container_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19845
      start: 19845
    functionDepth: 2
    functionLinenumber: 19845
    functionLinenumberEnd: 19845
    functionName: json_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - create
    linkageType: ''
    returnType: void
    signature: void json_value(const typename binary_t::container_type& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19848,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19848,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - typename binary_t::container_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19848
      start: 19848
    functionDepth: 2
    functionLinenumber: 19848
    functionLinenumberEnd: 19848
    functionName: json_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - create
    - std::move
    linkageType: ''
    returnType: void
    signature: void json_value(typename binary_t::container_type&& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19851,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - binary_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19851
      start: 19851
    functionDepth: 2
    functionLinenumber: 19851
    functionLinenumberEnd: 19851
    functionName: json_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - create
    linkageType: ''
    returnType: void
    signature: void json_value(const binary_t& value)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19854,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19854,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 1
    argNames:
    - ' value'
    argTypes:
    - binary_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19854
      start: 19854
    functionDepth: 2
    functionLinenumber: 19854
    functionLinenumberEnd: 19854
    functionName: json_value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - create
    - std::move
    linkageType: ''
    returnType: void
    signature: void json_value(binary_t&& value)
  - BBCount: 17
    BranchProfiles: []
    Callsites:
    - Dst: std::vector::reserve
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19876,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19876,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19877,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19877,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19877,1
    - Dst: std::back_inserter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19877,1
    - Dst: std::vector::reserve
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19881,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19881,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19884,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19884,1
    - Dst: std::vector::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19888,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19891,1
    - Dst: std::vector::back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19891,1
    - Dst: std::vector::pop_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19892,1
    - Dst: basic_json::is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19896,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19898,1
    - Dst: basic_json::m_data::m_value::array::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19898,1
    - Dst: basic_json::m_data::m_value::array::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19898,1
    - Dst: std::back_inserter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19898,1
    - Dst: basic_json::m_data::m_value::array::clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19900,1
    - Dst: basic_json::is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19902,1
    - Dst: std::vector::push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19906,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19906,1
    - Dst: basic_json::m_data::m_value::object::clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19909,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19922,1
    - Dst: rnp::ossl_allocator::deallocate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19923,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19930,1
    - Dst: rnp::ossl_allocator::deallocate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19931,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19938,1
    - Dst: rnp::ossl_allocator::deallocate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19939,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19946,1
    - Dst: rnp::ossl_allocator::deallocate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:19947,1
    CyclomaticComplexity: 24
    EdgeCount: 24
    ICount: 57
    argCount: 1
    argNames:
    - t
    argTypes:
    - value_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 19962
      start: 19856
    functionDepth: 5
    functionLinenumber: 19856
    functionLinenumberEnd: 19962
    functionName: destroy
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 377
    functionsReached:
    - basic_json::m_data::m_value::object::clear
    - std::vector::empty
    - std::vector::reserve
    - basic_json::is_array
    - end
    - std::vector::pop_back
    - basic_json::m_data::m_value::array::end
    - basic_json::m_data::m_value::array::clear
    - std::back_inserter
    - rnp_buffer_destroy
    - rnp::ossl_allocator::deallocate
    - basic_json::is_object
    - basic_json::m_data::m_value::array::begin
    - std::vector::back
    - std::move
    - begin
    - size
    - std::vector::push_back
    linkageType: ''
    returnType: void
    signature: void destroy(value_t t)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20000
      start: 20000
    functionDepth: 0
    functionLinenumber: 20000
    functionLinenumberEnd: 20000
    functionName: JSON_CATCH
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JSON_CATCH(...)
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20040
      start: 20005
    functionDepth: 0
    functionLinenumber: 20005
    functionLinenumberEnd: 20040
    functionName: set_parents
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 16
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void set_parents()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<void>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20050,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - it
    - count_set_parents
    argTypes:
    - iterator
    - typename iterator::difference_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20053
      start: 20042
    functionDepth: 0
    functionLinenumber: 20042
    functionLinenumberEnd: 20053
    functionName: set_parents
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 16
    functionsReached:
    - static_cast<void>
    linkageType: ''
    returnType: iterator
    signature: iterator set_parents(iterator it, typename iterator::difference_type
      count_set_parents)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20055,1
    - Dst: static_cast<std::size_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20058,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20061,1
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20061,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20062,1
    - Dst: m_value::array::capacity
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20062,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20065,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20078,1
    - Dst: static_cast<void>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20087,1
    - Dst: static_cast<void>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20088,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 16
    argCount: 1
    argNames:
    - j
    argTypes:
    - reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20091
      start: 20055
    functionDepth: 1
    functionLinenumber: 20055
    functionLinenumberEnd: 20091
    functionName: set_parent
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - static_cast<std::size_t>
    - JSON_ASSERT
    - static_cast<void>
    - set_parents
    - m_value::array::capacity
    - type
    linkageType: ''
    returnType: reference
    signature: reference set_parent(reference j, std::size_t old_capacity = static_cast<std::size_t>(-1))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20120,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - v
    argTypes:
    - value_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20121
      start: 20117
    functionDepth: 0
    functionLinenumber: 20117
    functionLinenumberEnd: 20121
    functionName: basic_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void basic_json(const value_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20129
      start: 20125
    functionDepth: 0
    functionLinenumber: 20125
    functionLinenumberEnd: 20129
    functionName: basic_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void basic_json(std::nullptr_t = nullptr) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20137,1
    - Dst: key_to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20138,1
    - Dst: std::declval<basic_json_t&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20138,1
    - Dst: std::forward<CompatibleType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20139,1
    - Dst: key_to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20141,1
    - Dst: std::forward<CompatibleType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20141,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20142,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20143,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - CompatibleType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20144
      start: 20137
    functionDepth: 14
    functionLinenumber: 20137
    functionLinenumberEnd: 20144
    functionName: basic_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::declval<basic_json_t&>
    - key_to_json
    - noexcept
    - set_parents
    - assert_invariant
    - std::forward<CompatibleType>
    linkageType: ''
    returnType: void
    signature: "void basic_json(CompatibleType && val) noexcept(noexcept( // NOLINT(bugprone-forwarding-reference-overload,bugprone-exception-escape)\n
      \               JSONSerializer<U>::to_json(std::declval<basic_json_t&>(),\n
      \                                          std::forward<CompatibleType>(val))))"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20162,1
    - Dst: key_to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20165,1
    - Dst: template get<other_boolean_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20165,1
    - Dst: key_to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20168,1
    - Dst: template get<other_number_float_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20168,1
    - Dst: key_to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20171,1
    - Dst: template get<other_number_integer_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20171,1
    - Dst: key_to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20174,1
    - Dst: template get<other_number_unsigned_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20174,1
    - Dst: key_to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20177,1
    - Dst: template get_ref<const other_string_t&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20177,1
    - Dst: key_to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20180,1
    - Dst: template get_ref<const other_object_t&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20180,1
    - Dst: key_to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20183,1
    - Dst: template get_ref<const other_array_t&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20183,1
    - Dst: key_to_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20186,1
    - Dst: template get_ref<const other_binary_t&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20186,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20195,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20197,1
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20197,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20198,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20199,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 38
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - BasicJsonType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20200
      start: 20151
    functionDepth: 14
    functionLinenumber: 20151
    functionLinenumberEnd: 20200
    functionName: basic_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - template get_ref<const other_string_t&>
    - template get<other_number_integer_t>
    - template get<other_boolean_t>
    - template get_ref<const other_array_t&>
    - template get_ref<const other_binary_t&>
    - template get<other_number_float_t>
    - JSON_ASSERT
    - template get_ref<const other_object_t&>
    - template get<other_number_unsigned_t>
    - set_parents
    - assert_invariant
    - key_to_json
    - type
    linkageType: ''
    returnType: void
    signature: void basic_json(const BasicJsonType& val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: std::all_of
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20210,1
    - Dst: initializer_list_t::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20210,1
    - Dst: initializer_list_t::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20210,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20216,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20216,1
    - Dst: static_cast<size_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20216,1
    - Dst: is_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20216,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20229,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20231,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20231,1
    - Dst: moved_or_copied
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20243,1
    - Dst: m_value::object::emplace
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20244,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20245,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20246,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20253,1
    - Dst: initializer_list_t::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20253,1
    - Dst: initializer_list_t::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20253,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20256,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20257,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 22
    argCount: 1
    argNames:
    - init
    argTypes:
    - initializer_list_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20258
      start: 20204
    functionDepth: 4
    functionLinenumber: 20204
    functionLinenumberEnd: 20258
    functionName: basic_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - create
    - JSON_THROW
    - is_array
    - moved_or_copied
    - initializer_list_t::begin
    - static_cast<size_type>
    - m_value::object::emplace
    - is_string
    - initializer_list_t::end
    - std::move
    - set_parents
    - std::all_of
    - assert_invariant
    - type_error::create
    - size
    linkageType: ''
    returnType: void
    signature: "void basic_json(initializer_list_t init,\n               bool type_deduction
      = true,\n               value_t manual_type = value_t::array)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20265,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 1
    argNames:
    - ' init'
    argTypes:
    - typename binary_t::container_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20269
      start: 20262
    functionDepth: 1
    functionLinenumber: 20262
    functionLinenumberEnd: 20269
    functionName: binary
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 15
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: JSON_HEDLEY_WARN_UNUSED_RESULT
    signature: JSON_HEDLEY_WARN_UNUSED_RESULT binary(const typename binary_t::container_type&
      init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20276,1
    - Dst: binary_t
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20278,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' init'
    - subtype
    argTypes:
    - typename binary_t::container_type
    - typename binary_t::subtype_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20280
      start: 20273
    functionDepth: 1
    functionLinenumber: 20273
    functionLinenumberEnd: 20280
    functionName: binary
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 15
    functionsReached:
    - basic_json
    - binary_t
    linkageType: ''
    returnType: JSON_HEDLEY_WARN_UNUSED_RESULT
    signature: JSON_HEDLEY_WARN_UNUSED_RESULT binary(const typename binary_t::container_type&
      init, typename binary_t::subtype_type subtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20287,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20289,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - ' init'
    argTypes:
    - typename binary_t::container_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20291
      start: 20284
    functionDepth: 1
    functionLinenumber: 20284
    functionLinenumberEnd: 20291
    functionName: binary
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 15
    functionsReached:
    - basic_json
    - std::move
    linkageType: ''
    returnType: JSON_HEDLEY_WARN_UNUSED_RESULT
    signature: JSON_HEDLEY_WARN_UNUSED_RESULT binary(typename binary_t::container_type&&
      init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20298,1
    - Dst: binary_t
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20300,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20300,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 2
    argNames:
    - ' init'
    - subtype
    argTypes:
    - typename binary_t::container_type
    - typename binary_t::subtype_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20302
      start: 20295
    functionDepth: 1
    functionLinenumber: 20295
    functionLinenumberEnd: 20302
    functionName: binary
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 15
    functionsReached:
    - basic_json
    - binary_t
    - std::move
    linkageType: ''
    returnType: JSON_HEDLEY_WARN_UNUSED_RESULT
    signature: JSON_HEDLEY_WARN_UNUSED_RESULT binary(typename binary_t::container_type&&
      init, typename binary_t::subtype_type subtype)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20309,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20310
      start: 20306
    functionDepth: 1
    functionLinenumber: 20306
    functionLinenumberEnd: 20310
    functionName: array
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 63
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: JSON_HEDLEY_WARN_UNUSED_RESULT
    signature: JSON_HEDLEY_WARN_UNUSED_RESULT array(initializer_list_t init = {})
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20317,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20318
      start: 20314
    functionDepth: 1
    functionLinenumber: 20314
    functionLinenumberEnd: 20318
    functionName: object
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 67
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: JSON_HEDLEY_WARN_UNUSED_RESULT
    signature: JSON_HEDLEY_WARN_UNUSED_RESULT object(initializer_list_t init = {})
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20325,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20326,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - cnt
    - ' val'
    argTypes:
    - size_type
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20327
      start: 20322
    functionDepth: 1
    functionLinenumber: 20322
    functionLinenumberEnd: 20327
    functionName: basic_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 6
    functionsReached:
    - set_parents
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void basic_json(size_type cnt, const basic_json& val)
  - BBCount: 25
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20336,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20337,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20340,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20342,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20342,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20357,1
    - Dst: InputIT::m_it::primitive_iterator::is_begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20357,1
    - Dst: InputIT::m_it::primitive_iterator::is_end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20358,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20360,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20360,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20408,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20415,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20429,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20429,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20429,1
    - Dst: InputIT::m_object::type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20429,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20432,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20433,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 66
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - InputIT
    - InputIT
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20434
      start: 20334
    functionDepth: 4
    functionLinenumber: 20334
    functionLinenumberEnd: 20434
    functionName: basic_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 6
    functionsReached:
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - set_parents
    - InputIT::m_it::primitive_iterator::is_end
    - assert_invariant
    - JSON_ASSERT
    - invalid_iterator::create
    - InputIT::m_object::type_name
    - create
    - vpaths_concat
    - InputIT::m_it::primitive_iterator::is_begin
    linkageType: ''
    returnType: void
    signature: void basic_json(InputIT first, InputIT last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: moved_or_copied
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20443,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ' ref'
    argTypes:
    - JsonRef
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20443
      start: 20443
    functionDepth: 0
    functionLinenumber: 20443
    functionLinenumberEnd: 20443
    functionName: basic_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 6
    functionsReached:
    - moved_or_copied
    linkageType: ''
    returnType: void
    signature: void basic_json(const JsonRef& ref)
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20452,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20510,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20511,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 43
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20512
      start: 20447
    functionDepth: 1
    functionLinenumber: 20447
    functionLinenumberEnd: 20512
    functionName: basic_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 6
    functionsReached:
    - set_parents
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void basic_json(const basic_json& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<json_base_class_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20517,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20518,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20521,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20527,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20528,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20529
      start: 20516
    functionDepth: 1
    functionLinenumber: 20516
    functionLinenumberEnd: 20529
    functionName: basic_json
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 6
    functionsReached:
    - std::forward<json_base_class_t>
    - assert_invariant
    - set_parents
    - std::move
    linkageType: ''
    returnType: void
    signature: void basic_json(basic_json&& other) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json::assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20542,1
    - Dst: swap
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20545,1
    - Dst: swap
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20546,1
    - Dst: json_base_class_t::operator=
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20547,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20547,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20549,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20550,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 1
    argNames:
    - other
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20552
      start: 20533
    functionDepth: 1
    functionLinenumber: 20533
    functionLinenumberEnd: 20552
    functionName: "& operator=(basic_json other) noexcept (\n        std::is_nothrow_move_constructible<value_t>::value&&\n
      \       std::is_nothrow_move_assignable<value_t>::value&&\n        std::is_nothrow_move_constructible<json_value>::value&&\n
      \       std::is_nothrow_move_assignable<json_value>::value&&\n        std::is_nothrow_move_assignable<json_base_class_t>::value\n
      \   )"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - swap
    - json_base_class_t::operator=
    - set_parents
    - assert_invariant
    - std::move
    - basic_json::assert_invariant
    linkageType: ''
    returnType: basic_json
    signature: "basic_json & operator=(basic_json other) noexcept (\n        std::is_nothrow_move_constructible<value_t>::value&&\n
      \       std::is_nothrow_move_assignable<value_t>::value&&\n        std::is_nothrow_move_constructible<json_value>::value&&\n
      \       std::is_nothrow_move_assignable<json_value>::value&&\n        std::is_nothrow_move_assignable<json_base_class_t>::value\n
      \   )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20558,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20559
      start: 20556
    functionDepth: 0
    functionLinenumber: 20556
    functionLinenumberEnd: 20559
    functionName: ~basic_json() noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - assert_invariant
    linkageType: ''
    returnType: void
    signature: void ~basic_json() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20599
      start: 20596
    functionDepth: 0
    functionLinenumber: 20596
    functionLinenumberEnd: 20599
    functionName: type
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 238
    functionsReached: []
    linkageType: ''
    returnType: value_t
    signature: value_t type() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_null
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20605,1
    - Dst: is_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20605,1
    - Dst: is_boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20605,1
    - Dst: is_number
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20605,1
    - Dst: is_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20605,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20606
      start: 20603
    functionDepth: 1
    functionLinenumber: 20603
    functionLinenumberEnd: 20606
    functionName: is_primitive
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - is_binary
    - is_null
    - is_boolean
    - is_string
    - is_number
    linkageType: ''
    returnType: bool
    signature: bool is_primitive() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20612,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20612,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20613
      start: 20610
    functionDepth: 1
    functionLinenumber: 20610
    functionLinenumberEnd: 20613
    functionName: is_structured
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - is_array
    - is_object
    linkageType: ''
    returnType: bool
    signature: bool is_structured() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20620
      start: 20617
    functionDepth: 0
    functionLinenumber: 20617
    functionLinenumberEnd: 20620
    functionName: is_null
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 23
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_null() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20627
      start: 20624
    functionDepth: 0
    functionLinenumber: 20624
    functionLinenumberEnd: 20627
    functionName: is_boolean
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_boolean() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20633,1
    - Dst: is_number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20633,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20634
      start: 20631
    functionDepth: 1
    functionLinenumber: 20631
    functionLinenumberEnd: 20634
    functionName: is_number
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 5
    functionsReached:
    - is_number_float
    - is_number_integer
    linkageType: ''
    returnType: bool
    signature: bool is_number() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20641
      start: 20638
    functionDepth: 0
    functionLinenumber: 20638
    functionLinenumberEnd: 20641
    functionName: is_number_integer
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 7
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_number_integer() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20648
      start: 20645
    functionDepth: 0
    functionLinenumber: 20645
    functionLinenumberEnd: 20648
    functionName: is_number_unsigned
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_number_unsigned() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20655
      start: 20652
    functionDepth: 0
    functionLinenumber: 20652
    functionLinenumberEnd: 20655
    functionName: is_number_float
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_number_float() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20662
      start: 20659
    functionDepth: 0
    functionLinenumber: 20659
    functionLinenumberEnd: 20662
    functionName: is_object
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 24
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_object() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20669
      start: 20666
    functionDepth: 0
    functionLinenumber: 20666
    functionLinenumberEnd: 20669
    functionName: is_array
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 34
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_array() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20676
      start: 20673
    functionDepth: 0
    functionLinenumber: 20673
    functionLinenumberEnd: 20676
    functionName: is_string
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 17
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_string() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20683
      start: 20680
    functionDepth: 0
    functionLinenumber: 20680
    functionLinenumberEnd: 20683
    functionName: is_binary
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_binary() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20690
      start: 20687
    functionDepth: 0
    functionLinenumber: 20687
    functionLinenumberEnd: 20690
    functionName: is_discarded
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 3
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: bool is_discarded() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20697
      start: 20694
    functionDepth: 0
    functionLinenumber: 20694
    functionLinenumberEnd: 20697
    functionName: operator value_t() const noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void operator value_t() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20720,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20721
      start: 20718
    functionDepth: 1
    functionLinenumber: 20718
    functionLinenumberEnd: 20721
    functionName: get_impl_ptr
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - is_object
    linkageType: ''
    returnType: object_t
    signature: object_t * get_impl_ptr(object_t* /*unused*/) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20726,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20727
      start: 20724
    functionDepth: 1
    functionLinenumber: 20724
    functionLinenumberEnd: 20727
    functionName: get_impl_ptr
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - is_object
    linkageType: ''
    returnType: object_t
    signature: object_t * get_impl_ptr(const object_t* /*unused*/) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20732,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20733
      start: 20730
    functionDepth: 1
    functionLinenumber: 20730
    functionLinenumberEnd: 20733
    functionName: get_impl_ptr
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - is_array
    linkageType: ''
    returnType: array_t
    signature: array_t * get_impl_ptr(array_t* /*unused*/) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20738,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20739
      start: 20736
    functionDepth: 1
    functionLinenumber: 20736
    functionLinenumberEnd: 20739
    functionName: get_impl_ptr
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - is_array
    linkageType: ''
    returnType: array_t
    signature: array_t * get_impl_ptr(const array_t* /*unused*/) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20744,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20745
      start: 20742
    functionDepth: 1
    functionLinenumber: 20742
    functionLinenumberEnd: 20745
    functionName: get_impl_ptr
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - is_string
    linkageType: ''
    returnType: string_t
    signature: string_t * get_impl_ptr(string_t* /*unused*/) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20750,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20751
      start: 20748
    functionDepth: 1
    functionLinenumber: 20748
    functionLinenumberEnd: 20751
    functionName: get_impl_ptr
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - is_string
    linkageType: ''
    returnType: string_t
    signature: string_t * get_impl_ptr(const string_t* /*unused*/) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20756,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20757
      start: 20754
    functionDepth: 1
    functionLinenumber: 20754
    functionLinenumberEnd: 20757
    functionName: get_impl_ptr
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - is_boolean
    linkageType: ''
    returnType: boolean_t
    signature: boolean_t * get_impl_ptr(boolean_t* /*unused*/) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_boolean
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20762,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20763
      start: 20760
    functionDepth: 1
    functionLinenumber: 20760
    functionLinenumberEnd: 20763
    functionName: get_impl_ptr
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - is_boolean
    linkageType: ''
    returnType: boolean_t
    signature: boolean_t * get_impl_ptr(const boolean_t* /*unused*/) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20768,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20769
      start: 20766
    functionDepth: 1
    functionLinenumber: 20766
    functionLinenumberEnd: 20769
    functionName: get_impl_ptr
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - is_number_integer
    linkageType: ''
    returnType: number_integer_t
    signature: number_integer_t * get_impl_ptr(number_integer_t* /*unused*/) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_number_integer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20774,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20775
      start: 20772
    functionDepth: 1
    functionLinenumber: 20772
    functionLinenumberEnd: 20775
    functionName: get_impl_ptr
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - is_number_integer
    linkageType: ''
    returnType: number_integer_t
    signature: number_integer_t * get_impl_ptr(const number_integer_t* /*unused*/)
      const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20780,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20781
      start: 20778
    functionDepth: 1
    functionLinenumber: 20778
    functionLinenumberEnd: 20781
    functionName: get_impl_ptr
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - is_number_unsigned
    linkageType: ''
    returnType: number_unsigned_t
    signature: number_unsigned_t * get_impl_ptr(number_unsigned_t* /*unused*/) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_number_unsigned
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20786,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20787
      start: 20784
    functionDepth: 1
    functionLinenumber: 20784
    functionLinenumberEnd: 20787
    functionName: get_impl_ptr
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - is_number_unsigned
    linkageType: ''
    returnType: number_unsigned_t
    signature: number_unsigned_t * get_impl_ptr(const number_unsigned_t* /*unused*/)
      const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20792,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20793
      start: 20790
    functionDepth: 1
    functionLinenumber: 20790
    functionLinenumberEnd: 20793
    functionName: get_impl_ptr
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - is_number_float
    linkageType: ''
    returnType: number_float_t
    signature: number_float_t * get_impl_ptr(number_float_t* /*unused*/) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_number_float
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20798,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20799
      start: 20796
    functionDepth: 1
    functionLinenumber: 20796
    functionLinenumberEnd: 20799
    functionName: get_impl_ptr
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - is_number_float
    linkageType: ''
    returnType: number_float_t
    signature: number_float_t * get_impl_ptr(const number_float_t* /*unused*/) const
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20804,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20805
      start: 20802
    functionDepth: 1
    functionLinenumber: 20802
    functionLinenumberEnd: 20805
    functionName: get_impl_ptr
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - is_binary
    linkageType: ''
    returnType: binary_t
    signature: binary_t * get_impl_ptr(binary_t* /*unused*/) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20810,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20811
      start: 20808
    functionDepth: 1
    functionLinenumber: 20808
    functionLinenumberEnd: 20811
    functionName: get_impl_ptr
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - is_binary
    linkageType: ''
    returnType: binary_t
    signature: binary_t * get_impl_ptr(const binary_t* /*unused*/) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: template get_ptr<typename std::add_pointer<ReferenceType>::type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20828,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20830,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20835,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20835,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20835,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' obj'
    argTypes:
    - ThisType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20836
      start: 20825
    functionDepth: 4
    functionLinenumber: 20825
    functionLinenumberEnd: 20836
    functionName: get_ref_impl
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - type_name
    - JSON_THROW
    - template get_ptr<typename std::add_pointer<ReferenceType>::type>
    - vpaths_concat
    - type_error::create
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: ReferenceType
    signature: ReferenceType get_ref_impl(ThisType& obj)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::declval<const basic_json_t&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20858,1
    - Dst: std::declval<PointerType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20858,1
    - Dst: get_impl_ptr
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20861,1
    - Dst: static_cast<PointerType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20861,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20862
      start: 20858
    functionDepth: 2
    functionLinenumber: 20858
    functionLinenumberEnd: 20862
    functionName: get_ptr
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - std::declval<const basic_json_t&>
    - std::declval<PointerType>
    - get_impl_ptr
    - static_cast<PointerType>
    linkageType: ''
    returnType: auto
    signature: auto get_ptr() const noexcept -> decltype(std::declval<const basic_json_t&>().get_impl_ptr(std::declval<PointerType>()))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ValueType
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20911,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20912,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20914
      start: 20908
    functionDepth: 5
    functionLinenumber: 20908
    functionLinenumberEnd: 20914
    functionName: noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 21
    functionsReached:
    - from_json
    - ValueType
    linkageType: ''
    returnType: void
    signature: "void noexcept(noexcept(\n                JSONSerializer<ValueType>::from_json(std::declval<const
      basic_json_t&>(), std::declval<ValueType&>())))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20950,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20951,1
    - Dst: std::declval<const basic_json_t&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20951,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:20953,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20954
      start: 20950
    functionDepth: 6
    functionLinenumber: 20950
    functionLinenumberEnd: 20954
    functionName: get_impl
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::declval<const basic_json_t&>
    - noexcept
    - from_json
    linkageType: ''
    returnType: ValueType
    signature: "ValueType get_impl(detail::priority_tag<1> /*unused*/) const noexcept(noexcept(\n
      \               JSONSerializer<ValueType>::from_json(std::declval<const basic_json_t&>())))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 20978
      start: 20975
    functionDepth: 0
    functionLinenumber: 20975
    functionLinenumberEnd: 20978
    functionName: get_impl
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: BasicJsonType
    signature: BasicJsonType get_impl(detail::priority_tag<2> /*unused*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21001
      start: 20998
    functionDepth: 0
    functionLinenumber: 20998
    functionLinenumberEnd: 21001
    functionName: get_impl
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: basic_json
    signature: basic_json get_impl(detail::priority_tag<3> /*unused*/) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::declval<const basic_json_t&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21012,1
    - Dst: get_ptr
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21015,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21016
      start: 21011
    functionDepth: 3
    functionLinenumber: 21011
    functionLinenumberEnd: 21016
    functionName: get_impl
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::declval<const basic_json_t&>
    - get_ptr
    linkageType: ''
    returnType: auto
    signature: "auto get_impl(detail::priority_tag<4> /*unused*/) const noexcept\n
      \   -> decltype(std::declval<const basic_json_t&>().template get_ptr<PointerType>())"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::declval<basic_json_t&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21087,1
    - Dst: get_ptr
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21090,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21091
      start: 21087
    functionDepth: 3
    functionLinenumber: 21087
    functionLinenumberEnd: 21091
    functionName: get
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 665
    functionsReached:
    - std::declval<basic_json_t&>
    - get_ptr
    linkageType: ''
    returnType: auto
    signature: auto get() noexcept -> decltype(std::declval<basic_json_t&>().template
      get_ptr<PointerType>())
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21100,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21101,1
    - Dst: std::declval<const basic_json_t&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21101,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21103,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - ValueType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21105
      start: 21100
    functionDepth: 6
    functionLinenumber: 21100
    functionLinenumberEnd: 21105
    functionName: get_to
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::declval<const basic_json_t&>
    - noexcept
    - from_json
    linkageType: ''
    returnType: ValueType
    signature: "ValueType & get_to(ValueType& v) const noexcept(noexcept(\n                JSONSerializer<ValueType>::from_json(std::declval<const
      basic_json_t&>(), v)))"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' v'
    argTypes:
    - ValueType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21117
      start: 21113
    functionDepth: 0
    functionLinenumber: 21113
    functionLinenumberEnd: 21117
    functionName: get_to
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: ValueType
    signature: ValueType & get_to(ValueType& v) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: noexcept
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21125,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21125,1
    - Dst: std::declval<const basic_json_t&>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21126,1
    - Dst: from_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21128,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - (v)
    argTypes:
    - T[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21130
      start: 21124
    functionDepth: 6
    functionLinenumber: 21124
    functionLinenumberEnd: 21130
    functionName: get_to
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::declval<const basic_json_t&>
    - noexcept
    - from_json
    linkageType: ''
    returnType: Array
    signature: "Array get_to(T (&v)[N]) const // NOLINT(cppcoreguidelines-avoid-c-arrays,hicpp-avoid-c-arrays,modernize-avoid-c-arrays)\n
      \   noexcept(noexcept(JSONSerializer<Array>::from_json(\n                          std::declval<const
      basic_json_t&>(), v)))"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_ref_impl
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21139,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21140
      start: 21136
    functionDepth: 5
    functionLinenumber: 21136
    functionLinenumberEnd: 21140
    functionName: get_ref
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 19
    functionsReached:
    - get_ref_impl
    linkageType: ''
    returnType: ReferenceType
    signature: ReferenceType get_ref()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_ref_impl
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21151
      start: 21147
    functionDepth: 5
    functionLinenumber: 21147
    functionLinenumberEnd: 21151
    functionName: get_ref
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 19
    functionsReached:
    - get_ref_impl
    linkageType: ''
    returnType: ReferenceType
    signature: ReferenceType get_ref() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21208,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21210,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21210,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21210,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21210,1
    - Dst: get_ptr
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21213,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21214
      start: 21206
    functionDepth: 4
    functionLinenumber: 21206
    functionLinenumberEnd: 21214
    functionName: get_binary
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 8
    functionsReached:
    - type_name
    - is_binary
    - JSON_THROW
    - get_ptr
    - vpaths_concat
    - type_error::create
    linkageType: ''
    returnType: binary_t
    signature: binary_t & get_binary()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21220,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21222,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21222,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21222,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21222,1
    - Dst: get_ptr
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21225,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21226
      start: 21218
    functionDepth: 4
    functionLinenumber: 21218
    functionLinenumberEnd: 21226
    functionName: get_binary
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 8
    functionsReached:
    - type_name
    - is_binary
    - JSON_THROW
    - get_ptr
    - vpaths_concat
    - type_error::create
    linkageType: ''
    returnType: binary_t
    signature: binary_t & get_binary() const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21243,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21243,1
    - Dst: set_parent
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21247,1
    - Dst: m_value::array::at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21247,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21252,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21252,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21252,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21252,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21254
      start: 21240
    functionDepth: 4
    functionLinenumber: 21240
    functionLinenumberEnd: 21254
    functionName: at
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 372
    functionsReached:
    - JSON_THROW
    - is_array
    - to_string
    - m_value::array::at
    - set_parent
    - vpaths_concat
    - JSON_HEDLEY_LIKELY
    - out_of_range::create
    linkageType: ''
    returnType: reference
    signature: reference at(size_type idx)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21252,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21252,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21252,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21252,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21253
      start: 21249
    functionDepth: 4
    functionLinenumber: 21249
    functionLinenumberEnd: 21253
    functionName: JSON_CATCH
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - to_string
    - vpaths_concat
    - JSON_THROW
    - out_of_range::create
    linkageType: ''
    returnType: void
    signature: void JSON_CATCH (std::out_of_range&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21266,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21266,1
    - Dst: m_value::array::at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21270,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21275,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21275,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21275,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21275,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21277
      start: 21263
    functionDepth: 4
    functionLinenumber: 21263
    functionLinenumberEnd: 21277
    functionName: at
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 374
    functionsReached:
    - JSON_THROW
    - is_array
    - to_string
    - m_value::array::at
    - vpaths_concat
    - JSON_HEDLEY_LIKELY
    - out_of_range::create
    linkageType: ''
    returnType: const_reference
    signature: const_reference at(size_type idx) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21275,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21275,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21275,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21276
      start: 21272
    functionDepth: 4
    functionLinenumber: 21272
    functionLinenumberEnd: 21276
    functionName: JSON_CATCH
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - to_string
    - vpaths_concat
    - JSON_THROW
    - out_of_range::create
    linkageType: ''
    returnType: void
    signature: void JSON_CATCH (std::out_of_range&)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21289,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21289,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21291,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21291,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21291,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21291,1
    - Dst: m_value::object::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21294,1
    - Dst: m_value::object::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21295,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21297,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21297,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21297,1
    - Dst: set_parent
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21299,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - typename object_t::key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21300
      start: 21286
    functionDepth: 4
    functionLinenumber: 21286
    functionLinenumberEnd: 21300
    functionName: at
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 376
    functionsReached:
    - m_value::object::end
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - m_value::object::find
    - is_object
    - set_parent
    - vpaths_concat
    - type_error::create
    - out_of_range::create
    linkageType: ''
    returnType: reference
    signature: reference at(const typename object_t::key_type& key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21309,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21309,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21311,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21311,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21311,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21311,1
    - Dst: m_value::object::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21314,1
    - Dst: std::forward<KeyType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21314,1
    - Dst: m_value::object::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21315,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21317,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21317,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21317,1
    - Dst: string_t
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21317,1
    - Dst: std::forward<KeyType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21317,1
    - Dst: set_parent
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21319,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - KeyType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21320
      start: 21306
    functionDepth: 4
    functionLinenumber: 21306
    functionLinenumberEnd: 21320
    functionName: at
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 377
    functionsReached:
    - m_value::object::end
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - std::forward<KeyType>
    - JSON_THROW
    - m_value::object::find
    - string_t
    - is_object
    - set_parent
    - vpaths_concat
    - type_error::create
    - out_of_range::create
    linkageType: ''
    returnType: reference
    signature: reference at(KeyType && key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21327,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21327,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21329,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21329,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21329,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21329,1
    - Dst: m_value::object::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21332,1
    - Dst: m_value::object::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21333,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21335,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21335,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21335,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - typename object_t::key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21338
      start: 21324
    functionDepth: 4
    functionLinenumber: 21324
    functionLinenumberEnd: 21338
    functionName: at
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 378
    functionsReached:
    - m_value::object::end
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - m_value::object::find
    - is_object
    - vpaths_concat
    - type_error::create
    - out_of_range::create
    linkageType: ''
    returnType: const_reference
    signature: const_reference at(const typename object_t::key_type& key) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21347,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21347,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21349,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21349,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21349,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21349,1
    - Dst: m_value::object::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21352,1
    - Dst: std::forward<KeyType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21352,1
    - Dst: m_value::object::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21353,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21355,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21355,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21355,1
    - Dst: string_t
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21355,1
    - Dst: std::forward<KeyType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21355,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - KeyType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21358
      start: 21344
    functionDepth: 4
    functionLinenumber: 21344
    functionLinenumberEnd: 21358
    functionName: at
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 379
    functionsReached:
    - m_value::object::end
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - std::forward<KeyType>
    - JSON_THROW
    - m_value::object::find
    - string_t
    - is_object
    - vpaths_concat
    - type_error::create
    - out_of_range::create
    linkageType: ''
    returnType: const_reference
    signature: const_reference at(KeyType && key) const
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: is_null
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21365,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21368,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21369,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21373,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21373,1
    - Dst: m_value::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21376,1
    - Dst: m_value::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21380,1
    - Dst: m_value::array::capacity
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21381,1
    - Dst: m_value::array::resize
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21383,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21386,1
    - Dst: m_value::array::capacity
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21386,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21389,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21394,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21394,1
    - Dst: static_cast<typename iterator::difference_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21394,1
    - Dst: static_cast<typename iterator::difference_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21394,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21397,1
    - Dst: m_value::array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21400,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21403,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21403,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21403,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21403,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 19
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21404
      start: 21362
    functionDepth: 4
    functionLinenumber: 21362
    functionLinenumberEnd: 21404
    functionName: operator[](size_type idx)
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - static_cast<typename iterator::difference_type>
    - m_value::array::capacity
    - JSON_HEDLEY_UNLIKELY
    - is_null
    - m_value::array::resize
    - m_value::array
    - JSON_THROW
    - type_name
    - is_array
    - vpaths_concat
    - type_error::create
    - set_parents
    - m_value::array::size
    - create
    - assert_invariant
    - begin
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: reference
    signature: reference operator[](size_type idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21411,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21411,1
    - Dst: m_value::array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21413,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21416,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21416,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21416,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21416,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21417
      start: 21408
    functionDepth: 4
    functionLinenumber: 21408
    functionLinenumberEnd: 21417
    functionName: operator[](size_type idx) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - type_name
    - JSON_THROW
    - m_value::array
    - is_array
    - vpaths_concat
    - type_error::create
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: const_reference
    signature: const_reference operator[](size_type idx) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_null
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21424,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21427,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21428,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21432,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21432,1
    - Dst: m_value::object::emplace
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21434,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21434,1
    - Dst: set_parent
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21435,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21438,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21438,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21438,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21438,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 1
    argNames:
    - key
    argTypes:
    - typename object_t::key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21439
      start: 21421
    functionDepth: 4
    functionLinenumber: 21421
    functionLinenumberEnd: 21439
    functionName: operator[](typename object_t::key_type key)
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - set_parent
    - type_name
    - is_null
    - JSON_THROW
    - vpaths_concat
    - is_object
    - m_value::object::emplace
    - std::move
    - create
    - assert_invariant
    - type_error::create
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: reference
    signature: reference operator[](typename object_t::key_type key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21446,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21446,1
    - Dst: m_value::object::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21448,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21449,1
    - Dst: m_value::object::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21449,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21453,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21453,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21453,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21453,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - typename object_t::key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21454
      start: 21443
    functionDepth: 4
    functionLinenumber: 21443
    functionLinenumberEnd: 21454
    functionName: operator[](const typename object_t::key_type& key) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - m_value::object::end
    - type_name
    - JSON_THROW
    - m_value::object::find
    - is_object
    - JSON_ASSERT
    - vpaths_concat
    - type_error::create
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: const_reference
    signature: const_reference operator[](const typename object_t::key_type& key)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flags_to_key_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21461,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21462
      start: 21459
    functionDepth: 2
    functionLinenumber: 21459
    functionLinenumberEnd: 21462
    functionName: operator[](T* key)
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - flags_to_key_type
    linkageType: ''
    returnType: reference
    signature: reference operator[](T* key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flags_to_key_type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21467,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - key
    argTypes:
    - T*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21468
      start: 21465
    functionDepth: 2
    functionLinenumber: 21465
    functionLinenumberEnd: 21468
    functionName: operator[](T* key) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - flags_to_key_type
    linkageType: ''
    returnType: const_reference
    signature: const_reference operator[](T* key) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: is_null
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21477,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21480,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21481,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21485,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21485,1
    - Dst: m_value::object::emplace
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21487,1
    - Dst: std::forward<KeyType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21487,1
    - Dst: set_parent
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21488,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21491,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21491,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21491,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21491,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - KeyType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21492
      start: 21474
    functionDepth: 4
    functionLinenumber: 21474
    functionLinenumberEnd: 21492
    functionName: operator[](KeyType && key)
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - set_parent
    - type_name
    - std::forward<KeyType>
    - is_null
    - JSON_THROW
    - vpaths_concat
    - is_object
    - m_value::object::emplace
    - create
    - assert_invariant
    - type_error::create
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: reference
    signature: reference operator[](KeyType && key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21501,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21501,1
    - Dst: m_value::object::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21503,1
    - Dst: std::forward<KeyType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21503,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21504,1
    - Dst: m_value::object::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21504,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21508,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21508,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21508,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21508,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - KeyType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21509
      start: 21498
    functionDepth: 4
    functionLinenumber: 21498
    functionLinenumberEnd: 21509
    functionName: operator[](KeyType && key) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - m_value::object::end
    - type_name
    - std::forward<KeyType>
    - JSON_THROW
    - m_value::object::find
    - is_object
    - JSON_ASSERT
    - vpaths_concat
    - type_error::create
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: const_reference
    signature: const_reference operator[](KeyType && key) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21531,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21531,1
    - Dst: find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21534,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21535,1
    - Dst: auto::template get<ValueType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21537,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21543,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21543,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21543,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21543,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - ' key'
    - ' default_value'
    argTypes:
    - typename object_t::key_type
    - ValueType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21544
      start: 21521
    functionDepth: 4
    functionLinenumber: 21521
    functionLinenumberEnd: 21544
    functionName: value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 101
    functionsReached:
    - type_name
    - auto::template get<ValueType>
    - JSON_THROW
    - end
    - is_object
    - find
    - vpaths_concat
    - type_error::create
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: "public:\n    /// @brief access specified object element with default
      value\n    /// @sa https://json.nlohmann.me/api/basic_json/value/\n    template
      < class ValueType, detail::enable_if_t <\n                   !detail::is_transparent<object_comparator_t>::value\n
      \                  && detail::is_getable<basic_json_t, ValueType>::value\n                   &&
      !std::is_same<value_t, detail::uncvref_t<ValueType>>::value, int > = 0 >"
    signature: "public:\n    /// @brief access specified object element with default
      value\n    /// @sa https://json.nlohmann.me/api/basic_json/value/\n    template
      < class ValueType, detail::enable_if_t <\n                   !detail::is_transparent<object_comparator_t>::value\n
      \                  && detail::is_getable<basic_json_t, ValueType>::value\n                   &&
      !std::is_same<value_t, detail::uncvref_t<ValueType>>::value, int > = 0 > value(const
      typename object_t::key_type& key, const ValueType& default_value) const"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21556,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21556,1
    - Dst: find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21559,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21560,1
    - Dst: auto::template get<ReturnType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21562,1
    - Dst: std::forward<ValueType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21565,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21568,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21568,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21568,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21568,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' key'
    - ' default_value'
    argTypes:
    - typename object_t::key_type
    - ValueType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21569
      start: 21553
    functionDepth: 4
    functionLinenumber: 21553
    functionLinenumberEnd: 21569
    functionName: value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 101
    functionsReached:
    - std::forward<ValueType>
    - type_name
    - JSON_THROW
    - end
    - is_object
    - find
    - vpaths_concat
    - type_error::create
    - auto::template get<ReturnType>
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: ReturnType
    signature: ReturnType value(const typename object_t::key_type& key, ValueType
      && default_value) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21582,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21582,1
    - Dst: find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21585,1
    - Dst: std::forward<KeyType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21585,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21586,1
    - Dst: auto::template get<ValueType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21588,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21594,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21594,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21594,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21594,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 8
    argCount: 2
    argNames:
    - ' key'
    - ' default_value'
    argTypes:
    - KeyType
    - ValueType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21595
      start: 21579
    functionDepth: 4
    functionLinenumber: 21579
    functionLinenumberEnd: 21595
    functionName: value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 101
    functionsReached:
    - type_name
    - std::forward<KeyType>
    - auto::template get<ValueType>
    - JSON_THROW
    - end
    - is_object
    - find
    - vpaths_concat
    - type_error::create
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: ValueType
    signature: ValueType value(KeyType && key, const ValueType& default_value) const
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21609,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21609,1
    - Dst: find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21612,1
    - Dst: std::forward<KeyType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21612,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21613,1
    - Dst: auto::template get<ReturnType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21615,1
    - Dst: std::forward<ValueType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21618,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21621,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21621,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21621,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21621,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 8
    argCount: 2
    argNames:
    - ' key'
    - ' default_value'
    argTypes:
    - KeyType
    - ValueType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21622
      start: 21606
    functionDepth: 4
    functionLinenumber: 21606
    functionLinenumberEnd: 21622
    functionName: value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 101
    functionsReached:
    - std::forward<ValueType>
    - std::forward<KeyType>
    - type_name
    - JSON_THROW
    - end
    - is_object
    - find
    - vpaths_concat
    - type_error::create
    - auto::template get<ReturnType>
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: ReturnType
    signature: ReturnType value(KeyType && key, ValueType && default_value) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21632,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21632,1
    - Dst: get_checked
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21637,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - ' ptr'
    - ' default_value'
    argTypes:
    - json_pointer
    - ValueType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21643
      start: 21629
    functionDepth: 5
    functionLinenumber: 21629
    functionLinenumberEnd: 21643
    functionName: value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 101
    functionsReached:
    - get_checked
    - is_object
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: ValueType
    signature: ValueType value(const json_pointer& ptr, const ValueType& default_value)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21642
      start: 21639
    functionDepth: 0
    functionLinenumber: 21639
    functionLinenumberEnd: 21642
    functionName: JSON_INTERNAL_CATCH
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void JSON_INTERNAL_CATCH (out_of_range&)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21657,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21657,1
    - Dst: get_checked
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21662,1
    - Dst: std::forward<ValueType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21666,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 2
    argNames:
    - ' ptr'
    - ' default_value'
    argTypes:
    - json_pointer
    - ValueType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21668
      start: 21654
    functionDepth: 5
    functionLinenumber: 21654
    functionLinenumberEnd: 21668
    functionName: value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 101
    functionsReached:
    - std::forward<ValueType>
    - get_checked
    - is_object
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: ReturnType
    signature: ReturnType value(const json_pointer& ptr, ValueType && default_value)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::forward<ValueType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21666,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21667
      start: 21664
    functionDepth: 0
    functionLinenumber: 21664
    functionLinenumberEnd: 21667
    functionName: JSON_INTERNAL_CATCH
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::forward<ValueType>
    linkageType: ''
    returnType: void
    signature: void JSON_INTERNAL_CATCH (out_of_range&)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21680,1
    - Dst: convert
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21680,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' ptr'
    - ' default_value'
    argTypes:
    - ::nlohmann::json_pointer<BasicJsonType>
    - ValueType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21681
      start: 21678
    functionDepth: 1
    functionLinenumber: 21678
    functionLinenumberEnd: 21681
    functionName: value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 102
    functionsReached:
    - value
    - convert
    linkageType: ''
    returnType: ValueType
    signature: ValueType value(const ::nlohmann::json_pointer<BasicJsonType>& ptr,
      const ValueType& default_value) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21691,1
    - Dst: convert
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21691,1
    - Dst: std::forward<ValueType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21691,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' ptr'
    - ' default_value'
    argTypes:
    - ::nlohmann::json_pointer<BasicJsonType>
    - ValueType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21692
      start: 21689
    functionDepth: 1
    functionLinenumber: 21689
    functionLinenumberEnd: 21692
    functionName: value
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 103
    functionsReached:
    - value
    - std::forward<ValueType>
    - convert
    linkageType: ''
    returnType: ReturnType
    signature: ReturnType value(const ::nlohmann::json_pointer<BasicJsonType>& ptr,
      ValueType && default_value) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21698,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21699
      start: 21696
    functionDepth: 1
    functionLinenumber: 21696
    functionLinenumberEnd: 21699
    functionName: front
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 25
    functionsReached:
    - begin
    linkageType: ''
    returnType: reference
    signature: reference front()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cbegin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21705,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21706
      start: 21703
    functionDepth: 1
    functionLinenumber: 21703
    functionLinenumberEnd: 21706
    functionName: front
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 25
    functionsReached:
    - cbegin
    linkageType: ''
    returnType: const_reference
    signature: const_reference front() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21715
      start: 21710
    functionDepth: 1
    functionLinenumber: 21710
    functionLinenumberEnd: 21715
    functionName: back
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 231
    functionsReached:
    - end
    linkageType: ''
    returnType: reference
    signature: reference back()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21721,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21724
      start: 21719
    functionDepth: 1
    functionLinenumber: 21719
    functionLinenumberEnd: 21724
    functionName: back
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 231
    functionsReached:
    - cend
    linkageType: ''
    returnType: const_reference
    signature: const_reference back() const
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21734,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21736,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21736,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21739,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21750,1
    - Dst: IteratorType::m_it::primitive_iterator::is_begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21750,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21752,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21752,1
    - Dst: is_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21755,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21758,1
    - Dst: rnp::ossl_allocator::deallocate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21759,1
    - Dst: is_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21762,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21765,1
    - Dst: rnp::ossl_allocator::deallocate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21766,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21771,1
    - Dst: m_value::object::erase
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21777,1
    - Dst: m_value::array::erase
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21783,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21790,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21790,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21790,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21790,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 42
    argCount: 1
    argNames:
    - pos
    argTypes:
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21794
      start: 21731
    functionDepth: 4
    functionLinenumber: 21731
    functionLinenumberEnd: 21794
    functionName: erase
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 57
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - is_binary
    - JSON_THROW
    - IteratorType::m_it::primitive_iterator::is_begin
    - end
    - rnp_buffer_destroy
    - rnp::ossl_allocator::deallocate
    - m_value::array::erase
    - vpaths_concat
    - is_string
    - invalid_iterator::create
    - m_value::object::erase
    - assert_invariant
    - type_error::create
    linkageType: ''
    returnType: IteratorType
    signature: IteratorType erase(IteratorType pos)
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21804,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21806,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21806,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21809,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21820,1
    - Dst: IteratorType::m_it::primitive_iterator::is_begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21820,1
    - Dst: IteratorType::m_it::primitive_iterator::is_end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21821,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21823,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21823,1
    - Dst: is_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21826,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21829,1
    - Dst: rnp::ossl_allocator::deallocate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21830,1
    - Dst: is_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21833,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21836,1
    - Dst: rnp::ossl_allocator::deallocate
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21837,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21842,1
    - Dst: m_value::object::erase
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21848,1
    - Dst: m_value::array::erase
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21855,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21863,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21863,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21863,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21863,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 42
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21867
      start: 21801
    functionDepth: 4
    functionLinenumber: 21801
    functionLinenumberEnd: 21867
    functionName: erase
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 58
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - is_binary
    - JSON_THROW
    - IteratorType::m_it::primitive_iterator::is_begin
    - end
    - rnp_buffer_destroy
    - rnp::ossl_allocator::deallocate
    - IteratorType::m_it::primitive_iterator::is_end
    - m_value::array::erase
    - vpaths_concat
    - is_string
    - invalid_iterator::create
    - m_value::object::erase
    - assert_invariant
    - type_error::create
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: IteratorType
    signature: IteratorType erase(IteratorType first, IteratorType last)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21875,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21875,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21877,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21877,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21877,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21877,1
    - Dst: m_value::object::erase
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21880,1
    - Dst: std::forward<KeyType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21880,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - KeyType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21881
      start: 21869
    functionDepth: 6
    functionLinenumber: 21869
    functionLinenumberEnd: 21881
    functionName: erase_internal
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - std::forward<KeyType>
    - JSON_THROW
    - is_object
    - m_value::object::erase
    - vpaths_concat
    - type_error::create
    linkageType: ''
    returnType: "private:\n    template < typename KeyType, detail::enable_if_t <\n
      \                  detail::has_erase_with_key_type<basic_json_t, KeyType>::value,
      int > = 0 >"
    signature: "private:\n    template < typename KeyType, detail::enable_if_t <\n
      \                  detail::has_erase_with_key_type<basic_json_t, KeyType>::value,
      int > = 0 > erase_internal(KeyType && key)"
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21888,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21888,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21890,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21890,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21890,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21890,1
    - Dst: m_value::object::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21893,1
    - Dst: std::forward<KeyType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21893,1
    - Dst: m_value::object::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21894,1
    - Dst: m_value::object::erase
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21896,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 9
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - KeyType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21900
      start: 21885
    functionDepth: 6
    functionLinenumber: 21885
    functionLinenumberEnd: 21900
    functionName: erase_internal
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - m_value::object::end
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - std::forward<KeyType>
    - JSON_THROW
    - m_value::object::find
    - is_object
    - m_value::object::erase
    - vpaths_concat
    - type_error::create
    linkageType: ''
    returnType: size_type
    signature: size_type erase_internal(KeyType && key)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: erase_internal
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21919,1
    - Dst: std::forward<KeyType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21919,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - KeyType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21920
      start: 21917
    functionDepth: 7
    functionLinenumber: 21917
    functionLinenumberEnd: 21920
    functionName: erase
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 60
    functionsReached:
    - erase_internal
    - std::forward<KeyType>
    linkageType: ''
    returnType: size_type
    signature: size_type erase(KeyType && key)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21927,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21927,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21929,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21929,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21931,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21931,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21931,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21931,1
    - Dst: m_value::array::erase
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21934,1
    - Dst: m_value::array::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21934,1
    - Dst: static_cast<difference_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21934,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21938,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21938,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21938,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21938,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 1
    argNames:
    - idx
    argTypes:
    - size_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21940
      start: 21924
    functionDepth: 4
    functionLinenumber: 21924
    functionLinenumberEnd: 21940
    functionName: erase
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 61
    functionsReached:
    - m_value::array::begin
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - m_value::array::erase
    - size
    - is_array
    - to_string
    - static_cast<difference_type>
    - vpaths_concat
    - type_error::create
    - JSON_HEDLEY_LIKELY
    - out_of_range::create
    linkageType: ''
    returnType: void
    signature: void erase(const size_type idx)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21955,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21957,1
    - Dst: m_value::object::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21959,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - typename object_t::key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21963
      start: 21953
    functionDepth: 1
    functionLinenumber: 21953
    functionLinenumberEnd: 21963
    functionName: find
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 70
    functionsReached:
    - end
    - is_object
    - m_value::object::find
    linkageType: ''
    returnType: iterator
    signature: iterator find(const typename object_t::key_type& key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21969,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21971,1
    - Dst: m_value::object::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21973,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - typename object_t::key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21977
      start: 21967
    functionDepth: 1
    functionLinenumber: 21967
    functionLinenumberEnd: 21977
    functionName: find
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 71
    functionsReached:
    - m_value::object::find
    - is_object
    - cend
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator find(const typename object_t::key_type& key) const
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21985,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21987,1
    - Dst: m_value::object::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21989,1
    - Dst: std::forward<KeyType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:21989,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - KeyType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 21993
      start: 21983
    functionDepth: 1
    functionLinenumber: 21983
    functionLinenumberEnd: 21993
    functionName: find
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 72
    functionsReached:
    - end
    - std::forward<KeyType>
    - is_object
    - m_value::object::find
    linkageType: ''
    returnType: iterator
    signature: iterator find(KeyType && key)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: cend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22001,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22003,1
    - Dst: m_value::object::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22005,1
    - Dst: std::forward<KeyType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22005,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 5
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - KeyType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22009
      start: 21999
    functionDepth: 1
    functionLinenumber: 21999
    functionLinenumberEnd: 22009
    functionName: find
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 73
    functionsReached:
    - m_value::object::find
    - std::forward<KeyType>
    - is_object
    - cend
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator find(KeyType && key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22016,1
    - Dst: m_value::object::count
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22016,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - typename object_t::key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22017
      start: 22013
    functionDepth: 1
    functionLinenumber: 22013
    functionLinenumberEnd: 22017
    functionName: count
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 180
    functionsReached:
    - is_object
    - m_value::object::count
    linkageType: ''
    returnType: size_type
    signature: size_type count(const typename object_t::key_type& key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22026,1
    - Dst: m_value::object::count
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22026,1
    - Dst: std::forward<KeyType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22026,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - KeyType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22027
      start: 22023
    functionDepth: 1
    functionLinenumber: 22023
    functionLinenumberEnd: 22027
    functionName: count
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 181
    functionsReached:
    - std::forward<KeyType>
    - is_object
    - m_value::object::count
    linkageType: ''
    returnType: size_type
    signature: size_type count(KeyType && key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22033,1
    - Dst: m_value::object::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22033,1
    - Dst: m_value::object::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22033,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - typename object_t::key_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22034
      start: 22031
    functionDepth: 2
    functionLinenumber: 22031
    functionLinenumberEnd: 22034
    functionName: contains
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 24
    functionsReached:
    - m_value::object::end
    - is_object
    - m_value::object::find
    linkageType: ''
    returnType: bool
    signature: bool contains(const typename object_t::key_type& key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22042,1
    - Dst: m_value::object::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22042,1
    - Dst: std::forward<KeyType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22042,1
    - Dst: m_value::object::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22042,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 2
    argCount: 1
    argNames:
    - ' key'
    argTypes:
    - KeyType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22043
      start: 22040
    functionDepth: 2
    functionLinenumber: 22040
    functionLinenumberEnd: 22043
    functionName: contains
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 24
    functionsReached:
    - m_value::object::end
    - std::forward<KeyType>
    - is_object
    - m_value::object::find
    linkageType: ''
    returnType: bool
    signature: bool contains(KeyType && key) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22049,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ptr'
    argTypes:
    - json_pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22050
      start: 22047
    functionDepth: 1
    functionLinenumber: 22047
    functionLinenumberEnd: 22050
    functionName: contains
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 25
    functionsReached:
    - contains
    linkageType: ''
    returnType: bool
    signature: bool contains(const json_pointer& ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: contains
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22056,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ptr'
    argTypes:
    - typename ::nlohmann::json_pointer<BasicJsonType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22057
      start: 22054
    functionDepth: 1
    functionLinenumber: 22054
    functionLinenumberEnd: 22057
    functionName: contains
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 26
    functionsReached:
    - contains
    linkageType: ''
    returnType: bool
    signature: bool contains(const typename ::nlohmann::json_pointer<BasicJsonType>&
      ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterator::set_begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22073,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22075
      start: 22070
    functionDepth: 0
    functionLinenumber: 22070
    functionLinenumberEnd: 22075
    functionName: begin
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 247
    functionsReached:
    - iterator::set_begin
    linkageType: ''
    returnType: iterator
    signature: iterator begin() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cbegin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22081,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22082
      start: 22079
    functionDepth: 1
    functionLinenumber: 22079
    functionLinenumberEnd: 22082
    functionName: begin
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 248
    functionsReached:
    - cbegin
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator begin() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator::set_begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22089,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22091
      start: 22086
    functionDepth: 0
    functionLinenumber: 22086
    functionLinenumberEnd: 22091
    functionName: cbegin
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 4
    functionsReached:
    - const_iterator::set_begin
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator cbegin() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iterator::set_end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22098,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22100
      start: 22095
    functionDepth: 2
    functionLinenumber: 22095
    functionLinenumberEnd: 22100
    functionName: end
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 366
    functionsReached:
    - iterator::set_end
    linkageType: ''
    returnType: iterator
    signature: iterator end() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: cend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22107
      start: 22104
    functionDepth: 1
    functionLinenumber: 22104
    functionLinenumberEnd: 22107
    functionName: end
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 367
    functionsReached:
    - cend
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator end() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_iterator::set_end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22114,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22116
      start: 22111
    functionDepth: 2
    functionLinenumber: 22111
    functionLinenumberEnd: 22116
    functionName: cend
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 6
    functionsReached:
    - const_iterator::set_end
    linkageType: ''
    returnType: const_iterator
    signature: const_iterator cend() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reverse_iterator
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22122,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22122,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22123
      start: 22120
    functionDepth: 3
    functionLinenumber: 22120
    functionLinenumberEnd: 22123
    functionName: rbegin
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 6
    functionsReached:
    - end
    - reverse_iterator
    linkageType: ''
    returnType: reverse_iterator
    signature: reverse_iterator rbegin() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crbegin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22129,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22130
      start: 22127
    functionDepth: 1
    functionLinenumber: 22127
    functionLinenumberEnd: 22130
    functionName: rbegin
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 7
    functionsReached:
    - crbegin
    linkageType: ''
    returnType: const_reverse_iterator
    signature: const_reverse_iterator rbegin() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reverse_iterator
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22136,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22136,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22137
      start: 22134
    functionDepth: 1
    functionLinenumber: 22134
    functionLinenumberEnd: 22137
    functionName: rend
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 6
    functionsReached:
    - reverse_iterator
    - begin
    linkageType: ''
    returnType: reverse_iterator
    signature: reverse_iterator rend() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: crend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22144
      start: 22141
    functionDepth: 1
    functionLinenumber: 22141
    functionLinenumberEnd: 22144
    functionName: rend
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 7
    functionsReached:
    - crend
    linkageType: ''
    returnType: const_reverse_iterator
    signature: const_reverse_iterator rend() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_reverse_iterator
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22150,1
    - Dst: cend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22150,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22151
      start: 22148
    functionDepth: 3
    functionLinenumber: 22148
    functionLinenumberEnd: 22151
    functionName: crbegin
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - const_reverse_iterator
    - cend
    linkageType: ''
    returnType: const_reverse_iterator
    signature: const_reverse_iterator crbegin() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_reverse_iterator
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22157,1
    - Dst: cbegin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22157,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22158
      start: 22155
    functionDepth: 1
    functionLinenumber: 22155
    functionLinenumberEnd: 22158
    functionName: crend
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - const_reverse_iterator
    - cbegin
    linkageType: ''
    returnType: const_reverse_iterator
    signature: const_reverse_iterator crend() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reference::items
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22169,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22170
      start: 22167
    functionDepth: 1
    functionLinenumber: 22167
    functionLinenumberEnd: 22170
    functionName: iterator_wrapper
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - reference::items
    linkageType: ''
    returnType: iteration_proxy<iterator>
    signature: iteration_proxy<iterator> iterator_wrapper(reference ref) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: const_reference::items
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22180,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ref
    argTypes:
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22181
      start: 22178
    functionDepth: 1
    functionLinenumber: 22178
    functionLinenumberEnd: 22181
    functionName: iterator_wrapper
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - const_reference::items
    linkageType: ''
    returnType: iteration_proxy<const_iterator>
    signature: iteration_proxy<const_iterator> iterator_wrapper(const_reference ref)
      noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iteration_proxy<iterator>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22187,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22188
      start: 22185
    functionDepth: 0
    functionLinenumber: 22185
    functionLinenumberEnd: 22188
    functionName: items
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 7
    functionsReached:
    - iteration_proxy<iterator>
    linkageType: ''
    returnType: iteration_proxy<iterator>
    signature: iteration_proxy<iterator> items() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: iteration_proxy<const_iterator>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22194,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22195
      start: 22192
    functionDepth: 0
    functionLinenumber: 22192
    functionLinenumberEnd: 22195
    functionName: items
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 7
    functionsReached:
    - iteration_proxy<const_iterator>
    linkageType: ''
    returnType: iteration_proxy<const_iterator>
    signature: iteration_proxy<const_iterator> items() const noexcept
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: m_value::array::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22221,1
    - Dst: m_value::object::empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22227,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22243
      start: 22208
    functionDepth: 1
    functionLinenumber: 22208
    functionLinenumberEnd: 22243
    functionName: empty
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 201
    functionsReached:
    - m_value::object::empty
    - m_value::array::empty
    linkageType: ''
    returnType: bool
    signature: bool empty() const noexcept
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: m_value::array::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22260,1
    - Dst: m_value::object::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22266,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22282
      start: 22247
    functionDepth: 1
    functionLinenumber: 22247
    functionLinenumberEnd: 22282
    functionName: size
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1166
    functionsReached:
    - m_value::array::size
    - m_value::object::size
    linkageType: ''
    returnType: size_type
    signature: size_type size() const noexcept
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: m_value::array::max_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22293,1
    - Dst: m_value::object::max_size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22299,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22313,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 20
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22316
      start: 22286
    functionDepth: 1
    functionLinenumber: 22286
    functionLinenumberEnd: 22316
    functionName: max_size
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - m_value::array::max_size
    - m_value::object::max_size
    - size
    linkageType: ''
    returnType: size_type
    signature: size_type max_size() const noexcept
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: m_value::string::clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22359,1
    - Dst: m_value::binary::clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22365,1
    - Dst: m_value::array::clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22371,1
    - Dst: m_value::object::clear
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22377,1
    CyclomaticComplexity: 10
    EdgeCount: 10
    ICount: 39
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22386
      start: 22329
    functionDepth: 1
    functionLinenumber: 22329
    functionLinenumberEnd: 22386
    functionName: clear
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 293
    functionsReached:
    - m_value::array::clear
    - m_value::binary::clear
    - m_value::string::clear
    - m_value::object::clear
    linkageType: ''
    returnType: void
    signature: void clear() noexcept
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22393,1
    - Dst: is_null
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22393,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22393,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22395,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22395,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22395,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22395,1
    - Dst: is_null
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22399,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22403,1
    - Dst: m_value::array::capacity
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22407,1
    - Dst: m_value::array::push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22408,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22408,1
    - Dst: set_parent
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22409,1
    - Dst: m_value::array::back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22409,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22411
      start: 22390
    functionDepth: 5
    functionLinenumber: 22390
    functionLinenumberEnd: 22411
    functionName: push_back
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 160
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - is_null
    - JSON_THROW
    - assert_invariant
    - is_array
    - m_value::array::back
    - m_value::array::capacity
    - set_parent
    - vpaths_concat
    - type_error::create
    - std::move
    - m_value::array::push_back
    linkageType: ''
    returnType: void
    signature: void push_back(basic_json&& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22417,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22417,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22419
      start: 22415
    functionDepth: 2
    functionLinenumber: 22415
    functionLinenumberEnd: 22419
    functionName: operator+=(basic_json&& val)
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::move
    - push_back
    linkageType: ''
    returnType: reference
    signature: reference operator+=(basic_json&& val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22426,1
    - Dst: is_null
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22426,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22426,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22428,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22428,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22428,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22428,1
    - Dst: is_null
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22432,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22436,1
    - Dst: m_value::array::capacity
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22440,1
    - Dst: m_value::array::push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22441,1
    - Dst: set_parent
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22442,1
    - Dst: m_value::array::back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22442,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22443
      start: 22423
    functionDepth: 5
    functionLinenumber: 22423
    functionLinenumberEnd: 22443
    functionName: push_back
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 162
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - is_null
    - JSON_THROW
    - assert_invariant
    - is_array
    - m_value::array::back
    - m_value::array::capacity
    - set_parent
    - vpaths_concat
    - type_error::create
    - m_value::array::push_back
    linkageType: ''
    returnType: void
    signature: void push_back(const basic_json& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22449,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22451
      start: 22447
    functionDepth: 2
    functionLinenumber: 22447
    functionLinenumberEnd: 22451
    functionName: operator+=(const basic_json& val)
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: reference
    signature: reference operator+=(const basic_json& val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22458,1
    - Dst: is_null
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22458,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22458,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22460,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22460,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22460,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22460,1
    - Dst: is_null
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22464,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22468,1
    - Dst: m_value::object::insert
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22472,1
    - Dst: set_parent
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22473,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 10
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - typename object_t::value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22474
      start: 22455
    functionDepth: 4
    functionLinenumber: 22455
    functionLinenumberEnd: 22474
    functionName: push_back
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 163
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - is_null
    - JSON_THROW
    - assert_invariant
    - is_object
    - m_value::object::insert
    - set_parent
    - vpaths_concat
    - type_error::create
    linkageType: ''
    returnType: void
    signature: void push_back(const typename object_t::value_type& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22480,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' val'
    argTypes:
    - typename object_t::value_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22482
      start: 22478
    functionDepth: 2
    functionLinenumber: 22478
    functionLinenumberEnd: 22482
    functionName: operator+=(const typename object_t::value_type& val)
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: reference
    signature: reference operator+=(const typename object_t::value_type& val)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22488,1
    - Dst: initializer_list_t::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22488,1
    - Dst: initializer_list_t::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22488,1
    - Dst: is_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22488,1
    - Dst: initializer_list_t::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22490,1
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22496,1
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22496,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 5
    argCount: 1
    argNames:
    - init
    argTypes:
    - initializer_list_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22498
      start: 22486
    functionDepth: 1
    functionLinenumber: 22486
    functionLinenumberEnd: 22498
    functionName: push_back
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 165
    functionsReached:
    - push_back
    - initializer_list_t::size
    - is_object
    - initializer_list_t::begin
    - is_string
    - basic_json
    linkageType: ''
    returnType: void
    signature: void push_back(initializer_list_t init)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22504,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - init
    argTypes:
    - initializer_list_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22506
      start: 22502
    functionDepth: 2
    functionLinenumber: 22502
    functionLinenumberEnd: 22506
    functionName: operator+=(initializer_list_t init)
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - push_back
    linkageType: ''
    returnType: reference
    signature: reference operator+=(initializer_list_t init)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22514,1
    - Dst: is_null
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22514,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22514,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22516,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22516,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22516,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22516,1
    - Dst: is_null
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22520,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22524,1
    - Dst: m_value::array::capacity
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22528,1
    - Dst: m_value::array::emplace_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22529,1
    - Dst: std::forward<Args>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22529,1
    - Dst: set_parent
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22530,1
    - Dst: m_value::array::back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22530,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 11
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22531
      start: 22511
    functionDepth: 5
    functionLinenumber: 22511
    functionLinenumberEnd: 22531
    functionName: emplace_back
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 33
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - is_null
    - JSON_THROW
    - assert_invariant
    - is_array
    - std::forward<Args>
    - m_value::array::back
    - m_value::array::capacity
    - set_parent
    - vpaths_concat
    - type_error::create
    - m_value::array::emplace_back
    linkageType: ''
    returnType: reference
    signature: reference emplace_back(Args&& ... args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22539,1
    - Dst: is_null
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22539,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22539,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22541,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22541,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22541,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22541,1
    - Dst: is_null
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22545,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22549,1
    - Dst: m_value::object::emplace
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22553,1
    - Dst: std::forward<Args>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22553,1
    - Dst: set_parent
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22554,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22557,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22562
      start: 22536
    functionDepth: 4
    functionLinenumber: 22536
    functionLinenumberEnd: 22562
    functionName: emplace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 14
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - is_null
    - JSON_THROW
    - assert_invariant
    - std::forward<Args>
    - is_object
    - m_value::object::emplace
    - begin
    - set_parent
    - vpaths_concat
    - type_error::create
    linkageType: ''
    returnType: std::pair<iterator, bool>
    signature: std::pair<iterator, bool> emplace(Args&& ... args)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22571,1
    - Dst: std::distance
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22573,1
    - Dst: m_value::array::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22573,1
    - Dst: m_value::array::insert
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22574,1
    - Dst: std::forward<Args>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22574,1
    - Dst: m_value::array::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22575,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22581,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - pos
    argTypes:
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22583
      start: 22568
    functionDepth: 3
    functionLinenumber: 22568
    functionLinenumberEnd: 22583
    functionName: insert_iterator
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - m_value::array::insert
    - std::forward<Args>
    - std::distance
    - JSON_ASSERT
    - set_parents
    - m_value::array::begin
    linkageType: ''
    returnType: iterator
    signature: iterator insert_iterator(const_iterator pos, Args&& ... args)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22590,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22590,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22593,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22595,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22595,1
    - Dst: insert_iterator
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22599,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22602,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22602,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22602,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22602,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pos
    - ' val'
    argTypes:
    - const_iterator
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22603
      start: 22587
    functionDepth: 4
    functionLinenumber: 22587
    functionLinenumberEnd: 22603
    functionName: insert
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 65
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - is_array
    - invalid_iterator::create
    - insert_iterator
    - vpaths_concat
    - type_error::create
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: iterator
    signature: iterator insert(const_iterator pos, const basic_json& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: insert
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22609,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - pos
    - ' val'
    argTypes:
    - const_iterator
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22610
      start: 22607
    functionDepth: 1
    functionLinenumber: 22607
    functionLinenumberEnd: 22610
    functionName: insert
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 66
    functionsReached:
    - insert
    linkageType: ''
    returnType: iterator
    signature: iterator insert(const_iterator pos, basic_json&& val)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22617,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22617,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22620,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22622,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22622,1
    - Dst: insert_iterator
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22626,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22629,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22629,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22629,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22629,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 3
    argNames:
    - pos
    - cnt
    - ' val'
    argTypes:
    - const_iterator
    - size_type
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22630
      start: 22614
    functionDepth: 4
    functionLinenumber: 22614
    functionLinenumberEnd: 22630
    functionName: insert
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 66
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - is_array
    - invalid_iterator::create
    - insert_iterator
    - vpaths_concat
    - type_error::create
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: iterator
    signature: iterator insert(const_iterator pos, size_type cnt, const basic_json&
      val)
  - BBCount: 5
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22637,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22637,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22639,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22639,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22639,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22639,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22643,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22645,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22645,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22649,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22651,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22651,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22654,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22656,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22656,1
    - Dst: insert_iterator
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22660,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 14
    argCount: 3
    argNames:
    - pos
    - first
    - last
    argTypes:
    - const_iterator
    - const_iterator
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22661
      start: 22634
    functionDepth: 4
    functionLinenumber: 22634
    functionLinenumberEnd: 22661
    functionName: insert
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 66
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - is_array
    - invalid_iterator::create
    - insert_iterator
    - vpaths_concat
    - type_error::create
    linkageType: ''
    returnType: iterator
    signature: iterator insert(const_iterator pos, const_iterator first, const_iterator
      last)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22668,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22668,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22670,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22670,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22670,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22670,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22674,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22676,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22676,1
    - Dst: insert_iterator
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22680,1
    - Dst: initializer_list_t::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22680,1
    - Dst: initializer_list_t::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22680,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 2
    argNames:
    - pos
    - ilist
    argTypes:
    - const_iterator
    - initializer_list_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22681
      start: 22665
    functionDepth: 4
    functionLinenumber: 22665
    functionLinenumberEnd: 22681
    functionName: insert
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 66
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - is_array
    - initializer_list_t::begin
    - initializer_list_t::end
    - invalid_iterator::create
    - insert_iterator
    - vpaths_concat
    - type_error::create
    linkageType: ''
    returnType: iterator
    signature: iterator insert(const_iterator pos, initializer_list_t ilist)
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22688,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22688,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22690,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22690,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22690,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22690,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22694,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22696,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22696,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22700,1
    - Dst: const_iterator::m_object::is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22700,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22702,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22702,1
    - Dst: m_value::object::insert
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22705,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 11
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - const_iterator
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22706
      start: 22685
    functionDepth: 4
    functionLinenumber: 22685
    functionLinenumberEnd: 22706
    functionName: insert
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 67
    functionsReached:
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - JSON_THROW
    - is_object
    - m_value::object::insert
    - invalid_iterator::create
    - vpaths_concat
    - type_error::create
    - const_iterator::m_object::is_object
    linkageType: ''
    returnType: void
    signature: void insert(const_iterator first, const_iterator last)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: update
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22712,1
    - Dst: const_reference::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22712,1
    - Dst: const_reference::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22712,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - j
    argTypes:
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22713
      start: 22710
    functionDepth: 3
    functionLinenumber: 22710
    functionLinenumberEnd: 22713
    functionName: update
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 60
    functionsReached:
    - update
    - const_reference::begin
    - const_reference::end
    linkageType: ''
    returnType: void
    signature: void update(const_reference j, bool merge_objects = false)
  - BBCount: 7
    BranchProfiles: []
    Callsites:
    - Dst: is_null
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22720,1
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22723,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22724,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22727,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22727,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22729,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22729,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22729,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22729,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22733,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22735,1
    - Dst: invalid_iterator::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22735,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22739,1
    - Dst: const_iterator::m_object::is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22739,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22741,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22741,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22741,1
    - Dst: const_iterator::m_object::type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22741,1
    - Dst: auto::value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22746,1
    - Dst: m_value::object::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22748,1
    - Dst: auto::key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22748,1
    - Dst: m_value::object::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22749,1
    - Dst: auto::second::update
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22751,1
    - Dst: auto::value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22751,1
    - Dst: m_value::object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22755,1
    - Dst: auto::key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22755,1
    - Dst: auto::value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22755,1
    - Dst: m_value::object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22757,1
    - Dst: auto::key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22757,1
    CyclomaticComplexity: 9
    EdgeCount: 9
    ICount: 25
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - const_iterator
    - const_iterator
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22760
      start: 22717
    functionDepth: 4
    functionLinenumber: 22717
    functionLinenumberEnd: 22760
    functionName: update
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 61
    functionsReached:
    - auto::second::update
    - m_value::object::end
    - type_name
    - JSON_HEDLEY_UNLIKELY
    - is_null
    - JSON_THROW
    - m_value::object::find
    - vpaths_concat
    - is_object
    - m_value::object
    - auto::key
    - const_iterator::m_object::type_name
    - invalid_iterator::create
    - create
    - assert_invariant
    - type_error::create
    - const_iterator::m_object::is_object
    - auto::value
    linkageType: ''
    returnType: void
    signature: void update(const_iterator first, const_iterator last, bool merge_objects
      = false)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22771,1
    - Dst: swap
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22772,1
    - Dst: set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22774,1
    - Dst: reference::set_parents
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22775,1
    - Dst: assert_invariant
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22776,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 6
    argCount: 1
    argNames:
    - other
    argTypes:
    - reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22777
      start: 22764
    functionDepth: 1
    functionLinenumber: 22764
    functionLinenumberEnd: 22777
    functionName: swap
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 6
    functionsReached:
    - set_parents
    - assert_invariant
    - reference::set_parents
    - swap
    linkageType: ''
    returnType: void
    signature: "void swap(reference other) noexcept (\n        std::is_nothrow_move_constructible<value_t>::value&&\n
      \       std::is_nothrow_move_assignable<value_t>::value&&\n        std::is_nothrow_move_constructible<json_value>::value&&
      // NOLINT(cppcoreguidelines-noexcept-swap,performance-noexcept-swap)\n        std::is_nothrow_move_assignable<json_value>::value\n
      \   )"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: reference::swap
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22788,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 2
    argCount: 2
    argNames:
    - left
    - right
    argTypes:
    - reference
    - reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22789
      start: 22781
    functionDepth: 1
    functionLinenumber: 22781
    functionLinenumberEnd: 22789
    functionName: swap
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 7
    functionsReached:
    - reference::swap
    linkageType: ''
    returnType: friend
    signature: "friend swap(reference left, reference right) noexcept (\n        std::is_nothrow_move_constructible<value_t>::value&&\n
      \       std::is_nothrow_move_assignable<value_t>::value&&\n        std::is_nothrow_move_constructible<json_value>::value&&
      // NOLINT(cppcoreguidelines-noexcept-swap,performance-noexcept-swap)\n        std::is_nothrow_move_assignable<json_value>::value\n
      \   )"
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22796,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22796,1
    - Dst: swap
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22799,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22803,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22803,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22803,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22803,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - array_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22805
      start: 22793
    functionDepth: 4
    functionLinenumber: 22793
    functionLinenumberEnd: 22805
    functionName: swap
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 8
    functionsReached:
    - type_name
    - JSON_THROW
    - is_array
    - swap
    - vpaths_concat
    - type_error::create
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: void
    signature: void swap(array_t& other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22812,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22812,1
    - Dst: swap
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22815,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22819,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22819,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22819,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22819,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - object_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22821
      start: 22809
    functionDepth: 4
    functionLinenumber: 22809
    functionLinenumberEnd: 22821
    functionName: swap
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 9
    functionsReached:
    - type_name
    - JSON_THROW
    - is_object
    - swap
    - vpaths_concat
    - type_error::create
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: void
    signature: void swap(object_t& other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22828,1
    - Dst: is_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22828,1
    - Dst: swap
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22831,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22835,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22835,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22835,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22835,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - string_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22837
      start: 22825
    functionDepth: 4
    functionLinenumber: 22825
    functionLinenumberEnd: 22837
    functionName: swap
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 10
    functionsReached:
    - type_name
    - JSON_THROW
    - is_string
    - swap
    - vpaths_concat
    - type_error::create
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: void
    signature: void swap(string_t& other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22844,1
    - Dst: is_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22844,1
    - Dst: swap
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22847,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22851,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22851,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22851,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22851,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - binary_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22853
      start: 22841
    functionDepth: 4
    functionLinenumber: 22841
    functionLinenumberEnd: 22853
    functionName: swap
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 11
    functionsReached:
    - type_name
    - is_binary
    - JSON_THROW
    - swap
    - vpaths_concat
    - type_error::create
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: void
    signature: void swap(binary_t& other)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22860,1
    - Dst: is_binary
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22860,1
    - Dst: swap
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22863,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22867,1
    - Dst: type_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22867,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22867,1
    - Dst: type_name
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22867,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - ' other'
    argTypes:
    - typename binary_t::container_type
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22869
      start: 22857
    functionDepth: 4
    functionLinenumber: 22857
    functionLinenumberEnd: 22869
    functionName: swap
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 12
    functionsReached:
    - type_name
    - is_binary
    - JSON_THROW
    - swap
    - vpaths_concat
    - type_error::create
    - JSON_HEDLEY_LIKELY
    linkageType: ''
    returnType: void
    signature: void swap(typename binary_t::container_type& other)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 9
    argNames:
    - (
    - op
    - ','
    - null_result
    - ','
    - unordered_result
    - ','
    - default_result
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22886
      start: 22882
    functionDepth: 0
    functionLinenumber: 22882
    functionLinenumberEnd: 22886
    functionName: JSON_IMPLEMENT_OPERATOR
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: JSON_IMPLEMENT_OPERATOR(op, null_result, unordered_result, default_result)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22949
      start: 22946
    functionDepth: 0
    functionLinenumber: 22946
    functionLinenumberEnd: 22949
    functionName: if
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 10
    functionsReached: []
    linkageType: ''
    returnType: else
    signature: else if(compares_unordered(lhs, rhs))
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: compares_unordered
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22977,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22978
      start: 22975
    functionDepth: 1
    functionLinenumber: 22975
    functionLinenumberEnd: 22978
    functionName: compares_unordered
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - compares_unordered
    linkageType: ''
    returnType: bool
    signature: bool compares_unordered(const_reference rhs, bool inverse = false)
      const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_IMPLEMENT_OPERATOR
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:22991,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 22995
      start: 22984
    functionDepth: 1
    functionLinenumber: 22984
    functionLinenumberEnd: 22995
    functionName: operator==(const_reference rhs) const noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_IMPLEMENT_OPERATOR
    linkageType: ''
    returnType: bool
    signature: bool operator==(const_reference rhs) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23003,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - ScalarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23004
      start: 23001
    functionDepth: 1
    functionLinenumber: 23001
    functionLinenumberEnd: 23004
    functionName: operator==(ScalarType rhs) const noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator==(ScalarType rhs) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: compares_unordered
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23010,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23015
      start: 23008
    functionDepth: 2
    functionLinenumber: 23008
    functionLinenumberEnd: 23015
    functionName: operator!=(const_reference rhs) const noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - compares_unordered
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const_reference rhs) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23028
      start: 23019
    functionDepth: 0
    functionLinenumber: 23019
    functionLinenumberEnd: 23028
    functionName: operator<=>(const_reference rhs) const noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: std::partial_ordering
    signature: std::partial_ordering operator<=>(const_reference rhs) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23036,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - ScalarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23037
      start: 23034
    functionDepth: 1
    functionLinenumber: 23034
    functionLinenumberEnd: 23037
    functionName: operator<=>(ScalarType rhs) const noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: std::partial_ordering
    signature: std::partial_ordering operator<=>(ScalarType rhs) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: compares_unordered
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23048,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23053
      start: 23046
    functionDepth: 2
    functionLinenumber: 23046
    functionLinenumberEnd: 23053
    functionName: operator<=(const_reference rhs) const noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - compares_unordered
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const_reference rhs) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23061,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - ScalarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23062
      start: 23059
    functionDepth: 1
    functionLinenumber: 23059
    functionLinenumberEnd: 23062
    functionName: operator<=(ScalarType rhs) const noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator<=(ScalarType rhs) const noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: compares_unordered
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23069,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23074
      start: 23067
    functionDepth: 2
    functionLinenumber: 23067
    functionLinenumberEnd: 23074
    functionName: operator>=(const_reference rhs) const noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - compares_unordered
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const_reference rhs) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23082,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - rhs
    argTypes:
    - ScalarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23083
      start: 23080
    functionDepth: 1
    functionLinenumber: 23080
    functionLinenumberEnd: 23083
    functionName: operator>=(ScalarType rhs) const noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator>=(ScalarType rhs) const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: JSON_IMPLEMENT_OPERATOR
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23094,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - const_reference
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23098
      start: 23088
    functionDepth: 1
    functionLinenumber: 23088
    functionLinenumberEnd: 23098
    functionName: operator==(const_reference lhs, const_reference rhs) noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - JSON_IMPLEMENT_OPERATOR
    linkageType: ''
    returnType: friend
    signature: friend operator==(const_reference lhs, const_reference rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23106,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - const_reference
    - ScalarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23107
      start: 23104
    functionDepth: 1
    functionLinenumber: 23104
    functionLinenumberEnd: 23107
    functionName: operator==(const_reference lhs, ScalarType rhs) noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator==(const_reference lhs, ScalarType rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23115,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - ScalarType
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23116
      start: 23113
    functionDepth: 1
    functionLinenumber: 23113
    functionLinenumberEnd: 23116
    functionName: operator==(ScalarType lhs, const_reference rhs) noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator==(ScalarType lhs, const_reference rhs) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: compares_unordered
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23122,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - const_reference
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23127
      start: 23120
    functionDepth: 2
    functionLinenumber: 23120
    functionLinenumberEnd: 23127
    functionName: operator!=(const_reference lhs, const_reference rhs) noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - compares_unordered
    linkageType: ''
    returnType: friend
    signature: friend operator!=(const_reference lhs, const_reference rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23135,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - const_reference
    - ScalarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23136
      start: 23133
    functionDepth: 1
    functionLinenumber: 23133
    functionLinenumberEnd: 23136
    functionName: operator!=(const_reference lhs, ScalarType rhs) noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator!=(const_reference lhs, ScalarType rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23144,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - ScalarType
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23145
      start: 23142
    functionDepth: 1
    functionLinenumber: 23142
    functionLinenumberEnd: 23145
    functionName: operator!=(ScalarType lhs, const_reference rhs) noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator!=(ScalarType lhs, const_reference rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23163,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - const_reference
    - ScalarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23164
      start: 23161
    functionDepth: 1
    functionLinenumber: 23161
    functionLinenumberEnd: 23164
    functionName: operator<(const_reference lhs, ScalarType rhs) noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator<(const_reference lhs, ScalarType rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23172,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - ScalarType
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23173
      start: 23170
    functionDepth: 1
    functionLinenumber: 23170
    functionLinenumberEnd: 23173
    functionName: operator<(ScalarType lhs, const_reference rhs) noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator<(ScalarType lhs, const_reference rhs) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: compares_unordered
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23179,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - const_reference
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23184
      start: 23177
    functionDepth: 2
    functionLinenumber: 23177
    functionLinenumberEnd: 23184
    functionName: operator<=(const_reference lhs, const_reference rhs) noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - compares_unordered
    linkageType: ''
    returnType: friend
    signature: friend operator<=(const_reference lhs, const_reference rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23192,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - const_reference
    - ScalarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23193
      start: 23190
    functionDepth: 1
    functionLinenumber: 23190
    functionLinenumberEnd: 23193
    functionName: operator<=(const_reference lhs, ScalarType rhs) noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator<=(const_reference lhs, ScalarType rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23201,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - ScalarType
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23202
      start: 23199
    functionDepth: 1
    functionLinenumber: 23199
    functionLinenumberEnd: 23202
    functionName: operator<=(ScalarType lhs, const_reference rhs) noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator<=(ScalarType lhs, const_reference rhs) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: compares_unordered
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23209,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - const_reference
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23214
      start: 23206
    functionDepth: 2
    functionLinenumber: 23206
    functionLinenumberEnd: 23214
    functionName: operator>(const_reference lhs, const_reference rhs) noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - compares_unordered
    linkageType: ''
    returnType: friend
    signature: friend operator>(const_reference lhs, const_reference rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23222,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - const_reference
    - ScalarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23223
      start: 23220
    functionDepth: 1
    functionLinenumber: 23220
    functionLinenumberEnd: 23223
    functionName: operator>(const_reference lhs, ScalarType rhs) noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator>(const_reference lhs, ScalarType rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23231,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - ScalarType
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23232
      start: 23229
    functionDepth: 1
    functionLinenumber: 23229
    functionLinenumberEnd: 23232
    functionName: operator>(ScalarType lhs, const_reference rhs) noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator>(ScalarType lhs, const_reference rhs) noexcept
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: compares_unordered
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23238,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 5
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - const_reference
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23243
      start: 23236
    functionDepth: 2
    functionLinenumber: 23236
    functionLinenumberEnd: 23243
    functionName: operator>=(const_reference lhs, const_reference rhs) noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - compares_unordered
    linkageType: ''
    returnType: friend
    signature: friend operator>=(const_reference lhs, const_reference rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - const_reference
    - ScalarType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23252
      start: 23249
    functionDepth: 1
    functionLinenumber: 23249
    functionLinenumberEnd: 23252
    functionName: operator>=(const_reference lhs, ScalarType rhs) noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator>=(const_reference lhs, ScalarType rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - ScalarType
    - const_reference
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23261
      start: 23258
    functionDepth: 1
    functionLinenumber: 23258
    functionLinenumberEnd: 23261
    functionName: operator>=(ScalarType lhs, const_reference rhs) noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - basic_json
    linkageType: ''
    returnType: bool
    signature: bool operator>=(ScalarType lhs, const_reference rhs) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: width
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23280,1
    - Dst: width
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23281,1
    - Dst: width
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23284,1
    - Dst: detail::output_adapter<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23287,1
    - Dst: fill
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23287,1
    - Dst: serializer::dump
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23288,1
    - Dst: static_cast<unsigned int>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23288,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 2
    argNames:
    - ' o'
    - ' j'
    argTypes:
    - std::ostream
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23290
      start: 23277
    functionDepth: 6
    functionLinenumber: 23277
    functionLinenumberEnd: 23290
    functionName: '& operator<<(std::ostream& o, const basic_json& j)'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - width
    - detail::output_adapter<char>
    - serializer::dump
    - fill
    - static_cast<unsigned int>
    linkageType: ''
    returnType: friend
    signature: friend & operator<<(std::ostream& o, const basic_json& j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parser
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23323,1
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23323,1
    - Dst: std::forward<InputType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23323,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - InputType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23325
      start: 23316
    functionDepth: 2
    functionLinenumber: 23316
    functionLinenumberEnd: 23325
    functionName: parse
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 125
    functionsReached:
    - file_input_adapter
    - parser
    - std::forward<InputType>
    linkageType: ''
    returnType: JSON_HEDLEY_WARN_UNUSED_RESULT
    signature: "JSON_HEDLEY_WARN_UNUSED_RESULT parse(InputType&& i,\n                            const
      parser_callback_t cb = nullptr,\n                            const bool allow_exceptions
      = true,\n                            const bool ignore_comments = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parser
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23338,1
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23338,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23338,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23338,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23340
      start: 23330
    functionDepth: 2
    functionLinenumber: 23330
    functionLinenumberEnd: 23340
    functionName: parse
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 125
    functionsReached:
    - file_input_adapter
    - parser
    - std::move
    linkageType: ''
    returnType: JSON_HEDLEY_WARN_UNUSED_RESULT
    signature: "JSON_HEDLEY_WARN_UNUSED_RESULT parse(IteratorType first,\n                            IteratorType
      last,\n                            const parser_callback_t cb = nullptr,\n                            const
      bool allow_exceptions = true,\n                            const bool ignore_comments
      = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parser
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23350,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23350,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - detail::span_input_adapter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23352
      start: 23344
    functionDepth: 2
    functionLinenumber: 23344
    functionLinenumberEnd: 23352
    functionName: parse
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 125
    functionsReached:
    - parser
    - get
    linkageType: ''
    returnType: basic_json
    signature: "basic_json parse(detail::span_input_adapter&& i,\n                            const
      parser_callback_t cb = nullptr,\n                            const bool allow_exceptions
      = true,\n                            const bool ignore_comments = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parser
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23360,1
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23360,1
    - Dst: std::forward<InputType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23360,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - InputType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23361
      start: 23357
    functionDepth: 2
    functionLinenumber: 23357
    functionLinenumberEnd: 23361
    functionName: accept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - file_input_adapter
    - parser
    - std::forward<InputType>
    linkageType: ''
    returnType: bool
    signature: "bool accept(InputType&& i,\n                       const bool ignore_comments
      = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parser
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23369,1
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23369,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23369,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23369,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23370
      start: 23366
    functionDepth: 2
    functionLinenumber: 23366
    functionLinenumberEnd: 23370
    functionName: accept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - file_input_adapter
    - parser
    - std::move
    linkageType: ''
    returnType: bool
    signature: "bool accept(IteratorType first, IteratorType last,\n                       const
      bool ignore_comments = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: parser
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23377,1
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23377,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - detail::span_input_adapter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23378
      start: 23374
    functionDepth: 2
    functionLinenumber: 23374
    functionLinenumberEnd: 23378
    functionName: accept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - parser
    - get
    linkageType: ''
    returnType: bool
    signature: "bool accept(detail::span_input_adapter&& i,\n                       const
      bool ignore_comments = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23389,1
    - Dst: std::forward<InputType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23389,1
    - Dst: parser
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23391,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23391,1
    - Dst: detail::binary_reader<basic_json, decltype(ia), SAX>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23392,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23392,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' i'
    - sax
    argTypes:
    - InputType
    - SAX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23393
      start: 23384
    functionDepth: 2
    functionLinenumber: 23384
    functionLinenumberEnd: 23393
    functionName: sax_parse
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - parser
    - std::forward<InputType>
    - detail::binary_reader<basic_json, decltype(ia), SAX>
    - file_input_adapter
    - std::move
    linkageType: ''
    returnType: bool
    signature: "bool sax_parse(InputType&& i, SAX* sax,\n                          input_format_t
      format = input_format_t::json,\n                          const bool strict
      = true,\n                          const bool ignore_comments = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23404,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23404,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23404,1
    - Dst: parser
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23406,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23406,1
    - Dst: detail::binary_reader<basic_json, decltype(ia), SAX>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23407,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23407,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 3
    argNames:
    - first
    - last
    - sax
    argTypes:
    - IteratorType
    - IteratorType
    - SAX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23408
      start: 23399
    functionDepth: 2
    functionLinenumber: 23399
    functionLinenumberEnd: 23408
    functionName: sax_parse
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - file_input_adapter
    - parser
    - std::move
    - detail::binary_reader<basic_json, decltype(ia), SAX>
    linkageType: ''
    returnType: bool
    signature: "bool sax_parse(IteratorType first, IteratorType last, SAX* sax,\n
      \                         input_format_t format = input_format_t::json,\n                          const
      bool strict = true,\n                          const bool ignore_comments =
      false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23423,1
    - Dst: parser
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23426,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23426,1
    - Dst: detail::binary_reader<basic_json, decltype(ia), SAX>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23428,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23428,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' i'
    - sax
    argTypes:
    - detail::span_input_adapter
    - SAX*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23429
      start: 23418
    functionDepth: 2
    functionLinenumber: 23418
    functionLinenumberEnd: 23429
    functionName: sax_parse
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - detail::binary_reader<basic_json, decltype(ia), SAX>
    - parser
    - std::move
    - get
    linkageType: ''
    returnType: bool
    signature: "bool sax_parse(detail::span_input_adapter&& i, SAX* sax,\n                          input_format_t
      format = input_format_t::json,\n                          const bool strict
      = true,\n                          const bool ignore_comments = false)"
  - BBCount: 12
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23484
      start: 23459
    functionDepth: 0
    functionLinenumber: 23459
    functionLinenumberEnd: 23484
    functionName: type_name
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 60
    functionsReached: []
    linkageType: ''
    returnType: JSON_HEDLEY_RETURNS_NON_NULL
    signature: JSON_HEDLEY_RETURNS_NON_NULL * type_name() const noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - v
    argTypes:
    - value_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23502
      start: 23499
    functionDepth: 0
    functionLinenumber: 23499
    functionLinenumberEnd: 23502
    functionName: data
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 770
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void data(const value_t v)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23507,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - cnt
    - ' val'
    argTypes:
    - size_type
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23508
      start: 23504
    functionDepth: 2
    functionLinenumber: 23504
    functionLinenumberEnd: 23508
    functionName: data
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 770
    functionsReached:
    - create
    linkageType: ''
    returnType: void
    signature: void data(size_type cnt, const basic_json& val)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23510
      start: 23510
    functionDepth: 0
    functionLinenumber: 23510
    functionLinenumberEnd: 23510
    functionName: data
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 770
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void data() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23511
      start: 23511
    functionDepth: 0
    functionLinenumber: 23511
    functionLinenumberEnd: 23511
    functionName: data
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 770
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void data(data&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23512
      start: 23512
    functionDepth: 0
    functionLinenumber: 23512
    functionLinenumberEnd: 23512
    functionName: data
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 770
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void data(const data&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23513
      start: 23513
    functionDepth: 0
    functionLinenumber: 23513
    functionLinenumberEnd: 23513
    functionName: '& operator=(data&&) noexcept'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: data
    signature: data & operator=(data&&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23514
      start: 23514
    functionDepth: 0
    functionLinenumber: 23514
    functionLinenumberEnd: 23514
    functionName: '& operator=(const data&) noexcept'
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: data
    signature: data & operator=(const data&) noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: destroy
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23518,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23519
      start: 23516
    functionDepth: 6
    functionLinenumber: 23516
    functionLinenumberEnd: 23519
    functionName: ~data() noexcept
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - destroy
    linkageType: ''
    returnType: void
    signature: void ~data() noexcept
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23550,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - o
    argTypes:
    - basic_json
    - detail::output_adapter<std::uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23551
      start: 23548
    functionDepth: 0
    functionLinenumber: 23548
    functionLinenumberEnd: 23551
    functionName: to_cbor
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - binary_writer<std::uint8_t>
    linkageType: ''
    returnType: void
    signature: void to_cbor(const basic_json& j, detail::output_adapter<std::uint8_t>
      o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23557,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - o
    argTypes:
    - basic_json
    - detail::output_adapter<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23558
      start: 23555
    functionDepth: 0
    functionLinenumber: 23555
    functionLinenumberEnd: 23558
    functionName: to_cbor
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - binary_writer<char>
    linkageType: ''
    returnType: void
    signature: void to_cbor(const basic_json& j, detail::output_adapter<char> o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_msgpack
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23565,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23567
      start: 23562
    functionDepth: 1
    functionLinenumber: 23562
    functionLinenumberEnd: 23567
    functionName: to_msgpack
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - to_msgpack
    linkageType: ''
    returnType: std::vector<std::uint8_t>
    signature: std::vector<std::uint8_t> to_msgpack(const basic_json& j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23573,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - o
    argTypes:
    - basic_json
    - detail::output_adapter<std::uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23574
      start: 23571
    functionDepth: 0
    functionLinenumber: 23571
    functionLinenumberEnd: 23574
    functionName: to_msgpack
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - binary_writer<std::uint8_t>
    linkageType: ''
    returnType: void
    signature: void to_msgpack(const basic_json& j, detail::output_adapter<std::uint8_t>
      o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23580,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - o
    argTypes:
    - basic_json
    - detail::output_adapter<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23581
      start: 23578
    functionDepth: 0
    functionLinenumber: 23578
    functionLinenumberEnd: 23581
    functionName: to_msgpack
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - binary_writer<char>
    linkageType: ''
    returnType: void
    signature: void to_msgpack(const basic_json& j, detail::output_adapter<char> o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_ubjson
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23590,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23592
      start: 23585
    functionDepth: 1
    functionLinenumber: 23585
    functionLinenumberEnd: 23592
    functionName: to_ubjson
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - to_ubjson
    linkageType: ''
    returnType: std::vector<std::uint8_t>
    signature: "std::vector<std::uint8_t> to_ubjson(const basic_json& j,\n            const
      bool use_size = false,\n            const bool use_type = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23599,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - o
    argTypes:
    - basic_json
    - detail::output_adapter<std::uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23600
      start: 23596
    functionDepth: 0
    functionLinenumber: 23596
    functionLinenumberEnd: 23600
    functionName: to_ubjson
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - binary_writer<std::uint8_t>
    linkageType: ''
    returnType: void
    signature: "void to_ubjson(const basic_json& j, detail::output_adapter<std::uint8_t>
      o,\n                          const bool use_size = false, const bool use_type
      = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23607,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - o
    argTypes:
    - basic_json
    - detail::output_adapter<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23608
      start: 23604
    functionDepth: 0
    functionLinenumber: 23604
    functionLinenumberEnd: 23608
    functionName: to_ubjson
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - binary_writer<char>
    linkageType: ''
    returnType: void
    signature: "void to_ubjson(const basic_json& j, detail::output_adapter<char> o,\n
      \                         const bool use_size = false, const bool use_type =
      false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_bjdata
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23617,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23619
      start: 23612
    functionDepth: 1
    functionLinenumber: 23612
    functionLinenumberEnd: 23619
    functionName: to_bjdata
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - to_bjdata
    linkageType: ''
    returnType: std::vector<std::uint8_t>
    signature: "std::vector<std::uint8_t> to_bjdata(const basic_json& j,\n            const
      bool use_size = false,\n            const bool use_type = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23626,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - o
    argTypes:
    - basic_json
    - detail::output_adapter<std::uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23627
      start: 23623
    functionDepth: 0
    functionLinenumber: 23623
    functionLinenumberEnd: 23627
    functionName: to_bjdata
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - binary_writer<std::uint8_t>
    linkageType: ''
    returnType: void
    signature: "void to_bjdata(const basic_json& j, detail::output_adapter<std::uint8_t>
      o,\n                          const bool use_size = false, const bool use_type
      = false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23634,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - o
    argTypes:
    - basic_json
    - detail::output_adapter<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23635
      start: 23631
    functionDepth: 0
    functionLinenumber: 23631
    functionLinenumberEnd: 23635
    functionName: to_bjdata
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - binary_writer<char>
    linkageType: ''
    returnType: void
    signature: "void to_bjdata(const basic_json& j, detail::output_adapter<char> o,\n
      \                         const bool use_size = false, const bool use_type =
      false)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: to_bson
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23642,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23644
      start: 23639
    functionDepth: 1
    functionLinenumber: 23639
    functionLinenumberEnd: 23644
    functionName: to_bson
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - to_bson
    linkageType: ''
    returnType: std::vector<std::uint8_t>
    signature: std::vector<std::uint8_t> to_bson(const basic_json& j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer<std::uint8_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23650,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - o
    argTypes:
    - basic_json
    - detail::output_adapter<std::uint8_t>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23651
      start: 23648
    functionDepth: 0
    functionLinenumber: 23648
    functionLinenumberEnd: 23651
    functionName: to_bson
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - binary_writer<std::uint8_t>
    linkageType: ''
    returnType: void
    signature: void to_bson(const basic_json& j, detail::output_adapter<std::uint8_t>
      o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: binary_writer<char>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23657,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ' j'
    - o
    argTypes:
    - basic_json
    - detail::output_adapter<char>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23658
      start: 23655
    functionDepth: 0
    functionLinenumber: 23655
    functionLinenumberEnd: 23658
    functionName: to_bson
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - binary_writer<char>
    linkageType: ''
    returnType: void
    signature: void to_bson(const basic_json& j, detail::output_adapter<char> o)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23671,1
    - Dst: std::forward<InputType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23671,1
    - Dst: binary_reader<decltype(ia)>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23672,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23672,1
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23673,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - InputType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23674
      start: 23663
    functionDepth: 2
    functionLinenumber: 23663
    functionLinenumberEnd: 23674
    functionName: from_cbor
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::forward<InputType>
    - binary_reader<decltype(ia)>
    - file_input_adapter
    - basic_json
    - std::move
    linkageType: ''
    returnType: JSON_HEDLEY_WARN_UNUSED_RESULT
    signature: "JSON_HEDLEY_WARN_UNUSED_RESULT from_cbor(InputType&& i,\n                                const
      bool strict = true,\n                                const bool allow_exceptions
      = true,\n                                const cbor_tag_handler_t tag_handler
      = cbor_tag_handler_t::error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23687,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23687,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23687,1
    - Dst: binary_reader<decltype(ia)>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23688,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23688,1
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23689,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23690
      start: 23679
    functionDepth: 2
    functionLinenumber: 23679
    functionLinenumberEnd: 23690
    functionName: from_cbor
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - basic_json
    - file_input_adapter
    - std::move
    - binary_reader<decltype(ia)>
    linkageType: ''
    returnType: JSON_HEDLEY_WARN_UNUSED_RESULT
    signature: "JSON_HEDLEY_WARN_UNUSED_RESULT from_cbor(IteratorType first, IteratorType
      last,\n                                const bool strict = true,\n                                const
      bool allow_exceptions = true,\n                                const cbor_tag_handler_t
      tag_handler = cbor_tag_handler_t::error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: from_cbor
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23700,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - T*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23701
      start: 23695
    functionDepth: 1
    functionLinenumber: 23695
    functionLinenumberEnd: 23701
    functionName: from_cbor
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - from_cbor
    linkageType: ''
    returnType: basic_json
    signature: "basic_json from_cbor(const T* ptr, std::size_t len,\n                                const
      bool strict = true,\n                                const bool allow_exceptions
      = true,\n                                const cbor_tag_handler_t tag_handler
      = cbor_tag_handler_t::error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23712,1
    - Dst: binary_reader<decltype(ia)>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23714,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23714,1
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23715,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - detail::span_input_adapter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23716
      start: 23705
    functionDepth: 2
    functionLinenumber: 23705
    functionLinenumberEnd: 23716
    functionName: from_cbor
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - basic_json
    - binary_reader<decltype(ia)>
    - std::move
    - get
    linkageType: ''
    returnType: basic_json
    signature: "basic_json from_cbor(detail::span_input_adapter&& i,\n                                const
      bool strict = true,\n                                const bool allow_exceptions
      = true,\n                                const cbor_tag_handler_t tag_handler
      = cbor_tag_handler_t::error)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23728,1
    - Dst: std::forward<InputType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23728,1
    - Dst: binary_reader<decltype(ia)>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23729,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23729,1
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23730,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - InputType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23731
      start: 23721
    functionDepth: 2
    functionLinenumber: 23721
    functionLinenumberEnd: 23731
    functionName: from_msgpack
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::forward<InputType>
    - binary_reader<decltype(ia)>
    - file_input_adapter
    - basic_json
    - std::move
    linkageType: ''
    returnType: JSON_HEDLEY_WARN_UNUSED_RESULT
    signature: "JSON_HEDLEY_WARN_UNUSED_RESULT from_msgpack(InputType&& i,\n                                   const
      bool strict = true,\n                                   const bool allow_exceptions
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23743,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23743,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23743,1
    - Dst: binary_reader<decltype(ia)>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23744,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23744,1
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23745,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23746
      start: 23736
    functionDepth: 2
    functionLinenumber: 23736
    functionLinenumberEnd: 23746
    functionName: from_msgpack
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - basic_json
    - file_input_adapter
    - std::move
    - binary_reader<decltype(ia)>
    linkageType: ''
    returnType: JSON_HEDLEY_WARN_UNUSED_RESULT
    signature: "JSON_HEDLEY_WARN_UNUSED_RESULT from_msgpack(IteratorType first, IteratorType
      last,\n                                   const bool strict = true,\n                                   const
      bool allow_exceptions = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: from_msgpack
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23755,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - T*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23756
      start: 23751
    functionDepth: 1
    functionLinenumber: 23751
    functionLinenumberEnd: 23756
    functionName: from_msgpack
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - from_msgpack
    linkageType: ''
    returnType: basic_json
    signature: "basic_json from_msgpack(const T* ptr, std::size_t len,\n                                   const
      bool strict = true,\n                                   const bool allow_exceptions
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23766,1
    - Dst: binary_reader<decltype(ia)>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23768,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23768,1
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23769,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - detail::span_input_adapter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23770
      start: 23760
    functionDepth: 2
    functionLinenumber: 23760
    functionLinenumberEnd: 23770
    functionName: from_msgpack
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - basic_json
    - binary_reader<decltype(ia)>
    - std::move
    - get
    linkageType: ''
    returnType: basic_json
    signature: "basic_json from_msgpack(detail::span_input_adapter&& i,\n                                   const
      bool strict = true,\n                                   const bool allow_exceptions
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23782,1
    - Dst: std::forward<InputType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23782,1
    - Dst: binary_reader<decltype(ia)>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23783,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23783,1
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23784,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - InputType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23785
      start: 23775
    functionDepth: 2
    functionLinenumber: 23775
    functionLinenumberEnd: 23785
    functionName: from_ubjson
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::forward<InputType>
    - binary_reader<decltype(ia)>
    - file_input_adapter
    - basic_json
    - std::move
    linkageType: ''
    returnType: JSON_HEDLEY_WARN_UNUSED_RESULT
    signature: "JSON_HEDLEY_WARN_UNUSED_RESULT from_ubjson(InputType&& i,\n                                  const
      bool strict = true,\n                                  const bool allow_exceptions
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23797,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23797,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23797,1
    - Dst: binary_reader<decltype(ia)>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23798,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23798,1
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23799,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23800
      start: 23790
    functionDepth: 2
    functionLinenumber: 23790
    functionLinenumberEnd: 23800
    functionName: from_ubjson
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - basic_json
    - file_input_adapter
    - std::move
    - binary_reader<decltype(ia)>
    linkageType: ''
    returnType: JSON_HEDLEY_WARN_UNUSED_RESULT
    signature: "JSON_HEDLEY_WARN_UNUSED_RESULT from_ubjson(IteratorType first, IteratorType
      last,\n                                  const bool strict = true,\n                                  const
      bool allow_exceptions = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: from_ubjson
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23809,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - T*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23810
      start: 23805
    functionDepth: 1
    functionLinenumber: 23805
    functionLinenumberEnd: 23810
    functionName: from_ubjson
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - from_ubjson
    linkageType: ''
    returnType: basic_json
    signature: "basic_json from_ubjson(const T* ptr, std::size_t len,\n                                  const
      bool strict = true,\n                                  const bool allow_exceptions
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23820,1
    - Dst: binary_reader<decltype(ia)>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23822,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23822,1
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23823,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - detail::span_input_adapter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23824
      start: 23814
    functionDepth: 2
    functionLinenumber: 23814
    functionLinenumberEnd: 23824
    functionName: from_ubjson
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - basic_json
    - binary_reader<decltype(ia)>
    - std::move
    - get
    linkageType: ''
    returnType: basic_json
    signature: "basic_json from_ubjson(detail::span_input_adapter&& i,\n                                  const
      bool strict = true,\n                                  const bool allow_exceptions
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23836,1
    - Dst: std::forward<InputType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23836,1
    - Dst: binary_reader<decltype(ia)>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23837,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23837,1
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23838,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - InputType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23839
      start: 23829
    functionDepth: 2
    functionLinenumber: 23829
    functionLinenumberEnd: 23839
    functionName: from_bjdata
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::forward<InputType>
    - binary_reader<decltype(ia)>
    - file_input_adapter
    - basic_json
    - std::move
    linkageType: ''
    returnType: JSON_HEDLEY_WARN_UNUSED_RESULT
    signature: "JSON_HEDLEY_WARN_UNUSED_RESULT from_bjdata(InputType&& i,\n                                  const
      bool strict = true,\n                                  const bool allow_exceptions
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23851,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23851,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23851,1
    - Dst: binary_reader<decltype(ia)>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23852,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23852,1
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23853,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23854
      start: 23844
    functionDepth: 2
    functionLinenumber: 23844
    functionLinenumberEnd: 23854
    functionName: from_bjdata
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - basic_json
    - file_input_adapter
    - std::move
    - binary_reader<decltype(ia)>
    linkageType: ''
    returnType: JSON_HEDLEY_WARN_UNUSED_RESULT
    signature: "JSON_HEDLEY_WARN_UNUSED_RESULT from_bjdata(IteratorType first, IteratorType
      last,\n                                  const bool strict = true,\n                                  const
      bool allow_exceptions = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23866,1
    - Dst: std::forward<InputType>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23866,1
    - Dst: binary_reader<decltype(ia)>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23867,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23867,1
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23868,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - InputType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23869
      start: 23859
    functionDepth: 2
    functionLinenumber: 23859
    functionLinenumberEnd: 23869
    functionName: from_bson
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - std::forward<InputType>
    - binary_reader<decltype(ia)>
    - file_input_adapter
    - basic_json
    - std::move
    linkageType: ''
    returnType: JSON_HEDLEY_WARN_UNUSED_RESULT
    signature: "JSON_HEDLEY_WARN_UNUSED_RESULT from_bson(InputType&& i,\n                                const
      bool strict = true,\n                                const bool allow_exceptions
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: file_input_adapter
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23881,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23881,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23881,1
    - Dst: binary_reader<decltype(ia)>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23882,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23882,1
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23883,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - first
    - last
    argTypes:
    - IteratorType
    - IteratorType
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23884
      start: 23874
    functionDepth: 2
    functionLinenumber: 23874
    functionLinenumberEnd: 23884
    functionName: from_bson
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - basic_json
    - file_input_adapter
    - std::move
    - binary_reader<decltype(ia)>
    linkageType: ''
    returnType: JSON_HEDLEY_WARN_UNUSED_RESULT
    signature: "JSON_HEDLEY_WARN_UNUSED_RESULT from_bson(IteratorType first, IteratorType
      last,\n                                const bool strict = true,\n                                const
      bool allow_exceptions = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: from_bson
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23893,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - ptr
    - len
    argTypes:
    - T*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23894
      start: 23889
    functionDepth: 1
    functionLinenumber: 23889
    functionLinenumberEnd: 23894
    functionName: from_bson
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - from_bson
    linkageType: ''
    returnType: basic_json
    signature: "basic_json from_bson(const T* ptr, std::size_t len,\n                                const
      bool strict = true,\n                                const bool allow_exceptions
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23904,1
    - Dst: binary_reader<decltype(ia)>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23906,1
    - Dst: std::move
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23906,1
    - Dst: basic_json
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23907,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 1
    argNames:
    - ' i'
    argTypes:
    - detail::span_input_adapter
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23908
      start: 23898
    functionDepth: 2
    functionLinenumber: 23898
    functionLinenumberEnd: 23908
    functionName: from_bson
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - basic_json
    - binary_reader<decltype(ia)>
    - std::move
    - get
    linkageType: ''
    returnType: basic_json
    signature: "basic_json from_bson(detail::span_input_adapter&& i,\n                                const
      bool strict = true,\n                                const bool allow_exceptions
      = true)"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unchecked
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23922,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ptr'
    argTypes:
    - json_pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23923
      start: 23920
    functionDepth: 5
    functionLinenumber: 23920
    functionLinenumberEnd: 23923
    functionName: operator[](const json_pointer& ptr)
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - get_unchecked
    linkageType: ''
    returnType: reference
    signature: reference operator[](const json_pointer& ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unchecked
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23929,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ptr'
    argTypes:
    - ::nlohmann::json_pointer<BasicJsonType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23930
      start: 23927
    functionDepth: 5
    functionLinenumber: 23927
    functionLinenumberEnd: 23930
    functionName: operator[](const ::nlohmann::json_pointer<BasicJsonType>& ptr)
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - get_unchecked
    linkageType: ''
    returnType: reference
    signature: reference operator[](const ::nlohmann::json_pointer<BasicJsonType>&
      ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unchecked
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23936,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ptr'
    argTypes:
    - json_pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23937
      start: 23934
    functionDepth: 5
    functionLinenumber: 23934
    functionLinenumberEnd: 23937
    functionName: operator[](const json_pointer& ptr) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - get_unchecked
    linkageType: ''
    returnType: const_reference
    signature: const_reference operator[](const json_pointer& ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_unchecked
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23943,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ptr'
    argTypes:
    - ::nlohmann::json_pointer<BasicJsonType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23944
      start: 23941
    functionDepth: 5
    functionLinenumber: 23941
    functionLinenumberEnd: 23944
    functionName: operator[](const ::nlohmann::json_pointer<BasicJsonType>& ptr) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - get_unchecked
    linkageType: ''
    returnType: const_reference
    signature: const_reference operator[](const ::nlohmann::json_pointer<BasicJsonType>&
      ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_checked
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23950,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ptr'
    argTypes:
    - json_pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23951
      start: 23948
    functionDepth: 5
    functionLinenumber: 23948
    functionLinenumberEnd: 23951
    functionName: at
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 410
    functionsReached:
    - get_checked
    linkageType: ''
    returnType: reference
    signature: reference at(const json_pointer& ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_checked
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23957,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ptr'
    argTypes:
    - ::nlohmann::json_pointer<BasicJsonType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23958
      start: 23955
    functionDepth: 5
    functionLinenumber: 23955
    functionLinenumberEnd: 23958
    functionName: at
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 410
    functionsReached:
    - get_checked
    linkageType: ''
    returnType: reference
    signature: reference at(const ::nlohmann::json_pointer<BasicJsonType>& ptr)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_checked
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23964,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ptr'
    argTypes:
    - json_pointer
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23965
      start: 23962
    functionDepth: 5
    functionLinenumber: 23962
    functionLinenumberEnd: 23965
    functionName: at
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 410
    functionsReached:
    - get_checked
    linkageType: ''
    returnType: const_reference
    signature: const_reference at(const json_pointer& ptr) const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: get_checked
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23971,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' ptr'
    argTypes:
    - ::nlohmann::json_pointer<BasicJsonType>
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23972
      start: 23969
    functionDepth: 5
    functionLinenumber: 23969
    functionLinenumberEnd: 23972
    functionName: at
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 410
    functionsReached:
    - get_checked
    linkageType: ''
    returnType: const_reference
    signature: const_reference at(const ::nlohmann::json_pointer<BasicJsonType>& ptr)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: flatten
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23979,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23981
      start: 23976
    functionDepth: 1
    functionLinenumber: 23976
    functionLinenumberEnd: 23981
    functionName: flatten
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - flatten
    linkageType: ''
    returnType: basic_json
    signature: basic_json flatten() const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: unflatten
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:23987,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 23988
      start: 23985
    functionDepth: 1
    functionLinenumber: 23985
    functionLinenumberEnd: 23988
    functionName: unflatten
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - unflatten
    linkageType: ''
    returnType: basic_json
    signature: basic_json unflatten() const
  - BBCount: 37
    BranchProfiles: []
    Callsites:
    - Dst: empty
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24041,1
    - Dst: top
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24048,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24051,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24055,1
    - Dst: pop_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24056,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24058,1
    - Dst: push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24075,1
    - Dst: json_pointer::template array_index<basic_json_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24079,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24080,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24080,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24083,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24083,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24083,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24083,1
    - Dst: insert
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24087,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24087,1
    - Dst: static_cast<difference_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24087,1
    - Dst: JSON_ASSERT
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24101,1
    - Dst: back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24109,1
    - Dst: pop_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24110,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24111,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24114,1
    - Dst: find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24117,1
    - Dst: JSON_HEDLEY_LIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24118,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24118,1
    - Dst: erase
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24120,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24124,1
    - Dst: out_of_range::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24124,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24124,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24127,1
    - Dst: erase
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24130,1
    - Dst: json_pointer::template array_index<basic_json_t>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24130,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24135,1
    - Dst: is_array
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24135,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24137,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24137,1
    - Dst: m_data::m_value::object::find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24149,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24152,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24155,1
    - Dst: m_data::m_value::object::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24155,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24158,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24158,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24158,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24162,1
    - Dst: auto::second::is_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24162,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24165,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24165,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24165,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24173,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24173,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24175,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24175,1
    - Dst: get_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24179,1
    - Dst: get_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24180,1
    - Dst: get_op
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24183,1
    - Dst: operation_add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24187,1
    - Dst: get_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24187,1
    - Dst: operation_remove
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24193,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24200,1
    - Dst: get_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24200,1
    - Dst: get_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24206,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24210,1
    - Dst: operation_remove
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24216,1
    - Dst: operation_add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24217,1
    - Dst: get_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24223,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24227,1
    - Dst: operation_add
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24232,1
    - Dst: at
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24243,1
    - Dst: get_value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24243,1
    - Dst: JSON_HEDLEY_UNLIKELY
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24251,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24253,1
    - Dst: other_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24253,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24253,1
    - Dst: dump
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24253,1
    - Dst: JSON_THROW
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24264,1
    - Dst: parse_error::create
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24264,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24264,1
    CyclomaticComplexity: 29
    EdgeCount: 29
    ICount: 118
    argCount: 1
    argNames:
    - ' json_patch'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24267
      start: 24001
    functionDepth: 6
    functionLinenumber: 24001
    functionLinenumberEnd: 24267
    functionName: patch_inplace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - get_value
    - push_back
    - is_array
    - erase
    - JSON_ASSERT
    - m_data::m_value::object::find
    - empty
    - vpaths_concat
    - begin
    - size
    - out_of_range::create
    - JSON_HEDLEY_UNLIKELY
    - operation_remove
    - JSON_THROW
    - at
    - is_object
    - get_op
    - back
    - pop_back
    - parse_error::create
    - JSON_HEDLEY_LIKELY
    - top
    - m_data::m_value::object::end
    - auto::second::is_string
    - end
    - insert
    - other_error::create
    - to_string
    - json_pointer::template array_index<basic_json_t>
    - dump
    - find
    - operation_add
    - static_cast<difference_type>
    linkageType: ''
    returnType: void
    signature: void patch_inplace(const basic_json& json_patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: basic_json::patch_inplace
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24275,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 1
    argNames:
    - ' json_patch'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24277
      start: 24272
    functionDepth: 7
    functionLinenumber: 24272
    functionLinenumberEnd: 24277
    functionName: patch
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 2
    functionsReached:
    - basic_json::patch_inplace
    linkageType: ''
    returnType: basic_json
    signature: basic_json patch(const basic_json& json_patch) const
  - BBCount: 16
    BranchProfiles: []
    Callsites:
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24294,1
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24294,1
    - Dst: basic_json::push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24297,1
    - Dst: type
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24304,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24310,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24310,1
    - Dst: diff
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24313,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24313,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24313,1
    - Dst: basic_json::insert
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24314,1
    - Dst: basic_json::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24314,1
    - Dst: auto::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24314,1
    - Dst: auto::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24314,1
    - Dst: static_cast<difference_type>
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24322,1
    - Dst: basic_json::size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24322,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24323,1
    - Dst: basic_json::insert
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24327,1
    - Dst: basic_json::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24327,1
    - Dst: object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24327,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24330,1
    - Dst: to_string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24330,1
    - Dst: size
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24336,1
    - Dst: basic_json::push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24338,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24341,1
    - Dst: cbegin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24353,1
    - Dst: cend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24353,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24356,1
    - Dst: escape
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24356,1
    - Dst: auto::key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24356,1
    - Dst: find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24358,1
    - Dst: auto::key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24358,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24358,1
    - Dst: diff
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24361,1
    - Dst: auto::value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24361,1
    - Dst: auto::key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24361,1
    - Dst: basic_json::insert
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24362,1
    - Dst: basic_json::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24362,1
    - Dst: auto::begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24362,1
    - Dst: auto::end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24362,1
    - Dst: basic_json::push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24367,1
    - Dst: object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24367,1
    - Dst: cbegin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24375,1
    - Dst: cend
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24375,1
    - Dst: find
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24377,1
    - Dst: auto::key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24377,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24377,1
    - Dst: vpaths_concat
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24380,1
    - Dst: escape
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24380,1
    - Dst: auto::key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24380,1
    - Dst: basic_json::push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24381,1
    - Dst: auto::value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24384,1
    - Dst: basic_json::push_back
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24403,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 53
    argCount: 2
    argNames:
    - ' source'
    - ' target'
    argTypes:
    - basic_json
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24412
      start: 24281
    functionDepth: 4
    functionLinenumber: 24281
    functionLinenumberEnd: 24412
    functionName: diff
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - basic_json::begin
    - auto::key
    - auto::end
    - vpaths_concat
    - object
    - size
    - auto::begin
    - basic_json::end
    - basic_json::push_back
    - diff
    - cbegin
    - escape
    - type
    - basic_json::size
    - end
    - to_string
    - basic_json::insert
    - find
    - static_cast<difference_type>
    - auto::value
    - cend
    linkageType: ''
    returnType: JSON_HEDLEY_WARN_UNUSED_RESULT
    signature: "JSON_HEDLEY_WARN_UNUSED_RESULT diff(const basic_json& source, const
      basic_json& target,\n                           const std::string& path = \"\")"
  - BBCount: 4
    BranchProfiles: []
    Callsites:
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24426,1
    - Dst: is_object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24428,1
    - Dst: object
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24430,1
    - Dst: begin
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24432,1
    - Dst: end
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24432,1
    - Dst: auto::value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24434,1
    - Dst: erase
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24436,1
    - Dst: auto::key
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24436,1
    - Dst: merge_patch
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24440,1
    - Dst: auto::value
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24440,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 15
    argCount: 1
    argNames:
    - ' apply_patch'
    argTypes:
    - basic_json
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24448
      start: 24424
    functionDepth: 6
    functionLinenumber: 24424
    functionLinenumberEnd: 24448
    functionName: merge_patch
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 1
    functionsReached:
    - end
    - is_object
    - erase
    - auto::key
    - begin
    - merge_patch
    - auto::value
    - object
    linkageType: ''
    returnType: void
    signature: void merge_patch(const basic_json& apply_patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: dump
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24458,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - NLOHMANN_BASIC_JSON_TPL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24459
      start: 24455
    functionDepth: 0
    functionLinenumber: 24455
    functionLinenumberEnd: 24459
    functionName: std::string to_string(const NLOHMANN_BASIC_JSON_TPL& j)
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - dump
    linkageType: ''
    returnType: NLOHMANN_BASIC_JSON_TPL_DECLARATION
    signature: NLOHMANN_BASIC_JSON_TPL_DECLARATION std::string to_string(const NLOHMANN_BASIC_JSON_TPL&
      j)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: pgp::pkt::Signature::parse
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24475,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24476
      start: 24472
    functionDepth: 0
    functionLinenumber: 24472
    functionLinenumberEnd: 24476
    functionName: operator "" _json(const char* s, std::size_t n)
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - pgp::pkt::Signature::parse
    linkageType: ''
    returnType: nlohmann::json
    signature: nlohmann::json operator "" _json(const char* s, std::size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: json_pointer
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24487,1
    - Dst: string
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - s
    - n
    argTypes:
    - char*
    - std::size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24488
      start: 24484
    functionDepth: 2
    functionLinenumber: 24484
    functionLinenumberEnd: 24488
    functionName: operator "" _json_pointer(const char* s, std::size_t n)
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - string
    - json_pointer
    linkageType: ''
    returnType: nlohmann::json::json_pointer
    signature: nlohmann::json::json_pointer operator "" _json_pointer(const char*
      s, std::size_t n)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_hash
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24508,1
    - Dst: std::is_lt
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24524,1
    - Dst: ::nlohmann::detail::operator<
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24526,1
    - Dst: swap
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24546
      start: 24492
    functionDepth: 2
    functionLinenumber: 24492
    functionLinenumberEnd: 24546
    functionName: namespace
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - print_hash
    - ::nlohmann::detail::operator<
    - swap
    - std::is_lt
    linkageType: ''
    returnType: NLOHMANN_JSON_NAMESPACE_END
    signature: NLOHMANN_JSON_NAMESPACE_END namespace
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_hash
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24510
      start: 24503
    functionDepth: 1
    functionLinenumber: 24503
    functionLinenumberEnd: 24510
    functionName: struct
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 36
    functionsReached:
    - print_hash
    linkageType: ''
    returnType: NLOHMANN_BASIC_JSON_TPL_DECLARATION
    signature: NLOHMANN_BASIC_JSON_TPL_DECLARATION struct hash<nlohmann::NLOHMANN_BASIC_JSON_TPL>
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: print_hash
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24508,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - ' j'
    argTypes:
    - nlohmann::NLOHMANN_BASIC_JSON_TPL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24509
      start: 24506
    functionDepth: 1
    functionLinenumber: 24506
    functionLinenumberEnd: 24509
    functionName: operator()(const nlohmann::NLOHMANN_BASIC_JSON_TPL& j) const
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - print_hash
    linkageType: ''
    returnType: std::size_t
    signature: std::size_t operator()(const nlohmann::NLOHMANN_BASIC_JSON_TPL& j)
      const
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: std::is_lt
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24524,1
    - Dst: ::nlohmann::detail::operator<
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24526,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 2
    argNames:
    - lhs
    - rhs
    argTypes:
    - ::nlohmann::detail::value_t
    - ::nlohmann::detail::value_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24528
      start: 24520
    functionDepth: 0
    functionLinenumber: 24520
    functionLinenumberEnd: 24528
    functionName: "operator()(::nlohmann::detail::value_t lhs,\n                    ::nlohmann::detail::value_t
      rhs) const noexcept"
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 0
    functionsReached:
    - ::nlohmann::detail::operator<
    - std::is_lt
    linkageType: ''
    returnType: bool
    signature: "bool operator()(::nlohmann::detail::value_t lhs,\n                    ::nlohmann::detail::value_t
      rhs) const noexcept"
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: swap
      Src: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp:24541,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 2
    argNames:
    - ' j1'
    - ' j2'
    argTypes:
    - nlohmann::NLOHMANN_BASIC_JSON_TPL
    - nlohmann::NLOHMANN_BASIC_JSON_TPL
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 24542
      start: 24536
    functionDepth: 1
    functionLinenumber: 24536
    functionLinenumberEnd: 24542
    functionName: swap
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    functionUses: 14
    functionsReached:
    - swap
    linkageType: ''
    returnType: NLOHMANN_BASIC_JSON_TPL_DECLARATION
    signature: "NLOHMANN_BASIC_JSON_TPL_DECLARATION swap(nlohmann::NLOHMANN_BASIC_JSON_TPL&
      j1, nlohmann::NLOHMANN_BASIC_JSON_TPL& j2) noexcept(  // NOLINT(readability-inconsistent-declaration-parameter-name,
      cert-dcl58-cpp)\n    is_nothrow_move_constructible<nlohmann::NLOHMANN_BASIC_JSON_TPL>::value&&
      \                         // NOLINT(misc-redundant-expression,cppcoreguidelines-noexcept-swap,performance-noexcept-swap)\n
      \   is_nothrow_move_assignable<nlohmann::NLOHMANN_BASIC_JSON_TPL>::value)"
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 69
      start: 68
    functionDepth: 0
    functionLinenumber: 68
    functionLinenumberEnd: 69
    functionName: NLOHMANN_JSON_ABI_TAGS_CONCAT_EX
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json_fwd.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 71
      start: 69
    functionDepth: 0
    functionLinenumber: 69
    functionLinenumberEnd: 71
    functionName: NLOHMANN_JSON_ABI_TAGS_CONCAT
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json_fwd.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 78
    functionDepth: 0
    functionLinenumber: 78
    functionLinenumberEnd: 80
    functionName: NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json_fwd.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 7
    argNames:
    - (
    - major
    - ','
    - minor
    - ','
    - patch
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 82
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 82
    functionName: NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json_fwd.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(major, minor, patch)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 94
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 94
    functionName: NLOHMANN_JSON_NAMESPACE_CONCAT_EX
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json_fwd.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 1
    argCount: 5
    argNames:
    - (
    - a
    - ','
    - b
    - )
    argTypes:
    - auto
    - auto
    - auto
    - auto
    - auto
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 96
      start: 94
    functionDepth: 0
    functionLinenumber: 94
    functionLinenumberEnd: 96
    functionName: NLOHMANN_JSON_NAMESPACE_CONCAT
    functionSourceFile: /src/rnp/src/lib/nlohmann/nlohmann/json_fwd.hpp
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: auto
    signature: NLOHMANN_JSON_NAMESPACE_CONCAT(a, b)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/rnp/src/examples/verify.c:42,1
    - Dst: strcmp
      Src: /src/rnp/src/examples/verify.c:43,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/verify.c:44,1
    - Dst: strlen
      Src: /src/rnp/src/examples/verify.c:48,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/verify.c:49,1
    - Dst: snprintf
      Src: /src/rnp/src/examples/verify.c:55,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/examples/verify.c:57,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/verify.c:58,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/examples/verify.c:62,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/verify.c:65,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/examples/verify.c:67,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 5
    argNames:
    - ffi
    - app_ctx
    - identifier_type
    - identifier
    - secret
    argTypes:
    - rnp_ffi_t
    - void*
    - char*
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 68
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 68
    functionName: example_key_provider
    functionSourceFile: /src/rnp/src/examples/verify.c
    functionUses: 0
    functionsReached:
    - rnp_input_from_path
    - fprintf
    - strcmp
    - strlen
    - rnp_load_keys
    - snprintf
    - rnp_input_destroy
    linkageType: ''
    returnType: void
    signature: "void example_key_provider(rnp_ffi_t   ffi,\n                     void
      *      app_ctx,\n                     const char *identifier_type,\n                     const
      char *identifier,\n                     bool        secret)"
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/examples/verify.c:83,1
    - Dst: rnp_ffi_set_key_provider
      Src: /src/rnp/src/examples/verify.c:88,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/examples/verify.c:92,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/verify.c:93,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/examples/verify.c:97,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/verify.c:98,1
    - Dst: rnp_op_verify_create
      Src: /src/rnp/src/examples/verify.c:102,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/verify.c:103,1
    - Dst: rnp_op_verify_execute
      Src: /src/rnp/src/examples/verify.c:107,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/verify.c:108,1
    - Dst: rnp_op_verify_get_signature_count
      Src: /src/rnp/src/examples/verify.c:113,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/verify.c:114,1
    - Dst: rnp_op_verify_get_signature_at
      Src: /src/rnp/src/examples/verify.c:124,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/verify.c:125,1
    - Dst: rnp_op_verify_signature_get_key
      Src: /src/rnp/src/examples/verify.c:129,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/verify.c:130,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/examples/verify.c:134,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/verify.c:135,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/examples/verify.c:136,1
    - Dst: rnp_op_verify_signature_get_status
      Src: /src/rnp/src/examples/verify.c:140,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/verify.c:141,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/examples/verify.c:142,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/examples/verify.c:143,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/examples/verify.c:147,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/verify.c:150,1
    - Dst: rnp_op_verify_destroy
      Src: /src/rnp/src/examples/verify.c:154,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/examples/verify.c:155,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/examples/verify.c:156,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/examples/verify.c:157,1
    CyclomaticComplexity: 20
    EdgeCount: 20
    ICount: 65
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 159
      start: 70
    functionDepth: 3
    functionLinenumber: 70
    functionLinenumberEnd: 159
    functionName: ffi_verify
    functionSourceFile: /src/rnp/src/examples/verify.c
    functionUses: 0
    functionsReached:
    - rnp_output_memory_get_buf
    - rnp_op_verify_signature_get_key
    - rnp_op_verify_get_signature_at
    - rnp_op_verify_execute
    - rnp_key_get_keyid
    - rnp_input_from_path
    - fprintf
    - rnp_op_verify_destroy
    - rnp_key_handle_destroy
    - rnp_output_to_memory
    - rnp_ffi_set_key_provider
    - rnp_ffi_destroy
    - rnp_op_verify_create
    - rnp_ffi_create
    - rnp_op_verify_get_signature_count
    - rnp_input_destroy
    - rnp_buffer_destroy
    - rnp_output_destroy
    - rnp_op_verify_signature_get_status
    linkageType: ''
    returnType: int
    signature: int ffi_verify()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ffi_verify
      Src: /src/rnp/src/examples/verify.c:164,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 165
      start: 161
    functionDepth: 4
    functionLinenumber: 161
    functionLinenumberEnd: 165
    functionName: main
    functionSourceFile: /src/rnp/src/examples/verify.c
    functionUses: 1
    functionsReached:
    - ffi_verify
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 11
    BranchProfiles: []
    Callsites:
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/examples/encrypt.c:46,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/examples/encrypt.c:51,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/encrypt.c:52,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/examples/encrypt.c:57,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/encrypt.c:58,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/examples/encrypt.c:61,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/examples/encrypt.c:65,1
    - Dst: strlen
      Src: /src/rnp/src/examples/encrypt.c:65,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/encrypt.c:67,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/examples/encrypt.c:71,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/encrypt.c:72,1
    - Dst: rnp_op_encrypt_create
      Src: /src/rnp/src/examples/encrypt.c:77,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/encrypt.c:78,1
    - Dst: rnp_op_encrypt_set_armor
      Src: /src/rnp/src/examples/encrypt.c:83,1
    - Dst: rnp_op_encrypt_set_file_name
      Src: /src/rnp/src/examples/encrypt.c:84,1
    - Dst: rnp_op_encrypt_set_file_mtime
      Src: /src/rnp/src/examples/encrypt.c:85,1
    - Dst: time
      Src: /src/rnp/src/examples/encrypt.c:85,1
    - Dst: rnp_op_encrypt_set_compression
      Src: /src/rnp/src/examples/encrypt.c:86,1
    - Dst: rnp_op_encrypt_set_cipher
      Src: /src/rnp/src/examples/encrypt.c:87,1
    - Dst: rnp_op_encrypt_set_aead
      Src: /src/rnp/src/examples/encrypt.c:88,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/examples/encrypt.c:92,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/encrypt.c:93,1
    - Dst: rnp_op_encrypt_add_recipient
      Src: /src/rnp/src/examples/encrypt.c:97,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/encrypt.c:98,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/examples/encrypt.c:101,1
    - Dst: rnp_op_encrypt_add_password
      Src: /src/rnp/src/examples/encrypt.c:105,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/encrypt.c:107,1
    - Dst: rnp_op_encrypt_execute
      Src: /src/rnp/src/examples/encrypt.c:112,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/encrypt.c:113,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/encrypt.c:117,1
    - Dst: rnp_op_encrypt_destroy
      Src: /src/rnp/src/examples/encrypt.c:120,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/examples/encrypt.c:121,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/examples/encrypt.c:122,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/examples/encrypt.c:123,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/examples/encrypt.c:124,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/examples/encrypt.c:125,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 70
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 127
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 127
    functionName: ffi_encrypt
    functionSourceFile: /src/rnp/src/examples/encrypt.c
    functionUses: 0
    functionsReached:
    - rnp_output_to_path
    - rnp_op_encrypt_set_aead
    - rnp_op_encrypt_add_password
    - strlen
    - rnp_load_keys
    - rnp_input_from_path
    - rnp_op_encrypt_add_recipient
    - rnp_op_encrypt_create
    - rnp_op_encrypt_set_file_mtime
    - fprintf
    - rnp_op_encrypt_set_cipher
    - rnp_op_encrypt_set_compression
    - rnp_key_handle_destroy
    - rnp_locate_key
    - rnp_input_from_memory
    - rnp_op_encrypt_set_file_name
    - rnp_op_encrypt_execute
    - rnp_ffi_destroy
    - rnp_op_encrypt_set_armor
    - time
    - rnp_ffi_create
    - rnp_input_destroy
    - rnp_op_encrypt_destroy
    - rnp_output_destroy
    linkageType: ''
    returnType: int
    signature: int ffi_encrypt()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ffi_encrypt
      Src: /src/rnp/src/examples/encrypt.c:132,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 133
      start: 129
    functionDepth: 1
    functionLinenumber: 129
    functionLinenumberEnd: 133
    functionName: main
    functionSourceFile: /src/rnp/src/examples/encrypt.c
    functionUses: 1
    functionsReached:
    - ffi_encrypt
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: _splitpath_s
      Src: /src/rnp/src/examples/dump.c:45,1
    - Dst: basename
      Src: /src/rnp/src/examples/dump.c:47,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/dump.c:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - program_name
    argTypes:
    - char*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 59
      start: 38
    functionDepth: 0
    functionLinenumber: 38
    functionLinenumberEnd: 59
    functionName: print_usage
    functionSourceFile: /src/rnp/src/examples/dump.c
    functionUses: 4
    functionsReached:
    - _splitpath_s
    - fprintf
    - basename
    linkageType: ''
    returnType: void
    signature: void print_usage(char *program_name)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: read
      Src: /src/rnp/src/examples/dump.c:64,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 4
    argNames:
    - app_ctx
    - buf
    - len
    - readres
    argTypes:
    - void*
    - void*
    - size_t
    - size_t*
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 70
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 70
    functionName: stdin_reader
    functionSourceFile: /src/rnp/src/examples/dump.c
    functionUses: 0
    functionsReached:
    - read
    linkageType: ''
    returnType: bool
    signature: bool stdin_reader(void *app_ctx, void *buf, size_t len, size_t *readres)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: write
      Src: /src/rnp/src/examples/dump.c:75,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 2
    argCount: 3
    argNames:
    - app_ctx
    - buf
    - len
    argTypes:
    - void*
    - void*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 77
      start: 72
    functionDepth: 0
    functionLinenumber: 72
    functionLinenumberEnd: 77
    functionName: stdout_writer
    functionSourceFile: /src/rnp/src/examples/dump.c
    functionUses: 0
    functionsReached:
    - write
    linkageType: ''
    returnType: bool
    signature: bool stdout_writer(void *app_ctx, const void *buf, size_t len)
  - BBCount: 13
    BranchProfiles: []
    Callsites:
    - Dst: getopt
      Src: /src/rnp/src/examples/dump.c:96,1
    - Dst: print_usage
      Src: /src/rnp/src/examples/dump.c:114,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/examples/dump.c:127,1
    - Dst: rnp_input_from_callback
      Src: /src/rnp/src/examples/dump.c:129,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/dump.c:132,1
    - Dst: rnp_output_to_callback
      Src: /src/rnp/src/examples/dump.c:138,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/dump.c:140,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/examples/dump.c:141,1
    - Dst: rnp_dump_packets_to_output
      Src: /src/rnp/src/examples/dump.c:144,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/examples/dump.c:145,1
    - Dst: rnp_dump_packets_to_json
      Src: /src/rnp/src/examples/dump.c:148,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/dump.c:150,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/examples/dump.c:152,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/examples/dump.c:154,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/dump.c:158,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 57
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char*[]
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 163
      start: 79
    functionDepth: 3
    functionLinenumber: 79
    functionLinenumberEnd: 163
    functionName: main
    functionSourceFile: /src/rnp/src/examples/dump.c
    functionUses: 1
    functionsReached:
    - rnp_input_from_callback
    - rnp_input_from_path
    - getopt
    - fprintf
    - rnp_buffer_destroy
    - print_usage
    - rnp_output_to_callback
    - rnp_dump_packets_to_output
    - rnp_dump_packets_to_json
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: int
    signature: int main(int argc, char *const argv[])
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: strncpy
      Src: /src/rnp/src/examples/sign.c:42,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 6
    argNames:
    - ffi
    - app_ctx
    - key
    - pgp_context
    - buf
    - buf_len
    argTypes:
    - rnp_ffi_t
    - void*
    - rnp_key_handle_t
    - char*
    - char[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 44
      start: 34
    functionDepth: 0
    functionLinenumber: 34
    functionLinenumberEnd: 44
    functionName: example_pass_provider
    functionSourceFile: /src/rnp/src/examples/sign.c
    functionUses: 0
    functionsReached:
    - strncpy
    linkageType: ''
    returnType: bool
    signature: "bool example_pass_provider(rnp_ffi_t        ffi,\n                      void
      *           app_ctx,\n                      rnp_key_handle_t key,\n                      const
      char *     pgp_context,\n                      char             buf[],\n                      size_t
      \          buf_len)"
  - BBCount: 12
    BranchProfiles: []
    Callsites:
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/examples/sign.c:59,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/examples/sign.c:65,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/sign.c:66,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/examples/sign.c:71,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/sign.c:72,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/examples/sign.c:75,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/examples/sign.c:79,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/examples/sign.c:83,1
    - Dst: strlen
      Src: /src/rnp/src/examples/sign.c:83,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/sign.c:85,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/examples/sign.c:89,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/sign.c:90,1
    - Dst: rnp_op_sign_create
      Src: /src/rnp/src/examples/sign.c:97,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/sign.c:98,1
    - Dst: rnp_op_sign_set_armor
      Src: /src/rnp/src/examples/sign.c:103,1
    - Dst: rnp_op_sign_set_file_name
      Src: /src/rnp/src/examples/sign.c:104,1
    - Dst: rnp_op_sign_set_file_mtime
      Src: /src/rnp/src/examples/sign.c:105,1
    - Dst: time
      Src: /src/rnp/src/examples/sign.c:105,1
    - Dst: rnp_op_sign_set_compression
      Src: /src/rnp/src/examples/sign.c:106,1
    - Dst: rnp_op_sign_set_creation_time
      Src: /src/rnp/src/examples/sign.c:108,1
    - Dst: time
      Src: /src/rnp/src/examples/sign.c:108,1
    - Dst: rnp_op_sign_set_expiration_time
      Src: /src/rnp/src/examples/sign.c:110,1
    - Dst: rnp_op_sign_set_hash
      Src: /src/rnp/src/examples/sign.c:112,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/examples/sign.c:116,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/sign.c:117,1
    - Dst: rnp_op_sign_add_signature
      Src: /src/rnp/src/examples/sign.c:122,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/sign.c:123,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/examples/sign.c:128,1
    - Dst: rnp_locate_key
      Src: /src/rnp/src/examples/sign.c:132,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/sign.c:133,1
    - Dst: rnp_op_sign_add_signature
      Src: /src/rnp/src/examples/sign.c:137,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/sign.c:138,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/examples/sign.c:142,1
    - Dst: rnp_op_sign_execute
      Src: /src/rnp/src/examples/sign.c:146,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/sign.c:147,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/sign.c:151,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/examples/sign.c:155,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/examples/sign.c:156,1
    - Dst: rnp_op_sign_destroy
      Src: /src/rnp/src/examples/sign.c:157,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/examples/sign.c:158,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/examples/sign.c:159,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/examples/sign.c:160,1
    CyclomaticComplexity: 21
    EdgeCount: 21
    ICount: 79
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 162
      start: 46
    functionDepth: 0
    functionLinenumber: 46
    functionLinenumberEnd: 162
    functionName: ffi_sign
    functionSourceFile: /src/rnp/src/examples/sign.c
    functionUses: 0
    functionsReached:
    - rnp_output_to_path
    - rnp_op_sign_destroy
    - rnp_op_sign_set_compression
    - rnp_ffi_set_pass_provider
    - strlen
    - rnp_load_keys
    - rnp_input_from_path
    - fprintf
    - rnp_op_sign_set_armor
    - rnp_op_sign_create
    - rnp_key_handle_destroy
    - rnp_op_sign_add_signature
    - rnp_op_sign_set_creation_time
    - rnp_locate_key
    - rnp_input_from_memory
    - rnp_ffi_destroy
    - rnp_op_sign_set_expiration_time
    - rnp_op_sign_set_hash
    - time
    - rnp_ffi_create
    - rnp_op_sign_set_file_mtime
    - rnp_input_destroy
    - rnp_op_sign_execute
    - rnp_output_destroy
    - rnp_op_sign_set_file_name
    linkageType: ''
    returnType: int
    signature: int ffi_sign()
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: ffi_sign
      Src: /src/rnp/src/examples/sign.c:167,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 168
      start: 164
    functionDepth: 1
    functionLinenumber: 164
    functionLinenumberEnd: 168
    functionName: main
    functionSourceFile: /src/rnp/src/examples/sign.c
    functionUses: 1
    functionsReached:
    - ffi_sign
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 3
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/rnp/src/examples/decrypt.c:43,1
    - Dst: strncpy
      Src: /src/rnp/src/examples/decrypt.c:44,1
    - Dst: strcmp
      Src: /src/rnp/src/examples/decrypt.c:47,1
    - Dst: strncpy
      Src: /src/rnp/src/examples/decrypt.c:48,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 6
    argNames:
    - ffi
    - app_ctx
    - key
    - pgp_context
    - buf
    - buf_len
    argTypes:
    - rnp_ffi_t
    - void*
    - rnp_key_handle_t
    - char*
    - char[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 53
      start: 35
    functionDepth: 0
    functionLinenumber: 35
    functionLinenumberEnd: 53
    functionName: example_pass_provider
    functionSourceFile: /src/rnp/src/examples/decrypt.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strncpy
    linkageType: ''
    returnType: bool
    signature: "bool example_pass_provider(rnp_ffi_t        ffi,\n                      void
      *           app_ctx,\n                      rnp_key_handle_t key,\n                      const
      char *     pgp_context,\n                      char             buf[],\n                      size_t
      \          buf_len)"
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/examples/decrypt.c:67,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/examples/decrypt.c:75,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/decrypt.c:76,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/examples/decrypt.c:81,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/decrypt.c:82,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/examples/decrypt.c:85,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/examples/decrypt.c:90,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/examples/decrypt.c:94,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/decrypt.c:95,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/examples/decrypt.c:99,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/decrypt.c:100,1
    - Dst: rnp_decrypt
      Src: /src/rnp/src/examples/decrypt.c:104,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/decrypt.c:105,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/examples/decrypt.c:110,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/decrypt.c:113,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/examples/decrypt.c:121,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/examples/decrypt.c:122,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/examples/decrypt.c:123,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/examples/decrypt.c:124,1
    CyclomaticComplexity: 14
    EdgeCount: 14
    ICount: 47
    argCount: 1
    argNames:
    - usekeys
    argTypes:
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 126
      start: 55
    functionDepth: 0
    functionLinenumber: 55
    functionLinenumberEnd: 126
    functionName: ffi_decrypt
    functionSourceFile: /src/rnp/src/examples/decrypt.c
    functionUses: 0
    functionsReached:
    - rnp_output_to_memory
    - rnp_output_memory_get_buf
    - rnp_input_from_path
    - fprintf
    - rnp_ffi_destroy
    - rnp_decrypt
    - rnp_ffi_set_pass_provider
    - rnp_load_keys
    - rnp_ffi_create
    - rnp_output_destroy
    - rnp_input_destroy
    linkageType: ''
    returnType: int
    signature: int ffi_decrypt(bool usekeys)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ffi_decrypt
      Src: /src/rnp/src/examples/decrypt.c:132,1
    - Dst: ffi_decrypt
      Src: /src/rnp/src/examples/decrypt.c:136,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 138
      start: 128
    functionDepth: 1
    functionLinenumber: 128
    functionLinenumberEnd: 138
    functionName: main
    functionSourceFile: /src/rnp/src/examples/decrypt.c
    functionUses: 1
    functionsReached:
    - ffi_decrypt
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: strcmp
      Src: /src/rnp/src/examples/generate.c:91,1
    - Dst: strncpy
      Src: /src/rnp/src/examples/generate.c:95,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 6
    argNames:
    - ffi
    - app_ctx
    - key
    - pgp_context
    - buf
    - buf_len
    argTypes:
    - rnp_ffi_t
    - void*
    - rnp_key_handle_t
    - char*
    - char[]
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 97
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 97
    functionName: example_pass_provider
    functionSourceFile: /src/rnp/src/examples/generate.c
    functionUses: 0
    functionsReached:
    - strcmp
    - strncpy
    linkageType: ''
    returnType: bool
    signature: "bool example_pass_provider(rnp_ffi_t        ffi,\n                      void
      *           app_ctx,\n                      rnp_key_handle_t key,\n                      const
      char *     pgp_context,\n                      char             buf[],\n                      size_t
      \          buf_len)"
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp_locate_key
      Src: /src/rnp/src/examples/generate.c:111,1
    - Dst: rnp_output_to_memory
      Src: /src/rnp/src/examples/generate.c:120,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/examples/generate.c:125,1
    - Dst: rnp_output_memory_get_buf
      Src: /src/rnp/src/examples/generate.c:130,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/generate.c:133,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/examples/generate.c:137,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/examples/generate.c:138,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 27
    argCount: 3
    argNames:
    - ffi
    - uid
    - secret
    argTypes:
    - rnp_ffi_t
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 140
      start: 100
    functionDepth: 0
    functionLinenumber: 100
    functionLinenumberEnd: 140
    functionName: ffi_print_key
    functionSourceFile: /src/rnp/src/examples/generate.c
    functionUses: 0
    functionsReached:
    - rnp_output_to_memory
    - rnp_locate_key
    - rnp_output_memory_get_buf
    - fprintf
    - rnp_key_export
    - rnp_key_handle_destroy
    - rnp_output_destroy
    linkageType: ''
    returnType: bool
    signature: bool ffi_print_key(rnp_ffi_t ffi, const char *uid, bool secret)
  - BBCount: 6
    BranchProfiles: []
    Callsites:
    - Dst: rnp_locate_key
      Src: /src/rnp/src/examples/generate.c:153,1
    - Dst: rnp_key_get_keyid
      Src: /src/rnp/src/examples/generate.c:162,1
    - Dst: snprintf
      Src: /src/rnp/src/examples/generate.c:165,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/examples/generate.c:166,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/examples/generate.c:169,1
    - Dst: rnp_key_export
      Src: /src/rnp/src/examples/generate.c:174,1
    - Dst: rnp_key_handle_destroy
      Src: /src/rnp/src/examples/generate.c:180,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/examples/generate.c:181,1
    CyclomaticComplexity: 8
    EdgeCount: 8
    ICount: 28
    argCount: 3
    argNames:
    - ffi
    - uid
    - secret
    argTypes:
    - rnp_ffi_t
    - char*
    - bool
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 183
      start: 142
    functionDepth: 3
    functionLinenumber: 142
    functionLinenumberEnd: 183
    functionName: ffi_export_key
    functionSourceFile: /src/rnp/src/examples/generate.c
    functionUses: 0
    functionsReached:
    - rnp_output_to_path
    - rnp_locate_key
    - rnp_buffer_destroy
    - rnp_key_export
    - rnp_key_handle_destroy
    - rnp_output_destroy
    - rnp_key_get_keyid
    - snprintf
    linkageType: ''
    returnType: bool
    signature: bool ffi_export_key(rnp_ffi_t ffi, const char *uid, bool secret)
  - BBCount: 9
    BranchProfiles: []
    Callsites:
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/examples/generate.c:195,1
    - Dst: rnp_ffi_set_pass_provider
      Src: /src/rnp/src/examples/generate.c:200,1
    - Dst: rnp_generate_key_json
      Src: /src/rnp/src/examples/generate.c:205,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/generate.c:206,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/generate.c:210,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/examples/generate.c:212,1
    - Dst: rnp_generate_key_json
      Src: /src/rnp/src/examples/generate.c:216,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/generate.c:217,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/generate.c:221,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/examples/generate.c:222,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/examples/generate.c:227,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/generate.c:228,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/examples/generate.c:232,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/generate.c:233,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/examples/generate.c:237,1
    - Dst: rnp_output_to_path
      Src: /src/rnp/src/examples/generate.c:241,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/generate.c:242,1
    - Dst: rnp_save_keys
      Src: /src/rnp/src/examples/generate.c:246,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/generate.c:247,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/examples/generate.c:251,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/examples/generate.c:256,1
    - Dst: rnp_output_destroy
      Src: /src/rnp/src/examples/generate.c:257,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/examples/generate.c:258,1
    CyclomaticComplexity: 15
    EdgeCount: 15
    ICount: 55
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 260
      start: 186
    functionDepth: 3
    functionLinenumber: 186
    functionLinenumberEnd: 260
    functionName: ffi_generate_keys
    functionSourceFile: /src/rnp/src/examples/generate.c
    functionUses: 0
    functionsReached:
    - rnp_output_to_path
    - rnp_save_keys
    - rnp_generate_key_json
    - fprintf
    - rnp_buffer_destroy
    - rnp_ffi_destroy
    - rnp_ffi_set_pass_provider
    - rnp_ffi_create
    - rnp_output_destroy
    linkageType: ''
    returnType: int
    signature: int ffi_generate_keys()
  - BBCount: 8
    BranchProfiles: []
    Callsites:
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/examples/generate.c:270,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/examples/generate.c:275,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/generate.c:276,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/examples/generate.c:281,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/generate.c:282,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/examples/generate.c:285,1
    - Dst: rnp_input_from_path
      Src: /src/rnp/src/examples/generate.c:288,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/generate.c:289,1
    - Dst: rnp_load_keys
      Src: /src/rnp/src/examples/generate.c:293,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/generate.c:294,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/examples/generate.c:297,1
    - Dst: ffi_print_key
      Src: /src/rnp/src/examples/generate.c:301,1
    - Dst: ffi_print_key
      Src: /src/rnp/src/examples/generate.c:301,1
    - Dst: ffi_print_key
      Src: /src/rnp/src/examples/generate.c:302,1
    - Dst: ffi_print_key
      Src: /src/rnp/src/examples/generate.c:302,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/generate.c:303,1
    - Dst: ffi_export_key
      Src: /src/rnp/src/examples/generate.c:308,1
    - Dst: ffi_export_key
      Src: /src/rnp/src/examples/generate.c:308,1
    - Dst: ffi_export_key
      Src: /src/rnp/src/examples/generate.c:309,1
    - Dst: ffi_export_key
      Src: /src/rnp/src/examples/generate.c:309,1
    - Dst: fprintf
      Src: /src/rnp/src/examples/generate.c:310,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/examples/generate.c:316,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/examples/generate.c:317,1
    CyclomaticComplexity: 19
    EdgeCount: 19
    ICount: 44
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 319
      start: 262
    functionDepth: 4
    functionLinenumber: 262
    functionLinenumberEnd: 319
    functionName: ffi_output_keys
    functionSourceFile: /src/rnp/src/examples/generate.c
    functionUses: 0
    functionsReached:
    - rnp_input_from_path
    - ffi_print_key
    - fprintf
    - ffi_export_key
    - rnp_ffi_destroy
    - rnp_load_keys
    - rnp_ffi_create
    - rnp_input_destroy
    linkageType: ''
    returnType: int
    signature: int ffi_output_keys()
  - BBCount: 2
    BranchProfiles: []
    Callsites:
    - Dst: ffi_generate_keys
      Src: /src/rnp/src/examples/generate.c:324,1
    - Dst: ffi_output_keys
      Src: /src/rnp/src/examples/generate.c:328,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 2
    argNames:
    - argc
    - argv
    argTypes:
    - int
    - char**
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 330
      start: 321
    functionDepth: 5
    functionLinenumber: 321
    functionLinenumberEnd: 330
    functionName: main
    functionSourceFile: /src/rnp/src/examples/generate.c
    functionUses: 1
    functionsReached:
    - ffi_generate_keys
    - ffi_output_keys
    linkageType: ''
    returnType: int
    signature: int main(int argc, char **argv)
  - BBCount: 1
    BranchProfiles: []
    Callsites:
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/fuzzing/keyimport.c:45,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/fuzzing/keyimport.c:46,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/fuzzing/keyimport.c:48,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/fuzzing/keyimport.c:49,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/fuzzing/keyimport.c:50,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/fuzzing/keyimport.c:51,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/fuzzing/keyimport.c:55,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/fuzzing/keyimport.c:56,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/fuzzing/keyimport.c:58,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/fuzzing/keyimport.c:59,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/fuzzing/keyimport.c:60,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/fuzzing/keyimport.c:61,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/fuzzing/keyimport.c:65,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/fuzzing/keyimport.c:66,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/fuzzing/keyimport.c:70,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/fuzzing/keyimport.c:71,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/fuzzing/keyimport.c:73,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/fuzzing/keyimport.c:74,1
    - Dst: rnp_input_from_memory
      Src: /src/rnp/src/fuzzing/keyimport.c:78,1
    - Dst: rnp_ffi_create
      Src: /src/rnp/src/fuzzing/keyimport.c:79,1
    - Dst: rnp_import_keys
      Src: /src/rnp/src/fuzzing/keyimport.c:83,1
    - Dst: rnp_buffer_destroy
      Src: /src/rnp/src/fuzzing/keyimport.c:84,1
    - Dst: rnp_input_destroy
      Src: /src/rnp/src/fuzzing/keyimport.c:86,1
    - Dst: rnp_ffi_destroy
      Src: /src/rnp/src/fuzzing/keyimport.c:87,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 35
    argCount: 2
    argNames:
    - data
    - size
    argTypes:
    - uint8_t*
    - size_t
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 90
      start: 35
    functionDepth: 3
    functionLinenumber: 35
    functionLinenumberEnd: 90
    functionName: LLVMFuzzerTestOneInput
    functionSourceFile: /src/rnp/src/fuzzing/keyimport.c
    functionUses: 10
    functionsReached:
    - rnp_input_from_memory
    - rnp_buffer_destroy
    - rnp_ffi_destroy
    - rnp_import_keys
    - rnp_ffi_create
    - rnp_input_destroy
    linkageType: ''
    returnType: int
    signature: int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: rnp::KeyStore::KeyStore
    functionSourceFile: /src/rnp/include/rekey/rnp_key_store.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyStore(SecurityContext &ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - src
    argTypes:
    - KeyStore
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: rnp::KeyStore::KeyStore
    functionSourceFile: /src/rnp/include/rekey/rnp_key_store.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyStore(KeyStore &&src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: '&operator=(KeyStore &&)'
    functionSourceFile: /src/rnp/include/rekey/rnp_key_store.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeyStore
    signature: KeyStore &operator=(KeyStore &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - src
    argTypes:
    - KeyStore
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: rnp::KeyStore::KeyStore
    functionSourceFile: /src/rnp/include/rekey/rnp_key_store.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyStore(const KeyStore &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: '&operator=(const KeyStore &)'
    functionSourceFile: /src/rnp/include/rekey/rnp_key_store.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeyStore
    signature: KeyStore &operator=(const KeyStore &)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - ctx
    argTypes:
    - SecurityContext
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 80
      start: 80
    functionDepth: 0
    functionLinenumber: 80
    functionLinenumberEnd: 80
    functionName: rnp::KeyStore::KeyStore
    functionSourceFile: /src/rnp/include/rekey/rnp_key_store.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyStore(SecurityContext &ctx)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 1
    argNames:
    - src
    argTypes:
    - KeyStore
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 83
      start: 83
    functionDepth: 0
    functionLinenumber: 83
    functionLinenumberEnd: 83
    functionName: rnp::KeyStore::KeyStore
    functionSourceFile: /src/rnp/include/rekey/rnp_key_store.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyStore(KeyStore &&src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 84
      start: 84
    functionDepth: 0
    functionLinenumber: 84
    functionLinenumberEnd: 84
    functionName: '&operator=(KeyStore &&)'
    functionSourceFile: /src/rnp/include/rekey/rnp_key_store.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeyStore
    signature: KeyStore &operator=(KeyStore &&)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 1
    argNames:
    - src
    argTypes:
    - KeyStore
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 85
      start: 85
    functionDepth: 0
    functionLinenumber: 85
    functionLinenumberEnd: 85
    functionName: rnp::KeyStore::KeyStore
    functionSourceFile: /src/rnp/include/rekey/rnp_key_store.h
    functionUses: 33
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: void KeyStore(const KeyStore &src)
  - BBCount: 1
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 0
    argCount: 0
    argNames: []
    argTypes: []
    assertStmts: []
    constantsTouched: []
    func_position:
      end: 86
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 86
    functionName: '&operator=(const KeyStore &)'
    functionSourceFile: /src/rnp/include/rekey/rnp_key_store.h
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: KeyStore
    signature: KeyStore &operator=(const KeyStore &)
Fuzzer filename: /src/rnp/src/fuzzing/keyimport.c
Fuzzing method: LLVMFuzzerTestOneInput
included-header-files:
- librepgp/stream-ctx.h
- numeric
- cstddef
- botan/ed25519.h
- file-utils.h
- stream-parse.h
- crypto/dilithium_common.h
- librepgp/stream-packet.h
- ../librepgp/stream-key.h
- crypto/secure_bytes.h
- time.h
- openssl/rsa.h
- forward_list
- rnp_tests.h
- sm2.h
- crypto/ecdh.h
- functional
- inttypes.h
- botan/ffi.h
- hash_sha1cd.hpp
- librepgp/stream-common.h
- sys/resource.h
- hash_crc24.hpp
- crypto/kyber.h
- openssl/provider.h
- ec.h
- key-provider.h
- stream-sig.h
- ecdh_utils.h
- crypto/kyber_common.h
- botan/ecdh.h
- ecdsa.h
- openssl/params.h
- unistd.h
- ubc_check.h
- crypto/rng.h
- crypto/cipher.hpp
- experimental/filesystem
- SHA1DC_CUSTOM_TRAILING_INCLUDE_SHA1_H
- rnp/rnp_err.h
- kyber.h
- stdexcept
- cassert
- librepgp/stream-dump.h
- sexpp/sexp.h
- rekey/rnp_key_store.h
- botan/ec_group.h
- cinttypes
- dsa.h
- termios.h
- memory
- shlwapi.h
- crypto.h
- ../support.h
- crypto/exdsa_ecdhkem.h
- sexp-public.h
- botan/symkey.h
- ../librepgp/stream-packet.h
- ../rnp/fficli.h
- sys/types.h
- sys/wait.h
- exception
- stdbool.h
- repgp/repgp_def.h
- assert.h
- version.h
- sys/time.h
- openssl/ec.h
- type_traits
- errno.h
- regex
- ossl_utils.hpp
- libgen.h
- botan/pwdhash.h
- sexp-tests.h
- random
- mpi.hpp
- botan/x25519.h
- iostream
- initializer_list
- time-utils.h
- key.hpp
- sphincsplus.h
- stdlib.h
- rng.h
- key_store_g10.h
- exdsa_ecdhkem.h
- ed25519_ed448.h
- s2k.h
- openssl/kdf.h
- sstream
- botan/cipher_mode.h
- eddsa.h
- ../librepgp/stream-common.h
- fficli.h
- openssl/dh.h
- rnpkeys.h
- cipher_botan.hpp
- utility
- setjmp.h
- x25519_x448.h
- librekey/kbx_blob.hpp
- sexpp/sexp-error.h
- crtdbg.h
- SHA1DC_CUSTOM_INCLUDE_SHA1_C
- botan/auto_rng.h
- cstdlib
- clocale
- direct.h
- sec_profile.hpp
- version
- bzlib.h
- hkdf_botan.hpp
- zlib.h
- dilithium.h
- hash_botan.hpp
- crypto/dilithium.h
- ftw.h
- botan/x448.h
- openssl/dsa.h
- fstream
- botan/hash.h
- string
- librepgp/stream-write.h
- crypto/ec.h
- elgamal.h
- botan/rfc3394.h
- rnpcfg.h
- botan/system_rng.h
- ostream
- librepgp/stream-key.h
- cstdint
- cmath
- ffi-priv-types.h
- botan/numthry.h
- sys/param.h
- enc_material.hpp
- crypto/s2k.h
- openssl/rand.h
- sha1cd/sha1.h
- codecvt
- botan/pubkey.h
- botan/build.h
- v2_seipd.h
- sha1.h
- crypto/common.h
- botan/version.h
- hkdf.hpp
- ../librepgp/stream-ctx.h
- secure_bytes.h
- crypto/hkdf_botan.hpp
- locale
- crypto/signatures.h
- config.h
- unordered_set
- kem_combiner.hpp
- ctype.h
- kyber_ecdh_composite.h
- pwd.h
- sexp-samples-folder.h
- stdio.h
- rnp.h
- climits
- regex.h
- SHA1DC_CUSTOM_TRAILING_INCLUDE_UBC_CHECK_H
- support.h
- ../lib/key.hpp
- rnp_err.h
- ../librekey/key_store_g10.h
- crypto/sphincsplus.h
- cstring
- openssl/core_names.h
- SHA1DC_CUSTOM_TRAILING_INCLUDE_UBC_CHECK_C
- getoptwin.h
- crypto/mem.h
- fcntl.h
- librekey/key_store_g10.h
- hash.hpp
- tuple
- vector
- key_material.hpp
- list
- openssl/ecdsa.h
- istream
- openssl/crypto.h
- openssl/param_build.h
- openssl/bn.h
- iomanip
- stream-key.h
- kyber_common.h
- string_view
- set
- limits
- types.h
- Shlobj.h
- SHA1DC_CUSTOM_TRAILING_INCLUDE_SHA1_C
- botan/bigint.h
- librepgp/stream-parse.h
- array
- filesystem
- g23_sexp.hpp
- string.h
- cerrno
- signature.hpp
- botan/secmem.h
- crypto/mpi.hpp
- rnp/rnp_export.h
- fingerprint.h
- str-utils.h
- stream-packet.h
- sexpp/ext-key-format.h
- iterator
- compare
- stream-ctx.h
- openssl/opensslv.h
- stddef.h
- botan_utils.hpp
- unordered_map
- cctype
- librepgp/stream-sig.h
- map
- uniwin.h
- sexp-error.h
- valarray
- crypto/hkdf.hpp
- sig_subpacket.hpp
- stream-armor.h
- crypto/bn.h
- memory.h
- botan/kdf.h
- ranges
- windows.h
- dirent.h
- stream-write.h
- rnp/rnpcpp.hpp
- botan/kyber.h
- ec_ossl.h
- crypto/rsa.h
- stdarg.h
- stream-def.h
- io.h
- iosfwd
- librekey/g23_sexp.hpp
- sexp.h
- ../include/rekey/rnp_key_store.h
- rsa.h
- ../lib/sec_profile.hpp
- rnpkeys/rnpkeys.h
- sys/stat.h
- backend_version.h
- hash_ossl.hpp
- botan/ecdsa.h
- algorithm
- stdint.h
- defaults.h
- stream-dump.h
- sig_material.hpp
- ecdh.h
- ../rnp_tests.h
- rnp/rnp_def.h
- cstdio
- cipher_ossl.hpp
- any
- crypto/symmetric.h
- mem.h
- getopt.h
- nlohmann/json.hpp
- pass-provider.h
- ../librepgp/stream-armor.h
- librepgp/stream-armor.h
- openssl/evp.h
- ../librepgp/stream-sig.h
- botan/ed448.h
- openssl/objects.h
- fingerprint.hpp
- json-utils.h
- ctime
- SHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C
- dilithium_exdsa_composite.h
- dl_ossl.h
- limits.h
- logging.h
- botan/dilithium.h
- botan/aead.h
- rnp/rnpcfg.h
- gtest/gtest.h
- utils.h
- symmetric.h
- crypto/hash.hpp
- keygen.hpp
- stream-common.h
- hkdf_ossl.hpp
- rawpacket.hpp
- cipher.hpp
- rnp/rnp.h
- userid.hpp
- ios
- openssl/err.h
- kbx_blob.hpp
- botan/slh_dsa.h
report: name
sources:
- function_names:
  - list_curves
  - print_hash
  - list_hashes
  - print_cipher
  - list_ciphers
  - print_km_name
  - print_km
  - print_kdf
  - list_publickey
  - list_providers
  - list_kdfs
  - main
  source_file: /src/rnp/cmake/Modules/findopensslfeatures.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - stream_hash_file
  - TEST_F
  - TEST_F
  - copy_tmp_path
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - buggy_key_load_single
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - validate_key_sigs
  - TEST_F
  - TEST_F
  - check_dump_file_dst
  - check_dump_file_json
  - check_dump_file
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - try_dearmor
  - TEST_F
  - add_openpgp_layers
  - TEST_F
  - src_reader_generator
  - TEST_F
  source_file: /src/rnp/src/tests/streams.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: fd
        type: int
      - name: errcode
        type: int
      - name: overwrite
        type: bool
      - name: path
        type: std::string
      item_type: struct
      name: pgp_dest_file_param_t
      pos:
        line_end: 170
        line_start: 165
        source_file: /src/rnp/src/tests/streams.cpp
    typedefs: []
    union: []
- function_names:
  - TEST_F
  source_file: /src/rnp/src/tests/fuzz_verify_detached.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DATA_PATH
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/rnp/src/tests/fuzz_verify_detached.cpp
      type_or_value: '"data/test_fuzz_verify_detached/"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - generate_test_key
  - hash_supported
  - hash_secure
  - TEST_F
  - cipher_supported
  - enable_insecure_ciphers
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - ask_expert_details
  - check_key_props
  - check_cfg_props
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/generatekey.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - get_longest_line_length
  - TEST_F
  - test_ffi_init_sign_file_input
  - test_ffi_init_sign_memory_input
  - test_ffi_init_verify_file_input
  - test_ffi_init_verify_detached_file_input
  - test_ffi_init_verify_memory_input
  - test_ffi_setup_signatures
  - test_ffi_check_signatures
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - shrink_len_2_to_1
  - fake_len_EEEE
  - fake_len_0
  - extend_len_2_to_4
  - import_public_keys_from_vector
  - TEST_F
  - TEST_F
  - check_features
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - check_signature
  - TEST_F
  - TEST_F
  - getpasscb_for_key
  - TEST_F
  - TEST_F
  - getpasscb_fail
  - getpasscb_context
  - getpasscb_keyid
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/ffi.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KEY_OUT_PATH
      pos:
        line_end: 2805
        line_start: 2804
        source_file: /src/rnp/src/tests/ffi.cpp
      type_or_value: '"exported-key.asc"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  source_file: /src/rnp/src/tests/fuzz_sigimport.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DATA_PATH
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/rnp/src/tests/fuzz_sigimport.cpp
      type_or_value: '"data/test_fuzz_sigimport/"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  source_file: /src/rnp/src/tests/key-prefs.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/exdsa_ecdhkem.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/key-store-search.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*keyid'
        type: char
      - name: count
        type: size_t
      - name: '*userids[5]'
        type: char
      item_type: struct
      name: "testdata[] = {{\"000000000000AAAA\", 1, {\"user1-1\", NULL}},\n                    {\"000000000000BBBB\",
        2, {\"user2\", \"user1-2\", NULL}},\n                    {\"000000000000CCCC\",
        1, {\"user3\", NULL}},\n                    {\"FFFFFFFFFFFFFFFF\", 0, {NULL}}}"
      pos:
        line_end: 47
        line_start: 43
        source_file: /src/rnp/src/tests/key-store-search.cpp
    typedefs: []
    union: []
- function_names:
  - getpasscb_once
  - getpasscb_inc
  - tbl_getkeycb
  - portable_memmem
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - first_key_password_provider
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - password_sequence_cb
  - password_cancel_cb
  - TEST_F
  - ATTEMPT_DECRYPT
  - TEST_F
  source_file: /src/rnp/src/tests/ffi-enc.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TBL_MAX_USERIDS
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/rnp/src/tests/ffi-enc.cpp
      type_or_value: '4'
    structs:
    - fields:
      - name: '*key_data'
        type: uint8_t
      - name: key_data_size
        type: size_t
      - name: secret
        type: bool
      - name: '*   keyid'
        type: char
      - name: '*   grip'
        type: char
      - name: '*   userids[TBL_MAX_USERIDS + 1]'
        type: char
      item_type: struct
      name: key_tbl_t
      pos:
        line_end: 89
        line_start: 82
        source_file: /src/rnp/src/tests/ffi-enc.cpp
    - fields:
      - name: passwords
        type: std::vector<std::string>
      - name: final_password
        type: std::string
      - name: idx
        type: size_t
      item_type: struct
      name: password_sequence
      pos:
        line_end: 2372
        line_start: 2368
        source_file: /src/rnp/src/tests/ffi-enc.cpp
    - fields:
      - name: cancelled
        type: bool
      item_type: struct
      name: password_cancel_state
      pos:
        line_end: 2394
        line_start: 2392
        source_file: /src/rnp/src/tests/ffi-enc.cpp
    typedefs: []
    union: []
- function_names:
  - dummy_reader
  - test_partial_length_init
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/partial-length.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: remaining
        type: uint32_t
      - name: dummy
        type: uint8_t
      item_type: struct
      name: dummy_reader_ctx_st
      pos:
        line_end: 44
        line_start: 41
        source_file: /src/rnp/src/tests/partial-length.cpp
    typedefs: []
    union: []
- function_names:
  - ru8
  - ru32
  - test_parse_header_blob
  - test_parse_pgp_blob
  - TEST_F
  source_file: /src/rnp/src/tests/kbx-nsigs-test.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BLOB_HEADER_SIZE
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/rnp/src/tests/kbx-nsigs-test.cpp
      type_or_value: '0x5'
    - item_type: preproc_def
      name: BLOB_FIRST_SIZE
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/rnp/src/tests/kbx-nsigs-test.cpp
      type_or_value: '0x20'
    structs: []
    typedefs: []
    union: []
- function_names:
  - all_keys_valid
  - TEST_F
  - key_store_add
  - key_check
  - TEST_F
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/key-validate.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DATA_PATH
      pos:
        line_end: 143
        line_start: 142
        source_file: /src/rnp/src/tests/key-validate.cpp
      type_or_value: '"data/test_forged_keys/"'
    - item_type: preproc_def
      name: KEYSIG_PATH
      pos:
        line_end: 335
        line_start: 334
        source_file: /src/rnp/src/tests/key-validate.cpp
      type_or_value: '"data/test_key_validity/"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_s2k_iterations_value
  - TEST_F
  source_file: /src/rnp/src/tests/s2k-iterations.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/load-g10.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  source_file: /src/rnp/src/tests/key-unlock.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/ffi-key-prop.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pipe
  - dup
  - dup2
  - realpath
  - rnp_round_up
  source_file: /src/rnp/src/tests/support.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MD5_FROM
      pos:
        line_end: 321
        line_start: 320
        source_file: /src/rnp/src/tests/support.h
      type_or_value: '1325376000'
    - item_type: preproc_def
      name: SHA1_DATA_FROM
      pos:
        line_end: 322
        line_start: 321
        source_file: /src/rnp/src/tests/support.h
      type_or_value: '1547856000'
    - item_type: preproc_def
      name: SHA1_KEY_FROM
      pos:
        line_end: 323
        line_start: 322
        source_file: /src/rnp/src/tests/support.h
      type_or_value: '1705629600'
    - item_type: preproc_def
      name: CAST5_3DES_IDEA_BLOWFISH_FROM
      pos:
        line_end: 324
        line_start: 323
        source_file: /src/rnp/src/tests/support.h
      type_or_value: '1727730000'
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  source_file: /src/rnp/src/tests/load-g23.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  source_file: /src/rnp/src/tests/hkdf.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/ffi-uid.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnpInvalidParameterHandler
  - rnp_tests::rnp_tests
  - rnp_tests::~rnp_tests()
  - rnp_tests::original_dir
  - main
  source_file: /src/rnp/src/tests/rnp_tests.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  source_file: /src/rnp/src/tests/utils-hex2bin.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - error_reader
  - error_writer
  - ignoring_writer
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/pipe.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - check_key_properties
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - get_json_obj
  - TEST_F
  - TEST_F
  - check_loaded_keys
  - TEST_F
  - check_import_keys_ex
  - check_import_keys
  - check_key_status
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - check_key_autocrypt
  - TEST_F
  - TEST_F
  - TEST_F
  - is_self_signature
  - is_weak_signature
  - get_uid_str
  - key_weak_self_signatures_count
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/ffi-key.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  source_file: /src/rnp/src/tests/rng-randomness.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - WIFEXITED
  - WEXITSTATUS
  - call_rnp
  - TEST_F
  - test_cli_g10_key_sign
  - test_cli_g10_key_encrypt
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - key_expiration_check
  - key_generate
  - TEST_F
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/cli.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KEYS
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/rnp/src/tests/cli.cpp
      type_or_value: '"data/keyrings"'
    - item_type: preproc_def
      name: GENKEYS
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/rnp/src/tests/cli.cpp
      type_or_value: '"data/keyrings_genkey_tmp"'
    - item_type: preproc_def
      name: MKEYS
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/rnp/src/tests/cli.cpp
      type_or_value: '"data/test_stream_key_merge/"'
    - item_type: preproc_def
      name: FILES
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/rnp/src/tests/cli.cpp
      type_or_value: '"data/test_cli"'
    - item_type: preproc_def
      name: G10KEYS
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/rnp/src/tests/cli.cpp
      type_or_value: '"data/test_stream_key_load/g10"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - assert_true
  - assert_false
  - assert_string_equal
  - assert_int_equal
  - assert_int_not_equal
  - assert_greater_than
  - assert_non_null
  - assert_null
  - assert_rnp_success
  - assert_rnp_failure
  - assert_memory_equal
  - assert_memory_not_equal
  - assert_throw
  - assert_true
  - assert_false
  - assert_string_equal
  - assert_int_equal
  - assert_int_not_equal
  - assert_greater_than
  - assert_non_null
  - assert_null
  - assert_rnp_success
  - assert_rnp_failure
  - assert_memory_equal
  - assert_memory_not_equal
  - assert_throw
  source_file: /src/rnp/src/tests/rnp_tests.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*original_dir'
        type: char
      - name: '*home'
        type: char
      - name: '*data_dir'
        type: char
      - name: not_fatal
        type: int
      item_type: struct
      name: rnp_test_state_t
      pos:
        line_end: 49
        line_start: 44
        source_file: /src/rnp/src/tests/rnp_tests.h
    typedefs: []
    union: []
- function_names:
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/file-utils.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - decode_hex
  - test_cipher
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/cipher_cxx.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - w32
  - make_valid_header_blob
  - TEST_F
  source_file: /src/rnp/src/tests/load-kbx.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BLOB_HEADER_SIZE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/rnp/src/tests/load-kbx.cpp
      type_or_value: '0x5'
    - item_type: preproc_def
      name: BLOB_SIZE_LIMIT
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/rnp/src/tests/load-kbx.cpp
      type_or_value: (5 * 1024 * 1024)
    - item_type: preproc_def
      name: BLOB_FIRST_SIZE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/rnp/src/tests/load-kbx.cpp
      type_or_value: '0x20'
    - item_type: preproc_def
      name: BLOB_KEY_SIZE
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/rnp/src/tests/load-kbx.cpp
      type_or_value: '0x1C'
    - item_type: preproc_def
      name: BLOB_UID_SIZE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/rnp/src/tests/load-kbx.cpp
      type_or_value: '0x0C'
    - item_type: preproc_def
      name: BLOB_SIG_SIZE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/rnp/src/tests/load-kbx.cpp
      type_or_value: '0x04'
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  source_file: /src/rnp/src/tests/key-grip.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  source_file: /src/rnp/src/tests/fuzz_dump.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DATA_PATH
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/rnp/src/tests/fuzz_dump.cpp
      type_or_value: '"data/test_fuzz_dump/"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  source_file: /src/rnp/src/tests/large-packet.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rsa_sec_empty
  - rsa_sec_filled
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/key-protect.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/large-mpi.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/utils-rnpcfg.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/fuzz_keyimport.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DATA_PATH
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/rnp/src/tests/fuzz_keyimport.cpp
      type_or_value: '"data/test_fuzz_keyimport/"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  source_file: /src/rnp/src/tests/fuzz_verify.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DATA_PATH
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/rnp/src/tests/fuzz_verify.cpp
      type_or_value: '"data/test_fuzz_verify/"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  source_file: /src/rnp/src/tests/fuzz_keyring_kbx.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DATA_PATH
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/rnp/src/tests/fuzz_keyring_kbx.cpp
      type_or_value: '"data/test_fuzz_keyring_kbx/"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - elgamal_roundtrip
  - TEST_F
  - TEST_F
  - TEST_F
  - pgp::ECDHTestKeyMaterial::ECDHTestKeyMaterial
  - pgp::ECDHTestKeyMaterial::set_key_wrap_alg
  - "&\n    ec()"
  - pgp::ECDHTestKeyMaterial::ECDHTestKeyMaterial
  - pgp::ECDHTestKeyMaterial::set_key_wrap_alg
  - "&\n    ec()"
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - read_key_pkt
  - pgp::RSATestKeyMaterial::RSATestKeyMaterial
  - "&\n    rsa()"
  - pgp::DSATestKeyMaterial::DSATestKeyMaterial
  - "&\n    dsa()"
  - pgp::EGTestKeyMaterial::EGTestKeyMaterial
  - "&\n    eg()"
  - pgp::ECDSATestKeyMaterial::ECDSATestKeyMaterial
  - "&\n    ec()"
  - pgp::EDDSATestKeyMaterial::EDDSATestKeyMaterial
  - "&\n    ec()"
  - pgp::RSATestKeyMaterial::RSATestKeyMaterial
  - "&\n    rsa()"
  - pgp::DSATestKeyMaterial::DSATestKeyMaterial
  - "&\n    dsa()"
  - pgp::EGTestKeyMaterial::EGTestKeyMaterial
  - "&\n    eg()"
  - pgp::ECDSATestKeyMaterial::ECDSATestKeyMaterial
  - "&\n    ec()"
  - pgp::EDDSATestKeyMaterial::EDDSATestKeyMaterial
  - "&\n    ec()"
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/cipher.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: S2K_MINIMUM_TUNING_RATIO
      pos:
        line_end: 805
        line_start: 804
        source_file: /src/rnp/src/tests/cipher.cpp
      type_or_value: '4'
    - item_type: preproc_def
      name: KEYS
      pos:
        line_end: 940
        line_start: 939
        source_file: /src/rnp/src/tests/cipher.cpp
      type_or_value: '"data/test_validate_key_material/"'
    structs:
    - fields:
      - name: id
        type: pgp_curve_t
      - name: size
        type: size_t
      item_type: struct
      name: curve
      pos:
        line_end: 361
        line_start: 358
        source_file: /src/rnp/src/tests/cipher.cpp
    - fields:
      - name: id
        type: pgp_curve_t
      - name: size
        type: size_t
      item_type: struct
      name: curve
      pos:
        line_end: 404
        line_start: 401
        source_file: /src/rnp/src/tests/cipher.cpp
    - fields:
      - name: p
        type: size_t
      - name: q
        type: size_t
      - name: h
        type: pgp_hash_alg_t
      item_type: struct
      name: key_params
      pos:
        line_end: 612
        line_start: 608
        source_file: /src/rnp/src/tests/cipher.cpp
    typedefs: []
    union: []
- function_names:
  - TEST_F
  source_file: /src/rnp/src/tests/log-switch.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  - check_import_sigs
  - check_sig_status
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - key_info
  - sig_info
  - uid_info
  - key_packets
  - sigremove_leave
  - sigremove_unchanged
  - sigremove_remove
  - sigremove_revocation
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/ffi-key-sig.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: KEYSIG_PATH
      pos:
        line_end: 648
        line_start: 647
        source_file: /src/rnp/src/tests/ffi-key-sig.cpp
      type_or_value: '"data/test_key_validity/"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/pqc.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  source_file: /src/rnp/src/tests/key-add-userid.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - setenv
  - unsetenv
  - file_to_str
  - file_to_vec
  - str_to_file
  - file_size
  - vpaths_concat
  - paths_concat
  - path_rnp_file_exists
  - path_mkdir
  - remove_cb
  - get_tmp
  - is_tmp_path
  - delete_recursively
  - copy_recursively
  - make_temp_dir
  - make_temp_dir
  - clean_temp_dir
  - bin_eq_hex
  - hex2mpi
  - cmp_keyid
  - cmp_keyfp
  - test_ffi_init
  - mpi_empty
  - write_pass_to_pipe
  - setupPasswordfd
  - setup_rnp_cfg
  - setup_cli_rnp_common
  - cli_set_default_rsa_key_desc
  - failing_password_callback
  - ffi_failing_password_provider
  - ffi_asserting_password_provider
  - ffi_string_password_provider
  - asserting_password_callback
  - string_copy_password_callback
  - unused_getkeycb
  - unused_getpasscb
  - starts_with
  - ends_with
  - fmt
  - strip_eol
  - lowercase
  - jso_get_field
  - check_json_field_str
  - check_json_field_int
  - check_json_field_bool
  - check_json_pkt_type
  - rnp_tests_get_key_by_id
  - rnp_tests_get_key_by_grip
  - rnp_tests_get_key_by_grip
  - rnp_tests_get_key_by_fpr
  - rnp_tests_key_search
  - reload_pubring
  - reload_keyrings
  - load_keys_internal
  - load_keys_gpg
  - load_keys_kbx_g10
  - import_keys
  - import_all_keys
  - import_pub_keys
  - import_sec_keys
  - import_keys
  - import_all_keys
  - import_pub_keys
  - import_sec_keys
  - export_key
  - dump_key_stdout
  - write_transferable_key
  - write_transferable_keys
  - check_uid_valid
  - check_uid_primary
  - check_key_valid
  - check_key_revoked
  - check_key_locked
  - get_key_expiry
  - get_key_uids
  - check_sub_valid
  - check_key_grip
  - check_key_fp
  - check_key_revreason
  - check_has_key
  - check_sig_hash
  - check_sig_type
  - check_sig_revreason
  - get_key_by_fp
  - get_key_by_uid
  - bogus_key_handle
  - sm2_enabled
  - aead_eax_enabled
  - aead_ocb_enabled
  - aead_ocb_aes_only
  - twofish_enabled
  - idea_enabled
  - brainpool_enabled
  - blowfish_enabled
  - cast5_enabled
  - ripemd160_enabled
  - bzip2_enabled
  - test_load_gpg_check_key
  source_file: /src/rnp/src/tests/support.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  source_file: /src/rnp/src/tests/fuzz_keyring_g10.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DATA_PATH
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/rnp/src/tests/fuzz_keyring_g10.cpp
      type_or_value: '"data/test_fuzz_keyring_g10/"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - find_subsig
  - TEST_F
  source_file: /src/rnp/src/tests/user-prefs.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/fuzz_keyring.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DATA_PATH
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/rnp/src/tests/fuzz_keyring.cpp
      type_or_value: '"data/test_fuzz_keyring/"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  - TEST_F
  - check_pgp_keyring_counts
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - load_transferable_key
  - load_transferable_subkey
  - load_keystore
  - check_subkey_fp
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/load-pgp.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MERGE_PATH
      pos:
        line_end: 368
        line_start: 367
        source_file: /src/rnp/src/tests/load-pgp.cpp
      type_or_value: '"data/test_stream_key_merge/"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/tests/exportkey.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  source_file: /src/rnp/src/tests/issues/1115.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  source_file: /src/rnp/src/tests/issues/oss-fuzz-25489.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  source_file: /src/rnp/src/tests/issues/1171.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  source_file: /src/rnp/src/tests/issues/2469.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - test_issue_1030
  - TEST_F
  source_file: /src/rnp/src/tests/issues/1030.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - load_transferable_key
  - main
  source_file: /src/rnp/src/tests/data/test_key_validity/case5/generate.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::ArmoredSource::ArmoredSource
  - rnp::ArmoredSource::ArmoredSource
  - rnp::ArmoredSource::multiple
  - rnp::ArmoredDest::ArmoredDest
  - rnp::ArmoredDest::ArmoredDest
  - rnp::ArmoredDest::ArmoredDest
  - ~ArmoredDest()
  - rnp::ArmoredSource::ArmoredSource
  - rnp::ArmoredSource::ArmoredSource
  - rnp::ArmoredSource::multiple
  - rnp::ArmoredDest::ArmoredDest
  - rnp::ArmoredDest::ArmoredDest
  - rnp::ArmoredDest::ArmoredDest
  - ~ArmoredDest()
  source_file: /src/rnp/src/librepgp/stream-armor.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - seipd_v2_key_and_nonce_derivation
  source_file: /src/rnp/src/librepgp/v2_seipd.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/librepgp/v2_seipd.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: key
        type: std::vector<uint8_t>
      item_type: struct
      name: seipd_v2_aead_fields_t
      pos:
        line_end: 32
        line_start: 30
        source_file: /src/rnp/src/librepgp/v2_seipd.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/librepgp/stream-def.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CT_BUF_LEN
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: CH_CR
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: ('\r')
    - item_type: preproc_def
      name: CH_LF
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: ('\n')
    - item_type: preproc_def
      name: CH_EQ
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: ('=')
    - item_type: preproc_def
      name: CH_DASH
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: ('-')
    - item_type: preproc_def
      name: CH_SPACE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: (' ')
    - item_type: preproc_def
      name: CH_TAB
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: ('\t')
    - item_type: preproc_def
      name: CH_COMMA
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: (',')
    - item_type: preproc_def
      name: ST_CR
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: ("\r")
    - item_type: preproc_def
      name: ST_LF
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: ("\n")
    - item_type: preproc_def
      name: ST_CRLF
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: ("\r\n")
    - item_type: preproc_def
      name: ST_CRLFCRLF
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: ("\r\n\r\n")
    - item_type: preproc_def
      name: ST_DASHSP
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: ("- ")
    - item_type: preproc_def
      name: ST_COMMA
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: (",")
    - item_type: preproc_def
      name: ST_DASHES
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: ("-----")
    - item_type: preproc_def
      name: ST_ARMOR_BEGIN
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: ("-----BEGIN PGP ")
    - item_type: preproc_def
      name: ST_ARMOR_END
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: ("-----END PGP ")
    - item_type: preproc_def
      name: ST_CLEAR_BEGIN
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: ("-----BEGIN PGP SIGNED MESSAGE-----")
    - item_type: preproc_def
      name: ST_SIG_BEGIN
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: ("\n-----BEGIN PGP SIGNATURE-----")
    - item_type: preproc_def
      name: ST_HEADER_VERSION
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: '("Version: ")'
    - item_type: preproc_def
      name: ST_HEADER_COMMENT
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: '("Comment: ")'
    - item_type: preproc_def
      name: ST_HEADER_HASH
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: '("Hash: ")'
    - item_type: preproc_def
      name: ST_HEADER_CHARSET
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: '("Charset: ")'
    - item_type: preproc_def
      name: ST_FROM
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: ("From")
    - item_type: preproc_def
      name: PGP_AEAD_CACHE_LEN
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: (PGP_INPUT_CACHE_SIZE + 2 * PGP_AEAD_MAX_TAG_LEN)
    - item_type: preproc_def
      name: MAXIMUM_NESTING_LEVEL
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: '32'
    - item_type: preproc_def
      name: MAXIMUM_STREAM_PKTS
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: '16'
    - item_type: preproc_def
      name: MAXIMUM_ERROR_PKTS
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: '64'
    - item_type: preproc_def
      name: MAXIMUM_GNUPG_LINELEN
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/rnp/src/librepgp/stream-def.h
      type_or_value: '19995'
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp_packet_body_t
  - pgp_packet_body_t
  - '&operator=(const pgp_packet_body_t &)'
  - '&operator=(pgp_packet_body_t &&)'
  - pgp_userid_pkt_t
  source_file: /src/rnp/src/librepgp/stream-packet.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PGP_MAX_PKT_SIZE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/rnp/src/librepgp/stream-packet.h
      type_or_value: '0x100000'
    - item_type: preproc_def
      name: PGP_MAX_OLD_LEN_INDETERMINATE_PKT_SIZE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/rnp/src/librepgp/stream-packet.h
      type_or_value: '0x40000000'
    structs:
    - fields:
      - name: tag
        type: pgp_pkt_type_t
      - name: hdr[PGP_MAX_HEADER_SIZE]
        type: uint8_t
      - name: hdr_len
        type: size_t
      - name: pkt_len
        type: size_t
      - name: partial
        type: bool
      - name: indeterminate
        type: bool
      item_type: struct
      name: pgp_packet_hdr_t
      pos:
        line_end: 50
        line_start: 43
        source_file: /src/rnp/src/librepgp/stream-packet.h
    - fields:
      - name: tag_
        type: pgp_pkt_type_t
      - name: data_
        type: std::vector<uint8_t>
      - name: hdr_[PGP_MAX_HEADER_SIZE]
        type: uint8_t
      - name: hdr_len_
        type: size_t
      - name: pos_
        type: size_t
      - name: secure_
        type: bool
      - name: '*data() noexcept'
        type: uint8_t
      - name: '*cur() noexcept'
        type: uint8_t
      - name: size() const noexcept
        type: size_t
      - name: left() const noexcept
        type: size_t
      - name: skip(size_t bt) noexcept
        type: void
      - name: skip_back(size_t bt) noexcept
        type: void
      - name: get(uint8_t &val) noexcept
        type: bool
      - name: get(uint16_t &val) noexcept
        type: bool
      - name: get(uint32_t &val) noexcept
        type: bool
      - name: get(uint8_t *val, size_t len) noexcept
        type: bool
      - name: get(std::vector<uint8_t> &val, size_t len)
        type: bool
      - name: get(pgp::KeyID &val) noexcept
        type: bool
      - name: get(pgp::mpi &val) noexcept
        type: bool
      - name: get(pgp_curve_t &val) noexcept
        type: bool
      - name: get(pgp_s2k_t &s2k) noexcept
        type: bool
      - name: add(const void *data, size_t len)
        type: void
      - name: add(const std::vector<uint8_t> &data)
        type: void
      - name: add_byte(uint8_t bt)
        type: void
      - name: add_uint16(uint16_t val)
        type: void
      - name: add_uint32(uint32_t val)
        type: void
      - name: add(const pgp::KeyID &val)
        type: void
      - name: add(const pgp::mpi &val)
        type: void
      - name: add_subpackets(const pgp::pkt::Signature &sig, bool hashed)
        type: void
      - name: add(const pgp_curve_t curve)
        type: void
      - name: add(const pgp_s2k_t &s2k, pgp_version_t version)
        type: void
      - name: read(pgp_source_t &src) noexcept
        type: rnp_result_t
      - name: write(pgp_dest_t &dst, bool hdr = true) noexcept
        type: void
      - name: mark_secure(bool secure = true) noexcept
        type: void
      item_type: struct
      name: pgp_packet_body_t
      pos:
        line_end: 169
        line_start: 53
        source_file: /src/rnp/src/librepgp/stream-packet.h
    - fields:
      - name: version
        type: pgp_pkesk_version_t
      - name: alg
        type: pgp_pubkey_alg_t
      - name: material_buf
        type: std::vector<uint8_t>
      - name: key_id
        type: pgp::KeyID
      - name: salg
        type: pgp_symm_alg_t
      - name: write(pgp_dest_t &dst) const
        type: void
      - name: parse(pgp_source_t &src)
        type: rnp_result_t
      - name: parse_material() const
        type: std::unique_ptr<pgp::EncMaterial>
      - name: write_material(const pgp::EncMaterial &material)
        type: void
      item_type: struct
      name: pgp_pk_sesskey_t
      pos:
        line_end: 198
        line_start: 172
        source_file: /src/rnp/src/librepgp/stream-packet.h
    - fields:
      - name: version
        type: unsigned
      - name: alg
        type: pgp_symm_alg_t
      - name: s2k
        type: pgp_s2k_t
      - name: enckey[PGP_MAX_KEY_SIZE + PGP_AEAD_MAX_TAG_LEN + 1]
        type: uint8_t
      - name: enckeylen
        type: unsigned
      - name: aalg
        type: pgp_aead_alg_t
      - name: iv[PGP_MAX_BLOCK_SIZE]
        type: uint8_t
      - name: ivlen
        type: unsigned
      - name: write(pgp_dest_t &dst) const
        type: void
      - name: parse(pgp_source_t &src)
        type: rnp_result_t
      item_type: struct
      name: pgp_sk_sesskey_t
      pos:
        line_end: 218
        line_start: 201
        source_file: /src/rnp/src/librepgp/stream-packet.h
    - fields:
      - name: version
        type: uint8_t
      - name: type
        type: pgp_sig_type_t
      - name: halg
        type: pgp_hash_alg_t
      - name: palg
        type: pgp_pubkey_alg_t
      - name: keyid
        type: pgp::KeyID
      - name: nested
        type: unsigned
      - name: write(pgp_dest_t &dst) const
        type: void
      - name: parse(pgp_source_t &src)
        type: rnp_result_t
      - name: parse_v3(pgp_packet_body_t &pkt)
        type: rnp_result_t
      - name: parse_v6(pgp_packet_body_t &pkt)
        type: rnp_result_t
      item_type: struct
      name: pgp_one_pass_sig_t
      pos:
        line_end: 239
        line_start: 221
        source_file: /src/rnp/src/librepgp/stream-packet.h
    - fields:
      - name: tag
        type: pgp_pkt_type_t
      - name: uid
        type: std::vector<uint8_t>
      - name: operator==(const pgp_userid_pkt_t &src) const
        type: bool
      - name: operator!=(const pgp_userid_pkt_t &src) const
        type: bool
      - name: write(pgp_dest_t &dst) const
        type: void
      - name: parse(pgp_source_t &src)
        type: rnp_result_t
      item_type: struct
      name: pgp_userid_pkt_t
      pos:
        line_end: 254
        line_start: 244
        source_file: /src/rnp/src/librepgp/stream-packet.h
    typedefs: []
    union: []
- function_names:
  - rnp::DumpContext::DumpContext
  - ~DumpContext()
  - rnp::DumpContext::set_dump_grips
  - rnp::DumpContext::set_dump_mpi
  - rnp::DumpContext::set_dump_packets
  - rnp::DumpContextJson::DumpContextJson
  - rnp::DumpContext::DumpContext
  - ~DumpContext()
  - rnp::DumpContext::set_dump_grips
  - rnp::DumpContext::set_dump_mpi
  - rnp::DumpContext::set_dump_packets
  - rnp::DumpContextJson::DumpContextJson
  source_file: /src/rnp/src/librepgp/stream-dump.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::pkt::Signature::Signature
  - pgp::pkt::Signature::type
  - pgp::pkt::Signature::set_type
  - pgp::pkt::Signature::is_document
  - pgp::pkt::Signature::Signature
  - pgp::pkt::Signature::type
  - pgp::pkt::Signature::set_type
  - pgp::pkt::Signature::is_document
  - pgp::pkt::Signature::Signature
  - pgp::pkt::Signature::type
  - pgp::pkt::Signature::set_type
  - pgp::pkt::Signature::is_document
  - pgp::pkt::Signature::Signature
  - pgp::pkt::Signature::type
  - pgp::pkt::Signature::set_type
  - pgp::pkt::Signature::is_document
  source_file: /src/rnp/src/librepgp/stream-sig.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - signature_hash_key
  - signature_hash_userid
  - signature_hash_certification
  - signature_hash_binding
  - signature_hash_direct
  - process_pgp_signatures
  - Signature::operator==(const Signature &src) const
  - Signature::operator!=(const Signature &src) const
  - pgp::pkt::Signature::get_id
  - pgp::pkt::Signature::get_subpkt
  - pgp::pkt::Signature::get_subpkt
  - pgp::pkt::Signature::get_subpkt
  - pgp::pkt::Signature::get_subpkt
  - pgp::pkt::Signature::has_subpkt
  - pgp::pkt::Signature::has_keyid
  - pgp::pkt::Signature::keyid
  - pgp::pkt::Signature::set_keyid
  - pgp::pkt::Signature::has_keyfp
  - pgp::pkt::Signature::keyfp
  - pgp::pkt::Signature::set_keyfp
  - pgp::pkt::Signature::creation
  - pgp::pkt::Signature::set_creation
  - pgp::pkt::Signature::expiration
  - pgp::pkt::Signature::set_expiration
  - pgp::pkt::Signature::key_expiration
  - pgp::pkt::Signature::set_key_expiration
  - pgp::pkt::Signature::key_flags
  - pgp::pkt::Signature::set_key_flags
  - pgp::pkt::Signature::primary_uid
  - pgp::pkt::Signature::set_primary_uid
  - pgp::pkt::Signature::preferred
  - pgp::pkt::Signature::set_preferred
  - pgp::pkt::Signature::preferred_symm_algs
  - pgp::pkt::Signature::set_preferred_symm_algs
  - pgp::pkt::Signature::preferred_hash_algs
  - pgp::pkt::Signature::set_preferred_hash_algs
  - pgp::pkt::Signature::preferred_z_algs
  - pgp::pkt::Signature::set_preferred_z_algs
  - pgp::pkt::Signature::set_preferred_aead_algs
  - pgp::pkt::Signature::preferred_aead_algs
  - pgp::pkt::Signature::key_server_prefs
  - pgp::pkt::Signature::set_key_server_prefs
  - pgp::pkt::Signature::key_server
  - pgp::pkt::Signature::set_key_server
  - pgp::pkt::Signature::trust_level
  - pgp::pkt::Signature::trust_amount
  - pgp::pkt::Signature::set_trust
  - pgp::pkt::Signature::revocable
  - pgp::pkt::Signature::set_revocable
  - pgp::pkt::Signature::revocation_reason
  - pgp::pkt::Signature::revocation_code
  - pgp::pkt::Signature::has_revocation_reason
  - pgp::pkt::Signature::set_revocation_reason
  - pgp::pkt::Signature::key_get_features
  - pgp::pkt::Signature::key_has_features
  - pgp::pkt::Signature::set_key_features
  - pgp::pkt::Signature::signer_uid
  - pgp::pkt::Signature::set_signer_uid
  - pgp::pkt::Signature::add_notation
  - pgp::pkt::Signature::add_notation
  - pgp::pkt::Signature::set_embedded_sig
  - pgp::pkt::Signature::revoker_subpkt
  - pgp::pkt::Signature::has_revoker
  - pgp::pkt::Signature::revoker
  - pgp::pkt::Signature::set_revoker
  - pgp::pkt::Signature::add_subpkt
  - pgp::pkt::Signature::remove_subpkt
  - pgp::pkt::Signature::matches_onepass
  - pgp::pkt::Signature::version_supported
  - pgp::pkt::Signature::parse_v2v3
  - pgp::pkt::Signature::parse_subpackets
  - pgp::pkt::Signature::get_subpkt_len
  - pgp::pkt::Signature::find_subpkt
  - pgp::pkt::Signature::find_subpkt
  - pgp::pkt::Signature::parse_v4up
  - pgp::pkt::Signature::parse
  - pgp::pkt::Signature::parse
  - pgp::pkt::Signature::parse_material
  - pgp::pkt::Signature::write
  - pgp::pkt::Signature::write
  - pgp::pkt::Signature::write_material
  - pgp::pkt::Signature::fill_hashed_data
  - pgp::pkt::Signature::v6_salt_size
  - Signature::operator==(const Signature &src) const
  - Signature::operator!=(const Signature &src) const
  - pgp::pkt::Signature::get_id
  - pgp::pkt::Signature::get_subpkt
  - pgp::pkt::Signature::get_subpkt
  - pgp::pkt::Signature::get_subpkt
  - pgp::pkt::Signature::get_subpkt
  - pgp::pkt::Signature::has_subpkt
  - pgp::pkt::Signature::has_keyid
  - pgp::pkt::Signature::keyid
  - pgp::pkt::Signature::set_keyid
  - pgp::pkt::Signature::has_keyfp
  - pgp::pkt::Signature::keyfp
  - pgp::pkt::Signature::set_keyfp
  - pgp::pkt::Signature::creation
  - pgp::pkt::Signature::set_creation
  - pgp::pkt::Signature::expiration
  - pgp::pkt::Signature::set_expiration
  - pgp::pkt::Signature::key_expiration
  - pgp::pkt::Signature::set_key_expiration
  - pgp::pkt::Signature::key_flags
  - pgp::pkt::Signature::set_key_flags
  - pgp::pkt::Signature::primary_uid
  - pgp::pkt::Signature::set_primary_uid
  - pgp::pkt::Signature::preferred
  - pgp::pkt::Signature::set_preferred
  - pgp::pkt::Signature::preferred_symm_algs
  - pgp::pkt::Signature::set_preferred_symm_algs
  - pgp::pkt::Signature::preferred_hash_algs
  - pgp::pkt::Signature::set_preferred_hash_algs
  - pgp::pkt::Signature::preferred_z_algs
  - pgp::pkt::Signature::set_preferred_z_algs
  - pgp::pkt::Signature::set_preferred_aead_algs
  - pgp::pkt::Signature::preferred_aead_algs
  - pgp::pkt::Signature::key_server_prefs
  - pgp::pkt::Signature::set_key_server_prefs
  - pgp::pkt::Signature::key_server
  - pgp::pkt::Signature::set_key_server
  - pgp::pkt::Signature::trust_level
  - pgp::pkt::Signature::trust_amount
  - pgp::pkt::Signature::set_trust
  - pgp::pkt::Signature::revocable
  - pgp::pkt::Signature::set_revocable
  - pgp::pkt::Signature::revocation_reason
  - pgp::pkt::Signature::revocation_code
  - pgp::pkt::Signature::has_revocation_reason
  - pgp::pkt::Signature::set_revocation_reason
  - pgp::pkt::Signature::key_get_features
  - pgp::pkt::Signature::key_has_features
  - pgp::pkt::Signature::set_key_features
  - pgp::pkt::Signature::signer_uid
  - pgp::pkt::Signature::set_signer_uid
  - pgp::pkt::Signature::add_notation
  - pgp::pkt::Signature::add_notation
  - pgp::pkt::Signature::set_embedded_sig
  - pgp::pkt::Signature::revoker_subpkt
  - pgp::pkt::Signature::has_revoker
  - pgp::pkt::Signature::revoker
  - pgp::pkt::Signature::set_revoker
  - pgp::pkt::Signature::add_subpkt
  - pgp::pkt::Signature::remove_subpkt
  - pgp::pkt::Signature::matches_onepass
  - pgp::pkt::Signature::version_supported
  - pgp::pkt::Signature::parse_v2v3
  - pgp::pkt::Signature::parse_subpackets
  - pgp::pkt::Signature::get_subpkt_len
  - pgp::pkt::Signature::find_subpkt
  - pgp::pkt::Signature::find_subpkt
  - pgp::pkt::Signature::parse_v4up
  - pgp::pkt::Signature::parse
  - pgp::pkt::Signature::parse
  - pgp::pkt::Signature::parse_material
  - pgp::pkt::Signature::write
  - pgp::pkt::Signature::write
  - pgp::pkt::Signature::write_material
  - pgp::pkt::Signature::fill_hashed_data
  - pgp::pkt::Signature::v6_salt_size
  - Signature::operator==(const Signature &src) const
  - Signature::operator!=(const Signature &src) const
  - pgp::pkt::Signature::get_id
  - pgp::pkt::Signature::get_subpkt
  - pgp::pkt::Signature::get_subpkt
  - pgp::pkt::Signature::get_subpkt
  - pgp::pkt::Signature::get_subpkt
  - pgp::pkt::Signature::has_subpkt
  - pgp::pkt::Signature::has_keyid
  - pgp::pkt::Signature::keyid
  - pgp::pkt::Signature::set_keyid
  - pgp::pkt::Signature::has_keyfp
  - pgp::pkt::Signature::keyfp
  - pgp::pkt::Signature::set_keyfp
  - pgp::pkt::Signature::creation
  - pgp::pkt::Signature::set_creation
  - pgp::pkt::Signature::expiration
  - pgp::pkt::Signature::set_expiration
  - pgp::pkt::Signature::key_expiration
  - pgp::pkt::Signature::set_key_expiration
  - pgp::pkt::Signature::key_flags
  - pgp::pkt::Signature::set_key_flags
  - pgp::pkt::Signature::primary_uid
  - pgp::pkt::Signature::set_primary_uid
  - pgp::pkt::Signature::preferred
  - pgp::pkt::Signature::set_preferred
  - pgp::pkt::Signature::preferred_symm_algs
  - pgp::pkt::Signature::set_preferred_symm_algs
  - pgp::pkt::Signature::preferred_hash_algs
  - pgp::pkt::Signature::set_preferred_hash_algs
  - pgp::pkt::Signature::preferred_z_algs
  - pgp::pkt::Signature::set_preferred_z_algs
  - pgp::pkt::Signature::set_preferred_aead_algs
  - pgp::pkt::Signature::preferred_aead_algs
  - pgp::pkt::Signature::key_server_prefs
  - pgp::pkt::Signature::set_key_server_prefs
  - pgp::pkt::Signature::key_server
  - pgp::pkt::Signature::set_key_server
  - pgp::pkt::Signature::trust_level
  - pgp::pkt::Signature::trust_amount
  - pgp::pkt::Signature::set_trust
  - pgp::pkt::Signature::revocable
  - pgp::pkt::Signature::set_revocable
  - pgp::pkt::Signature::revocation_reason
  - pgp::pkt::Signature::revocation_code
  - pgp::pkt::Signature::has_revocation_reason
  - pgp::pkt::Signature::set_revocation_reason
  - pgp::pkt::Signature::key_get_features
  - pgp::pkt::Signature::key_has_features
  - pgp::pkt::Signature::set_key_features
  - pgp::pkt::Signature::signer_uid
  - pgp::pkt::Signature::set_signer_uid
  - pgp::pkt::Signature::add_notation
  - pgp::pkt::Signature::add_notation
  - pgp::pkt::Signature::set_embedded_sig
  - pgp::pkt::Signature::revoker_subpkt
  - pgp::pkt::Signature::has_revoker
  - pgp::pkt::Signature::revoker
  - pgp::pkt::Signature::set_revoker
  - pgp::pkt::Signature::add_subpkt
  - pgp::pkt::Signature::remove_subpkt
  - pgp::pkt::Signature::matches_onepass
  - pgp::pkt::Signature::version_supported
  - pgp::pkt::Signature::parse_v2v3
  - pgp::pkt::Signature::parse_subpackets
  - pgp::pkt::Signature::get_subpkt_len
  - pgp::pkt::Signature::find_subpkt
  - pgp::pkt::Signature::find_subpkt
  - pgp::pkt::Signature::parse_v4up
  - pgp::pkt::Signature::parse
  - pgp::pkt::Signature::parse
  - pgp::pkt::Signature::parse_material
  - pgp::pkt::Signature::write
  - pgp::pkt::Signature::write
  - pgp::pkt::Signature::write_material
  - pgp::pkt::Signature::fill_hashed_data
  - pgp::pkt::Signature::v6_salt_size
  - Signature::operator==(const Signature &src) const
  - Signature::operator!=(const Signature &src) const
  - pgp::pkt::Signature::get_id
  - pgp::pkt::Signature::get_subpkt
  - pgp::pkt::Signature::get_subpkt
  - pgp::pkt::Signature::get_subpkt
  - pgp::pkt::Signature::get_subpkt
  - pgp::pkt::Signature::has_subpkt
  - pgp::pkt::Signature::has_keyid
  - pgp::pkt::Signature::keyid
  - pgp::pkt::Signature::set_keyid
  - pgp::pkt::Signature::has_keyfp
  - pgp::pkt::Signature::keyfp
  - pgp::pkt::Signature::set_keyfp
  - pgp::pkt::Signature::creation
  - pgp::pkt::Signature::set_creation
  - pgp::pkt::Signature::expiration
  - pgp::pkt::Signature::set_expiration
  - pgp::pkt::Signature::key_expiration
  - pgp::pkt::Signature::set_key_expiration
  - pgp::pkt::Signature::key_flags
  - pgp::pkt::Signature::set_key_flags
  - pgp::pkt::Signature::primary_uid
  - pgp::pkt::Signature::set_primary_uid
  - pgp::pkt::Signature::preferred
  - pgp::pkt::Signature::set_preferred
  - pgp::pkt::Signature::preferred_symm_algs
  - pgp::pkt::Signature::set_preferred_symm_algs
  - pgp::pkt::Signature::preferred_hash_algs
  - pgp::pkt::Signature::set_preferred_hash_algs
  - pgp::pkt::Signature::preferred_z_algs
  - pgp::pkt::Signature::set_preferred_z_algs
  - pgp::pkt::Signature::set_preferred_aead_algs
  - pgp::pkt::Signature::preferred_aead_algs
  - pgp::pkt::Signature::key_server_prefs
  - pgp::pkt::Signature::set_key_server_prefs
  - pgp::pkt::Signature::key_server
  - pgp::pkt::Signature::set_key_server
  - pgp::pkt::Signature::trust_level
  - pgp::pkt::Signature::trust_amount
  - pgp::pkt::Signature::set_trust
  - pgp::pkt::Signature::revocable
  - pgp::pkt::Signature::set_revocable
  - pgp::pkt::Signature::revocation_reason
  - pgp::pkt::Signature::revocation_code
  - pgp::pkt::Signature::has_revocation_reason
  - pgp::pkt::Signature::set_revocation_reason
  - pgp::pkt::Signature::key_get_features
  - pgp::pkt::Signature::key_has_features
  - pgp::pkt::Signature::set_key_features
  - pgp::pkt::Signature::signer_uid
  - pgp::pkt::Signature::set_signer_uid
  - pgp::pkt::Signature::add_notation
  - pgp::pkt::Signature::add_notation
  - pgp::pkt::Signature::set_embedded_sig
  - pgp::pkt::Signature::revoker_subpkt
  - pgp::pkt::Signature::has_revoker
  - pgp::pkt::Signature::revoker
  - pgp::pkt::Signature::set_revoker
  - pgp::pkt::Signature::add_subpkt
  - pgp::pkt::Signature::remove_subpkt
  - pgp::pkt::Signature::matches_onepass
  - pgp::pkt::Signature::version_supported
  - pgp::pkt::Signature::parse_v2v3
  - pgp::pkt::Signature::parse_subpackets
  - pgp::pkt::Signature::get_subpkt_len
  - pgp::pkt::Signature::find_subpkt
  - pgp::pkt::Signature::find_subpkt
  - pgp::pkt::Signature::parse_v4up
  - pgp::pkt::Signature::parse
  - pgp::pkt::Signature::parse
  - pgp::pkt::Signature::parse_material
  - pgp::pkt::Signature::write
  - pgp::pkt::Signature::write
  - pgp::pkt::Signature::write_material
  - pgp::pkt::Signature::fill_hashed_data
  - pgp::pkt::Signature::v6_salt_size
  source_file: /src/rnp/src/librepgp/stream-sig.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_SUBPACKETS
      pos:
        line_end: 812
        line_start: 811
        source_file: /src/rnp/src/librepgp/stream-sig.cpp
      type_or_value: '64'
    - item_type: preproc_def
      name: MAX_SUBPACKETS
      pos:
        line_end: 812
        line_start: 811
        source_file: /src/rnp/src/librepgp/stream-sig.cpp
      type_or_value: '64'
    - item_type: preproc_def
      name: MAX_SUBPACKETS
      pos:
        line_end: 812
        line_start: 811
        source_file: /src/rnp/src/librepgp/stream-sig.cpp
      type_or_value: '64'
    - item_type: preproc_def
      name: MAX_SUBPACKETS
      pos:
        line_end: 812
        line_start: 811
        source_file: /src/rnp/src/librepgp/stream-sig.cpp
      type_or_value: '64'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/librepgp/stream-parse.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*password_provider'
        type: pgp_password_provider_t
      - name: '*       key_provider'
        type: rnp::KeyProvider
      - name: '*dest_provider'
        type: pgp_destination_func_t
      - name: '*     src_provider'
        type: pgp_source_func_t
      - name: '*   on_recipients'
        type: pgp_on_recipients_func_t
      - name: '*on_decryption_start'
        type: pgp_decryption_start_func_t
      - name: '* on_decryption_info'
        type: pgp_decryption_info_func_t
      - name: '* on_decryption_done'
        type: pgp_decryption_done_func_t
      - name: '*      on_signatures'
        type: pgp_signatures_func_t
      - name: '*ctx'
        type: rnp_ctx_t
      - name: '*     param'
        type: void
      item_type: struct
      name: pgp_parse_handler_t
      pos:
        line_end: 75
        line_start: 59
        source_file: /src/rnp/src/librepgp/stream-parse.h
    typedefs:
    - item_type: typedef
      name: pgp_parse_handler_t
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/rnp/src/librepgp/stream-parse.h
      type: pgp_parse_handler_t
    - item_type: typedef
      name: "pgp_destination_func_t(pgp_parse_handler_t *    handler,\n                                                          pgp_dest_t
        **            dst,\n                                                          bool
        *                   closedst,\n                                                          const
        pgp_literal_hdr_t *lithdr)"
      pos:
        line_end: 42
        line_start: 39
        source_file: /src/rnp/src/librepgp/stream-parse.h
      type: bool
    - item_type: typedef
      name: pgp_source_func_t(pgp_parse_handler_t *handler, pgp_source_t *src)
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/rnp/src/librepgp/stream-parse.h
      type: bool
    - item_type: typedef
      name: pgp_signatures_func_t(const std::vector<rnp::SignatureInfo> &sigs, void
        *param)
      pos:
        line_end: 44
        line_start: 44
        source_file: /src/rnp/src/librepgp/stream-parse.h
      type: void
    - item_type: typedef
      name: "pgp_on_recipients_func_t(const std::vector<pgp_pk_sesskey_t> &recipients,\n
        \                                     const std::vector<pgp_sk_sesskey_t>
        &passwords,\n                                      void *                               param)"
      pos:
        line_end: 48
        line_start: 46
        source_file: /src/rnp/src/librepgp/stream-parse.h
      type: void
    - item_type: typedef
      name: "pgp_decryption_start_func_t(pgp_pk_sesskey_t *pubenc,\n                                         pgp_sk_sesskey_t
        *symenc,\n                                         void *            param)"
      pos:
        line_end: 51
        line_start: 49
        source_file: /src/rnp/src/librepgp/stream-parse.h
      type: void
    - item_type: typedef
      name: "pgp_decryption_info_func_t(bool           mdc,\n                                        pgp_aead_alg_t
        aead,\n                                        pgp_symm_alg_t salg,\n                                        void
        *         param)"
      pos:
        line_end: 55
        line_start: 52
        source_file: /src/rnp/src/librepgp/stream-parse.h
      type: void
    - item_type: typedef
      name: pgp_decryption_done_func_t(bool validated, void *param)
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/rnp/src/librepgp/stream-parse.h
      type: void
    union: []
- function_names:
  - indent_dst_write
  - indent_dst_close
  - init_indent_dest
  - indent_dest_increase
  - indent_dest_decrease
  - vsnprinthex
  - dst_print_mpi
  - dst_print_vec
  - dst_print_palg
  - dst_print_halg
  - dst_print_salg
  - dst_print_aalg
  - dst_print_zalg
  - dst_print_str
  - dst_print_algs
  - dst_print_sig_type
  - dst_print_hex
  - dst_print_keyid
  - dst_print_fp
  - dst_print_s2k
  - dst_print_time
  - dst_print_expiration
  - dst_hexdump
  - dst_hexdump
  - rnp::DumpContext::copy_params
  - rnp::DumpContext::get_aead_hdr
  - rnp::DumpContext::skip_cleartext
  - rnp::DumpContextDst::DumpContextDst
  - DumpContextDst::~DumpContextDst()
  - rnp::DumpContextDst::dump_signature_subpacket
  - rnp::DumpContextDst::dump_signature_subpackets
  - rnp::DumpContextDst::dump_signature_pkt
  - rnp::DumpContextDst::dump_signature
  - rnp::DumpContextDst::dump_key_material
  - rnp::DumpContextDst::dump_key
  - rnp::DumpContextDst::dump_userid
  - rnp::DumpContextDst::dump_pk_session_key
  - rnp::DumpContextDst::dump_sk_session_key
  - rnp::DumpContextDst::dump_aead_encrypted
  - rnp::DumpContextDst::dump_encrypted
  - rnp::DumpContextDst::dump_one_pass
  - rnp::DumpContextDst::dump_compressed
  - rnp::DumpContextDst::dump_literal
  - rnp::DumpContextDst::dump_marker
  - rnp::DumpContextDst::dump_raw_packets
  - rnp::DumpContextDst::dump
  - rnp::obj_add_intstr_json
  - rnp::obj_add_mpi_json
  - rnp::subpacket_obj_add_algs
  - rnp::obj_add_s2k_json
  - rnp::DumpContextJson::dump_signature_subpacket
  - rnp::DumpContextJson::dump_signature_subpackets
  - rnp::DumpContextJson::dump_signature_pkt
  - rnp::DumpContextJson::dump_signature
  - rnp::DumpContextJson::dump_key_material
  - rnp::DumpContextJson::dump_key
  - rnp::DumpContextJson::dump_user_id
  - rnp::DumpContextJson::dump_pk_session_key
  - rnp::DumpContextJson::dump_sk_session_key
  - rnp::DumpContextJson::dump_encrypted
  - rnp::DumpContextJson::dump_one_pass
  - rnp::DumpContextJson::dump_marker
  - rnp::DumpContextJson::dump_compressed
  - rnp::DumpContextJson::dump_literal
  - rnp::DumpContextJson::dump_pkt_hdr
  - rnp::DumpContextJson::dump_raw_packets
  - rnp::DumpContextJson::dump
  - rnp::DumpContext::copy_params
  - rnp::DumpContext::get_aead_hdr
  - rnp::DumpContext::skip_cleartext
  - rnp::DumpContextDst::DumpContextDst
  - DumpContextDst::~DumpContextDst()
  - rnp::DumpContextDst::dump_signature_subpacket
  - rnp::DumpContextDst::dump_signature_subpackets
  - rnp::DumpContextDst::dump_signature_pkt
  - rnp::DumpContextDst::dump_signature
  - rnp::DumpContextDst::dump_key_material
  - rnp::DumpContextDst::dump_key
  - rnp::DumpContextDst::dump_userid
  - rnp::DumpContextDst::dump_pk_session_key
  - rnp::DumpContextDst::dump_sk_session_key
  - rnp::DumpContextDst::dump_aead_encrypted
  - rnp::DumpContextDst::dump_encrypted
  - rnp::DumpContextDst::dump_one_pass
  - rnp::DumpContextDst::dump_compressed
  - rnp::DumpContextDst::dump_literal
  - rnp::DumpContextDst::dump_marker
  - rnp::DumpContextDst::dump_raw_packets
  - rnp::DumpContextDst::dump
  - rnp::obj_add_intstr_json
  - rnp::obj_add_mpi_json
  - rnp::subpacket_obj_add_algs
  - rnp::obj_add_s2k_json
  - rnp::DumpContextJson::dump_signature_subpacket
  - rnp::DumpContextJson::dump_signature_subpackets
  - rnp::DumpContextJson::dump_signature_pkt
  - rnp::DumpContextJson::dump_signature
  - rnp::DumpContextJson::dump_key_material
  - rnp::DumpContextJson::dump_key
  - rnp::DumpContextJson::dump_user_id
  - rnp::DumpContextJson::dump_pk_session_key
  - rnp::DumpContextJson::dump_sk_session_key
  - rnp::DumpContextJson::dump_encrypted
  - rnp::DumpContextJson::dump_one_pass
  - rnp::DumpContextJson::dump_marker
  - rnp::DumpContextJson::dump_compressed
  - rnp::DumpContextJson::dump_literal
  - rnp::DumpContextJson::dump_pkt_hdr
  - rnp::DumpContextJson::dump_raw_packets
  - rnp::DumpContextJson::dump
  source_file: /src/rnp/src/librepgp/stream-dump.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: LINELEN
      pos:
        line_end: 543
        line_start: 542
        source_file: /src/rnp/src/librepgp/stream-dump.cpp
      type_or_value: '16'
    structs:
    - fields:
      - name: level
        type: int
      - name: lstart
        type: bool
      - name: '*writedst'
        type: pgp_dest_t
      item_type: struct
      name: pgp_dest_indent_param_t
      pos:
        line_end: 236
        line_start: 232
        source_file: /src/rnp/src/librepgp/stream-dump.cpp
    typedefs: []
    union: []
- function_names:
  - pgp_dest_encrypted_param_t
  - is_aead_auth
  - is_v2_seipd
  - pgp_dest_signed_param_t
  - ~pgp_dest_signed_param_t()
  - partial_dst_write
  - partial_dst_finish
  - partial_dst_close
  - init_partial_pkt_dst
  - init_streamed_packet
  - finish_streamed_packet
  - close_streamed_packet
  - encrypted_dst_write_cfb
  - encrypted_start_aead_chunk
  - encrypted_dst_write_aead
  - encrypted_dst_finish
  - encrypted_dst_close
  - encrypted_add_recipient
  - encrypted_add_password_v4_single
  - encrypted_add_password_v4
  - encrypted_add_password_v5
  - encrypted_add_password_v6
  - encrypted_build_cek
  - encrypted_start_cfb
  - init_encrypted_dst
  - signed_dst_write
  - cleartext_dst_writeline
  - cleartext_dst_scanline
  - cleartext_dst_write
  - signed_fill_signature
  - signed_write_signature
  - signed_dst_finish
  - signed_detached_dst_finish
  - cleartext_dst_finish
  - signed_dst_close
  - signed_dst_update
  - signed_dst_set_literal_hdr
  - signed_add_signer
  - init_signed_dst
  - compressed_dst_write
  - compressed_dst_finish
  - compressed_dst_close
  - init_compressed_dst
  - literal_dst_write
  - literal_dst_finish
  - literal_dst_close
  - build_literal_hdr
  - init_literal_dst
  - process_stream_sequence
  - rnp_sign_src
  - rnp_encrypt_sign_src
  - rnp_compress_src
  - rnp_wrap_src
  - rnp_raw_encrypt_src
  source_file: /src/rnp/src/librepgp/stream-write.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PGP_PARTIAL_PKT_SIZE_BITS
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/rnp/src/librepgp/stream-write.cpp
      type_or_value: (13)
    - item_type: preproc_def
      name: PGP_PARTIAL_PKT_BLOCK_SIZE
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/rnp/src/librepgp/stream-write.cpp
      type_or_value: (1 << PGP_PARTIAL_PKT_SIZE_BITS)
    structs:
    - fields:
      - name: '*writedst'
        type: pgp_dest_t
      - name: '*origdst'
        type: pgp_dest_t
      - name: partial
        type: bool
      - name: indeterminate
        type: bool
      - name: tag
        type: int
      - name: hdr[PGP_MAX_HEADER_SIZE]
        type: uint8_t
      - name: hdrlen
        type: size_t
      item_type: struct
      name: pgp_dest_packet_param_t
      pos:
        line_end: 77
        line_start: 69
        source_file: /src/rnp/src/librepgp/stream-write.cpp
    - fields:
      - name: pkt
        type: pgp_dest_packet_param_t
      - name: alg
        type: pgp_compression_type_t
      - name: zstarted
        type: bool
      - name: cache[PGP_INPUT_CACHE_SIZE / 2]
        type: uint8_t
      - name: len
        type: size_t
      item_type: struct
      name: pgp_dest_compressed_param_t
      pos:
        line_end: 91
        line_start: 79
        source_file: /src/rnp/src/librepgp/stream-write.cpp
    - fields:
      - name: pkt
        type: pgp_dest_packet_param_t
      - name: '&                ctx'
        type: rnp_ctx_t
      - name: auth_type
        type: rnp::AuthType
      - name: encrypt
        type: pgp_crypt_t
      - name: mdc
        type: std::unique_ptr<rnp::Hash>
      - name: aalg
        type: pgp_aead_alg_t
      - name: iv[PGP_AEAD_MAX_NONCE_LEN]
        type: uint8_t
      - name: ad[PGP_AEAD_MAX_AD_LEN]
        type: uint8_t
      - name: adlen
        type: size_t
      - name: chunklen
        type: size_t
      - name: chunkout
        type: size_t
      - name: chunkidx
        type: size_t
      - name: cachelen
        type: size_t
      - name: cache[PGP_AEAD_CACHE_LEN]
        type: uint8_t
      - name: skesks
        type: std::list<pgp_sk_sesskey_t>
      item_type: struct
      name: pgp_dest_encrypted_param_t
      pos:
        line_end: 138
        line_start: 93
        source_file: /src/rnp/src/librepgp/stream-write.cpp
    - fields:
      - name: onepass
        type: pgp_one_pass_sig_t
      - name: '*         key'
        type: rnp::Key
      - name: halg
        type: pgp_hash_alg_t
      - name: sigcreate
        type: int64_t
      - name: sigexpire
        type: uint64_t
      item_type: struct
      name: pgp_dest_signer_info_t
      pos:
        line_end: 149
        line_start: 140
        source_file: /src/rnp/src/librepgp/stream-write.cpp
    - fields:
      - name: '*             writedst'
        type: pgp_dest_t
      - name: '*              ctx'
        type: rnp_ctx_t
      - name: '*password_provider'
        type: pgp_password_provider_t
      - name: siginfos
        type: std::vector<pgp_dest_signer_info_t>
      - name: hashes
        type: rnp::HashList
      - name: clr_start
        type: bool
      - name: clr_buf[CT_BUF_LEN]
        type: uint8_t
      - name: clr_buflen
        type: size_t
      - name: lhdr
        type: pgp_literal_hdr_t
      - name: has_lhdr
        type: bool
      item_type: struct
      name: pgp_dest_signed_param_t
      pos:
        line_end: 166
        line_start: 151
        source_file: /src/rnp/src/librepgp/stream-write.cpp
    - fields:
      - name: '*writedst'
        type: pgp_dest_t
      - name: part[PGP_PARTIAL_PKT_BLOCK_SIZE]
        type: uint8_t
      - name: parthdr
        type: uint8_t
      - name: partlen
        type: size_t
      - name: len
        type: size_t
      item_type: struct
      name: pgp_dest_partial_param_t
      pos:
        line_end: 174
        line_start: 168
        source_file: /src/rnp/src/librepgp/stream-write.cpp
    typedefs: []
    union: []
- function_names:
  - pgp_source_t::read
  - pgp_source_t::read_eq
  - pgp_source_t::peek
  - pgp_source_t::peek_eq
  - pgp_source_t::skip
  - pgp_source_t::finish
  - pgp_source_t::error
  - pgp_source_t::eof
  - pgp_source_t::close
  - pgp_source_t::skip_eol
  - pgp_source_t::skip_chars
  - pgp_source_t::peek_line
  - init_src_common
  - file_src_read
  - file_src_close
  - init_fd_src
  - init_file_src
  - init_stdin_src
  - mem_src_read
  - mem_src_close
  - init_mem_src
  - null_src_read
  - init_null_src
  - read_mem_src
  - mem_src_get_memory
  - init_dst_common
  - dst_write
  - dst_write
  - dst_printf
  - dst_flush
  - dst_finish
  - dst_close
  - file_dst_write
  - file_dst_close
  - init_fd_dest
  - init_file_dest
  - file_tmpdst_finish
  - file_tmpdst_close
  - init_tmpfile_dest
  - init_stdout_dest
  - mem_dst_write
  - mem_dst_close
  - init_mem_dest
  - mem_dest_discard_overflow
  - mem_dest_get_memory
  - mem_dest_own_memory
  - mem_dest_secure_memory
  - null_dst_write
  - null_dst_close
  - init_null_dest
  - dst_write_src
  - have_pkesk_checksum
  - do_encrypt_pkesk_v3_alg_id
  - check_enforce_aes_v3_pkesk
  - encrypted_sesk_set_ad
  source_file: /src/rnp/src/librepgp/stream-common.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: TMPDST_SUFFIX
      pos:
        line_end: 854
        line_start: 853
        source_file: /src/rnp/src/librepgp/stream-common.cpp
      type_or_value: '".rnp-tmp.XXXXXX"'
    structs:
    - fields:
      - name: fd
        type: int
      item_type: struct
      name: pgp_source_file_param_t
      pos:
        line_end: 391
        line_start: 389
        source_file: /src/rnp/src/librepgp/stream-common.cpp
    - fields:
      - name: '*memory'
        type: void
      - name: free
        type: bool
      - name: len
        type: size_t
      - name: pos
        type: size_t
      item_type: struct
      name: pgp_source_mem_param_t
      pos:
        line_end: 502
        line_start: 497
        source_file: /src/rnp/src/librepgp/stream-common.cpp
    - fields:
      - name: maxalloc
        type: unsigned
      - name: allocated
        type: unsigned
      - name: '*   memory'
        type: void
      - name: free
        type: bool
      - name: discard_overflow
        type: bool
      - name: secure
        type: bool
      item_type: struct
      name: pgp_dest_mem_param_t
      pos:
        line_end: 511
        line_start: 504
        source_file: /src/rnp/src/librepgp/stream-common.cpp
    - fields:
      - name: fd
        type: int
      - name: errcode
        type: int
      - name: overwrite
        type: bool
      - name: path
        type: std::string
      item_type: struct
      name: pgp_dest_file_param_t
      pos:
        line_end: 747
        line_start: 742
        source_file: /src/rnp/src/librepgp/stream-common.cpp
    typedefs: []
    union: []
- function_names:
  - pgp_dest_t
  - '&operator=(const pgp_dest_t &)'
  - pgp_dest_t
  - '&operator=(pgp_dest_t &&)'
  - rnp::Source::Source
  - rnp::Source::Source
  - rnp::Source::Source
  - ~Source()
  - "&\n    src()"
  - rnp::Source::size
  - rnp::Source::readb
  - rnp::Source::eof
  - rnp::Source::error
  - rnp::MemorySource::MemorySource
  - rnp::MemorySource::MemorySource
  - rnp::MemorySource::MemorySource
  - rnp::MemorySource::MemorySource
  - rnp::MemorySource::MemorySource
  - rnp::MemorySource::memory
  - rnp::Dest::Dest
  - rnp::Dest::Dest
  - rnp::Dest::Dest
  - ~Dest()
  - rnp::Dest::write
  - rnp::Dest::set_discard
  - "&\n    dst()"
  - rnp::Dest::writeb
  - rnp::Dest::werr
  - rnp::MemoryDest::MemoryDest
  - rnp::MemoryDest::MemoryDest
  - rnp::MemoryDest::MemoryDest
  - rnp::MemoryDest::memory
  - rnp::MemoryDest::set_secure
  - rnp::MemoryDest::to_vector
  - rnp::Source::Source
  - rnp::Source::Source
  - rnp::Source::Source
  - ~Source()
  - "&\n    src()"
  - rnp::Source::size
  - rnp::Source::readb
  - rnp::Source::eof
  - rnp::Source::error
  - rnp::MemorySource::MemorySource
  - rnp::MemorySource::MemorySource
  - rnp::MemorySource::MemorySource
  - rnp::MemorySource::MemorySource
  - rnp::MemorySource::MemorySource
  - rnp::MemorySource::memory
  - rnp::Dest::Dest
  - rnp::Dest::Dest
  - rnp::Dest::Dest
  - ~Dest()
  - rnp::Dest::write
  - rnp::Dest::set_discard
  - "&\n    dst()"
  - rnp::Dest::writeb
  - rnp::Dest::werr
  - rnp::MemoryDest::MemoryDest
  - rnp::MemoryDest::MemoryDest
  - rnp::MemoryDest::MemoryDest
  - rnp::MemoryDest::memory
  - rnp::MemoryDest::set_secure
  - rnp::MemoryDest::to_vector
  source_file: /src/rnp/src/librepgp/stream-common.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PGP_INPUT_CACHE_SIZE
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/rnp/src/librepgp/stream-common.h
      type_or_value: '32768'
    - item_type: preproc_def
      name: PGP_OUTPUT_CACHE_SIZE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/rnp/src/librepgp/stream-common.h
      type_or_value: '32768'
    - item_type: preproc_def
      name: PGP_PARTIAL_PKT_FIRST_PART_MIN_SIZE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/rnp/src/librepgp/stream-common.h
      type_or_value: '512'
    structs:
    - fields:
      - name: buf[PGP_INPUT_CACHE_SIZE]
        type: uint8_t
      - name: pos
        type: unsigned
      - name: len
        type: unsigned
      - name: readahead
        type: bool
      item_type: struct
      name: pgp_source_cache_t
      pos:
        line_end: 72
        line_start: 67
        source_file: /src/rnp/src/librepgp/stream-common.h
    - fields:
      - name: '*raw_read'
        type: pgp_source_read_func_t
      - name: '*raw_finish'
        type: pgp_source_finish_func_t
      - name: '* raw_close'
        type: pgp_source_close_func_t
      - name: type
        type: pgp_stream_type_t
      - name: size
        type: uint64_t
      - name: readb
        type: uint64_t
      - name: '*cache'
        type: pgp_source_cache_t
      - name: '*              param'
        type: void
      - name: eof_
        type: bool
      - name: knownsize
        type: bool
      - name: error_
        type: bool
      - name: read(void *buf, size_t len, size_t *read)
        type: bool
      - name: read_eq(void *buf, size_t len)
        type: bool
      - name: peek(void *buf, size_t len, size_t *read)
        type: bool
      - name: peek_eq(void *buf, size_t len)
        type: bool
      - name: skip(size_t len)
        type: void
      - name: finish()
        type: rnp_result_t
      - name: error() const
        type: bool
      - name: eof()
        type: bool
      - name: close()
        type: void
      - name: skip_eol()
        type: bool
      - name: skip_chars(const std::string &chars)
        type: bool
      - name: peek_line(char *buf, size_t len, size_t *read)
        type: bool
      - name: is_armored()
        type: bool
      - name: is_cleartext()
        type: bool
      - name: is_base64()
        type: bool
      item_type: struct
      name: pgp_source_t
      pos:
        line_end: 192
        line_start: 74
        source_file: /src/rnp/src/librepgp/stream-common.h
    - fields:
      - name: '* write'
        type: pgp_dest_write_func_t
      - name: '*finish'
        type: pgp_dest_finish_func_t
      - name: '* close'
        type: pgp_dest_close_func_t
      - name: type
        type: pgp_stream_type_t
      - name: werr
        type: rnp_result_t
      - name: writeb
        type: size_t
      - name: '*               param'
        type: void
      - name: no_cache
        type: bool
      - name: cache
        type: std::vector<uint8_t>
      - name: clen
        type: unsigned
      - name: finished
        type: bool
      item_type: struct
      name: pgp_dest_t
      pos:
        line_end: 262
        line_start: 244
        source_file: /src/rnp/src/librepgp/stream-common.h
    typedefs:
    - item_type: typedef
      name: pgp_source_t
      pos:
        line_end: 55
        line_start: 55
        source_file: /src/rnp/src/librepgp/stream-common.h
      type: pgp_source_t
    - item_type: typedef
      name: pgp_dest_t
      pos:
        line_end: 56
        line_start: 56
        source_file: /src/rnp/src/librepgp/stream-common.h
      type: pgp_dest_t
    - item_type: typedef
      name: pgp_source_read_func_t(pgp_source_t *src, void *buf, size_t len, size_t
        *read)
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/rnp/src/librepgp/stream-common.h
      type: bool
    - item_type: typedef
      name: pgp_source_finish_func_t(pgp_source_t *src)
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/rnp/src/librepgp/stream-common.h
      type: rnp_result_t
    - item_type: typedef
      name: pgp_source_close_func_t(pgp_source_t *src)
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/rnp/src/librepgp/stream-common.h
      type: void
    - item_type: typedef
      name: pgp_dest_write_func_t(pgp_dest_t *dst, const void *buf, size_t len)
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/rnp/src/librepgp/stream-common.h
      type: rnp_result_t
    - item_type: typedef
      name: pgp_dest_finish_func_t(pgp_dest_t *src)
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/rnp/src/librepgp/stream-common.h
      type: rnp_result_t
    - item_type: typedef
      name: pgp_dest_close_func_t(pgp_dest_t *dst, bool discard)
      pos:
        line_end: 64
        line_start: 64
        source_file: /src/rnp/src/librepgp/stream-common.h
      type: void
    - item_type: typedef
      name: pgp_sk_sesskey_t
      pos:
        line_end: 580
        line_start: 580
        source_file: /src/rnp/src/librepgp/stream-common.h
      type: pgp_sk_sesskey_t
    union: []
- function_names:
  - armor_read_padding
  - base64_read_padding
  - armor_read_crc
  - armor_read_trailer
  - armored_update_crc
  - armored_src_read
  - armored_src_close
  - find_armor_header
  - armor_str_to_data_type
  - rnp_armor_guess_type
  - rnp_armored_guess_type_by_readahead
  - peek_armor_header
  - rnp_armored_get_type
  - armor_parse_header
  - armor_skip_line
  - is_base64_line
  - armor_header_known
  - armor_parse_headers
  - init_armored_src
  - armor_write_message_header
  - armor_write_eol
  - armor_append_eol
  - armored_encode3
  - armored_dst_write
  - armored_dst_finish
  - armored_dst_close
  - init_armored_dst
  - is_armored_dest
  - armored_dst_set_line_length
  - pgp_source_t::is_armored
  - pgp_source_t::is_cleartext
  - pgp_source_t::is_base64
  - rnp_dearmor_source
  - rnp_armor_source
  - rnp::ArmoredSource::ArmoredSource
  - rnp::ArmoredSource::restart
  - '&

    ArmoredSource::src()'
  - rnp::ArmoredSource::ArmoredSource
  - rnp::ArmoredSource::restart
  - '&

    ArmoredSource::src()'
  source_file: /src/rnp/src/librepgp/stream-armor.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ARMORED_BLOCK_SIZE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/rnp/src/librepgp/stream-armor.cpp
      type_or_value: (4096)
    - item_type: preproc_def
      name: ARMORED_PEEK_BUF_SIZE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/rnp/src/librepgp/stream-armor.cpp
      type_or_value: '1024'
    - item_type: preproc_def
      name: ARMORED_MIN_LINE_LENGTH
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/rnp/src/librepgp/stream-armor.cpp
      type_or_value: (16)
    - item_type: preproc_def
      name: ARMORED_MAX_LINE_LENGTH
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/rnp/src/librepgp/stream-armor.cpp
      type_or_value: (76)
    structs:
    - fields:
      - name: '*    readsrc'
        type: pgp_source_t
      - name: type
        type: pgp_armored_msg_t
      - name: armorhdr
        type: std::string
      - name: rest[ARMORED_BLOCK_SIZE]
        type: uint8_t
      - name: restlen
        type: unsigned
      - name: restpos
        type: unsigned
      - name: brest[3]
        type: uint8_t
      - name: brestlen
        type: unsigned
      - name: eofb64
        type: bool
      - name: readcrc[3]
        type: uint8_t
      - name: has_crc
        type: bool
      - name: crc_ctx
        type: std::unique_ptr<rnp::CRC24>
      - name: noheaders
        type: bool
      item_type: struct
      name: pgp_source_armored_param_t
      pos:
        line_end: 63
        line_start: 49
        source_file: /src/rnp/src/librepgp/stream-armor.cpp
    - fields:
      - name: '*      writedst'
        type: pgp_dest_t
      - name: type
        type: pgp_armored_msg_t
      - name: eol[2]
        type: char
      - name: lout
        type: unsigned
      - name: llen
        type: unsigned
      - name: tail[2]
        type: uint8_t
      - name: tailc
        type: unsigned
      - name: crc_ctx
        type: std::unique_ptr<rnp::CRC24>
      item_type: struct
      name: pgp_dest_armored_param_t
      pos:
        line_end: 74
        line_start: 65
        source_file: /src/rnp/src/librepgp/stream-armor.cpp
    typedefs: []
    union: []
- function_names:
  - skip_pgp_packets
  - process_pgp_key_signatures
  - process_pgp_userid
  - process_pgp_subkey
  - process_pgp_key_auto
  - process_pgp_keys
  - process_pgp_key
  - decrypt_secret_key_v3
  - parse_secret_key_mpis
  - crypt_secret_key_aead
  - decrypt_secret_key
  - write_secret_key_mpis
  - encrypt_secret_key
  - pgp_userid_pkt_t::operator==(const pgp_userid_pkt_t &src) const
  - pgp_userid_pkt_t::operator!=(const pgp_userid_pkt_t &src) const
  - pgp_userid_pkt_t::write
  - pgp_userid_pkt_t::parse
  - pgp_key_pkt_t::pgp_key_pkt_t
  - pgp_key_pkt_t::pgp_key_pkt_t
  - '&

    pgp_key_pkt_t::operator=(pgp_key_pkt_t &&src)'
  - '&

    pgp_key_pkt_t::operator=(const pgp_key_pkt_t &src)'
  - pgp_key_pkt_t::~pgp_key_pkt_t()
  - pgp_key_pkt_t::make_s2k_params
  - pgp_key_pkt_t::write
  - pgp_key_pkt_t::parse
  - pgp_key_pkt_t::fill_hashed_data
  - pgp_transferable_subkey_t::pgp_transferable_subkey_t
  - pgp_transferable_key_t::pgp_transferable_key_t
  source_file: /src/rnp/src/librepgp/stream-key.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp_ctx_t::add_encryption_password
  - rnp_ctx_t::pkeskv6_capable
  source_file: /src/rnp/src/librepgp/stream-ctx.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PGP_UID_PRIMARY
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/rnp/src/librepgp/stream-ctx.cpp
      type_or_value: ((uint32_t) -2)
    - item_type: preproc_def
      name: PGP_UID_ANY
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/rnp/src/librepgp/stream-ctx.cpp
      type_or_value: ((uint32_t) -3)
    structs: []
    typedefs: []
    union: []
- function_names:
  - write_packet_len
  - get_packet_type
  - stream_pkt_type
  - stream_pkt_hdr_len
  - get_pkt_len
  - stream_read_pkt_len
  - stream_read_partial_chunk_len
  - stream_old_indeterminate_pkt_len
  - stream_partial_pkt_len
  - get_partial_pkt_len
  - stream_peek_packet_hdr
  - stream_read_packet_partial
  - stream_read_packet
  - stream_skip_packet
  - stream_parse_marker
  - is_key_pkt
  - is_subkey_pkt
  - is_primary_key_pkt
  - is_public_key_pkt
  - is_secret_key_pkt
  - is_rsa_key_alg
  - pgp_packet_body_t::pgp_packet_body_t
  - pgp_packet_body_t::pgp_packet_body_t
  - pgp_packet_body_t::pgp_packet_body_t
  - pgp_packet_body_t::~pgp_packet_body_t()
  - pgp_packet_body_t::data
  - pgp_packet_body_t::cur
  - pgp_packet_body_t::size
  - pgp_packet_body_t::left
  - pgp_packet_body_t::skip
  - pgp_packet_body_t::skip_back
  - pgp_packet_body_t::get
  - pgp_packet_body_t::get
  - pgp_packet_body_t::get
  - pgp_packet_body_t::get
  - pgp_packet_body_t::get
  - pgp_packet_body_t::get
  - pgp_packet_body_t::get
  - pgp_packet_body_t::get
  - pgp_packet_body_t::add
  - pgp_packet_body_t::add
  - pgp_packet_body_t::add_byte
  - pgp_packet_body_t::add_uint16
  - pgp_packet_body_t::add_uint32
  - pgp_packet_body_t::add
  - pgp_packet_body_t::add
  - pgp_packet_body_t::add_subpackets
  - pgp_packet_body_t::add
  - pgp_packet_body_t::add
  - pgp_packet_body_t::read
  - pgp_packet_body_t::write
  - pgp_packet_body_t::mark_secure
  - pgp_sk_sesskey_t::parse_v6
  - pgp_sk_sesskey_t::parse
  - pgp_pk_sesskey_t::write
  - pgp_pk_sesskey_t::parse_material
  - pgp_pk_sesskey_t::write_material
  - pgp_one_pass_sig_t::write
  - pgp_one_pass_sig_t::parse
  - pgp_one_pass_sig_t::parse_v6
  - pgp_one_pass_sig_t::parse_v3
  source_file: /src/rnp/src/librepgp/stream-packet.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp_ctx_t
  - rnp_ctx_t
  - rnp_ctx_t
  - '&operator=(const rnp_ctx_t &)'
  - '&operator=(rnp_ctx_t &&)'
  source_file: /src/rnp/src/librepgp/stream-ctx.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*     key'
        type: rnp::Key
      - name: halg
        type: pgp_hash_alg_t
      - name: sigcreate
        type: int64_t
      - name: sigexpire
        type: uint64_t
      item_type: struct
      name: rnp_signer_info_t
      pos:
        line_end: 47
        line_start: 42
        source_file: /src/rnp/src/librepgp/stream-ctx.h
    - fields:
      - name: s2k
        type: pgp_s2k_t
      - name: s2k_cipher
        type: pgp_symm_alg_t
      - name: key
        type: rnp::secure_array<uint8_t, PGP_MAX_KEY_SIZE>
      item_type: struct
      name: rnp_symmetric_pass_info_t
      pos:
        line_end: 54
        line_start: 49
        source_file: /src/rnp/src/librepgp/stream-ctx.h
    - fields:
      - name: filename
        type: std::string
      - name: filemtime
        type: int64_t
      - name: sigcreate
        type: int64_t
      - name: sigexpire
        type: uint64_t
      - name: clearsign
        type: bool
      - name: detached
        type: bool
      - name: halg
        type: pgp_hash_alg_t
      - name: ealg
        type: pgp_symm_alg_t
      - name: zalg
        type: int
      - name: zlevel
        type: int
      - name: aalg
        type: pgp_aead_alg_t
      - name: abits
        type: int
      - name: overwrite
        type: bool
      - name: armor
        type: bool
      - name: no_wrap
        type: bool
      - name: recipients
        type: std::list<rnp::Key *>
      - name: passwords
        type: std::list<rnp_symmetric_pass_info_t>
      - name: signers
        type: std::list<rnp_signer_info_t>
      - name: '&               sec_ctx'
        type: rnp::SecurityContext
      - name: '&                   key_provider'
        type: rnp::KeyProvider
      - name: '&            pass_provider'
        type: pgp_password_provider_t
      - name: "add_encryption_password(const std::string &password,\n                                         pgp_hash_alg_t
          \    halg,\n                                         pgp_symm_alg_t     ealg,\n
          \                                        size_t             iterations =
          0)"
        type: rnp_result_t
      item_type: struct
      name: rnp_ctx_t
      pos:
        line_end: 148
        line_start: 97
        source_file: /src/rnp/src/librepgp/stream-ctx.h
    typedefs: []
    union: []
- function_names:
  - pgp_source_encrypted_param_t
  - use_cfb
  - is_v2_seipd
  - pgp_source_signed_param_t
  - ~pgp_source_signed_param_t()
  - is_valid_seipd_version
  - is_valid_seipd_version
  - is_pgp_source
  - partial_pkt_src_read
  - partial_pkt_src_close
  - init_partial_pkt_src
  - literal_src_read
  - literal_src_close
  - compressed_src_read
  - compressed_src_close
  - encrypted_start_aead_chunk
  - encrypted_src_read_aead_part
  - encrypted_src_read_aead
  - encrypted_src_read_cfb
  - encrypted_src_finish
  - encrypted_src_close
  - add_hash_for_sig
  - add_hash_for_sig_v6
  - get_hash_for_sig
  - signed_validate_signature
  - stripped_line_len
  - signed_src_set_literal_hdr
  - signed_src_update
  - signed_src_read
  - signed_src_close
  - signed_read_single_signature
  - signed_read_cleartext_signatures
  - signed_read_signatures
  - signed_src_finish
  - tokenize
  - cleartext_parse_headers
  - cleartext_process_line
  - cleartext_src_read
  - encrypted_decrypt_cfb_header
  - encrypted_start_aead
  - check_decrypted_symkey
  - encrypted_try_key
  - encrypted_try_password
  - init_packet_params
  - init_literal_src
  - get_literal_src_hdr
  - init_compressed_src
  - get_compressed_src_alg
  - parse_aead_chunk_size
  - get_seipdv2_src_hdr
  - get_aead_src_hdr
  - encrypted_read_packet_data
  - init_encrypted_src
  - init_cleartext_signed_src
  - init_signed_src
  - pgp_processing_ctx_t::~pgp_processing_ctx_t()
  - init_packet_sequence
  - init_cleartext_sequence
  - init_armored_sequence
  - process_pgp_source
  source_file: /src/rnp/src/librepgp/stream-parse.cpp
  types:
    enum:
    - enumerators:
      - name: PGP_MESSAGE_UNKNOWN
        value: '0'
      - name: PGP_MESSAGE_NORMAL
      - name: PGP_MESSAGE_CLEARTEXT
      - name: PGP_MESSAGE_DETACHED
      item_type: enum
      name: pgp_message_t
      pos:
        line_end: 67
        line_start: 62
        source_file: /src/rnp/src/librepgp/stream-parse.cpp
    preproc_defs:
    - item_type: preproc_def
      name: MAX_SIGNATURES
      pos:
        line_end: 1158
        line_start: 1157
        source_file: /src/rnp/src/librepgp/stream-parse.cpp
      type_or_value: '16384'
    - item_type: preproc_def
      name: MAX_RECIPIENTS
      pos:
        line_end: 2190
        line_start: 2189
        source_file: /src/rnp/src/librepgp/stream-parse.cpp
      type_or_value: '16384'
    - item_type: preproc_def
      name: MAX_HIDDEN_TRIES
      pos:
        line_end: 2367
        line_start: 2366
        source_file: /src/rnp/src/librepgp/stream-parse.cpp
      type_or_value: '64'
    - item_type: preproc_def
      name: RNP_PASSWORD_MAX_ATTEMPTS
      pos:
        line_end: 2371
        line_start: 2370
        source_file: /src/rnp/src/librepgp/stream-parse.cpp
      type_or_value: '3'
    - item_type: preproc_def
      name: MAX_SIG_ERRORS
      pos:
        line_end: 2577
        line_start: 2576
        source_file: /src/rnp/src/librepgp/stream-parse.cpp
      type_or_value: '65536'
    structs:
    - fields:
      - name: handler
        type: pgp_parse_handler_t
      - name: '*          signed_src'
        type: pgp_source_t
      - name: '*          literal_src'
        type: pgp_source_t
      - name: msg_type
        type: pgp_message_t
      - name: output
        type: pgp_dest_t
      - name: sources
        type: std::list<pgp_source_t>
      item_type: struct
      name: pgp_processing_ctx_t
      pos:
        line_end: 78
        line_start: 69
        source_file: /src/rnp/src/librepgp/stream-parse.cpp
    - fields:
      - name: '*   readsrc'
        type: pgp_source_t
      - name: '*   origsrc'
        type: pgp_source_t
      - name: hdr
        type: pgp_packet_hdr_t
      item_type: struct
      name: pgp_source_packet_param_t
      pos:
        line_end: 85
        line_start: 81
        source_file: /src/rnp/src/librepgp/stream-parse.cpp
    - fields:
      - name: pkt
        type: pgp_source_packet_param_t
      - name: symencs
        type: std::vector<pgp_sk_sesskey_t>
      - name: pubencs
        type: std::vector<pgp_pk_sesskey_t>
      - name: auth_type
        type: rnp::AuthType
      - name: auth_validated
        type: bool
      - name: decrypt
        type: pgp_crypt_t
      - name: mdc
        type: std::unique_ptr<rnp::Hash>
      - name: chunklen
        type: size_t
      - name: chunkin
        type: size_t
      - name: chunkidx
        type: size_t
      - name: rawbytes
        type: size_t
      - name: cache[PGP_AEAD_CACHE_LEN]
        type: uint8_t
      - name: cachelen
        type: size_t
      - name: cachepos
        type: size_t
      - name: chunk_buf
        type: std::vector<uint8_t>
      - name: chunk_buflen
        type: size_t
      - name: chunk_bufpos
        type: size_t
      - name: chunk_verified
        type: bool
      - name: aead_hdr
        type: pgp_aead_hdr_t
      - name: aead_ad[PGP_AEAD_MAX_AD_LEN]
        type: uint8_t
      - name: aead_adlen
        type: size_t
      - name: salg
        type: pgp_symm_alg_t
      - name: '*handler'
        type: pgp_parse_handler_t
      item_type: struct
      name: pgp_source_encrypted_param_t
      pos:
        line_end: 140
        line_start: 87
        source_file: /src/rnp/src/librepgp/stream-parse.cpp
    - fields:
      - name: '*handler'
        type: pgp_parse_handler_t
      - name: '*       readsrc'
        type: pgp_source_t
      - name: detached
        type: bool
      - name: cleartext
        type: bool
      - name: clr_eod
        type: bool
      - name: clr_fline
        type: bool
      - name: clr_mline
        type: bool
      - name: out[CT_BUF_LEN]
        type: uint8_t
      - name: outlen
        type: size_t
      - name: outpos
        type: size_t
      - name: max_line_warn
        type: bool
      - name: text_line_len
        type: size_t
      - name: stripped_crs
        type: long
      - name: lhdr
        type: pgp_literal_hdr_t
      - name: has_lhdr
        type: bool
      - name: onepasses
        type: std::vector<pgp_one_pass_sig_t>
      - name: sigs
        type: std::list<pgp::pkt::Signature>
      - name: siginfos
        type: std::vector<rnp::SignatureInfo>
      - name: hashes
        type: rnp::HashList
      - name: txt_hashes
        type: rnp::HashList
      item_type: struct
      name: pgp_source_signed_param_t
      pos:
        line_end: 168
        line_start: 142
        source_file: /src/rnp/src/librepgp/stream-parse.cpp
    - fields:
      - name: pkt
        type: pgp_source_packet_param_t
      - name: alg
        type: pgp_compression_type_t
      - name: in[PGP_INPUT_CACHE_SIZE / 2]
        type: uint8_t
      - name: inpos
        type: size_t
      - name: inlen
        type: size_t
      - name: zend
        type: bool
      item_type: struct
      name: pgp_source_compressed_param_t
      pos:
        line_end: 183
        line_start: 170
        source_file: /src/rnp/src/librepgp/stream-parse.cpp
    - fields:
      - name: pkt
        type: pgp_source_packet_param_t
      - name: hdr
        type: pgp_literal_hdr_t
      item_type: struct
      name: pgp_source_literal_param_t
      pos:
        line_end: 188
        line_start: 185
        source_file: /src/rnp/src/librepgp/stream-parse.cpp
    - fields:
      - name: '*readsrc'
        type: pgp_source_t
      - name: type
        type: int
      - name: psize
        type: size_t
      - name: pleft
        type: size_t
      - name: last
        type: bool
      item_type: struct
      name: pgp_source_partial_param_t
      pos:
        line_end: 196
        line_start: 190
        source_file: /src/rnp/src/librepgp/stream-parse.cpp
    typedefs:
    - item_type: typedef
      name: string_size_t
      pos:
        line_end: 1329
        line_start: 1329
        source_file: /src/rnp/src/librepgp/stream-parse.cpp
      type: typename T::value_type::size_type
    union: []
- function_names: []
  source_file: /src/rnp/src/librepgp/stream-write.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp_key_pkt_t
  - pgp_transferable_subkey_t
  - '&operator=(const pgp_transferable_subkey_t &)'
  - pgp_transferable_key_t
  - '&operator=(const pgp_transferable_key_t &)'
  source_file: /src/rnp/src/librepgp/stream-key.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: tag
        type: pgp_pkt_type_t
      - name: version
        type: pgp_version_t
      - name: creation_time
        type: uint32_t
      - name: alg
        type: pgp_pubkey_alg_t
      - name: v3_days
        type: uint16_t
      - name: v5_pub_len
        type: uint32_t
      - name: pub_data
        type: std::vector<uint8_t>
      - name: material
        type: std::unique_ptr<pgp::KeyMaterial>
      - name: sec_protection
        type: pgp_key_protection_t
      - name: sec_data
        type: std::vector<uint8_t>
      - name: v5_s2k_len
        type: uint8_t
      - name: v5_sec_len
        type: uint32_t
      - name: '&operator=(pgp_key_pkt_t &&src)'
        type: pgp_key_pkt_t
      - name: '&operator=(const pgp_key_pkt_t &src)'
        type: pgp_key_pkt_t
      - name: write(pgp_dest_t &dst)
        type: void
      - name: parse(pgp_source_t &src)
        type: rnp_result_t
      - name: fill_hashed_data()
        type: void
      - name: make_s2k_params(pgp_packet_body_t &hbody)
        type: void
      item_type: struct
      name: pgp_key_pkt_t
      pos:
        line_end: 76
        line_start: 39
        source_file: /src/rnp/src/librepgp/stream-key.h
    - fields:
      - name: uid
        type: pgp_userid_pkt_t
      - name: signatures
        type: pgp::pkt::Signatures
      item_type: struct
      name: pgp_transferable_userid_t
      pos:
        line_end: 82
        line_start: 79
        source_file: /src/rnp/src/librepgp/stream-key.h
    - fields:
      - name: subkey
        type: pgp_key_pkt_t
      - name: signatures
        type: pgp::pkt::Signatures
      item_type: struct
      name: pgp_transferable_subkey_t
      pos:
        line_end: 92
        line_start: 85
        source_file: /src/rnp/src/librepgp/stream-key.h
    - fields:
      - name: key
        type: pgp_key_pkt_t
      - name: userids
        type: std::vector<pgp_transferable_userid_t>
      - name: subkeys
        type: std::vector<pgp_transferable_subkey_t>
      - name: signatures
        type: pgp::pkt::Signatures
      item_type: struct
      name: pgp_transferable_key_t
      pos:
        line_end: 104
        line_start: 95
        source_file: /src/rnp/src/librepgp/stream-key.h
    - fields:
      - name: keys
        type: std::vector<pgp_transferable_key_t>
      item_type: struct
      name: pgp_key_sequence_t
      pos:
        line_end: 109
        line_start: 107
        source_file: /src/rnp/src/librepgp/stream-key.h
    typedefs: []
    union: []
- function_names:
  - ExceptionTests::do_scan_with_exception
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - do_parse_list_from_string
  - do_parse_list_from_string_with_limit
  - TEST_F
  - do_print_list_from_string
  - TEST_F
  - TEST_F
  - ExceptionTests::do_scan_with_exception
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - do_parse_list_from_string
  - do_parse_list_from_string_with_limit
  - TEST_F
  - do_print_list_from_string
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/libsexpp/tests/src/exception-tests.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - compare_binary_files
  - compare_binary_files
  - safe_get_line
  - compare_text_files
  - compare_text_files
  source_file: /src/rnp/src/libsexpp/tests/src/compare-files.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/libsexpp/tests/src/g10-compat-tests.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - G23CompatTests::scan_and_check_correct
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - G23CompatTests::scan_and_check_correct
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/libsexpp/tests/src/g23-compat-tests.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - BaselineTests::BaselineTests
  - TEST_F
  - TEST_F
  - TEST_F
  - BaselineTests::BaselineTests
  - TEST_F
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/libsexpp/tests/src/baseline-tests.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  - TEST
  source_file: /src/rnp/src/libsexpp/tests/src/traits-tests.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - PrimitivesTests::do_test_advanced
  - PrimitivesTests::do_test_canonical
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - PrimitivesTests::do_test_advanced
  - PrimitivesTests::do_test_canonical
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/libsexpp/tests/src/primitives-tests.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - G23ExceptionTests::do_scan_ex
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - G23ExceptionTests::do_scan_ex
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  - TEST_F
  source_file: /src/rnp/src/libsexpp/tests/src/g23-exception-tests.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/libsexpp/tests/include/sexp-tests.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - main
  source_file: /src/rnp/src/libsexpp/src/sexp-main.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sexp::sexp_input_stream_t::sexp_input_stream_t
  - sexp::sexp_input_stream_t::set_input
  - sexp::sexp_input_stream_t::set_byte_size
  - sexp::sexp_input_stream_t::read_char
  - sexp::sexp_input_stream_t::get_char
  - sexp::sexp_input_stream_t::skip_white_space
  - sexp::sexp_input_stream_t::skip_char
  - sexp::sexp_input_stream_t::scan_token
  - sexp::sexp_input_stream_t::scan_to_eof
  - sexp::sexp_input_stream_t::scan_decimal_string
  - sexp::sexp_input_stream_t::scan_verbatim_string
  - sexp::sexp_input_stream_t::scan_quoted_string
  - sexp::sexp_input_stream_t::scan_hexadecimal_string
  - sexp::sexp_input_stream_t::scan_base64_string
  - sexp::sexp_input_stream_t::scan_simple_string
  - sexp::sexp_input_stream_t::scan_string
  - sexp::sexp_input_stream_t::scan_list
  - sexp::sexp_input_stream_t::scan_object
  - sexp::sexp_input_stream_t::open_list
  - sexp::sexp_input_stream_t::close_list
  - sexp::sexp_input_stream_t::sexp_input_stream_t
  - sexp::sexp_input_stream_t::set_input
  - sexp::sexp_input_stream_t::set_byte_size
  - sexp::sexp_input_stream_t::read_char
  - sexp::sexp_input_stream_t::get_char
  - sexp::sexp_input_stream_t::skip_white_space
  - sexp::sexp_input_stream_t::skip_char
  - sexp::sexp_input_stream_t::scan_token
  - sexp::sexp_input_stream_t::scan_to_eof
  - sexp::sexp_input_stream_t::scan_decimal_string
  - sexp::sexp_input_stream_t::scan_verbatim_string
  - sexp::sexp_input_stream_t::scan_quoted_string
  - sexp::sexp_input_stream_t::scan_hexadecimal_string
  - sexp::sexp_input_stream_t::scan_base64_string
  - sexp::sexp_input_stream_t::scan_simple_string
  - sexp::sexp_input_stream_t::scan_string
  - sexp::sexp_input_stream_t::scan_list
  - sexp::sexp_input_stream_t::scan_object
  - sexp::sexp_input_stream_t::open_list
  - sexp::sexp_input_stream_t::close_list
  source_file: /src/rnp/src/libsexpp/src/sexp-input.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sexp::sexp_exception_t::format
  - sexp::sexp_error
  - sexp::sexp_exception_t::format
  - sexp::sexp_error
  source_file: /src/rnp/src/libsexpp/src/sexp-error.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sexp::sexp_string_t::parse
  - sexp::sexp_string_t::print_canonical
  - sexp::sexp_string_t::print_advanced
  - sexp::sexp_string_t::advanced_length
  - sexp::sexp_list_t::parse
  - sexp::sexp_list_t::print_canonical
  - sexp::sexp_list_t::print_advanced
  - sexp::sexp_list_t::advanced_length
  - sexp::sexp_object_t::print_advanced
  - sexp::sexp_string_t::parse
  - sexp::sexp_string_t::print_canonical
  - sexp::sexp_string_t::print_advanced
  - sexp::sexp_string_t::advanced_length
  - sexp::sexp_list_t::parse
  - sexp::sexp_list_t::print_canonical
  - sexp::sexp_list_t::print_advanced
  - sexp::sexp_list_t::advanced_length
  - sexp::sexp_object_t::print_advanced
  source_file: /src/rnp/src/libsexpp/src/sexp-object.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ext_key_format::ext_key_error
  - ext_key_format::ext_key_input_stream_t::skip_line
  - ext_key_format::ext_key_input_stream_t::read_char
  - ext_key_format::ext_key_input_stream_t::scan_name
  - ext_key_format::ext_key_input_stream_t::scan_value
  - ext_key_format::ext_key_input_stream_t::scan
  - ext_key_format::extended_private_key_t::parse
  - ext_key_format::ext_key_error
  - ext_key_format::ext_key_input_stream_t::skip_line
  - ext_key_format::ext_key_input_stream_t::read_char
  - ext_key_format::ext_key_input_stream_t::scan_name
  - ext_key_format::ext_key_input_stream_t::scan_value
  - ext_key_format::ext_key_input_stream_t::scan
  - ext_key_format::extended_private_key_t::parse
  source_file: /src/rnp/src/libsexpp/src/ext-key-format.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sexp::sexp_output_stream_t::sexp_output_stream_t
  - sexp::sexp_output_stream_t::set_output
  - sexp::sexp_output_stream_t::put_char
  - sexp::sexp_output_stream_t::var_put_char
  - sexp::sexp_output_stream_t::change_output_byte_size
  - sexp::sexp_output_stream_t::flush
  - sexp::sexp_output_stream_t::new_line
  - sexp::sexp_output_stream_t::print_decimal
  - sexp::sexp_output_stream_t::print_base64
  - sexp::sexp_output_stream_t::sexp_output_stream_t
  - sexp::sexp_output_stream_t::set_output
  - sexp::sexp_output_stream_t::put_char
  - sexp::sexp_output_stream_t::var_put_char
  - sexp::sexp_output_stream_t::change_output_byte_size
  - sexp::sexp_output_stream_t::flush
  - sexp::sexp_output_stream_t::new_line
  - sexp::sexp_output_stream_t::print_decimal
  - sexp::sexp_output_stream_t::print_base64
  source_file: /src/rnp/src/libsexpp/src/sexp-output.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sexp::sexp_depth_manager::sexp_depth_manager
  - sexp::sexp_depth_manager::reset_depth
  - sexp::sexp_depth_manager::increase_depth
  - sexp::sexp_depth_manager::decrease_depth
  - sexp::sexp_depth_manager::sexp_depth_manager
  - sexp::sexp_depth_manager::reset_depth
  - sexp::sexp_depth_manager::increase_depth
  - sexp::sexp_depth_manager::decrease_depth
  source_file: /src/rnp/src/libsexpp/src/sexp-depth-manager.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sexp::sexp_simple_string_t::print_canonical_verbatim
  - sexp::sexp_simple_string_t::advanced_length
  - sexp::sexp_simple_string_t::print_token
  - sexp::sexp_simple_string_t::print_base64
  - sexp::sexp_simple_string_t::print_hexadecimal
  - sexp::sexp_simple_string_t::print_quoted
  - sexp::sexp_simple_string_t::print_advanced
  - sexp::sexp_simple_string_t::can_print_as_quoted_string
  - sexp::sexp_simple_string_t::can_print_as_token
  - sexp::sexp_simple_string_t::print_canonical_verbatim
  - sexp::sexp_simple_string_t::advanced_length
  - sexp::sexp_simple_string_t::print_token
  - sexp::sexp_simple_string_t::print_base64
  - sexp::sexp_simple_string_t::print_hexadecimal
  - sexp::sexp_simple_string_t::print_quoted
  - sexp::sexp_simple_string_t::print_advanced
  - sexp::sexp_simple_string_t::can_print_as_quoted_string
  - sexp::sexp_simple_string_t::can_print_as_token
  source_file: /src/rnp/src/libsexpp/src/sexp-simple-string.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/libsexpp/src/sexp-char-defs.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - std::assign
  - std::eq
  - std::lt
  - std::compare
  - std::length
  - std::find
  - std::move
  - std::copy
  - std::assign
  - std::to_char_type
  - std::to_int_type
  - std::eq_int_type
  - std::eof
  - std::not_eof
  - std::assign
  - std::eq
  - std::lt
  - std::compare
  - std::length
  - std::find
  - std::move
  - std::copy
  - std::assign
  - std::to_char_type
  - std::to_int_type
  - std::eq_int_type
  - std::eof
  - std::not_eof
  - sexp::sexp_char_defs_t
  - sexp::is_white_space
  - sexp::is_dec_digit
  - sexp::is_hex_digit
  - sexp::is_base64_digit
  - sexp::is_token_char
  - sexp::is_alpha
  - sexp::decvalue
  - sexp::hexvalue
  - sexp::base64value
  - sexp::sexp_simple_string_t
  - sexp::sexp_simple_string_t
  - sexp::append
  - sexp::advanced_length_token
  - sexp::advanced_length_base64
  - sexp::advanced_length_quoted
  - sexp::advanced_length_hexadecimal
  - operator==(const char *right) const noexcept
  - operator!=(const char *right) const noexcept
  - sexp::as_unsigned
  - sexp::sexp_char_defs_t
  - sexp::is_white_space
  - sexp::is_dec_digit
  - sexp::is_hex_digit
  - sexp::is_base64_digit
  - sexp::is_token_char
  - sexp::is_alpha
  - sexp::decvalue
  - sexp::hexvalue
  - sexp::base64value
  - sexp::sexp_simple_string_t
  - sexp::sexp_simple_string_t
  - sexp::append
  - sexp::advanced_length_token
  - sexp::advanced_length_base64
  - sexp::advanced_length_quoted
  - sexp::advanced_length_hexadecimal
  - operator==(const char *right) const noexcept
  - operator!=(const char *right) const noexcept
  - sexp::as_unsigned
  - operator==(const sexp_simple_string_t *left, const std::string &right) noexcept
  - operator!=(const sexp_simple_string_t *left, const std::string &right) noexcept
  - sexp_object_t
  - sexp_list_view
  - sexp_string_view
  - is_sexp_list
  - is_sexp_string
  - sexp_list_at
  - sexp_string_at
  - sexp_simple_string_at
  - operator==(const char *right) const noexcept
  - operator!=(const char *right) const noexcept
  - as_unsigned
  - sexp_string_t
  - sexp_string_t
  - sexp_string_t
  - sexp_string_t
  - sexp_string_t
  - has_presentation_hint
  - get_string
  - set_string
  - get_presentation_hint
  - set_presentation_hint
  - sexp_string_view
  - is_sexp_string
  - operator==(const char *right) const noexcept
  - operator!=(const char *right) const noexcept
  - as_unsigned
  - operator==(const sexp_string_t *left, const std::string &right) noexcept
  - operator!=(const sexp_string_t *left, const std::string &right) noexcept
  source_file: /src/rnp/src/libsexpp/include/sexpp/sexp.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: char_traits<sexp::octet_t>
      pos:
        line_end: 129
        line_start: 57
        source_file: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    - fields: []
      item_type: struct
      name: char_traits<sexp::octet_t>
      pos:
        line_end: 129
        line_start: 57
        source_file: /src/rnp/src/libsexpp/include/sexpp/sexp.h
    typedefs:
    - item_type: typedef
      name: char_type
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/rnp/src/libsexpp/include/sexpp/sexp.h
      type: octet_t
    - item_type: typedef
      name: int_type
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/rnp/src/libsexpp/include/sexpp/sexp.h
      type: int
    - item_type: typedef
      name: pos_type
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/rnp/src/libsexpp/include/sexpp/sexp.h
      type: streampos
    - item_type: typedef
      name: off_type
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/rnp/src/libsexpp/include/sexpp/sexp.h
      type: streamoff
    - item_type: typedef
      name: state_type
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/rnp/src/libsexpp/include/sexpp/sexp.h
      type: mbstate_t
    - item_type: typedef
      name: char_type
      pos:
        line_end: 58
        line_start: 58
        source_file: /src/rnp/src/libsexpp/include/sexpp/sexp.h
      type: octet_t
    - item_type: typedef
      name: int_type
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/rnp/src/libsexpp/include/sexpp/sexp.h
      type: int
    - item_type: typedef
      name: pos_type
      pos:
        line_end: 60
        line_start: 60
        source_file: /src/rnp/src/libsexpp/include/sexpp/sexp.h
      type: streampos
    - item_type: typedef
      name: off_type
      pos:
        line_end: 61
        line_start: 61
        source_file: /src/rnp/src/libsexpp/include/sexpp/sexp.h
      type: streamoff
    - item_type: typedef
      name: state_type
      pos:
        line_end: 62
        line_start: 62
        source_file: /src/rnp/src/libsexpp/include/sexpp/sexp.h
      type: mbstate_t
    union: []
- function_names:
  - ext_key_format::extended_private_key_t
  - operator()(const std::string &s1, const std::string &s2) const
  - ext_key_format::iequals
  - ext_key_format::sexp::sexp_input_stream_t
  - ext_key_format::is_newline_char
  - ext_key_format::is_namechar
  - ~ext_key_input_stream_t()
  - ext_key_format::extended_private_key_t
  - operator()(const std::string &s1, const std::string &s2) const
  - ext_key_format::iequals
  - ext_key_format::sexp::sexp_input_stream_t
  - ext_key_format::is_newline_char
  - ext_key_format::is_namechar
  - ~ext_key_input_stream_t()
  source_file: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: ci_less
      pos:
        line_end: 49
        line_start: 40
        source_file: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h
    - fields: []
      item_type: struct
      name: ci_less
      pos:
        line_end: 49
        line_start: 40
        source_file: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h
    typedefs:
    - item_type: typedef
      name: fields_map_t
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h
      type: multimap<std::string, std::string, ci_less>
    - item_type: typedef
      name: fields_map_t
      pos:
        line_end: 63
        line_start: 63
        source_file: /src/rnp/src/libsexpp/include/sexpp/ext-key-format.h
      type: multimap<std::string, std::string, ci_less>
    union: []
- function_names:
  - sexp::std::exception
  - sexp::shall_throw
  - sexp::what
  - sexp::get_level
  - sexp::get_position
  - sexp::get_verbosity
  - sexp::is_interactive
  - sexp::set_verbosity
  - sexp::set_interactive
  - sexp::std::exception
  - sexp::shall_throw
  - sexp::what
  - sexp::get_level
  - sexp::get_position
  - sexp::get_verbosity
  - sexp::is_interactive
  - sexp::set_verbosity
  - sexp::set_interactive
  source_file: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h
  types:
    enum:
    - enumerators:
      - name: error
        value: '0'
      - name: warning
        value: '1'
      item_type: enum
      name: severity
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h
    - enumerators:
      - name: error
        value: '0'
      - name: warning
        value: '1'
      item_type: enum
      name: severity
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/rnp/src/libsexpp/include/sexpp/sexp-error.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/libsexpp/include/sexpp/sexp-public.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SEXP_PUBLIC_SYMBOL
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/rnp/src/libsexpp/include/sexpp/sexp-public.h
      type_or_value: __attribute__((visibility("default")))
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~kbx_blob_t()
  - kbx_blob_t::parse
  - kbx_blob_t::type
  - "&\n    image()"
  - kbx_blob_t::length
  - kbx_header_blob_t::kbx_header_blob_t
  - kbx_header_blob_t::file_created_at
  - kbx_pgp_blob_t::kbx_pgp_blob_t
  - kbx_pgp_blob_t::keyblock_offset
  - kbx_pgp_blob_t::keyblock_length
  - kbx_pgp_blob_t::nkeys
  - kbx_pgp_blob_t::nuids
  - kbx_pgp_blob_t::nsigs
  source_file: /src/rnp/src/librekey/kbx_blob.hpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: fp[PGP_MAX_FINGERPRINT_SIZE]
        type: uint8_t
      - name: keyid_offset
        type: uint32_t
      - name: flags
        type: uint16_t
      item_type: struct
      name: kbx_pgp_key_t
      pos:
        line_end: 99
        line_start: 95
        source_file: /src/rnp/src/librekey/kbx_blob.hpp
    - fields:
      - name: offset
        type: uint32_t
      - name: length
        type: uint32_t
      - name: flags
        type: uint16_t
      - name: validity
        type: uint8_t
      item_type: struct
      name: kbx_pgp_uid_t
      pos:
        line_end: 106
        line_start: 101
        source_file: /src/rnp/src/librekey/kbx_blob.hpp
    - fields:
      - name: expired
        type: uint32_t
      item_type: struct
      name: kbx_pgp_sig_t
      pos:
        line_end: 110
        line_start: 108
        source_file: /src/rnp/src/librekey/kbx_blob.hpp
    typedefs: []
    union: []
- function_names:
  - kbx_blob_t::ru8
  - kbx_blob_t::ru16
  - kbx_blob_t::ru32
  - kbx_blob_t::kbx_blob_t
  - kbx_header_blob_t::parse
  - kbx_pgp_blob_t::parse
  - rnp::kbx_parse_blob
  - rnp::kbx_parse_blob
  - rnp::KeyStore::load_kbx
  - rnp::pbuf
  - rnp::pu8
  - rnp::pu16
  - rnp::pu32
  - rnp::kbx_write_header
  - rnp::kbx_write_pgp
  - rnp::kbx_write_x509
  - rnp::pbuf
  - rnp::pu8
  - rnp::pu16
  - rnp::pu32
  - rnp::kbx_write_header
  - rnp::kbx_write_pgp
  - rnp::kbx_write_x509
  - rnp::KeyStore::write_kbx
  - rnp::kbx_parse_blob
  - rnp::kbx_parse_blob
  - rnp::KeyStore::load_kbx
  - rnp::pbuf
  - rnp::pu8
  - rnp::pu16
  - rnp::pu32
  - rnp::kbx_write_header
  - rnp::kbx_write_pgp
  - rnp::kbx_write_x509
  - rnp::pbuf
  - rnp::pu8
  - rnp::pu16
  - rnp::pu32
  - rnp::kbx_write_header
  - rnp::kbx_write_pgp
  - rnp::kbx_write_x509
  - rnp::KeyStore::write_kbx
  source_file: /src/rnp/src/librekey/key_store_kbx.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: BLOB_SIZE_LIMIT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/rnp/src/librekey/key_store_kbx.cpp
      type_or_value: (5 * 1024 * 1024)
    - item_type: preproc_def
      name: BLOB_OBJ_LIMIT
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/rnp/src/librekey/key_store_kbx.cpp
      type_or_value: '0x8000'
    - item_type: preproc_def
      name: BLOB_HEADER_SIZE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/rnp/src/librekey/key_store_kbx.cpp
      type_or_value: '0x5'
    - item_type: preproc_def
      name: BLOB_FIRST_SIZE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/rnp/src/librekey/key_store_kbx.cpp
      type_or_value: '0x20'
    - item_type: preproc_def
      name: BLOB_KEY_SIZE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/rnp/src/librekey/key_store_kbx.cpp
      type_or_value: '0x1C'
    - item_type: preproc_def
      name: BLOB_UID_SIZE
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/rnp/src/librekey/key_store_kbx.cpp
      type_or_value: '0x0C'
    - item_type: preproc_def
      name: BLOB_SIG_SIZE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/rnp/src/librekey/key_store_kbx.cpp
      type_or_value: '0x04'
    - item_type: preproc_def
      name: BLOB_VALIDITY_SIZE
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/rnp/src/librekey/key_store_kbx.cpp
      type_or_value: '0x10'
    structs: []
    typedefs: []
    union: []
- function_names:
  - find_format
  - parse_format
  - STR_HELPER
  - STR
  - gnupg_sexp_t::add
  - gnupg_sexp_t::add_sub
  - gnupg_sexp_t::parse
  - gnupg_extended_private_key_t::parse
  - lookup_var
  - lookup_var_data
  - read_mpi
  - read_curve
  - gnupg_sexp_t::add_mpi
  - gnupg_sexp_t::add_curve
  - parse_pubkey
  - parse_seckey
  - decrypt_protected_section
  - parse_protected_seckey
  - g23_parse_seckey
  - g10_decrypt_seckey
  - copy_secret_fields
  - rnp::KeyStore::load_g10
  - rnp::KeyStore::load_g10
  - gnupg_sexp_t::write
  - gnupg_sexp_t::add_pubkey
  - gnupg_sexp_t::add_seckey
  - gnupg_sexp_t::write_padded
  - gnupg_sexp_t::add_protected_seckey
  - g10_write_seckey
  - g10_calculated_hash
  - rnp_key_store_gnupg_sexp_to_dst
  source_file: /src/rnp/src/librekey/key_store_g10.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: G10_CBC_IV_SIZE
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/rnp/src/librekey/key_store_g10.cpp
      type_or_value: '16'
    - item_type: preproc_def
      name: G10_OCB_NONCE_SIZE
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/rnp/src/librekey/key_store_g10.cpp
      type_or_value: '12'
    - item_type: preproc_def
      name: G10_SHA1_HASH_SIZE
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/rnp/src/librekey/key_store_g10.cpp
      type_or_value: '20'
    - item_type: preproc_def
      name: G10_PROTECTED_AT_SIZE
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/rnp/src/librekey/key_store_g10.cpp
      type_or_value: '15'
    structs:
    - fields:
      - name: cipher
        type: pgp_symm_alg_t
      - name: cipher_mode
        type: pgp_cipher_mode_t
      - name: hash_alg
        type: pgp_hash_alg_t
      - name: cipher_block_size
        type: size_t
      - name: '*      g10_type'
        type: char
      - name: iv_size
        type: size_t
      - name: tag_length
        type: size_t
      - name: with_associated_data
        type: bool
      - name: disable_padding
        type: bool
      item_type: struct
      name: format_info
      pos:
        line_end: 65
        line_start: 55
        source_file: /src/rnp/src/librekey/key_store_g10.cpp
    typedefs: []
    union: []
- function_names:
  - rnp::KeyStore::add_ts_subkey
  - rnp::KeyStore::add_ts_key
  - rnp::KeyStore::load_pgp_key
  - rnp::KeyStore::load_pgp
  - rnp::KeyStore::add_ts_subkey
  - rnp::KeyStore::add_ts_key
  - rnp::KeyStore::load_pgp_key
  - rnp::KeyStore::load_pgp
  - do_write
  - do_write
  - rnp::KeyStore::write_pgp
  - rnp::KeyStore::write_pgp
  source_file: /src/rnp/src/librekey/key_store_pgp.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::KeyStore::load
  - rnp::KeyStore::load
  - rnp::KeyStore::write
  - rnp::KeyStore::write
  - rnp::KeyStore::clear
  - rnp::KeyStore::key_count
  - rnp::KeyStore::refresh_subkey_grips
  - rnp::KeyStore::add_subkey
  - rnp::KeyStore::add_key
  - rnp::KeyStore::add_key_sig
  - rnp::KeyStore::import_key
  - rnp::KeyStore::import_subkey_signature
  - rnp::KeyStore::import_signature
  - rnp::KeyStore::import_signature
  - rnp::KeyStore::remove_key
  - rnp::KeyStore::get_key
  - rnp::KeyStore::get_key
  - rnp::KeyStore::get_subkey
  - rnp::KeyStore::primary_key
  - rnp::KeyStore::search
  - rnp::KeyStore::get_signer
  - rnp::KeyStore::KeyStore
  - KeyStore::~KeyStore()
  - rnp::KeyStore::load
  - rnp::KeyStore::load
  - rnp::KeyStore::write
  - rnp::KeyStore::write
  - rnp::KeyStore::clear
  - rnp::KeyStore::key_count
  - rnp::KeyStore::refresh_subkey_grips
  - rnp::KeyStore::add_subkey
  - rnp::KeyStore::add_key
  - rnp::KeyStore::add_key_sig
  - rnp::KeyStore::import_key
  - rnp::KeyStore::import_subkey_signature
  - rnp::KeyStore::import_signature
  - rnp::KeyStore::import_signature
  - rnp::KeyStore::remove_key
  - rnp::KeyStore::get_key
  - rnp::KeyStore::get_key
  - rnp::KeyStore::get_subkey
  - rnp::KeyStore::primary_key
  - rnp::KeyStore::search
  - rnp::KeyStore::get_signer
  - rnp::KeyStore::KeyStore
  - KeyStore::~KeyStore()
  source_file: /src/rnp/src/librekey/rnp_key_store.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/librekey/key_store_g10.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - gnupg_sexp_t::add
  - gnupg_sexp_t::add
  source_file: /src/rnp/src/librekey/g23_sexp.hpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SXP_MAX_DEPTH
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/rnp/src/librekey/g23_sexp.hpp
      type_or_value: '30'
    structs: []
    typedefs:
    - item_type: typedef
      name: p_gnupg_sexp
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/rnp/src/librekey/g23_sexp.hpp
      type: shared_ptr<gnupg_sexp_t>
    union: []
- function_names:
  - disable_core_dumps
  - get_utf8_args
  - rnp_win_clear_args
  - rnp_win_substitute_cmdline_args
  - set_pass_fd
  - ptimestr
  - cli_rnp_get_confirmation
  - rnp_ask_filename
  - rnp_get_output_filename
  - stdin_getpass
  - ffi_pass_callback_stdin
  - ffi_pass_callback_file
  - ffi_pass_callback_string
  - ffi_key_callback
  - rnpffiInvalidParameterHandler
  - cli_rnp_t::~cli_rnp_t()
  - cli_rnp_t::ret_code
  - cli_rnp_t::substitute_args
  - cli_rnp_t::init
  - cli_rnp_t::end
  - cli_rnp_t::load_keyring
  - cli_rnp_t::load_keyrings
  - cli_rnp_t::set_defkey
  - cli_rnp_t::is_cv25519_subkey
  - cli_rnp_t::get_protection
  - cli_rnp_t::check_cv25519_bits
  - cli_rnp_t::fix_cv25519_subkey
  - cli_rnp_t::set_key_expire
  - cli_rnp_t::add_new_subkey
  - cli_rnp_t::edit_key
  - json_obj_get_str
  - cli_key_usage_str
  - cli_rnp_escape_string
  - cli_rnp_alg_to_ffi
  - cli_rnp_set_hash
  - cli_rnp_set_cipher
  - cli_rnp_unescape_for_regcomp
  - cli_rnp_normalize_key_alg
  - cli_rnp_print_sig_info
  - cli_rnp_print_key_info
  - cli_rnp_save_keyrings
  - key_matches_string
  - key_matches_flags
  - clear_key_handles
  - add_key_to_array
  - cli_rnp_t::keys_matching
  - cli_rnp_t::keys_matching
  - cli_rnp_t::key_matching
  - rnp_cfg_set_ks_info
  - rnp_cfg_set_defkey
  - cli_cfg_set_keystore_info
  - is_stdinout_spec
  - cli_rnp_input_from_specifier
  - cli_rnp_output_to_specifier
  - cli_rnp_export_keys
  - cli_rnp_export_autocrypt_key
  - cli_rnp_export_revocation
  - cli_rnp_revoke_key
  - cli_rnp_remove_key
  - cli_rnp_add_key
  - strip_extension
  - has_extension
  - output_extension
  - has_pgp_extension
  - output_strip_extension
  - extract_filename
  - cli_rnp_t::init_io
  - cli_rnp_dump_file
  - cli_rnp_armor_file
  - cli_rnp_dearmor_file
  - cli_rnp_sign
  - cli_rnp_encrypt_and_sign
  - cli_rnp_setup
  - cli_rnp_check_weak_hash
  - cli_rnp_check_old_ciphers
  - cli_rnp_protect_file
  - cli_rnp_print_sig_key_info
  - cli_rnp_print_signatures
  - cli_rnp_inform_of_hidden_recipient
  - cli_rnp_process_file
  - cli_rnp_print_praise
  - cli_rnp_print_feature
  source_file: /src/rnp/src/rnp/fficli.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - "&\n    defkey()"
  - "&\n    pubpath()"
  - "&\n    secpath()"
  - "&\n    pubformat()"
  - "&\n    secformat()"
  - "&\n    cfg()"
  - ERR_MSG
  source_file: /src/rnp/src/rnp/fficli.h
  types:
    enum:
    - enumerators:
      - name: EncryptOrSign
      - name: Dump
      - name: Verify
      - name: Dearmor
      - name: Enarmor
      item_type: enum
      name: Operation
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/rnp/src/rnp/fficli.h
    - enumerators:
      - name: CLI_SEARCH_SECRET
        value: 1 << 0
      - name: CLI_SEARCH_FIRST_ONLY
        value: 1 << 2
      - name: CLI_SEARCH_SUBKEYS_AFTER
        value: (1 << 3) | CLI_SEARCH_SUBKEYS
      - name: CLI_SEARCH_SUBKEYS
        value: 1 << 1
      - name: CLI_SEARCH_DEFAULT
        value: 1 << 4
      item_type: enum
      name: cli_search_flags_t
      pos:
        line_end: 179
        line_start: 172
        source_file: /src/rnp/src/rnp/fficli.h
    preproc_defs:
    - item_type: preproc_def
      name: RNP_FP_V4_SIZE
      pos:
        line_end: 282
        line_start: 281
        source_file: /src/rnp/src/rnp/fficli.h
      type_or_value: '20'
    - item_type: preproc_def
      name: RNP_PGP_VER_6
      pos:
        line_end: 284
        line_start: 283
        source_file: /src/rnp/src/rnp/fficli.h
      type_or_value: '6'
    - item_type: preproc_def
      name: RNP_FP_V6_SIZE
      pos:
        line_end: 285
        line_start: 284
        source_file: /src/rnp/src/rnp/fficli.h
      type_or_value: '32'
    - item_type: preproc_def
      name: RNP_KEYID_SIZE
      pos:
        line_end: 287
        line_start: 286
        source_file: /src/rnp/src/rnp/fficli.h
      type_or_value: '8'
    - item_type: preproc_def
      name: RNP_GRIP_SIZE
      pos:
        line_end: 288
        line_start: 287
        source_file: /src/rnp/src/rnp/fficli.h
      type_or_value: '20'
    - item_type: preproc_def
      name: EXT_ASC
      pos:
        line_end: 296
        line_start: 295
        source_file: /src/rnp/src/rnp/fficli.h
      type_or_value: (".asc")
    - item_type: preproc_def
      name: EXT_SIG
      pos:
        line_end: 297
        line_start: 296
        source_file: /src/rnp/src/rnp/fficli.h
      type_or_value: (".sig")
    - item_type: preproc_def
      name: EXT_PGP
      pos:
        line_end: 298
        line_start: 297
        source_file: /src/rnp/src/rnp/fficli.h
      type_or_value: (".pgp")
    - item_type: preproc_def
      name: EXT_GPG
      pos:
        line_end: 299
        line_start: 298
        source_file: /src/rnp/src/rnp/fficli.h
      type_or_value: (".gpg")
    - item_type: preproc_def
      name: SUBDIRECTORY_GNUPG
      pos:
        line_end: 301
        line_start: 300
        source_file: /src/rnp/src/rnp/fficli.h
      type_or_value: '".gnupg"'
    - item_type: preproc_def
      name: SUBDIRECTORY_RNP
      pos:
        line_end: 302
        line_start: 301
        source_file: /src/rnp/src/rnp/fficli.h
      type_or_value: '".rnp"'
    - item_type: preproc_def
      name: PUBRING_KBX
      pos:
        line_end: 303
        line_start: 302
        source_file: /src/rnp/src/rnp/fficli.h
      type_or_value: '"pubring.kbx"'
    - item_type: preproc_def
      name: SECRING_KBX
      pos:
        line_end: 304
        line_start: 303
        source_file: /src/rnp/src/rnp/fficli.h
      type_or_value: '"secring.kbx"'
    - item_type: preproc_def
      name: PUBRING_GPG
      pos:
        line_end: 305
        line_start: 304
        source_file: /src/rnp/src/rnp/fficli.h
      type_or_value: '"pubring.gpg"'
    - item_type: preproc_def
      name: SECRING_GPG
      pos:
        line_end: 306
        line_start: 305
        source_file: /src/rnp/src/rnp/fficli.h
      type_or_value: '"secring.gpg"'
    - item_type: preproc_def
      name: PUBRING_G10
      pos:
        line_end: 307
        line_start: 306
        source_file: /src/rnp/src/rnp/fficli.h
      type_or_value: '"public-keys-v1.d"'
    - item_type: preproc_def
      name: SECRING_G10
      pos:
        line_end: 308
        line_start: 307
        source_file: /src/rnp/src/rnp/fficli.h
      type_or_value: '"private-keys-v1.d"'
    structs: []
    typedefs: []
    union: []
- function_names:
  - '&operator=(const rnp_cfg &src)'
  - '&operator=(const rnp_cfg &&src)'
  source_file: /src/rnp/src/rnp/rnpcfg.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CFG_OVERWRITE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"overwrite" '
    - item_type: preproc_def
      name: CFG_ARMOR
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"armor"         '
    - item_type: preproc_def
      name: CFG_ARMOR_DATA_TYPE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"armor_type" '
    - item_type: preproc_def
      name: CFG_COMMAND
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"command"            '
    - item_type: preproc_def
      name: CFG_DETACHED
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"detached"          '
    - item_type: preproc_def
      name: CFG_CLEARTEXT
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"cleartext"        '
    - item_type: preproc_def
      name: CFG_SIGN_NEEDED
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"sign_needed"    '
    - item_type: preproc_def
      name: CFG_OUTFILE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"outfile"            '
    - item_type: preproc_def
      name: CFG_NO_OUTPUT
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"no_output"        '
    - item_type: preproc_def
      name: CFG_INFILE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"infile"              '
    - item_type: preproc_def
      name: CFG_SETFNAME
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"setfname"          '
    - item_type: preproc_def
      name: CFG_RESULTS
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"results"            '
    - item_type: preproc_def
      name: CFG_KEYSTOREFMT
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"keystorefmt"    '
    - item_type: preproc_def
      name: CFG_COREDUMPS
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"coredumps"        '
    - item_type: preproc_def
      name: CFG_NEEDSSECKEY
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"needsseckey"    '
    - item_type: preproc_def
      name: CFG_USERID
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"userid"              '
    - item_type: preproc_def
      name: CFG_RECIPIENTS
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"recipients"      '
    - item_type: preproc_def
      name: CFG_V3_PKESK_ONLY
      pos:
        line_end: 54
        line_start: 53
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"v3-pkesk-only"     '
    - item_type: preproc_def
      name: CFG_ENABLE_V6_SKESK
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"enable-v6-skesk" '
    - item_type: preproc_def
      name: CFG_SIGNERS
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"signers"       '
    - item_type: preproc_def
      name: CFG_HOMEDIR
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"homedir"       '
    - item_type: preproc_def
      name: CFG_KEYFILE
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"keyfile"       '
    - item_type: preproc_def
      name: CFG_PASSFD
      pos:
        line_end: 60
        line_start: 59
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"pass-fd"        '
    - item_type: preproc_def
      name: CFG_PASSWD
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"password"       '
    - item_type: preproc_def
      name: CFG_PASSWORDC
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"passwordc"   '
    - item_type: preproc_def
      name: CFG_NUMTRIES
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"numtries"     '
    - item_type: preproc_def
      name: CFG_EXPIRATION
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"expiration" '
    - item_type: preproc_def
      name: CFG_CREATION
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"creation"     '
    - item_type: preproc_def
      name: CFG_CIPHER
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"cipher"         '
    - item_type: preproc_def
      name: CFG_HASH
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"hash"             '
    - item_type: preproc_def
      name: CFG_WEAK_HASH
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"weak-hash"   '
    - item_type: preproc_def
      name: CFG_ALLOW_SHA1
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"allow-sha1" '
    - item_type: preproc_def
      name: CFG_S2K_ITER
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"s2k-iter"     '
    - item_type: preproc_def
      name: CFG_S2K_MSEC
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"s2k-msec"     '
    - item_type: preproc_def
      name: CFG_ENCRYPT_PK
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"encrypt_pk" '
    - item_type: preproc_def
      name: CFG_ENCRYPT_SK
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"encrypt_sk" '
    - item_type: preproc_def
      name: CFG_IO_RESS
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"ress"          '
    - item_type: preproc_def
      name: CFG_NUMBITS
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"numbits"       '
    - item_type: preproc_def
      name: CFG_EXPERT
      pos:
        line_end: 76
        line_start: 75
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"expert"         '
    - item_type: preproc_def
      name: CFG_ZLEVEL
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"zlevel"         '
    - item_type: preproc_def
      name: CFG_ZALG
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"zalg"             '
    - item_type: preproc_def
      name: CFG_AEAD
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"aead"             '
    - item_type: preproc_def
      name: CFG_AEAD_CHUNK
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"aead_chunk" '
    - item_type: preproc_def
      name: CFG_KEYSTORE_DISABLED
      pos:
        line_end: 82
        line_start: 80
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"disable_keystore"              '
    - item_type: preproc_def
      name: CFG_FORCE
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"force"           '
    - item_type: preproc_def
      name: CFG_SECRET
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"secret"         '
    - item_type: preproc_def
      name: CFG_WITH_SIGS
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"with-sigs"   '
    - item_type: preproc_def
      name: CFG_JSON
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"json"             '
    - item_type: preproc_def
      name: CFG_GRIPS
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"grips"           '
    - item_type: preproc_def
      name: CFG_MPIS
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"mpis"             '
    - item_type: preproc_def
      name: CFG_RAW
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"raw"               '
    - item_type: preproc_def
      name: CFG_REV_TYPE
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"rev-type"     '
    - item_type: preproc_def
      name: CFG_REV_REASON
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"rev-reason" '
    - item_type: preproc_def
      name: CFG_PERMISSIVE
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"permissive" '
    - item_type: preproc_def
      name: CFG_NOTTY
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"notty" '
    - item_type: preproc_def
      name: CFG_FIX_25519_BITS
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"fix-25519-bits"   '
    - item_type: preproc_def
      name: CFG_CHK_25519_BITS
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"check-25519-bits" '
    - item_type: preproc_def
      name: CFG_ADD_SUBKEY
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"add-subkey"           '
    - item_type: preproc_def
      name: CFG_SET_KEY_EXPIRE
      pos:
        line_end: 97
        line_start: 96
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"key-expire"       '
    - item_type: preproc_def
      name: CFG_SOURCE
      pos:
        line_end: 98
        line_start: 97
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"source"                   '
    - item_type: preproc_def
      name: CFG_NOWRAP
      pos:
        line_end: 99
        line_start: 98
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"no-wrap"  '
    - item_type: preproc_def
      name: CFG_CURTIME
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"curtime" '
    - item_type: preproc_def
      name: CFG_ALLOW_OLD_CIPHERS
      pos:
        line_end: 102
        line_start: 100
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"allow-old-ciphers" '
    - item_type: preproc_def
      name: CFG_ALLOW_HIDDEN
      pos:
        line_end: 103
        line_start: 102
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"allow-hidden" '
    - item_type: preproc_def
      name: CFG_KR_PUB_FORMAT
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"kr-pub-format"'
    - item_type: preproc_def
      name: CFG_KR_SEC_FORMAT
      pos:
        line_end: 107
        line_start: 106
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"kr-sec-format"'
    - item_type: preproc_def
      name: CFG_KR_PUB_PATH
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"kr-pub-path"'
    - item_type: preproc_def
      name: CFG_KR_SEC_PATH
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"kr-sec-path"'
    - item_type: preproc_def
      name: CFG_KR_DEF_KEY
      pos:
        line_end: 110
        line_start: 109
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"kr-def-key"'
    - item_type: preproc_def
      name: CFG_KG_PRIMARY_ALG
      pos:
        line_end: 113
        line_start: 112
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"kg-primary-alg"'
    - item_type: preproc_def
      name: CFG_KG_PRIMARY_BITS
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"kg-primary-bits"'
    - item_type: preproc_def
      name: CFG_KG_PRIMARY_CURVE
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"kg-primary-curve"'
    - item_type: preproc_def
      name: CFG_KG_PRIMARY_EXPIRATION
      pos:
        line_end: 116
        line_start: 115
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"kg-primary-expiration"'
    - item_type: preproc_def
      name: CFG_KG_SUBKEY_ALG
      pos:
        line_end: 117
        line_start: 116
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"kg-subkey-alg"'
    - item_type: preproc_def
      name: CFG_KG_SUBKEY_BITS
      pos:
        line_end: 118
        line_start: 117
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"kg-subkey-bits"'
    - item_type: preproc_def
      name: CFG_KG_SUBKEY_CURVE
      pos:
        line_end: 119
        line_start: 118
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"kg-subkey-curve"'
    - item_type: preproc_def
      name: CFG_KG_SUBKEY_EXPIRATION
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"kg-subkey-expiration"'
    - item_type: preproc_def
      name: CFG_KG_SUBKEY_2_ALG
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"kg-subkey-2-alg"'
    - item_type: preproc_def
      name: CFG_KG_SUBKEY_2_BITS
      pos:
        line_end: 123
        line_start: 122
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"kg-subkey-2-bits"'
    - item_type: preproc_def
      name: CFG_KG_SUBKEY_2_CURVE
      pos:
        line_end: 124
        line_start: 123
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"kg-subkey-2-curve"'
    - item_type: preproc_def
      name: CFG_KG_SUBKEY_2_EXPIRATION
      pos:
        line_end: 125
        line_start: 124
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"kg-subkey-2-expiration"'
    - item_type: preproc_def
      name: CFG_KG_HASH
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"kg-hash"'
    - item_type: preproc_def
      name: CFG_KG_PROT_HASH
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"kg-prot-hash"'
    - item_type: preproc_def
      name: CFG_KG_PROT_ALG
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"kg-prot-alg"'
    - item_type: preproc_def
      name: CFG_KG_PROT_ITERATIONS
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"kg-prot-iterations"'
    - item_type: preproc_def
      name: CFG_KG_V6_KEY
      pos:
        line_end: 133
        line_start: 131
        source_file: /src/rnp/src/rnp/rnpcfg.h
      type_or_value: '"kg-v6-key" '
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp_cfg_val::rnp_cfg_val
  - rnp_cfg_val::type
  - ~rnp_cfg_val()
  - rnp_cfg_int_val::rnp_cfg_int_val
  - rnp_cfg_int_val::val
  - rnp_cfg_bool_val::rnp_cfg_bool_val
  - rnp_cfg_bool_val::val
  - rnp_cfg_str_val::rnp_cfg_str_val
  - "&\n    val() const"
  - rnp_cfg_list_val::rnp_cfg_list_val
  - "&\n    val()"
  - "&\n    val() const"
  - rnp_cfg::load_defaults
  - rnp_cfg::set_str
  - rnp_cfg::set_str
  - rnp_cfg::set_int
  - rnp_cfg::set_bool
  - rnp_cfg::unset
  - rnp_cfg::add_str
  - rnp_cfg::has
  - '&

    rnp_cfg::get_str(const std::string &key) const'
  - rnp_cfg::get_cstr
  - rnp_cfg::get_int
  - rnp_cfg::get_bool
  - rnp_cfg::get_count
  - '&

    rnp_cfg::get_str(const std::string &key, size_t idx) const'
  - rnp_cfg::get_list
  - rnp_cfg::get_pswdtries
  - rnp_cfg::get_hashalg
  - rnp_cfg::get_cipher
  - rnp_cfg::get_expiration
  - rnp_cfg::extract_timestamp
  - rnp_cfg::get_sig_creation
  - rnp_cfg::time
  - rnp_cfg::copy
  - rnp_cfg::clear
  - rnp_cfg::~rnp_cfg()
  - days_in_month
  - rnp_cfg::parse_date
  source_file: /src/rnp/src/rnp/rnpcfg.cpp
  types:
    enum:
    - enumerators:
      - name: RNP_CFG_VAL_NULL
        value: '0'
      - name: RNP_CFG_VAL_STRING
        value: '3'
      - name: RNP_CFG_VAL_INT
        value: '1'
      - name: RNP_CFG_VAL_BOOL
        value: '2'
      - name: RNP_CFG_VAL_LIST
        value: '4'
      item_type: enum
      name: rnp_cfg_val_type_t
      pos:
        line_end: 62
        line_start: 56
        source_file: /src/rnp/src/rnp/rnpcfg.cpp
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - print_usage
  - rnp_cmd
  - setcmd
  - setoption
  - set_short_option
  - rnp_main
  source_file: /src/rnp/src/rnp/rnp.cpp
  types:
    enum:
    - enumerators:
      - name: CMD_SIGN
      - name: CMD_VERIFY_CAT
      - name: CMD_DEARMOR
      - name: CMD_LIST_PACKETS
      - name: OPT_KEY_STORE_FORMAT
      - name: OPT_V3_PKESK_ONLY
      - name: OPT_ENABLE_V6_SKESK
      - name: CMD_HELP
      - name: OPT_USERID
      - name: OPT_ARMOR
      - name: OPT_DETACHED
      - name: OPT_CREATION
      - name: OPT_OVERWRITE
      - name: OPT_KEYFILE
      - name: OPT_ALLOW_HIDDEN
      - name: OPT_PASSWD
      - name: OPT_ZALG_ZLIB
      - name: OPT_CURTIME
      - name: OPT_NOTTY
      - name: OPT_DEBUG
      - name: OPT_ALLOW_OLD_CIPHERS
      - name: OPT_SOURCE
      - name: OPT_PASSWORDS
      - name: OPT_ZALG_BZIP
      - name: OPT_COREDUMPS
      - name: OPT_NUMTRIES
      - name: OPT_ALLOW_SHA1
      - name: OPT_MPIS
      - name: CMD_ENCRYPT
        value: '260'
      - name: CMD_VERIFY
      - name: CMD_CLEARSIGN
      - name: CMD_DECRYPT
      - name: CMD_SYM_ENCRYPT
      - name: CMD_ENARMOR
      - name: CMD_VERSION
      - name: OPT_RECIPIENT
      - name: CMD_PROTECT
      - name: CMD_PROCESS
      - name: OPT_OUTPUT
      - name: OPT_PASSWDFD
      - name: OPT_ZALG_ZIP
      - name: OPT_RAW
      - name: OPT_NOWRAP
      - name: OPT_JSON
      - name: OPT_AEAD
      - name: OPT_S2K_ITER
      - name: OPT_HASH_ALG
      - name: OPT_ZLEVEL
      - name: OPT_GRIPS
      - name: OPT_RESULTS
      - name: OPT_CIPHER
      - name: OPT_S2K_MSEC
      - name: OPT_ALLOW_WEAK_HASH
      - name: OPT_SETFNAME
      - name: OPT_HOMEDIR
      - name: OPT_AEAD_CHUNK
      - name: OPT_EXPIRATION
      item_type: enum
      name: optdefs
      pos:
        line_end: 181
        line_start: 114
        source_file: /src/rnp/src/rnp/rnp.cpp
    preproc_defs:
    - item_type: preproc_def
      name: EXIT_ERROR
      pos:
        line_end: 184
        line_start: 183
        source_file: /src/rnp/src/rnp/rnp.cpp
      type_or_value: '2'
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnpffi::ffi_exception::ffi_exception
  - rnpffi::ffi_exception::what
  - rnpffi::ffi_exception::code
  - rnpffi::ffi_exception::func
  - CALL_FFI
  - rnpffi::String::String
  - rnpffi::String::String
  - rnpffi::String::String
  - '&operator=(const String &)'
  - '&operator=(String &&)'
  - ~String()
  - rnpffi::String::set
  - rnpffi::String::c_str
  - rnpffi::String::c_str
  - rnpffi::String::str
  - rnpffi::Key::Key
  - rnpffi::Key::Key
  - rnpffi::Key::Key
  - '&operator=(const Key &)'
  - '&operator=(Key &&)'
  - rnpffi::Key::Key
  - ~Key()
  - rnpffi::Key::handle
  - rnpffi::Key::release
  - rnpffi::Key::secret
  - rnpffi::Key::is_sub
  - rnpffi::Key::is_primary
  - rnpffi::Key::alg
  - rnpffi::Key::curve
  - rnpffi::Key::keyid
  - rnpffi::Key::fprint
  - rnpffi::Key::grip
  - rnpffi::Key::primary_grip
  - rnpffi::Key::uid_count
  - rnpffi::Key::uid_at
  - rnpffi::Key::is_protected
  - rnpffi::Key::protection_hash
  - rnpffi::Key::protection_cipher
  - rnpffi::Key::protection_iterations
  - rnpffi::Key::is_25519_bits_tweaked
  - rnpffi::Key::do_25519_bits_tweak
  - rnpffi::Key::unlock
  - rnpffi::Key::unlock
  - rnpffi::Key::lock
  - rnpffi::Key::unprotect
  - rnpffi::Key::protect
  - rnpffi::IdentifierIterator::IdentifierIterator
  - rnpffi::IdentifierIterator::IdentifierIterator
  - rnpffi::IdentifierIterator::IdentifierIterator
  - '&operator=(const IdentifierIterator &)'
  - '&operator=(IdentifierIterator &&)'
  - rnpffi::IdentifierIterator::IdentifierIterator
  - ~IdentifierIterator()
  - rnpffi::IdentifierIterator::next
  - rnpffi::FFI::FFI
  - rnpffi::FFI::FFI
  - rnpffi::FFI::FFI
  - '&operator=(const FFI &)'
  - '&operator=(FFI &&)'
  - rnpffi::FFI::FFI
  - ~FFI()
  - rnpffi::FFI::locate_key
  - rnpffi::FFI::iterator_create
  - rnpffi::FFI::request_password
  - rnpffi::ffi_exception::ffi_exception
  - rnpffi::ffi_exception::what
  - rnpffi::ffi_exception::code
  - rnpffi::ffi_exception::func
  - CALL_FFI
  - rnpffi::String::String
  - rnpffi::String::String
  - rnpffi::String::String
  - '&operator=(const String &)'
  - '&operator=(String &&)'
  - ~String()
  - rnpffi::String::set
  - rnpffi::String::c_str
  - rnpffi::String::c_str
  - rnpffi::String::str
  - rnpffi::Key::Key
  - rnpffi::Key::Key
  - rnpffi::Key::Key
  - '&operator=(const Key &)'
  - '&operator=(Key &&)'
  - rnpffi::Key::Key
  - ~Key()
  - rnpffi::Key::handle
  - rnpffi::Key::release
  - rnpffi::Key::secret
  - rnpffi::Key::is_sub
  - rnpffi::Key::is_primary
  - rnpffi::Key::alg
  - rnpffi::Key::curve
  - rnpffi::Key::keyid
  - rnpffi::Key::fprint
  - rnpffi::Key::grip
  - rnpffi::Key::primary_grip
  - rnpffi::Key::uid_count
  - rnpffi::Key::uid_at
  - rnpffi::Key::is_protected
  - rnpffi::Key::protection_hash
  - rnpffi::Key::protection_cipher
  - rnpffi::Key::protection_iterations
  - rnpffi::Key::is_25519_bits_tweaked
  - rnpffi::Key::do_25519_bits_tweak
  - rnpffi::Key::unlock
  - rnpffi::Key::unlock
  - rnpffi::Key::lock
  - rnpffi::Key::unprotect
  - rnpffi::Key::protect
  - rnpffi::IdentifierIterator::IdentifierIterator
  - rnpffi::IdentifierIterator::IdentifierIterator
  - rnpffi::IdentifierIterator::IdentifierIterator
  - '&operator=(const IdentifierIterator &)'
  - '&operator=(IdentifierIterator &&)'
  - rnpffi::IdentifierIterator::IdentifierIterator
  - ~IdentifierIterator()
  - rnpffi::IdentifierIterator::next
  - rnpffi::FFI::FFI
  - rnpffi::FFI::FFI
  - rnpffi::FFI::FFI
  - '&operator=(const FFI &)'
  - '&operator=(FFI &&)'
  - rnpffi::FFI::FFI
  - ~FFI()
  - rnpffi::FFI::locate_key
  - rnpffi::FFI::iterator_create
  - rnpffi::FFI::request_password
  source_file: /src/rnp/src/rnp/rnpcpp.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/common/getoptwin.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _GETOPTWIN_H
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/rnp/src/common/getoptwin.h
      type_or_value: '1'
    - item_type: preproc_def
      name: _BEGIN_EXTERN_C
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/rnp/src/common/getoptwin.h
      type_or_value: extern "C" {
    - item_type: preproc_def
      name: _END_EXTERN_C
      pos:
        line_end: 32
        line_start: 31
        source_file: /src/rnp/src/common/getoptwin.h
      type_or_value: '}'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/common/time-utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CATCH_AND_RETURN
  - rnp_unlink
  - rnp_file_exists
  - rnp_dir_exists
  - rnp_open
  - rnp_fopen
  - rnp_fdopen
  - rnp_access
  - rnp_stat
  - rnp_rename
  - rnp_opendir
  - rnp_readdir_name
  - rnp_filemtime
  - rnp::path::separator
  - rnp::path::exists
  - rnp::path::empty
  - rnp::path::HOME
  - rnp::path::has_forward_slash
  - rnp::path::append
  - rnp::path::separator
  - rnp::path::exists
  - rnp::path::empty
  - rnp::path::HOME
  - rnp::path::has_forward_slash
  - rnp::path::append
  - rnp::path::separator
  - rnp::path::exists
  - rnp::path::empty
  - rnp::path::HOME
  - rnp::path::has_forward_slash
  - rnp::path::append
  - rnp::path::separator
  - rnp::path::exists
  - rnp::path::empty
  - rnp::path::HOME
  - rnp::path::has_forward_slash
  - rnp::path::append
  source_file: /src/rnp/src/common/file-utils.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/common/str-utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::strip_eol
  - rnp::strip_eol
  - rnp::is_blank_line
  - rnp::str_case_eq
  - rnp::str_case_eq
  - rnp::hex_prefix_len
  - rnp::is_hex
  - rnp::strip_hex
  - rnp::lowercase
  - rnp::str_to_int
  - rnp::is_slash
  - rnp::strip_eol
  - rnp::strip_eol
  - rnp::is_blank_line
  - rnp::str_case_eq
  - rnp::str_case_eq
  - rnp::hex_prefix_len
  - rnp::is_hex
  - rnp::strip_hex
  - rnp::lowercase
  - rnp::str_to_int
  - rnp::is_slash
  - wstr_from_utf8
  - wstr_from_utf8
  - wstr_from_utf8
  - wstr_to_utf8
  - wstr_to_utf8
  source_file: /src/rnp/src/common/str-utils.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - RNP_MKDIR
  - RNP_MKDIR
  source_file: /src/rnp/src/common/file-utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: stat
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/rnp/src/common/file-utils.h
      type_or_value: __stat64
    - item_type: preproc_def
      name: rnp_closedir
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/rnp/src/common/file-utils.h
      type_or_value: _wclosedir
    - item_type: preproc_def
      name: rnp_closedir
      pos:
        line_end: 57
        line_start: 56
        source_file: /src/rnp/src/common/file-utils.h
      type_or_value: closedir
    - item_type: preproc_def
      name: R_OK
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/rnp/src/common/file-utils.h
      type_or_value: '4 '
    - item_type: preproc_def
      name: W_OK
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/rnp/src/common/file-utils.h
      type_or_value: '2 '
    - item_type: preproc_def
      name: F_OK
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/rnp/src/common/file-utils.h
      type_or_value: '0 '
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/common/uniwin.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: _UNISTD_H
      pos:
        line_end: 27
        line_start: 26
        source_file: /src/rnp/src/common/uniwin.h
      type_or_value: '1'
    - item_type: preproc_def
      name: STDIN_FILENO
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/rnp/src/common/uniwin.h
      type_or_value: '0'
    - item_type: preproc_def
      name: STDOUT_FILENO
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/rnp/src/common/uniwin.h
      type_or_value: '1'
    - item_type: preproc_def
      name: STDERR_FILENO
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/rnp/src/common/uniwin.h
      type_or_value: '2'
    - item_type: preproc_def
      name: NOMINMAX
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/rnp/src/common/uniwin.h
      type_or_value: '1 '
    - item_type: preproc_def
      name: strncasecmp
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/rnp/src/common/uniwin.h
      type_or_value: strnicmp
    - item_type: preproc_def
      name: strcasecmp
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/rnp/src/common/uniwin.h
      type_or_value: stricmp
    - item_type: preproc_def
      name: MAXPATHLEN
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/rnp/src/common/uniwin.h
      type_or_value: _MAX_PATH
    structs: []
    typedefs:
    - item_type: typedef
      name: ssize_t
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/rnp/src/common/uniwin.h
      type: __int64
    - item_type: typedef
      name: ssize_t
      pos:
        line_end: 39
        line_start: 39
        source_file: /src/rnp/src/common/uniwin.h
      type: long
    - item_type: typedef
      name: mode_t
      pos:
        line_end: 57
        line_start: 57
        source_file: /src/rnp/src/common/uniwin.h
      type: unsigned short
    union: []
- function_names:
  - adjust_time32
  - rnp_y2k38_warning
  - rnp_mktime
  - rnp_gmtime
  - rnp_localtime
  - rnp_ctime
  - rnp_timeadd
  source_file: /src/rnp/src/common/time-utils.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp_secure_get_long_from_fd
  - check_attempts
  - is_rsa_keysize_supported
  - ask_curve_name
  - ask_rsa_bitlen
  - ask_elgamal_bitlen
  - ask_dsa_bitlen
  - rnpkeys_ask_generate_params
  - rnpkeys_ask_generate_params_subkey
  - cli_rnp_set_generate_params
  source_file: /src/rnp/src/rnpkeys/tui.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_INPUT_ATTEMPTS
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/rnp/src/rnpkeys/tui.cpp
      type_or_value: '5'
    structs: []
    typedefs: []
    union: []
- function_names:
  - print_keys_info
  - import_keys
  - import_sigs
  - import
  - print_usage
  - rnp_cmd
  - setoption
  - rnpkeys_init
  source_file: /src/rnp/src/rnpkeys/rnpkeys.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/rnpkeys/rnpkeys.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_RSA_NUMBITS
      pos:
        line_end: 13
        line_start: 12
        source_file: /src/rnp/src/rnpkeys/rnpkeys.h
      type_or_value: '3072'
    structs: []
    typedefs: []
    union: []
- function_names:
  - get_short_cmd
  - rnpkeys_main
  source_file: /src/rnp/src/rnpkeys/main.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::UserID::UserID
  - rnp::UserID::UserID
  source_file: /src/rnp/src/lib/userid.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/defaults.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DEFAULT_PGP_HASH_ALG
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/rnp/src/lib/defaults.h
      type_or_value: PGP_HASH_SHA256
    - item_type: preproc_def
      name: DEFAULT_PGP_SYMM_ALG
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/rnp/src/lib/defaults.h
      type_or_value: PGP_SA_AES_256
    - item_type: preproc_def
      name: DEFAULT_S2K_MSEC
      pos:
        line_end: 37
        line_start: 36
        source_file: /src/rnp/src/lib/defaults.h
      type_or_value: '150'
    - item_type: preproc_def
      name: DEFAULT_S2K_TUNE_MSEC
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/rnp/src/lib/defaults.h
      type_or_value: '10'
    - item_type: preproc_def
      name: DEFAULT_Z_ALG
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/rnp/src/lib/defaults.h
      type_or_value: '"ZIP"'
    - item_type: preproc_def
      name: DEFAULT_Z_LEVEL
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/rnp/src/lib/defaults.h
      type_or_value: '6'
    - item_type: preproc_def
      name: DEFAULT_AEAD_ALG
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/rnp/src/lib/defaults.h
      type_or_value: PGP_AEAD_OCB
    - item_type: preproc_def
      name: DEFAULT_AEAD_CHUNK_BITS
      pos:
        line_end: 50
        line_start: 49
        source_file: /src/rnp/src/lib/defaults.h
      type_or_value: '12'
    - item_type: preproc_def
      name: DEFAULT_CIPHER_MODE
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/rnp/src/lib/defaults.h
      type_or_value: '"CFB"'
    - item_type: preproc_def
      name: DEFAULT_PGP_CIPHER_MODE
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/rnp/src/lib/defaults.h
      type_or_value: PGP_CIPHER_MODE_CFB
    - item_type: preproc_def
      name: DEFAULT_PK_ALG
      pos:
        line_end: 59
        line_start: 58
        source_file: /src/rnp/src/lib/defaults.h
      type_or_value: PGP_PKA_RSA
    - item_type: preproc_def
      name: DEFAULT_RSA_NUMBITS
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/rnp/src/lib/defaults.h
      type_or_value: '3072'
    - item_type: preproc_def
      name: DEFAULT_ELGAMAL_NUMBITS
      pos:
        line_end: 65
        line_start: 64
        source_file: /src/rnp/src/lib/defaults.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: ELGAMAL_MIN_P_BITLEN
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/rnp/src/lib/defaults.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: ELGAMAL_MAX_P_BITLEN
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/rnp/src/lib/defaults.h
      type_or_value: '4096'
    - item_type: preproc_def
      name: DSA_MIN_P_BITLEN
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/rnp/src/lib/defaults.h
      type_or_value: '1024'
    - item_type: preproc_def
      name: DSA_MAX_P_BITLEN
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/rnp/src/lib/defaults.h
      type_or_value: '3072'
    - item_type: preproc_def
      name: DSA_DEFAULT_P_BITLEN
      pos:
        line_end: 72
        line_start: 71
        source_file: /src/rnp/src/lib/defaults.h
      type_or_value: '2048'
    - item_type: preproc_def
      name: DEFAULT_CURVE
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/rnp/src/lib/defaults.h
      type_or_value: '"NIST P-256"'
    - item_type: preproc_def
      name: MAX_PASSWORD_ATTEMPTS
      pos:
        line_end: 78
        line_start: 77
        source_file: /src/rnp/src/lib/defaults.h
      type_or_value: '3'
    - item_type: preproc_def
      name: INFINITE_ATTEMPTS
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/rnp/src/lib/defaults.h
      type_or_value: '-1'
    - item_type: preproc_def
      name: DEFAULT_KEY_EXPIRATION
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/rnp/src/lib/defaults.h
      type_or_value: (2 * 365 * 24 * 60 * 60)
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::KeySearch::find_type
  - rnp::KeySearch::create
  - rnp::KeySearch::create
  - rnp::KeySearch::create
  - rnp::KeySearch::create
  - rnp::KeySearch::create
  - rnp::KeyIDSearch::matches
  - rnp::KeyIDSearch::name
  - rnp::KeyIDSearch::value
  - rnp::KeyIDSearch::hidden
  - rnp::KeyIDSearch::KeyIDSearch
  - rnp::KeyFingerprintSearch::matches
  - rnp::KeyFingerprintSearch::name
  - rnp::KeyFingerprintSearch::value
  - rnp::KeyFingerprintSearch::KeyFingerprintSearch
  - '&

    KeyFingerprintSearch::get_fp() const'
  - rnp::KeyGripSearch::matches
  - rnp::KeyGripSearch::name
  - rnp::KeyGripSearch::value
  - rnp::KeyGripSearch::KeyGripSearch
  - rnp::KeyUIDSearch::matches
  - rnp::KeyUIDSearch::name
  - rnp::KeyUIDSearch::value
  - rnp::KeyUIDSearch::KeyUIDSearch
  - rnp::KeyProvider::request_key
  - rnp::KeySearch::find_type
  - rnp::KeySearch::create
  - rnp::KeySearch::create
  - rnp::KeySearch::create
  - rnp::KeySearch::create
  - rnp::KeySearch::create
  - rnp::KeyIDSearch::matches
  - rnp::KeyIDSearch::name
  - rnp::KeyIDSearch::value
  - rnp::KeyIDSearch::hidden
  - rnp::KeyIDSearch::KeyIDSearch
  - rnp::KeyFingerprintSearch::matches
  - rnp::KeyFingerprintSearch::name
  - rnp::KeyFingerprintSearch::value
  - rnp::KeyFingerprintSearch::KeyFingerprintSearch
  - '&

    KeyFingerprintSearch::get_fp() const'
  - rnp::KeyGripSearch::matches
  - rnp::KeyGripSearch::name
  - rnp::KeyGripSearch::value
  - rnp::KeyGripSearch::KeyGripSearch
  - rnp::KeyUIDSearch::matches
  - rnp::KeyUIDSearch::name
  - rnp::KeyUIDSearch::value
  - rnp::KeyUIDSearch::KeyUIDSearch
  - rnp::KeyProvider::request_key
  - rnp_key_provider_key_ptr_list
  - rnp_key_provider_chained
  - rnp_key_provider_store
  source_file: /src/rnp/src/lib/key-provider.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - id_str_pair::lookup
  - id_str_pair::lookup
  - id_str_pair::lookup
  source_file: /src/rnp/src/lib/utils.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - load_generated_g10_key
  - pk_alg_default_flags
  - adjust_hash_alg
  - keygen_merge_crypto_defaults
  - validate_keygen_primary
  - get_numbits
  - set_default_user_prefs
  - keygen_primary_merge_defaults
  - pgp_generate_primary_key
  - validate_keygen_subkey
  - keygen_subkey_merge_defaults
  - pgp_generate_subkey
  source_file: /src/rnp/src/lib/generate-key.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::Fingerprint::Fingerprint
  - pgp::Fingerprint::Fingerprint
  - pgp::Fingerprint::Fingerprint
  - Fingerprint::operator==(const Fingerprint &src) const
  - Fingerprint::operator!=(const Fingerprint &src) const
  - pgp::Fingerprint::size_valid
  - '&

    Fingerprint::keyid() const noexcept'
  - '&

    Fingerprint::vec() const noexcept'
  - pgp::Fingerprint::data
  - pgp::Fingerprint::size
  - pgp::Fingerprint::Fingerprint
  - pgp::Fingerprint::Fingerprint
  - pgp::Fingerprint::Fingerprint
  - Fingerprint::operator==(const Fingerprint &src) const
  - Fingerprint::operator!=(const Fingerprint &src) const
  - pgp::Fingerprint::size_valid
  - '&

    Fingerprint::keyid() const noexcept'
  - '&

    Fingerprint::vec() const noexcept'
  - pgp::Fingerprint::data
  - pgp::Fingerprint::size
  source_file: /src/rnp/src/lib/fingerprint.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::EncMaterial::create
  - pgp::RSAEncMaterial::parse
  - pgp::RSAEncMaterial::write
  - pgp::EGEncMaterial::parse
  - pgp::EGEncMaterial::write
  - pgp::SM2EncMaterial::parse
  - pgp::SM2EncMaterial::write
  - pgp::ECDHEncMaterial::parse
  - pgp::ECDHEncMaterial::write
  - pgp::X25519EncMaterial::parse
  - pgp::X25519EncMaterial::write
  - pgp::X448EncMaterial::parse
  - pgp::X448EncMaterial::write
  - pgp::MlkemEcdhEncMaterial::parse
  - pgp::MlkemEcdhEncMaterial::write
  - pgp::EncMaterial::create
  - pgp::RSAEncMaterial::parse
  - pgp::RSAEncMaterial::write
  - pgp::EGEncMaterial::parse
  - pgp::EGEncMaterial::write
  - pgp::SM2EncMaterial::parse
  - pgp::SM2EncMaterial::write
  - pgp::ECDHEncMaterial::parse
  - pgp::ECDHEncMaterial::write
  - pgp::X25519EncMaterial::parse
  - pgp::X25519EncMaterial::write
  - pgp::X448EncMaterial::parse
  - pgp::X448EncMaterial::write
  - pgp::MlkemEcdhEncMaterial::parse
  - pgp::MlkemEcdhEncMaterial::write
  source_file: /src/rnp/src/lib/enc_material.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::json::get_field
  - rnp::json::add
  - rnp::json::add
  - rnp::json::add
  - rnp::json::add
  - rnp::json::add
  - rnp::json::add
  - rnp::json::add_hex
  - rnp::json::add_hex
  - rnp::json::add
  - rnp::json::add
  - rnp::json::array_add
  - rnp::json::array_add
  - rnp::json::get_str
  - rnp::json::get_int
  - rnp::json::get_uint64
  - rnp::json::get_str_arr
  - rnp::json::get_obj
  - rnp::json::dump_pretty
  - rnp::json::get_field
  - rnp::json::add
  - rnp::json::add
  - rnp::json::add
  - rnp::json::add
  - rnp::json::add
  - rnp::json::add
  - rnp::json::add_hex
  - rnp::json::add_hex
  - rnp::json::add
  - rnp::json::add
  - rnp::json::array_add
  - rnp::json::array_add
  - rnp::json::get_str
  - rnp::json::get_int
  - rnp::json::get_uint64
  - rnp::json::get_str_arr
  - rnp::json::get_obj
  - rnp::json::dump_pretty
  - rnp::json::get_field
  - rnp::json::add
  - rnp::json::add
  - rnp::json::add
  - rnp::json::add
  - rnp::json::add
  - rnp::json::add
  - rnp::json::add_hex
  - rnp::json::add_hex
  - rnp::json::add
  - rnp::json::add
  - rnp::json::array_add
  - rnp::json::array_add
  - rnp::json::get_str
  - rnp::json::get_int
  - rnp::json::get_uint64
  - rnp::json::get_str_arr
  - rnp::json::get_obj
  - rnp::json::dump_pretty
  - rnp::json::get_field
  - rnp::json::add
  - rnp::json::add
  - rnp::json::add
  - rnp::json::add
  - rnp::json::add
  - rnp::json::add
  - rnp::json::add_hex
  - rnp::json::add_hex
  - rnp::json::add
  - rnp::json::add
  - rnp::json::array_add
  - rnp::json::array_add
  - rnp::json::get_str
  - rnp::json::get_int
  - rnp::json::get_uint64
  - rnp::json::get_str_arr
  - rnp::json::get_obj
  - rnp::json::dump_pretty
  source_file: /src/rnp/src/lib/json-utils.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::pkt::sigsub::Raw::Raw
  - pgp::pkt::sigsub::Raw::Raw
  - Raw::~Raw()
  - pgp::pkt::sigsub::Raw::check_size
  - pgp::pkt::sigsub::Raw::parse_data
  - pgp::pkt::sigsub::Raw::parse
  - '&

    Raw::write()'
  - pgp::pkt::sigsub::report_unknown
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::clone
  - pgp::pkt::sigsub::Time::write_data
  - pgp::pkt::sigsub::Time::check_size
  - pgp::pkt::sigsub::Time::parse_data
  - pgp::pkt::sigsub::CreationTime::clone
  - pgp::pkt::sigsub::ExpirationTime::clone
  - pgp::pkt::sigsub::KeyExpirationTime::clone
  - pgp::pkt::sigsub::Bool::write_data
  - pgp::pkt::sigsub::Bool::check_size
  - pgp::pkt::sigsub::Bool::parse_data
  - pgp::pkt::sigsub::ExportableCert::clone
  - pgp::pkt::sigsub::Trust::write_data
  - pgp::pkt::sigsub::Trust::check_size
  - pgp::pkt::sigsub::Trust::parse_data
  - pgp::pkt::sigsub::Trust::clone
  - pgp::pkt::sigsub::String::write_data
  - pgp::pkt::sigsub::String::parse_data
  - pgp::pkt::sigsub::RegExp::clone
  - pgp::pkt::sigsub::Revocable::clone
  - pgp::pkt::sigsub::Preferred::write_data
  - pgp::pkt::sigsub::Preferred::check_size
  - pgp::pkt::sigsub::Preferred::parse_data
  - pgp::pkt::sigsub::PreferredSymmetric::clone
  - pgp::pkt::sigsub::PreferredHash::clone
  - pgp::pkt::sigsub::PreferredCompress::clone
  - pgp::pkt::sigsub::PreferredAEAD::clone
  - pgp::pkt::sigsub::PreferredAEADv6::check_size
  - pgp::pkt::sigsub::PreferredAEADv6::clone
  - pgp::pkt::sigsub::RevocationKey::write_data
  - pgp::pkt::sigsub::RevocationKey::check_size
  - pgp::pkt::sigsub::RevocationKey::parse_data
  - pgp::pkt::sigsub::RevocationKey::clone
  - pgp::pkt::sigsub::IssuerKeyID::write_data
  - pgp::pkt::sigsub::IssuerKeyID::check_size
  - pgp::pkt::sigsub::IssuerKeyID::parse_data
  - pgp::pkt::sigsub::IssuerKeyID::clone
  - pgp::pkt::sigsub::NotationData::write_data
  - pgp::pkt::sigsub::NotationData::check_size
  - pgp::pkt::sigsub::NotationData::parse_data
  - pgp::pkt::sigsub::NotationData::set_human_readable
  - pgp::pkt::sigsub::NotationData::set_name
  - pgp::pkt::sigsub::NotationData::set_value
  - pgp::pkt::sigsub::NotationData::clone
  - pgp::pkt::sigsub::Flags::write_data
  - pgp::pkt::sigsub::Flags::check_size
  - pgp::pkt::sigsub::Flags::parse_data
  - pgp::pkt::sigsub::KeyserverPrefs::clone
  - pgp::pkt::sigsub::PreferredKeyserver::clone
  - pgp::pkt::sigsub::PrimaryUserID::clone
  - pgp::pkt::sigsub::PolicyURI::clone
  - pgp::pkt::sigsub::KeyFlags::clone
  - pgp::pkt::sigsub::SignersUserID::clone
  - pgp::pkt::sigsub::RevocationReason::write_data
  - pgp::pkt::sigsub::RevocationReason::check_size
  - pgp::pkt::sigsub::RevocationReason::parse_data
  - pgp::pkt::sigsub::RevocationReason::clone
  - pgp::pkt::sigsub::Features::clone
  - pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
  - pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
  - pgp::pkt::sigsub::EmbeddedSignature::write_data
  - pgp::pkt::sigsub::EmbeddedSignature::check_size
  - pgp::pkt::sigsub::EmbeddedSignature::parse_data
  - pgp::pkt::sigsub::EmbeddedSignature::signature
  - pgp::pkt::sigsub::EmbeddedSignature::signature
  - pgp::pkt::sigsub::EmbeddedSignature::set_signature
  - pgp::pkt::sigsub::EmbeddedSignature::clone
  - pgp::pkt::sigsub::IssuerFingerprint::write_data
  - pgp::pkt::sigsub::IssuerFingerprint::check_size
  - pgp::pkt::sigsub::IssuerFingerprint::parse_data
  - pgp::pkt::sigsub::IssuerFingerprint::clone
  - pgp::pkt::sigsub::List::List
  - '&

    List::operator=(const List &src)'
  - pgp::pkt::sigsub::Raw::Raw
  - pgp::pkt::sigsub::Raw::Raw
  - Raw::~Raw()
  - pgp::pkt::sigsub::Raw::check_size
  - pgp::pkt::sigsub::Raw::parse_data
  - pgp::pkt::sigsub::Raw::parse
  - '&

    Raw::write()'
  - pgp::pkt::sigsub::report_unknown
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::clone
  - pgp::pkt::sigsub::Time::write_data
  - pgp::pkt::sigsub::Time::check_size
  - pgp::pkt::sigsub::Time::parse_data
  - pgp::pkt::sigsub::CreationTime::clone
  - pgp::pkt::sigsub::ExpirationTime::clone
  - pgp::pkt::sigsub::KeyExpirationTime::clone
  - pgp::pkt::sigsub::Bool::write_data
  - pgp::pkt::sigsub::Bool::check_size
  - pgp::pkt::sigsub::Bool::parse_data
  - pgp::pkt::sigsub::ExportableCert::clone
  - pgp::pkt::sigsub::Trust::write_data
  - pgp::pkt::sigsub::Trust::check_size
  - pgp::pkt::sigsub::Trust::parse_data
  - pgp::pkt::sigsub::Trust::clone
  - pgp::pkt::sigsub::String::write_data
  - pgp::pkt::sigsub::String::parse_data
  - pgp::pkt::sigsub::RegExp::clone
  - pgp::pkt::sigsub::Revocable::clone
  - pgp::pkt::sigsub::Preferred::write_data
  - pgp::pkt::sigsub::Preferred::check_size
  - pgp::pkt::sigsub::Preferred::parse_data
  - pgp::pkt::sigsub::PreferredSymmetric::clone
  - pgp::pkt::sigsub::PreferredHash::clone
  - pgp::pkt::sigsub::PreferredCompress::clone
  - pgp::pkt::sigsub::PreferredAEAD::clone
  - pgp::pkt::sigsub::PreferredAEADv6::check_size
  - pgp::pkt::sigsub::PreferredAEADv6::clone
  - pgp::pkt::sigsub::RevocationKey::write_data
  - pgp::pkt::sigsub::RevocationKey::check_size
  - pgp::pkt::sigsub::RevocationKey::parse_data
  - pgp::pkt::sigsub::RevocationKey::clone
  - pgp::pkt::sigsub::IssuerKeyID::write_data
  - pgp::pkt::sigsub::IssuerKeyID::check_size
  - pgp::pkt::sigsub::IssuerKeyID::parse_data
  - pgp::pkt::sigsub::IssuerKeyID::clone
  - pgp::pkt::sigsub::NotationData::write_data
  - pgp::pkt::sigsub::NotationData::check_size
  - pgp::pkt::sigsub::NotationData::parse_data
  - pgp::pkt::sigsub::NotationData::set_human_readable
  - pgp::pkt::sigsub::NotationData::set_name
  - pgp::pkt::sigsub::NotationData::set_value
  - pgp::pkt::sigsub::NotationData::clone
  - pgp::pkt::sigsub::Flags::write_data
  - pgp::pkt::sigsub::Flags::check_size
  - pgp::pkt::sigsub::Flags::parse_data
  - pgp::pkt::sigsub::KeyserverPrefs::clone
  - pgp::pkt::sigsub::PreferredKeyserver::clone
  - pgp::pkt::sigsub::PrimaryUserID::clone
  - pgp::pkt::sigsub::PolicyURI::clone
  - pgp::pkt::sigsub::KeyFlags::clone
  - pgp::pkt::sigsub::SignersUserID::clone
  - pgp::pkt::sigsub::RevocationReason::write_data
  - pgp::pkt::sigsub::RevocationReason::check_size
  - pgp::pkt::sigsub::RevocationReason::parse_data
  - pgp::pkt::sigsub::RevocationReason::clone
  - pgp::pkt::sigsub::Features::clone
  - pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
  - pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
  - pgp::pkt::sigsub::EmbeddedSignature::write_data
  - pgp::pkt::sigsub::EmbeddedSignature::check_size
  - pgp::pkt::sigsub::EmbeddedSignature::parse_data
  - pgp::pkt::sigsub::EmbeddedSignature::signature
  - pgp::pkt::sigsub::EmbeddedSignature::signature
  - pgp::pkt::sigsub::EmbeddedSignature::set_signature
  - pgp::pkt::sigsub::EmbeddedSignature::clone
  - pgp::pkt::sigsub::IssuerFingerprint::write_data
  - pgp::pkt::sigsub::IssuerFingerprint::check_size
  - pgp::pkt::sigsub::IssuerFingerprint::parse_data
  - pgp::pkt::sigsub::IssuerFingerprint::clone
  - pgp::pkt::sigsub::List::List
  - '&

    List::operator=(const List &src)'
  - pgp::pkt::sigsub::Raw::Raw
  - pgp::pkt::sigsub::Raw::Raw
  - Raw::~Raw()
  - pgp::pkt::sigsub::Raw::check_size
  - pgp::pkt::sigsub::Raw::parse_data
  - pgp::pkt::sigsub::Raw::parse
  - '&

    Raw::write()'
  - pgp::pkt::sigsub::report_unknown
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::clone
  - pgp::pkt::sigsub::Time::write_data
  - pgp::pkt::sigsub::Time::check_size
  - pgp::pkt::sigsub::Time::parse_data
  - pgp::pkt::sigsub::CreationTime::clone
  - pgp::pkt::sigsub::ExpirationTime::clone
  - pgp::pkt::sigsub::KeyExpirationTime::clone
  - pgp::pkt::sigsub::Bool::write_data
  - pgp::pkt::sigsub::Bool::check_size
  - pgp::pkt::sigsub::Bool::parse_data
  - pgp::pkt::sigsub::ExportableCert::clone
  - pgp::pkt::sigsub::Trust::write_data
  - pgp::pkt::sigsub::Trust::check_size
  - pgp::pkt::sigsub::Trust::parse_data
  - pgp::pkt::sigsub::Trust::clone
  - pgp::pkt::sigsub::String::write_data
  - pgp::pkt::sigsub::String::parse_data
  - pgp::pkt::sigsub::RegExp::clone
  - pgp::pkt::sigsub::Revocable::clone
  - pgp::pkt::sigsub::Preferred::write_data
  - pgp::pkt::sigsub::Preferred::check_size
  - pgp::pkt::sigsub::Preferred::parse_data
  - pgp::pkt::sigsub::PreferredSymmetric::clone
  - pgp::pkt::sigsub::PreferredHash::clone
  - pgp::pkt::sigsub::PreferredCompress::clone
  - pgp::pkt::sigsub::PreferredAEAD::clone
  - pgp::pkt::sigsub::PreferredAEADv6::check_size
  - pgp::pkt::sigsub::PreferredAEADv6::clone
  - pgp::pkt::sigsub::RevocationKey::write_data
  - pgp::pkt::sigsub::RevocationKey::check_size
  - pgp::pkt::sigsub::RevocationKey::parse_data
  - pgp::pkt::sigsub::RevocationKey::clone
  - pgp::pkt::sigsub::IssuerKeyID::write_data
  - pgp::pkt::sigsub::IssuerKeyID::check_size
  - pgp::pkt::sigsub::IssuerKeyID::parse_data
  - pgp::pkt::sigsub::IssuerKeyID::clone
  - pgp::pkt::sigsub::NotationData::write_data
  - pgp::pkt::sigsub::NotationData::check_size
  - pgp::pkt::sigsub::NotationData::parse_data
  - pgp::pkt::sigsub::NotationData::set_human_readable
  - pgp::pkt::sigsub::NotationData::set_name
  - pgp::pkt::sigsub::NotationData::set_value
  - pgp::pkt::sigsub::NotationData::clone
  - pgp::pkt::sigsub::Flags::write_data
  - pgp::pkt::sigsub::Flags::check_size
  - pgp::pkt::sigsub::Flags::parse_data
  - pgp::pkt::sigsub::KeyserverPrefs::clone
  - pgp::pkt::sigsub::PreferredKeyserver::clone
  - pgp::pkt::sigsub::PrimaryUserID::clone
  - pgp::pkt::sigsub::PolicyURI::clone
  - pgp::pkt::sigsub::KeyFlags::clone
  - pgp::pkt::sigsub::SignersUserID::clone
  - pgp::pkt::sigsub::RevocationReason::write_data
  - pgp::pkt::sigsub::RevocationReason::check_size
  - pgp::pkt::sigsub::RevocationReason::parse_data
  - pgp::pkt::sigsub::RevocationReason::clone
  - pgp::pkt::sigsub::Features::clone
  - pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
  - pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
  - pgp::pkt::sigsub::EmbeddedSignature::write_data
  - pgp::pkt::sigsub::EmbeddedSignature::check_size
  - pgp::pkt::sigsub::EmbeddedSignature::parse_data
  - pgp::pkt::sigsub::EmbeddedSignature::signature
  - pgp::pkt::sigsub::EmbeddedSignature::signature
  - pgp::pkt::sigsub::EmbeddedSignature::set_signature
  - pgp::pkt::sigsub::EmbeddedSignature::clone
  - pgp::pkt::sigsub::IssuerFingerprint::write_data
  - pgp::pkt::sigsub::IssuerFingerprint::check_size
  - pgp::pkt::sigsub::IssuerFingerprint::parse_data
  - pgp::pkt::sigsub::IssuerFingerprint::clone
  - pgp::pkt::sigsub::List::List
  - '&

    List::operator=(const List &src)'
  - pgp::pkt::sigsub::Raw::Raw
  - pgp::pkt::sigsub::Raw::Raw
  - Raw::~Raw()
  - pgp::pkt::sigsub::Raw::check_size
  - pgp::pkt::sigsub::Raw::parse_data
  - pgp::pkt::sigsub::Raw::parse
  - '&

    Raw::write()'
  - pgp::pkt::sigsub::report_unknown
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::clone
  - pgp::pkt::sigsub::Time::write_data
  - pgp::pkt::sigsub::Time::check_size
  - pgp::pkt::sigsub::Time::parse_data
  - pgp::pkt::sigsub::CreationTime::clone
  - pgp::pkt::sigsub::ExpirationTime::clone
  - pgp::pkt::sigsub::KeyExpirationTime::clone
  - pgp::pkt::sigsub::Bool::write_data
  - pgp::pkt::sigsub::Bool::check_size
  - pgp::pkt::sigsub::Bool::parse_data
  - pgp::pkt::sigsub::ExportableCert::clone
  - pgp::pkt::sigsub::Trust::write_data
  - pgp::pkt::sigsub::Trust::check_size
  - pgp::pkt::sigsub::Trust::parse_data
  - pgp::pkt::sigsub::Trust::clone
  - pgp::pkt::sigsub::String::write_data
  - pgp::pkt::sigsub::String::parse_data
  - pgp::pkt::sigsub::RegExp::clone
  - pgp::pkt::sigsub::Revocable::clone
  - pgp::pkt::sigsub::Preferred::write_data
  - pgp::pkt::sigsub::Preferred::check_size
  - pgp::pkt::sigsub::Preferred::parse_data
  - pgp::pkt::sigsub::PreferredSymmetric::clone
  - pgp::pkt::sigsub::PreferredHash::clone
  - pgp::pkt::sigsub::PreferredCompress::clone
  - pgp::pkt::sigsub::PreferredAEAD::clone
  - pgp::pkt::sigsub::PreferredAEADv6::check_size
  - pgp::pkt::sigsub::PreferredAEADv6::clone
  - pgp::pkt::sigsub::RevocationKey::write_data
  - pgp::pkt::sigsub::RevocationKey::check_size
  - pgp::pkt::sigsub::RevocationKey::parse_data
  - pgp::pkt::sigsub::RevocationKey::clone
  - pgp::pkt::sigsub::IssuerKeyID::write_data
  - pgp::pkt::sigsub::IssuerKeyID::check_size
  - pgp::pkt::sigsub::IssuerKeyID::parse_data
  - pgp::pkt::sigsub::IssuerKeyID::clone
  - pgp::pkt::sigsub::NotationData::write_data
  - pgp::pkt::sigsub::NotationData::check_size
  - pgp::pkt::sigsub::NotationData::parse_data
  - pgp::pkt::sigsub::NotationData::set_human_readable
  - pgp::pkt::sigsub::NotationData::set_name
  - pgp::pkt::sigsub::NotationData::set_value
  - pgp::pkt::sigsub::NotationData::clone
  - pgp::pkt::sigsub::Flags::write_data
  - pgp::pkt::sigsub::Flags::check_size
  - pgp::pkt::sigsub::Flags::parse_data
  - pgp::pkt::sigsub::KeyserverPrefs::clone
  - pgp::pkt::sigsub::PreferredKeyserver::clone
  - pgp::pkt::sigsub::PrimaryUserID::clone
  - pgp::pkt::sigsub::PolicyURI::clone
  - pgp::pkt::sigsub::KeyFlags::clone
  - pgp::pkt::sigsub::SignersUserID::clone
  - pgp::pkt::sigsub::RevocationReason::write_data
  - pgp::pkt::sigsub::RevocationReason::check_size
  - pgp::pkt::sigsub::RevocationReason::parse_data
  - pgp::pkt::sigsub::RevocationReason::clone
  - pgp::pkt::sigsub::Features::clone
  - pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
  - pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
  - pgp::pkt::sigsub::EmbeddedSignature::write_data
  - pgp::pkt::sigsub::EmbeddedSignature::check_size
  - pgp::pkt::sigsub::EmbeddedSignature::parse_data
  - pgp::pkt::sigsub::EmbeddedSignature::signature
  - pgp::pkt::sigsub::EmbeddedSignature::signature
  - pgp::pkt::sigsub::EmbeddedSignature::set_signature
  - pgp::pkt::sigsub::EmbeddedSignature::clone
  - pgp::pkt::sigsub::IssuerFingerprint::write_data
  - pgp::pkt::sigsub::IssuerFingerprint::check_size
  - pgp::pkt::sigsub::IssuerFingerprint::parse_data
  - pgp::pkt::sigsub::IssuerFingerprint::clone
  - pgp::pkt::sigsub::List::List
  - '&

    List::operator=(const List &src)'
  - pgp::pkt::sigsub::Raw::Raw
  - pgp::pkt::sigsub::Raw::Raw
  - Raw::~Raw()
  - pgp::pkt::sigsub::Raw::check_size
  - pgp::pkt::sigsub::Raw::parse_data
  - pgp::pkt::sigsub::Raw::parse
  - '&

    Raw::write()'
  - pgp::pkt::sigsub::report_unknown
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::clone
  - pgp::pkt::sigsub::Time::write_data
  - pgp::pkt::sigsub::Time::check_size
  - pgp::pkt::sigsub::Time::parse_data
  - pgp::pkt::sigsub::CreationTime::clone
  - pgp::pkt::sigsub::ExpirationTime::clone
  - pgp::pkt::sigsub::KeyExpirationTime::clone
  - pgp::pkt::sigsub::Bool::write_data
  - pgp::pkt::sigsub::Bool::check_size
  - pgp::pkt::sigsub::Bool::parse_data
  - pgp::pkt::sigsub::ExportableCert::clone
  - pgp::pkt::sigsub::Trust::write_data
  - pgp::pkt::sigsub::Trust::check_size
  - pgp::pkt::sigsub::Trust::parse_data
  - pgp::pkt::sigsub::Trust::clone
  - pgp::pkt::sigsub::String::write_data
  - pgp::pkt::sigsub::String::parse_data
  - pgp::pkt::sigsub::RegExp::clone
  - pgp::pkt::sigsub::Revocable::clone
  - pgp::pkt::sigsub::Preferred::write_data
  - pgp::pkt::sigsub::Preferred::check_size
  - pgp::pkt::sigsub::Preferred::parse_data
  - pgp::pkt::sigsub::PreferredSymmetric::clone
  - pgp::pkt::sigsub::PreferredHash::clone
  - pgp::pkt::sigsub::PreferredCompress::clone
  - pgp::pkt::sigsub::PreferredAEAD::clone
  - pgp::pkt::sigsub::PreferredAEADv6::check_size
  - pgp::pkt::sigsub::PreferredAEADv6::clone
  - pgp::pkt::sigsub::RevocationKey::write_data
  - pgp::pkt::sigsub::RevocationKey::check_size
  - pgp::pkt::sigsub::RevocationKey::parse_data
  - pgp::pkt::sigsub::RevocationKey::clone
  - pgp::pkt::sigsub::IssuerKeyID::write_data
  - pgp::pkt::sigsub::IssuerKeyID::check_size
  - pgp::pkt::sigsub::IssuerKeyID::parse_data
  - pgp::pkt::sigsub::IssuerKeyID::clone
  - pgp::pkt::sigsub::NotationData::write_data
  - pgp::pkt::sigsub::NotationData::check_size
  - pgp::pkt::sigsub::NotationData::parse_data
  - pgp::pkt::sigsub::NotationData::set_human_readable
  - pgp::pkt::sigsub::NotationData::set_name
  - pgp::pkt::sigsub::NotationData::set_value
  - pgp::pkt::sigsub::NotationData::clone
  - pgp::pkt::sigsub::Flags::write_data
  - pgp::pkt::sigsub::Flags::check_size
  - pgp::pkt::sigsub::Flags::parse_data
  - pgp::pkt::sigsub::KeyserverPrefs::clone
  - pgp::pkt::sigsub::PreferredKeyserver::clone
  - pgp::pkt::sigsub::PrimaryUserID::clone
  - pgp::pkt::sigsub::PolicyURI::clone
  - pgp::pkt::sigsub::KeyFlags::clone
  - pgp::pkt::sigsub::SignersUserID::clone
  - pgp::pkt::sigsub::RevocationReason::write_data
  - pgp::pkt::sigsub::RevocationReason::check_size
  - pgp::pkt::sigsub::RevocationReason::parse_data
  - pgp::pkt::sigsub::RevocationReason::clone
  - pgp::pkt::sigsub::Features::clone
  - pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
  - pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
  - pgp::pkt::sigsub::EmbeddedSignature::write_data
  - pgp::pkt::sigsub::EmbeddedSignature::check_size
  - pgp::pkt::sigsub::EmbeddedSignature::parse_data
  - pgp::pkt::sigsub::EmbeddedSignature::signature
  - pgp::pkt::sigsub::EmbeddedSignature::signature
  - pgp::pkt::sigsub::EmbeddedSignature::set_signature
  - pgp::pkt::sigsub::EmbeddedSignature::clone
  - pgp::pkt::sigsub::IssuerFingerprint::write_data
  - pgp::pkt::sigsub::IssuerFingerprint::check_size
  - pgp::pkt::sigsub::IssuerFingerprint::parse_data
  - pgp::pkt::sigsub::IssuerFingerprint::clone
  - pgp::pkt::sigsub::List::List
  - '&

    List::operator=(const List &src)'
  - pgp::pkt::sigsub::Raw::Raw
  - pgp::pkt::sigsub::Raw::Raw
  - Raw::~Raw()
  - pgp::pkt::sigsub::Raw::check_size
  - pgp::pkt::sigsub::Raw::parse_data
  - pgp::pkt::sigsub::Raw::parse
  - '&

    Raw::write()'
  - pgp::pkt::sigsub::report_unknown
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::clone
  - pgp::pkt::sigsub::Time::write_data
  - pgp::pkt::sigsub::Time::check_size
  - pgp::pkt::sigsub::Time::parse_data
  - pgp::pkt::sigsub::CreationTime::clone
  - pgp::pkt::sigsub::ExpirationTime::clone
  - pgp::pkt::sigsub::KeyExpirationTime::clone
  - pgp::pkt::sigsub::Bool::write_data
  - pgp::pkt::sigsub::Bool::check_size
  - pgp::pkt::sigsub::Bool::parse_data
  - pgp::pkt::sigsub::ExportableCert::clone
  - pgp::pkt::sigsub::Trust::write_data
  - pgp::pkt::sigsub::Trust::check_size
  - pgp::pkt::sigsub::Trust::parse_data
  - pgp::pkt::sigsub::Trust::clone
  - pgp::pkt::sigsub::String::write_data
  - pgp::pkt::sigsub::String::parse_data
  - pgp::pkt::sigsub::RegExp::clone
  - pgp::pkt::sigsub::Revocable::clone
  - pgp::pkt::sigsub::Preferred::write_data
  - pgp::pkt::sigsub::Preferred::check_size
  - pgp::pkt::sigsub::Preferred::parse_data
  - pgp::pkt::sigsub::PreferredSymmetric::clone
  - pgp::pkt::sigsub::PreferredHash::clone
  - pgp::pkt::sigsub::PreferredCompress::clone
  - pgp::pkt::sigsub::PreferredAEAD::clone
  - pgp::pkt::sigsub::PreferredAEADv6::check_size
  - pgp::pkt::sigsub::PreferredAEADv6::clone
  - pgp::pkt::sigsub::RevocationKey::write_data
  - pgp::pkt::sigsub::RevocationKey::check_size
  - pgp::pkt::sigsub::RevocationKey::parse_data
  - pgp::pkt::sigsub::RevocationKey::clone
  - pgp::pkt::sigsub::IssuerKeyID::write_data
  - pgp::pkt::sigsub::IssuerKeyID::check_size
  - pgp::pkt::sigsub::IssuerKeyID::parse_data
  - pgp::pkt::sigsub::IssuerKeyID::clone
  - pgp::pkt::sigsub::NotationData::write_data
  - pgp::pkt::sigsub::NotationData::check_size
  - pgp::pkt::sigsub::NotationData::parse_data
  - pgp::pkt::sigsub::NotationData::set_human_readable
  - pgp::pkt::sigsub::NotationData::set_name
  - pgp::pkt::sigsub::NotationData::set_value
  - pgp::pkt::sigsub::NotationData::clone
  - pgp::pkt::sigsub::Flags::write_data
  - pgp::pkt::sigsub::Flags::check_size
  - pgp::pkt::sigsub::Flags::parse_data
  - pgp::pkt::sigsub::KeyserverPrefs::clone
  - pgp::pkt::sigsub::PreferredKeyserver::clone
  - pgp::pkt::sigsub::PrimaryUserID::clone
  - pgp::pkt::sigsub::PolicyURI::clone
  - pgp::pkt::sigsub::KeyFlags::clone
  - pgp::pkt::sigsub::SignersUserID::clone
  - pgp::pkt::sigsub::RevocationReason::write_data
  - pgp::pkt::sigsub::RevocationReason::check_size
  - pgp::pkt::sigsub::RevocationReason::parse_data
  - pgp::pkt::sigsub::RevocationReason::clone
  - pgp::pkt::sigsub::Features::clone
  - pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
  - pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
  - pgp::pkt::sigsub::EmbeddedSignature::write_data
  - pgp::pkt::sigsub::EmbeddedSignature::check_size
  - pgp::pkt::sigsub::EmbeddedSignature::parse_data
  - pgp::pkt::sigsub::EmbeddedSignature::signature
  - pgp::pkt::sigsub::EmbeddedSignature::signature
  - pgp::pkt::sigsub::EmbeddedSignature::set_signature
  - pgp::pkt::sigsub::EmbeddedSignature::clone
  - pgp::pkt::sigsub::IssuerFingerprint::write_data
  - pgp::pkt::sigsub::IssuerFingerprint::check_size
  - pgp::pkt::sigsub::IssuerFingerprint::parse_data
  - pgp::pkt::sigsub::IssuerFingerprint::clone
  - pgp::pkt::sigsub::List::List
  - '&

    List::operator=(const List &src)'
  - pgp::pkt::sigsub::Raw::Raw
  - pgp::pkt::sigsub::Raw::Raw
  - Raw::~Raw()
  - pgp::pkt::sigsub::Raw::check_size
  - pgp::pkt::sigsub::Raw::parse_data
  - pgp::pkt::sigsub::Raw::parse
  - '&

    Raw::write()'
  - pgp::pkt::sigsub::report_unknown
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::clone
  - pgp::pkt::sigsub::Time::write_data
  - pgp::pkt::sigsub::Time::check_size
  - pgp::pkt::sigsub::Time::parse_data
  - pgp::pkt::sigsub::CreationTime::clone
  - pgp::pkt::sigsub::ExpirationTime::clone
  - pgp::pkt::sigsub::KeyExpirationTime::clone
  - pgp::pkt::sigsub::Bool::write_data
  - pgp::pkt::sigsub::Bool::check_size
  - pgp::pkt::sigsub::Bool::parse_data
  - pgp::pkt::sigsub::ExportableCert::clone
  - pgp::pkt::sigsub::Trust::write_data
  - pgp::pkt::sigsub::Trust::check_size
  - pgp::pkt::sigsub::Trust::parse_data
  - pgp::pkt::sigsub::Trust::clone
  - pgp::pkt::sigsub::String::write_data
  - pgp::pkt::sigsub::String::parse_data
  - pgp::pkt::sigsub::RegExp::clone
  - pgp::pkt::sigsub::Revocable::clone
  - pgp::pkt::sigsub::Preferred::write_data
  - pgp::pkt::sigsub::Preferred::check_size
  - pgp::pkt::sigsub::Preferred::parse_data
  - pgp::pkt::sigsub::PreferredSymmetric::clone
  - pgp::pkt::sigsub::PreferredHash::clone
  - pgp::pkt::sigsub::PreferredCompress::clone
  - pgp::pkt::sigsub::PreferredAEAD::clone
  - pgp::pkt::sigsub::PreferredAEADv6::check_size
  - pgp::pkt::sigsub::PreferredAEADv6::clone
  - pgp::pkt::sigsub::RevocationKey::write_data
  - pgp::pkt::sigsub::RevocationKey::check_size
  - pgp::pkt::sigsub::RevocationKey::parse_data
  - pgp::pkt::sigsub::RevocationKey::clone
  - pgp::pkt::sigsub::IssuerKeyID::write_data
  - pgp::pkt::sigsub::IssuerKeyID::check_size
  - pgp::pkt::sigsub::IssuerKeyID::parse_data
  - pgp::pkt::sigsub::IssuerKeyID::clone
  - pgp::pkt::sigsub::NotationData::write_data
  - pgp::pkt::sigsub::NotationData::check_size
  - pgp::pkt::sigsub::NotationData::parse_data
  - pgp::pkt::sigsub::NotationData::set_human_readable
  - pgp::pkt::sigsub::NotationData::set_name
  - pgp::pkt::sigsub::NotationData::set_value
  - pgp::pkt::sigsub::NotationData::clone
  - pgp::pkt::sigsub::Flags::write_data
  - pgp::pkt::sigsub::Flags::check_size
  - pgp::pkt::sigsub::Flags::parse_data
  - pgp::pkt::sigsub::KeyserverPrefs::clone
  - pgp::pkt::sigsub::PreferredKeyserver::clone
  - pgp::pkt::sigsub::PrimaryUserID::clone
  - pgp::pkt::sigsub::PolicyURI::clone
  - pgp::pkt::sigsub::KeyFlags::clone
  - pgp::pkt::sigsub::SignersUserID::clone
  - pgp::pkt::sigsub::RevocationReason::write_data
  - pgp::pkt::sigsub::RevocationReason::check_size
  - pgp::pkt::sigsub::RevocationReason::parse_data
  - pgp::pkt::sigsub::RevocationReason::clone
  - pgp::pkt::sigsub::Features::clone
  - pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
  - pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
  - pgp::pkt::sigsub::EmbeddedSignature::write_data
  - pgp::pkt::sigsub::EmbeddedSignature::check_size
  - pgp::pkt::sigsub::EmbeddedSignature::parse_data
  - pgp::pkt::sigsub::EmbeddedSignature::signature
  - pgp::pkt::sigsub::EmbeddedSignature::signature
  - pgp::pkt::sigsub::EmbeddedSignature::set_signature
  - pgp::pkt::sigsub::EmbeddedSignature::clone
  - pgp::pkt::sigsub::IssuerFingerprint::write_data
  - pgp::pkt::sigsub::IssuerFingerprint::check_size
  - pgp::pkt::sigsub::IssuerFingerprint::parse_data
  - pgp::pkt::sigsub::IssuerFingerprint::clone
  - pgp::pkt::sigsub::List::List
  - '&

    List::operator=(const List &src)'
  - pgp::pkt::sigsub::Raw::Raw
  - pgp::pkt::sigsub::Raw::Raw
  - Raw::~Raw()
  - pgp::pkt::sigsub::Raw::check_size
  - pgp::pkt::sigsub::Raw::parse_data
  - pgp::pkt::sigsub::Raw::parse
  - '&

    Raw::write()'
  - pgp::pkt::sigsub::report_unknown
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::create
  - pgp::pkt::sigsub::Raw::clone
  - pgp::pkt::sigsub::Time::write_data
  - pgp::pkt::sigsub::Time::check_size
  - pgp::pkt::sigsub::Time::parse_data
  - pgp::pkt::sigsub::CreationTime::clone
  - pgp::pkt::sigsub::ExpirationTime::clone
  - pgp::pkt::sigsub::KeyExpirationTime::clone
  - pgp::pkt::sigsub::Bool::write_data
  - pgp::pkt::sigsub::Bool::check_size
  - pgp::pkt::sigsub::Bool::parse_data
  - pgp::pkt::sigsub::ExportableCert::clone
  - pgp::pkt::sigsub::Trust::write_data
  - pgp::pkt::sigsub::Trust::check_size
  - pgp::pkt::sigsub::Trust::parse_data
  - pgp::pkt::sigsub::Trust::clone
  - pgp::pkt::sigsub::String::write_data
  - pgp::pkt::sigsub::String::parse_data
  - pgp::pkt::sigsub::RegExp::clone
  - pgp::pkt::sigsub::Revocable::clone
  - pgp::pkt::sigsub::Preferred::write_data
  - pgp::pkt::sigsub::Preferred::check_size
  - pgp::pkt::sigsub::Preferred::parse_data
  - pgp::pkt::sigsub::PreferredSymmetric::clone
  - pgp::pkt::sigsub::PreferredHash::clone
  - pgp::pkt::sigsub::PreferredCompress::clone
  - pgp::pkt::sigsub::PreferredAEAD::clone
  - pgp::pkt::sigsub::PreferredAEADv6::check_size
  - pgp::pkt::sigsub::PreferredAEADv6::clone
  - pgp::pkt::sigsub::RevocationKey::write_data
  - pgp::pkt::sigsub::RevocationKey::check_size
  - pgp::pkt::sigsub::RevocationKey::parse_data
  - pgp::pkt::sigsub::RevocationKey::clone
  - pgp::pkt::sigsub::IssuerKeyID::write_data
  - pgp::pkt::sigsub::IssuerKeyID::check_size
  - pgp::pkt::sigsub::IssuerKeyID::parse_data
  - pgp::pkt::sigsub::IssuerKeyID::clone
  - pgp::pkt::sigsub::NotationData::write_data
  - pgp::pkt::sigsub::NotationData::check_size
  - pgp::pkt::sigsub::NotationData::parse_data
  - pgp::pkt::sigsub::NotationData::set_human_readable
  - pgp::pkt::sigsub::NotationData::set_name
  - pgp::pkt::sigsub::NotationData::set_value
  - pgp::pkt::sigsub::NotationData::clone
  - pgp::pkt::sigsub::Flags::write_data
  - pgp::pkt::sigsub::Flags::check_size
  - pgp::pkt::sigsub::Flags::parse_data
  - pgp::pkt::sigsub::KeyserverPrefs::clone
  - pgp::pkt::sigsub::PreferredKeyserver::clone
  - pgp::pkt::sigsub::PrimaryUserID::clone
  - pgp::pkt::sigsub::PolicyURI::clone
  - pgp::pkt::sigsub::KeyFlags::clone
  - pgp::pkt::sigsub::SignersUserID::clone
  - pgp::pkt::sigsub::RevocationReason::write_data
  - pgp::pkt::sigsub::RevocationReason::check_size
  - pgp::pkt::sigsub::RevocationReason::parse_data
  - pgp::pkt::sigsub::RevocationReason::clone
  - pgp::pkt::sigsub::Features::clone
  - pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
  - pgp::pkt::sigsub::EmbeddedSignature::EmbeddedSignature
  - pgp::pkt::sigsub::EmbeddedSignature::write_data
  - pgp::pkt::sigsub::EmbeddedSignature::check_size
  - pgp::pkt::sigsub::EmbeddedSignature::parse_data
  - pgp::pkt::sigsub::EmbeddedSignature::signature
  - pgp::pkt::sigsub::EmbeddedSignature::signature
  - pgp::pkt::sigsub::EmbeddedSignature::set_signature
  - pgp::pkt::sigsub::EmbeddedSignature::clone
  - pgp::pkt::sigsub::IssuerFingerprint::write_data
  - pgp::pkt::sigsub::IssuerFingerprint::check_size
  - pgp::pkt::sigsub::IssuerFingerprint::parse_data
  - pgp::pkt::sigsub::IssuerFingerprint::clone
  - pgp::pkt::sigsub::List::List
  - '&

    List::operator=(const List &src)'
  source_file: /src/rnp/src/lib/sig_subpacket.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp_validity_t::mark_valid
  - pgp_validity_t::reset
  - rnp::pgp_decrypt_seckey_pgp
  - rnp::pgp_decrypt_seckey
  - rnp::Key::write_sec_pgp
  - rnp::Key::write_sec_rawpkt
  - rnp::update_sig_expiration
  - rnp::pgp_key_set_expiration
  - rnp::pgp_subkey_set_expiration
  - rnp::find_suitable_key
  - rnp::Key::Key
  - rnp::Key::Key
  - rnp::Key::Key
  - rnp::Key::Key
  - rnp::Key::Key
  - rnp::Key::sig_count
  - '&

    Key::get_sig(size_t idx)'
  - '&

    Key::get_sig(size_t idx) const'
  - rnp::Key::has_sig
  - '&

    Key::get_sig(const pgp::SigID &id)'
  - '&

    Key::get_sig(const pgp::SigID &id) const'
  - '&

    Key::replace_sig(const pgp::SigID &id, const pgp::pkt::Signature &newsig)'
  - '&

    Key::add_sig(const pgp::pkt::Signature &sig, size_t uid, bool begin)'
  - rnp::Key::del_sig
  - rnp::Key::del_sigs
  - rnp::Key::keysig_count
  - '&

    Key::get_keysig(size_t idx)'
  - rnp::Key::uid_count
  - '&

    Key::get_uid(size_t idx)'
  - '&

    Key::get_uid(size_t idx) const'
  - rnp::Key::has_uid
  - rnp::Key::uid_idx
  - rnp::Key::del_uid
  - rnp::Key::has_primary_uid
  - rnp::Key::get_primary_uid
  - '&

    Key::add_uid(const pgp_transferable_userid_t &uid)'
  - rnp::Key::revoked
  - '&

    Key::revocation() const'
  - rnp::Key::clear_revokes
  - rnp::Key::add_revoker
  - rnp::Key::has_revoker
  - rnp::Key::revoker_count
  - '&

    Key::get_revoker(size_t idx) const'
  - '&

    Key::pkt() const noexcept'
  - '&

    Key::pkt() noexcept'
  - rnp::Key::set_pkt
  - rnp::Key::material
  - rnp::Key::material
  - rnp::Key::alg
  - rnp::Key::curve
  - rnp::Key::version
  - rnp::Key::type
  - rnp::Key::encrypted
  - rnp::Key::flags
  - rnp::Key::can_sign
  - rnp::Key::can_certify
  - rnp::Key::can_encrypt
  - rnp::Key::has_secret
  - rnp::Key::is_pqc_alg
  - rnp::Key::is_pqc
  - rnp::Key::usable_for
  - rnp::Key::expiration
  - rnp::Key::expired
  - rnp::Key::creation
  - rnp::Key::is_public
  - rnp::Key::is_secret
  - rnp::Key::is_primary
  - rnp::Key::is_subkey
  - rnp::Key::is_locked
  - rnp::Key::is_protected
  - rnp::Key::valid
  - rnp::Key::validated
  - rnp::Key::valid_till_common
  - rnp::Key::valid_till
  - rnp::Key::valid_at
  - '&

    Key::keyid() const noexcept'
  - '&

    Key::fp() const noexcept'
  - '&

    Key::grip() const noexcept'
  - '&

    Key::primary_fp() const'
  - rnp::Key::has_primary_fp
  - rnp::Key::unset_primary_fp
  - rnp::Key::link_subkey_fp
  - rnp::Key::add_subkey_fp
  - rnp::Key::subkey_count
  - rnp::Key::remove_subkey_fp
  - '&

    Key::get_subkey_fp(size_t idx) const'
  - '&

    Key::subkey_fps() const'
  - rnp::Key::rawpkt_count
  - '&

    Key::rawpkt()'
  - '&

    Key::rawpkt() const'
  - rnp::Key::set_rawpkt
  - rnp::Key::unlock
  - rnp::Key::lock
  - rnp::Key::protect
  - rnp::Key::protect
  - rnp::Key::unprotect
  - rnp::Key::write
  - rnp::Key::write_xfer
  - rnp::Key::write_autocrypt
  - rnp::Key::write_vec
  - rnp::Key::latest_selfsig
  - rnp::Key::latest_binding
  - rnp::Key::latest_uid_selfcert
  - rnp::Key::is_signer
  - rnp::Key::expired_with
  - rnp::Key::is_self_cert
  - rnp::Key::is_direct_self
  - rnp::Key::is_revocation
  - rnp::Key::is_uid_revocation
  - rnp::Key::is_binding
  - rnp::Key::validate_sig
  - rnp::Key::validate_sig
  - rnp::Key::validate_cert
  - rnp::Key::validate_binding
  - rnp::Key::validate_sub_rev
  - rnp::Key::validate_direct
  - rnp::Key::validate_key_rev
  - rnp::Key::validate_self_signatures
  - rnp::Key::validate_self_signatures
  - rnp::Key::validate_desig_revokes
  - rnp::Key::validate_primary
  - rnp::Key::validate_subkey
  - rnp::Key::validate
  - rnp::Key::revalidate
  - rnp::Key::mark_valid
  - rnp::Key::sign_init
  - rnp::Key::sign_cert
  - rnp::Key::sign_direct
  - rnp::Key::sign_binding
  - rnp::Key::gen_revocation
  - rnp::Key::sign_subkey_binding
  - rnp::Key::add_direct_sig
  - rnp::Key::add_uid_cert
  - rnp::Key::add_sub_binding
  - rnp::Key::refresh_revocations
  - rnp::Key::refresh_data
  - rnp::Key::refresh_data
  - rnp::Key::merge_validity
  - rnp::Key::merge
  - rnp::Key::merge
  - rnp::pgp_decrypt_seckey_pgp
  - rnp::pgp_decrypt_seckey
  - rnp::Key::write_sec_pgp
  - rnp::Key::write_sec_rawpkt
  - rnp::update_sig_expiration
  - rnp::pgp_key_set_expiration
  - rnp::pgp_subkey_set_expiration
  - rnp::find_suitable_key
  - rnp::Key::Key
  - rnp::Key::Key
  - rnp::Key::Key
  - rnp::Key::Key
  - rnp::Key::Key
  - rnp::Key::sig_count
  - '&

    Key::get_sig(size_t idx)'
  - '&

    Key::get_sig(size_t idx) const'
  - rnp::Key::has_sig
  - '&

    Key::get_sig(const pgp::SigID &id)'
  - '&

    Key::get_sig(const pgp::SigID &id) const'
  - '&

    Key::replace_sig(const pgp::SigID &id, const pgp::pkt::Signature &newsig)'
  - '&

    Key::add_sig(const pgp::pkt::Signature &sig, size_t uid, bool begin)'
  - rnp::Key::del_sig
  - rnp::Key::del_sigs
  - rnp::Key::keysig_count
  - '&

    Key::get_keysig(size_t idx)'
  - rnp::Key::uid_count
  - '&

    Key::get_uid(size_t idx)'
  - '&

    Key::get_uid(size_t idx) const'
  - rnp::Key::has_uid
  - rnp::Key::uid_idx
  - rnp::Key::del_uid
  - rnp::Key::has_primary_uid
  - rnp::Key::get_primary_uid
  - '&

    Key::add_uid(const pgp_transferable_userid_t &uid)'
  - rnp::Key::revoked
  - '&

    Key::revocation() const'
  - rnp::Key::clear_revokes
  - rnp::Key::add_revoker
  - rnp::Key::has_revoker
  - rnp::Key::revoker_count
  - '&

    Key::get_revoker(size_t idx) const'
  - '&

    Key::pkt() const noexcept'
  - '&

    Key::pkt() noexcept'
  - rnp::Key::set_pkt
  - rnp::Key::material
  - rnp::Key::material
  - rnp::Key::alg
  - rnp::Key::curve
  - rnp::Key::version
  - rnp::Key::type
  - rnp::Key::encrypted
  - rnp::Key::flags
  - rnp::Key::can_sign
  - rnp::Key::can_certify
  - rnp::Key::can_encrypt
  - rnp::Key::has_secret
  - rnp::Key::is_pqc_alg
  - rnp::Key::is_pqc
  - rnp::Key::usable_for
  - rnp::Key::expiration
  - rnp::Key::expired
  - rnp::Key::creation
  - rnp::Key::is_public
  - rnp::Key::is_secret
  - rnp::Key::is_primary
  - rnp::Key::is_subkey
  - rnp::Key::is_locked
  - rnp::Key::is_protected
  - rnp::Key::valid
  - rnp::Key::validated
  - rnp::Key::valid_till_common
  - rnp::Key::valid_till
  - rnp::Key::valid_at
  - '&

    Key::keyid() const noexcept'
  - '&

    Key::fp() const noexcept'
  - '&

    Key::grip() const noexcept'
  - '&

    Key::primary_fp() const'
  - rnp::Key::has_primary_fp
  - rnp::Key::unset_primary_fp
  - rnp::Key::link_subkey_fp
  - rnp::Key::add_subkey_fp
  - rnp::Key::subkey_count
  - rnp::Key::remove_subkey_fp
  - '&

    Key::get_subkey_fp(size_t idx) const'
  - '&

    Key::subkey_fps() const'
  - rnp::Key::rawpkt_count
  - '&

    Key::rawpkt()'
  - '&

    Key::rawpkt() const'
  - rnp::Key::set_rawpkt
  - rnp::Key::unlock
  - rnp::Key::lock
  - rnp::Key::protect
  - rnp::Key::protect
  - rnp::Key::unprotect
  - rnp::Key::write
  - rnp::Key::write_xfer
  - rnp::Key::write_autocrypt
  - rnp::Key::write_vec
  - rnp::Key::latest_selfsig
  - rnp::Key::latest_binding
  - rnp::Key::latest_uid_selfcert
  - rnp::Key::is_signer
  - rnp::Key::expired_with
  - rnp::Key::is_self_cert
  - rnp::Key::is_direct_self
  - rnp::Key::is_revocation
  - rnp::Key::is_uid_revocation
  - rnp::Key::is_binding
  - rnp::Key::validate_sig
  - rnp::Key::validate_sig
  - rnp::Key::validate_cert
  - rnp::Key::validate_binding
  - rnp::Key::validate_sub_rev
  - rnp::Key::validate_direct
  - rnp::Key::validate_key_rev
  - rnp::Key::validate_self_signatures
  - rnp::Key::validate_self_signatures
  - rnp::Key::validate_desig_revokes
  - rnp::Key::validate_primary
  - rnp::Key::validate_subkey
  - rnp::Key::validate
  - rnp::Key::revalidate
  - rnp::Key::mark_valid
  - rnp::Key::sign_init
  - rnp::Key::sign_cert
  - rnp::Key::sign_direct
  - rnp::Key::sign_binding
  - rnp::Key::gen_revocation
  - rnp::Key::sign_subkey_binding
  - rnp::Key::add_direct_sig
  - rnp::Key::add_uid_cert
  - rnp::Key::add_sub_binding
  - rnp::Key::refresh_revocations
  - rnp::Key::refresh_data
  - rnp::Key::refresh_data
  - rnp::Key::merge_validity
  - rnp::Key::merge
  - rnp::Key::merge
  - pgp_pk_alg_capabilities
  source_file: /src/rnp/src/lib/key.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::LogStop::LogStop
  - ~LogStop()
  - rnp::LogStop::LogStop
  - ~LogStop()
  - RNP_LOG_FD
  - RNP_LOG
  - RNP_LOG_KEY
  - RNP_LOG_FD_NO_POS_INFO
  - RNP_LOG_NO_POS_INFO
  - RNP_LOG_U8VEC
  source_file: /src/rnp/src/lib/logging.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SOURCE_PATH_SIZE
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/rnp/src/lib/logging.h
      type_or_value: '0'
    - item_type: preproc_def
      name: __SOURCE_PATH_FILE__
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/rnp/src/lib/logging.h
      type_or_value: (&(__FILE__[SOURCE_PATH_SIZE + 3]))
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::KeygenParams::alg
  - rnp::KeygenParams::hash
  - rnp::KeygenParams::set_hash
  - rnp::KeygenParams::version
  - rnp::KeygenParams::set_version
  - "&\n    ctx() noexcept"
  - "&\n    key_params() const noexcept"
  - "&\n    key_params() noexcept"
  - rnp::UserPrefs::UserPrefs
  - rnp::KeygenParams::alg
  - rnp::KeygenParams::hash
  - rnp::KeygenParams::set_hash
  - rnp::KeygenParams::version
  - rnp::KeygenParams::set_version
  - "&\n    ctx() noexcept"
  - "&\n    key_params() const noexcept"
  - "&\n    key_params() noexcept"
  - rnp::UserPrefs::UserPrefs
  source_file: /src/rnp/src/lib/keygen.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - grip_hash_mpi
  - grip_hash_ecc_hex
  - grip_hash_ec
  - grip_hash_mpi
  - grip_hash_ecc_hex
  - grip_hash_ec
  - KeyParams::~KeyParams()
  - pgp::KeyParams::create
  - pgp::DSAKeyParams::check_defaults
  - pgp::DSAKeyParams::min_hash
  - pgp::ECCKeyParams::bits
  - pgp::ECDSAKeyParams::min_hash
  - pgp::MlkemEcdhKeyParams::bits
  - pgp::DilithiumEccKeyParams::bits
  - pgp::SlhdsaKeyParams::bits
  - KeyMaterial::~KeyMaterial()
  - pgp::KeyMaterial::alg
  - pgp::KeyMaterial::secret
  - pgp::KeyMaterial::valid
  - pgp::KeyMaterial::validate
  - '&

    KeyMaterial::validity() const noexcept'
  - pgp::KeyMaterial::set_validity
  - pgp::KeyMaterial::reset_validity
  - pgp::KeyMaterial::clear_secret
  - pgp::KeyMaterial::finish_generate
  - pgp::KeyMaterial::generate
  - pgp::KeyMaterial::encrypt
  - pgp::KeyMaterial::decrypt
  - pgp::KeyMaterial::verify
  - pgp::KeyMaterial::sign
  - pgp::KeyMaterial::adjust_hash
  - pgp::KeyMaterial::sig_hash_allowed
  - pgp::KeyMaterial::curve
  - pgp::KeyMaterial::grip
  - pgp::KeyMaterial::create
  - pgp::KeyMaterial::create
  - pgp::KeyMaterial::create
  - pgp::KeyMaterial::create
  - pgp::KeyMaterial::create
  - pgp::RSAKeyMaterial::clone
  - pgp::RSAKeyMaterial::grip_update
  - pgp::RSAKeyMaterial::validate_material
  - pgp::RSAKeyMaterial::clear_secret
  - pgp::RSAKeyMaterial::parse
  - pgp::RSAKeyMaterial::parse_secret
  - pgp::RSAKeyMaterial::write
  - pgp::RSAKeyMaterial::write_secret
  - pgp::RSAKeyMaterial::generate
  - pgp::RSAKeyMaterial::encrypt
  - pgp::RSAKeyMaterial::decrypt
  - pgp::RSAKeyMaterial::verify
  - pgp::RSAKeyMaterial::sign
  - pgp::RSAKeyMaterial::set_secret
  - pgp::RSAKeyMaterial::bits
  - '&

    RSAKeyMaterial::n() const noexcept'
  - '&

    RSAKeyMaterial::e() const noexcept'
  - '&

    RSAKeyMaterial::d() const noexcept'
  - '&

    RSAKeyMaterial::p() const noexcept'
  - '&

    RSAKeyMaterial::q() const noexcept'
  - '&

    RSAKeyMaterial::u() const noexcept'
  - pgp::DSAKeyMaterial::clone
  - pgp::DSAKeyMaterial::grip_update
  - pgp::DSAKeyMaterial::validate_material
  - pgp::DSAKeyMaterial::clear_secret
  - pgp::DSAKeyMaterial::parse
  - pgp::DSAKeyMaterial::parse_secret
  - pgp::DSAKeyMaterial::write
  - pgp::DSAKeyMaterial::write_secret
  - pgp::DSAKeyMaterial::generate
  - pgp::DSAKeyMaterial::verify
  - pgp::DSAKeyMaterial::sign
  - pgp::DSAKeyMaterial::adjust_hash
  - pgp::DSAKeyMaterial::set_secret
  - pgp::DSAKeyMaterial::bits
  - pgp::DSAKeyMaterial::qbits
  - '&

    DSAKeyMaterial::p() const noexcept'
  - '&

    DSAKeyMaterial::q() const noexcept'
  - '&

    DSAKeyMaterial::g() const noexcept'
  - '&

    DSAKeyMaterial::y() const noexcept'
  - '&

    DSAKeyMaterial::x() const noexcept'
  - pgp::EGKeyMaterial::clone
  - pgp::EGKeyMaterial::grip_update
  - pgp::EGKeyMaterial::validate_material
  - pgp::EGKeyMaterial::clear_secret
  - pgp::EGKeyMaterial::parse
  - pgp::EGKeyMaterial::parse_secret
  - pgp::EGKeyMaterial::write
  - pgp::EGKeyMaterial::write_secret
  - pgp::EGKeyMaterial::generate
  - pgp::EGKeyMaterial::encrypt
  - pgp::EGKeyMaterial::decrypt
  - pgp::EGKeyMaterial::verify
  - pgp::EGKeyMaterial::set_secret
  - pgp::EGKeyMaterial::bits
  - '&

    EGKeyMaterial::p() const noexcept'
  - '&

    EGKeyMaterial::g() const noexcept'
  - '&

    EGKeyMaterial::y() const noexcept'
  - '&

    EGKeyMaterial::x() const noexcept'
  - pgp::ECKeyMaterial::grip_update
  - pgp::ECKeyMaterial::clear_secret
  - pgp::ECKeyMaterial::check_curve
  - pgp::ECKeyMaterial::parse
  - pgp::ECKeyMaterial::parse_secret
  - pgp::ECKeyMaterial::write
  - pgp::ECKeyMaterial::write_secret
  - pgp::ECKeyMaterial::generate
  - pgp::ECKeyMaterial::set_secret
  - pgp::ECKeyMaterial::bits
  - pgp::ECKeyMaterial::curve
  - '&

    ECKeyMaterial::p() const noexcept'
  - '&

    ECKeyMaterial::x() const noexcept'
  - pgp::ECDSAKeyMaterial::validate_material
  - pgp::ECDSAKeyMaterial::clone
  - pgp::ECDSAKeyMaterial::verify
  - pgp::ECDSAKeyMaterial::sign
  - pgp::ECDSAKeyMaterial::adjust_hash
  - pgp::ECDHKeyMaterial::validate_material
  - pgp::ECDHKeyMaterial::clone
  - pgp::ECDHKeyMaterial::parse
  - pgp::ECDHKeyMaterial::write
  - pgp::ECDHKeyMaterial::generate
  - pgp::ECDHKeyMaterial::encrypt
  - pgp::ECDHKeyMaterial::decrypt
  - pgp::ECDHKeyMaterial::kdf_hash_alg
  - pgp::ECDHKeyMaterial::key_wrap_alg
  - pgp::ECDHKeyMaterial::x25519_bits_tweaked
  - pgp::ECDHKeyMaterial::x25519_tweak_bits
  - pgp::EDDSAKeyMaterial::validate_material
  - pgp::EDDSAKeyMaterial::clone
  - pgp::EDDSAKeyMaterial::generate
  - pgp::EDDSAKeyMaterial::verify
  - pgp::EDDSAKeyMaterial::sign
  - pgp::SM2KeyMaterial::validate_material
  - pgp::SM2KeyMaterial::clone
  - pgp::SM2KeyMaterial::encrypt
  - pgp::SM2KeyMaterial::decrypt
  - pgp::SM2KeyMaterial::verify
  - pgp::SM2KeyMaterial::sign
  - pgp::SM2KeyMaterial::compute_za
  - pgp::Ed25519KeyMaterial::clone
  - pgp::Ed25519KeyMaterial::grip_update
  - pgp::Ed25519KeyMaterial::validate_material
  - pgp::Ed25519KeyMaterial::clear_secret
  - pgp::Ed25519KeyMaterial::parse
  - pgp::Ed25519KeyMaterial::parse_secret
  - pgp::Ed25519KeyMaterial::write
  - pgp::Ed25519KeyMaterial::write_secret
  - pgp::Ed25519KeyMaterial::generate
  - pgp::Ed25519KeyMaterial::verify
  - pgp::Ed25519KeyMaterial::sign
  - pgp::Ed25519KeyMaterial::adjust_hash
  - pgp::Ed25519KeyMaterial::sig_hash_allowed
  - pgp::Ed25519KeyMaterial::bits
  - pgp::Ed25519KeyMaterial::curve
  - '&

    Ed25519KeyMaterial::pub() const noexcept'
  - '&

    Ed25519KeyMaterial::priv() const noexcept'
  - pgp::X25519KeyMaterial::clone
  - pgp::X25519KeyMaterial::grip_update
  - pgp::X25519KeyMaterial::validate_material
  - pgp::X25519KeyMaterial::clear_secret
  - pgp::X25519KeyMaterial::parse
  - pgp::X25519KeyMaterial::parse_secret
  - pgp::X25519KeyMaterial::write
  - pgp::X25519KeyMaterial::write_secret
  - pgp::X25519KeyMaterial::generate
  - pgp::X25519KeyMaterial::encrypt
  - pgp::X25519KeyMaterial::decrypt
  - pgp::X25519KeyMaterial::bits
  - pgp::X25519KeyMaterial::curve
  - '&

    X25519KeyMaterial::pub() const noexcept'
  - '&

    X25519KeyMaterial::priv() const noexcept'
  - pgp::Ed448KeyMaterial::clone
  - pgp::Ed448KeyMaterial::grip_update
  - pgp::Ed448KeyMaterial::validate_material
  - pgp::Ed448KeyMaterial::clear_secret
  - pgp::Ed448KeyMaterial::parse
  - pgp::Ed448KeyMaterial::parse_secret
  - pgp::Ed448KeyMaterial::write
  - pgp::Ed448KeyMaterial::write_secret
  - pgp::Ed448KeyMaterial::generate
  - pgp::Ed448KeyMaterial::verify
  - pgp::Ed448KeyMaterial::sign
  - pgp::Ed448KeyMaterial::adjust_hash
  - pgp::Ed448KeyMaterial::sig_hash_allowed
  - pgp::Ed448KeyMaterial::bits
  - pgp::Ed448KeyMaterial::curve
  - '&

    Ed448KeyMaterial::pub() const noexcept'
  - '&

    Ed448KeyMaterial::priv() const noexcept'
  - pgp::X448KeyMaterial::clone
  - pgp::X448KeyMaterial::grip_update
  - pgp::X448KeyMaterial::validate_material
  - pgp::X448KeyMaterial::clear_secret
  - pgp::X448KeyMaterial::parse
  - pgp::X448KeyMaterial::parse_secret
  - pgp::X448KeyMaterial::write
  - pgp::X448KeyMaterial::write_secret
  - pgp::X448KeyMaterial::generate
  - pgp::X448KeyMaterial::encrypt
  - pgp::X448KeyMaterial::decrypt
  - pgp::X448KeyMaterial::bits
  - pgp::X448KeyMaterial::curve
  - '&

    X448KeyMaterial::pub() const noexcept'
  - '&

    X448KeyMaterial::priv() const noexcept'
  - pgp::MlkemEcdhKeyMaterial::clone
  - pgp::MlkemEcdhKeyMaterial::grip_update
  - pgp::MlkemEcdhKeyMaterial::validate_material
  - pgp::MlkemEcdhKeyMaterial::clear_secret
  - pgp::MlkemEcdhKeyMaterial::parse
  - pgp::MlkemEcdhKeyMaterial::parse_secret
  - pgp::MlkemEcdhKeyMaterial::write
  - pgp::MlkemEcdhKeyMaterial::write_secret
  - pgp::MlkemEcdhKeyMaterial::generate
  - pgp::MlkemEcdhKeyMaterial::encrypt
  - pgp::MlkemEcdhKeyMaterial::decrypt
  - pgp::MlkemEcdhKeyMaterial::bits
  - '&

    MlkemEcdhKeyMaterial::pub() const noexcept'
  - '&

    MlkemEcdhKeyMaterial::priv() const noexcept'
  - pgp::DilithiumEccKeyMaterial::clone
  - pgp::DilithiumEccKeyMaterial::grip_update
  - pgp::DilithiumEccKeyMaterial::validate_material
  - pgp::DilithiumEccKeyMaterial::clear_secret
  - pgp::DilithiumEccKeyMaterial::parse
  - pgp::DilithiumEccKeyMaterial::parse_secret
  - pgp::DilithiumEccKeyMaterial::write
  - pgp::DilithiumEccKeyMaterial::write_secret
  - pgp::DilithiumEccKeyMaterial::generate
  - pgp::DilithiumEccKeyMaterial::verify
  - pgp::DilithiumEccKeyMaterial::sign
  - pgp::DilithiumEccKeyMaterial::adjust_hash
  - pgp::DilithiumEccKeyMaterial::sig_hash_allowed
  - pgp::DilithiumEccKeyMaterial::bits
  - '&

    DilithiumEccKeyMaterial::pub() const noexcept'
  - '&

    DilithiumEccKeyMaterial::priv() const noexcept'
  - pgp::SlhdsaKeyMaterial::clone
  - pgp::SlhdsaKeyMaterial::grip_update
  - pgp::SlhdsaKeyMaterial::validate_material
  - pgp::SlhdsaKeyMaterial::clear_secret
  - pgp::SlhdsaKeyMaterial::parse
  - pgp::SlhdsaKeyMaterial::parse_secret
  - pgp::SlhdsaKeyMaterial::write
  - pgp::SlhdsaKeyMaterial::write_secret
  - pgp::SlhdsaKeyMaterial::generate
  - pgp::SlhdsaKeyMaterial::verify
  - pgp::SlhdsaKeyMaterial::sign
  - pgp::SlhdsaKeyMaterial::adjust_hash
  - pgp::SlhdsaKeyMaterial::sig_hash_allowed
  - pgp::SlhdsaKeyMaterial::bits
  - '&

    SlhdsaKeyMaterial::pub() const noexcept'
  - '&

    SlhdsaKeyMaterial::priv() const noexcept'
  - KeyParams::~KeyParams()
  - pgp::KeyParams::create
  - pgp::DSAKeyParams::check_defaults
  - pgp::DSAKeyParams::min_hash
  - pgp::ECCKeyParams::bits
  - pgp::ECDSAKeyParams::min_hash
  - pgp::MlkemEcdhKeyParams::bits
  - pgp::DilithiumEccKeyParams::bits
  - pgp::SlhdsaKeyParams::bits
  - KeyMaterial::~KeyMaterial()
  - pgp::KeyMaterial::alg
  - pgp::KeyMaterial::secret
  - pgp::KeyMaterial::valid
  - pgp::KeyMaterial::validate
  - '&

    KeyMaterial::validity() const noexcept'
  - pgp::KeyMaterial::set_validity
  - pgp::KeyMaterial::reset_validity
  - pgp::KeyMaterial::clear_secret
  - pgp::KeyMaterial::finish_generate
  - pgp::KeyMaterial::generate
  - pgp::KeyMaterial::encrypt
  - pgp::KeyMaterial::decrypt
  - pgp::KeyMaterial::verify
  - pgp::KeyMaterial::sign
  - pgp::KeyMaterial::adjust_hash
  - pgp::KeyMaterial::sig_hash_allowed
  - pgp::KeyMaterial::curve
  - pgp::KeyMaterial::grip
  - pgp::KeyMaterial::create
  - pgp::KeyMaterial::create
  - pgp::KeyMaterial::create
  - pgp::KeyMaterial::create
  - pgp::KeyMaterial::create
  - pgp::RSAKeyMaterial::clone
  - pgp::RSAKeyMaterial::grip_update
  - pgp::RSAKeyMaterial::validate_material
  - pgp::RSAKeyMaterial::clear_secret
  - pgp::RSAKeyMaterial::parse
  - pgp::RSAKeyMaterial::parse_secret
  - pgp::RSAKeyMaterial::write
  - pgp::RSAKeyMaterial::write_secret
  - pgp::RSAKeyMaterial::generate
  - pgp::RSAKeyMaterial::encrypt
  - pgp::RSAKeyMaterial::decrypt
  - pgp::RSAKeyMaterial::verify
  - pgp::RSAKeyMaterial::sign
  - pgp::RSAKeyMaterial::set_secret
  - pgp::RSAKeyMaterial::bits
  - '&

    RSAKeyMaterial::n() const noexcept'
  - '&

    RSAKeyMaterial::e() const noexcept'
  - '&

    RSAKeyMaterial::d() const noexcept'
  - '&

    RSAKeyMaterial::p() const noexcept'
  - '&

    RSAKeyMaterial::q() const noexcept'
  - '&

    RSAKeyMaterial::u() const noexcept'
  - pgp::DSAKeyMaterial::clone
  - pgp::DSAKeyMaterial::grip_update
  - pgp::DSAKeyMaterial::validate_material
  - pgp::DSAKeyMaterial::clear_secret
  - pgp::DSAKeyMaterial::parse
  - pgp::DSAKeyMaterial::parse_secret
  - pgp::DSAKeyMaterial::write
  - pgp::DSAKeyMaterial::write_secret
  - pgp::DSAKeyMaterial::generate
  - pgp::DSAKeyMaterial::verify
  - pgp::DSAKeyMaterial::sign
  - pgp::DSAKeyMaterial::adjust_hash
  - pgp::DSAKeyMaterial::set_secret
  - pgp::DSAKeyMaterial::bits
  - pgp::DSAKeyMaterial::qbits
  - '&

    DSAKeyMaterial::p() const noexcept'
  - '&

    DSAKeyMaterial::q() const noexcept'
  - '&

    DSAKeyMaterial::g() const noexcept'
  - '&

    DSAKeyMaterial::y() const noexcept'
  - '&

    DSAKeyMaterial::x() const noexcept'
  - pgp::EGKeyMaterial::clone
  - pgp::EGKeyMaterial::grip_update
  - pgp::EGKeyMaterial::validate_material
  - pgp::EGKeyMaterial::clear_secret
  - pgp::EGKeyMaterial::parse
  - pgp::EGKeyMaterial::parse_secret
  - pgp::EGKeyMaterial::write
  - pgp::EGKeyMaterial::write_secret
  - pgp::EGKeyMaterial::generate
  - pgp::EGKeyMaterial::encrypt
  - pgp::EGKeyMaterial::decrypt
  - pgp::EGKeyMaterial::verify
  - pgp::EGKeyMaterial::set_secret
  - pgp::EGKeyMaterial::bits
  - '&

    EGKeyMaterial::p() const noexcept'
  - '&

    EGKeyMaterial::g() const noexcept'
  - '&

    EGKeyMaterial::y() const noexcept'
  - '&

    EGKeyMaterial::x() const noexcept'
  - pgp::ECKeyMaterial::grip_update
  - pgp::ECKeyMaterial::clear_secret
  - pgp::ECKeyMaterial::check_curve
  - pgp::ECKeyMaterial::parse
  - pgp::ECKeyMaterial::parse_secret
  - pgp::ECKeyMaterial::write
  - pgp::ECKeyMaterial::write_secret
  - pgp::ECKeyMaterial::generate
  - pgp::ECKeyMaterial::set_secret
  - pgp::ECKeyMaterial::bits
  - pgp::ECKeyMaterial::curve
  - '&

    ECKeyMaterial::p() const noexcept'
  - '&

    ECKeyMaterial::x() const noexcept'
  - pgp::ECDSAKeyMaterial::validate_material
  - pgp::ECDSAKeyMaterial::clone
  - pgp::ECDSAKeyMaterial::verify
  - pgp::ECDSAKeyMaterial::sign
  - pgp::ECDSAKeyMaterial::adjust_hash
  - pgp::ECDHKeyMaterial::validate_material
  - pgp::ECDHKeyMaterial::clone
  - pgp::ECDHKeyMaterial::parse
  - pgp::ECDHKeyMaterial::write
  - pgp::ECDHKeyMaterial::generate
  - pgp::ECDHKeyMaterial::encrypt
  - pgp::ECDHKeyMaterial::decrypt
  - pgp::ECDHKeyMaterial::kdf_hash_alg
  - pgp::ECDHKeyMaterial::key_wrap_alg
  - pgp::ECDHKeyMaterial::x25519_bits_tweaked
  - pgp::ECDHKeyMaterial::x25519_tweak_bits
  - pgp::EDDSAKeyMaterial::validate_material
  - pgp::EDDSAKeyMaterial::clone
  - pgp::EDDSAKeyMaterial::generate
  - pgp::EDDSAKeyMaterial::verify
  - pgp::EDDSAKeyMaterial::sign
  - pgp::SM2KeyMaterial::validate_material
  - pgp::SM2KeyMaterial::clone
  - pgp::SM2KeyMaterial::encrypt
  - pgp::SM2KeyMaterial::decrypt
  - pgp::SM2KeyMaterial::verify
  - pgp::SM2KeyMaterial::sign
  - pgp::SM2KeyMaterial::compute_za
  - pgp::Ed25519KeyMaterial::clone
  - pgp::Ed25519KeyMaterial::grip_update
  - pgp::Ed25519KeyMaterial::validate_material
  - pgp::Ed25519KeyMaterial::clear_secret
  - pgp::Ed25519KeyMaterial::parse
  - pgp::Ed25519KeyMaterial::parse_secret
  - pgp::Ed25519KeyMaterial::write
  - pgp::Ed25519KeyMaterial::write_secret
  - pgp::Ed25519KeyMaterial::generate
  - pgp::Ed25519KeyMaterial::verify
  - pgp::Ed25519KeyMaterial::sign
  - pgp::Ed25519KeyMaterial::adjust_hash
  - pgp::Ed25519KeyMaterial::sig_hash_allowed
  - pgp::Ed25519KeyMaterial::bits
  - pgp::Ed25519KeyMaterial::curve
  - '&

    Ed25519KeyMaterial::pub() const noexcept'
  - '&

    Ed25519KeyMaterial::priv() const noexcept'
  - pgp::X25519KeyMaterial::clone
  - pgp::X25519KeyMaterial::grip_update
  - pgp::X25519KeyMaterial::validate_material
  - pgp::X25519KeyMaterial::clear_secret
  - pgp::X25519KeyMaterial::parse
  - pgp::X25519KeyMaterial::parse_secret
  - pgp::X25519KeyMaterial::write
  - pgp::X25519KeyMaterial::write_secret
  - pgp::X25519KeyMaterial::generate
  - pgp::X25519KeyMaterial::encrypt
  - pgp::X25519KeyMaterial::decrypt
  - pgp::X25519KeyMaterial::bits
  - pgp::X25519KeyMaterial::curve
  - '&

    X25519KeyMaterial::pub() const noexcept'
  - '&

    X25519KeyMaterial::priv() const noexcept'
  - pgp::Ed448KeyMaterial::clone
  - pgp::Ed448KeyMaterial::grip_update
  - pgp::Ed448KeyMaterial::validate_material
  - pgp::Ed448KeyMaterial::clear_secret
  - pgp::Ed448KeyMaterial::parse
  - pgp::Ed448KeyMaterial::parse_secret
  - pgp::Ed448KeyMaterial::write
  - pgp::Ed448KeyMaterial::write_secret
  - pgp::Ed448KeyMaterial::generate
  - pgp::Ed448KeyMaterial::verify
  - pgp::Ed448KeyMaterial::sign
  - pgp::Ed448KeyMaterial::adjust_hash
  - pgp::Ed448KeyMaterial::sig_hash_allowed
  - pgp::Ed448KeyMaterial::bits
  - pgp::Ed448KeyMaterial::curve
  - '&

    Ed448KeyMaterial::pub() const noexcept'
  - '&

    Ed448KeyMaterial::priv() const noexcept'
  - pgp::X448KeyMaterial::clone
  - pgp::X448KeyMaterial::grip_update
  - pgp::X448KeyMaterial::validate_material
  - pgp::X448KeyMaterial::clear_secret
  - pgp::X448KeyMaterial::parse
  - pgp::X448KeyMaterial::parse_secret
  - pgp::X448KeyMaterial::write
  - pgp::X448KeyMaterial::write_secret
  - pgp::X448KeyMaterial::generate
  - pgp::X448KeyMaterial::encrypt
  - pgp::X448KeyMaterial::decrypt
  - pgp::X448KeyMaterial::bits
  - pgp::X448KeyMaterial::curve
  - '&

    X448KeyMaterial::pub() const noexcept'
  - '&

    X448KeyMaterial::priv() const noexcept'
  - pgp::MlkemEcdhKeyMaterial::clone
  - pgp::MlkemEcdhKeyMaterial::grip_update
  - pgp::MlkemEcdhKeyMaterial::validate_material
  - pgp::MlkemEcdhKeyMaterial::clear_secret
  - pgp::MlkemEcdhKeyMaterial::parse
  - pgp::MlkemEcdhKeyMaterial::parse_secret
  - pgp::MlkemEcdhKeyMaterial::write
  - pgp::MlkemEcdhKeyMaterial::write_secret
  - pgp::MlkemEcdhKeyMaterial::generate
  - pgp::MlkemEcdhKeyMaterial::encrypt
  - pgp::MlkemEcdhKeyMaterial::decrypt
  - pgp::MlkemEcdhKeyMaterial::bits
  - '&

    MlkemEcdhKeyMaterial::pub() const noexcept'
  - '&

    MlkemEcdhKeyMaterial::priv() const noexcept'
  - pgp::DilithiumEccKeyMaterial::clone
  - pgp::DilithiumEccKeyMaterial::grip_update
  - pgp::DilithiumEccKeyMaterial::validate_material
  - pgp::DilithiumEccKeyMaterial::clear_secret
  - pgp::DilithiumEccKeyMaterial::parse
  - pgp::DilithiumEccKeyMaterial::parse_secret
  - pgp::DilithiumEccKeyMaterial::write
  - pgp::DilithiumEccKeyMaterial::write_secret
  - pgp::DilithiumEccKeyMaterial::generate
  - pgp::DilithiumEccKeyMaterial::verify
  - pgp::DilithiumEccKeyMaterial::sign
  - pgp::DilithiumEccKeyMaterial::adjust_hash
  - pgp::DilithiumEccKeyMaterial::sig_hash_allowed
  - pgp::DilithiumEccKeyMaterial::bits
  - '&

    DilithiumEccKeyMaterial::pub() const noexcept'
  - '&

    DilithiumEccKeyMaterial::priv() const noexcept'
  - pgp::SlhdsaKeyMaterial::clone
  - pgp::SlhdsaKeyMaterial::grip_update
  - pgp::SlhdsaKeyMaterial::validate_material
  - pgp::SlhdsaKeyMaterial::clear_secret
  - pgp::SlhdsaKeyMaterial::parse
  - pgp::SlhdsaKeyMaterial::parse_secret
  - pgp::SlhdsaKeyMaterial::write
  - pgp::SlhdsaKeyMaterial::write_secret
  - pgp::SlhdsaKeyMaterial::generate
  - pgp::SlhdsaKeyMaterial::verify
  - pgp::SlhdsaKeyMaterial::sign
  - pgp::SlhdsaKeyMaterial::adjust_hash
  - pgp::SlhdsaKeyMaterial::sig_hash_allowed
  - pgp::SlhdsaKeyMaterial::bits
  - '&

    SlhdsaKeyMaterial::pub() const noexcept'
  - '&

    SlhdsaKeyMaterial::priv() const noexcept'
  source_file: /src/rnp/src/lib/key_material.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ARRAY_SIZE
  - ARRAY_LOOKUP_BY_ID
  - BITS_TO_BYTES
  - read_uint16
  - read_uint32
  - write_uint16
  - write_uint32
  - write_uint64
  - getenv_logname
  source_file: /src/rnp/src/lib/utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::UserID::UserID
  - rnp::UserID::sig_count
  - '&

    UserID::get_sig(size_t idx) const'
  - rnp::UserID::has_sig
  - rnp::UserID::add_sig
  - rnp::UserID::replace_sig
  - rnp::UserID::del_sig
  - rnp::UserID::clear_sigs
  - rnp::UserID::UserID
  - rnp::UserID::sig_count
  - '&

    UserID::get_sig(size_t idx) const'
  - rnp::UserID::has_sig
  - rnp::UserID::add_sig
  - rnp::UserID::replace_sig
  - rnp::UserID::del_sig
  - rnp::UserID::clear_sigs
  source_file: /src/rnp/src/lib/userid.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::KeyParams::min_hash
  - pgp::KeyParams::check_defaults
  - pgp::BitsKeyParams::BitsKeyParams
  - pgp::BitsKeyParams::bits
  - pgp::BitsKeyParams::set_bits
  - pgp::RSAKeyParams::RSAKeyParams
  - pgp::DSAKeyParams::DSAKeyParams
  - pgp::DSAKeyParams::qbits
  - pgp::DSAKeyParams::set_qbits
  - pgp::EGKeyParams::EGKeyParams
  - pgp::ECCKeyParams::ECCKeyParams
  - pgp::ECCKeyParams::curve
  - pgp::ECCKeyParams::set_curve
  - pgp::MlkemEcdhKeyParams::MlkemEcdhKeyParams
  - pgp::DilithiumEccKeyParams::DilithiumEccKeyParams
  - pgp::SlhdsaKeyParams::SlhdsaKeyParams
  - pgp::KeyMaterial::KeyMaterial
  - pgp::RSAKeyMaterial::RSAKeyMaterial
  - pgp::RSAKeyMaterial::RSAKeyMaterial
  - pgp::DSAKeyMaterial::DSAKeyMaterial
  - pgp::DSAKeyMaterial::DSAKeyMaterial
  - pgp::EGKeyMaterial::EGKeyMaterial
  - pgp::EGKeyMaterial::EGKeyMaterial
  - pgp::ECKeyMaterial::ECKeyMaterial
  - pgp::ECKeyMaterial::ECKeyMaterial
  - pgp::ECDSAKeyMaterial::ECDSAKeyMaterial
  - pgp::ECDSAKeyMaterial::ECDSAKeyMaterial
  - pgp::ECDHKeyMaterial::ECDHKeyMaterial
  - pgp::ECDHKeyMaterial::ECDHKeyMaterial
  - pgp::EDDSAKeyMaterial::EDDSAKeyMaterial
  - pgp::EDDSAKeyMaterial::EDDSAKeyMaterial
  - pgp::SM2KeyMaterial::SM2KeyMaterial
  - pgp::SM2KeyMaterial::SM2KeyMaterial
  - pgp::Ed25519KeyMaterial::Ed25519KeyMaterial
  - pgp::X25519KeyMaterial::X25519KeyMaterial
  - pgp::Ed448KeyMaterial::Ed448KeyMaterial
  - pgp::X448KeyMaterial::X448KeyMaterial
  - pgp::MlkemEcdhKeyMaterial::MlkemEcdhKeyMaterial
  - pgp::DilithiumEccKeyMaterial::DilithiumEccKeyMaterial
  - pgp::SlhdsaKeyMaterial::SlhdsaKeyMaterial
  - pgp::KeyParams::min_hash
  - pgp::KeyParams::check_defaults
  - pgp::BitsKeyParams::BitsKeyParams
  - pgp::BitsKeyParams::bits
  - pgp::BitsKeyParams::set_bits
  - pgp::RSAKeyParams::RSAKeyParams
  - pgp::DSAKeyParams::DSAKeyParams
  - pgp::DSAKeyParams::qbits
  - pgp::DSAKeyParams::set_qbits
  - pgp::EGKeyParams::EGKeyParams
  - pgp::ECCKeyParams::ECCKeyParams
  - pgp::ECCKeyParams::curve
  - pgp::ECCKeyParams::set_curve
  - pgp::MlkemEcdhKeyParams::MlkemEcdhKeyParams
  - pgp::DilithiumEccKeyParams::DilithiumEccKeyParams
  - pgp::SlhdsaKeyParams::SlhdsaKeyParams
  - pgp::KeyMaterial::KeyMaterial
  - pgp::RSAKeyMaterial::RSAKeyMaterial
  - pgp::RSAKeyMaterial::RSAKeyMaterial
  - pgp::DSAKeyMaterial::DSAKeyMaterial
  - pgp::DSAKeyMaterial::DSAKeyMaterial
  - pgp::EGKeyMaterial::EGKeyMaterial
  - pgp::EGKeyMaterial::EGKeyMaterial
  - pgp::ECKeyMaterial::ECKeyMaterial
  - pgp::ECKeyMaterial::ECKeyMaterial
  - pgp::ECDSAKeyMaterial::ECDSAKeyMaterial
  - pgp::ECDSAKeyMaterial::ECDSAKeyMaterial
  - pgp::ECDHKeyMaterial::ECDHKeyMaterial
  - pgp::ECDHKeyMaterial::ECDHKeyMaterial
  - pgp::EDDSAKeyMaterial::EDDSAKeyMaterial
  - pgp::EDDSAKeyMaterial::EDDSAKeyMaterial
  - pgp::SM2KeyMaterial::SM2KeyMaterial
  - pgp::SM2KeyMaterial::SM2KeyMaterial
  - pgp::Ed25519KeyMaterial::Ed25519KeyMaterial
  - pgp::X25519KeyMaterial::X25519KeyMaterial
  - pgp::Ed448KeyMaterial::Ed448KeyMaterial
  - pgp::X448KeyMaterial::X448KeyMaterial
  - pgp::MlkemEcdhKeyMaterial::MlkemEcdhKeyMaterial
  - pgp::DilithiumEccKeyMaterial::DilithiumEccKeyMaterial
  - pgp::SlhdsaKeyMaterial::SlhdsaKeyMaterial
  source_file: /src/rnp/src/lib/key_material.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: pgp_packet_body_t
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/rnp/src/lib/key_material.hpp
      type: pgp_packet_body_t
    union: []
- function_names:
  - rnp::KeygenParams::KeygenParams
  - rnp::KeygenParams::check_defaults
  - rnp::KeygenParams::validate
  - rnp::KeygenParams::validate
  - rnp::KeygenParams::validate
  - rnp::KeygenParams::generate
  - rnp::load_generated_g10_key
  - rnp::KeygenParams::generate
  - rnp::KeygenParams::generate
  - rnp::UserPrefs::UserPrefs
  - rnp::UserPrefs::add_uniq
  - rnp::UserPrefs::add_symm_alg
  - rnp::UserPrefs::add_hash_alg
  - rnp::UserPrefs::add_z_alg
  - rnp::UserPrefs::add_ks_pref
  - rnp::UserPrefs::add_aead_prefs
  - rnp::UserPrefs::check_defaults
  - rnp::CertParams::check_defaults
  - rnp::CertParams::populate
  - rnp::CertParams::populate
  - rnp::CertParams::populate
  - rnp::BindingParams::check_defaults
  - rnp::KeygenParams::KeygenParams
  - rnp::KeygenParams::check_defaults
  - rnp::KeygenParams::validate
  - rnp::KeygenParams::validate
  - rnp::KeygenParams::validate
  - rnp::KeygenParams::generate
  - rnp::load_generated_g10_key
  - rnp::KeygenParams::generate
  - rnp::KeygenParams::generate
  - rnp::UserPrefs::UserPrefs
  - rnp::UserPrefs::add_uniq
  - rnp::UserPrefs::add_symm_alg
  - rnp::UserPrefs::add_hash_alg
  - rnp::UserPrefs::add_z_alg
  - rnp::UserPrefs::add_ks_pref
  - rnp::UserPrefs::add_aead_prefs
  - rnp::UserPrefs::check_defaults
  - rnp::CertParams::check_defaults
  - rnp::CertParams::populate
  - rnp::CertParams::populate
  - rnp::CertParams::populate
  - rnp::BindingParams::check_defaults
  source_file: /src/rnp/src/lib/keygen.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp_password_provider_string
  - pgp_request_password
  source_file: /src/rnp/src/lib/pass-provider.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - set_rnp_log_switch
  - rnp_log_switch
  - rnp_log_stop
  - rnp_log_continue
  source_file: /src/rnp/src/lib/logging.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp_password_ctx_t
  - pgp_password_provider_t
  source_file: /src/rnp/src/lib/pass-provider.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: op
        type: uint8_t
      - name: '*key'
        type: rnp::Key
      item_type: struct
      name: pgp_password_ctx_t
      pos:
        line_end: 40
        line_start: 35
        source_file: /src/rnp/src/lib/pass-provider.h
    - fields:
      - name: '*callback'
        type: pgp_password_callback_t
      - name: '*                   userdata'
        type: void
      item_type: struct
      name: pgp_password_provider_t
      pos:
        line_end: 52
        line_start: 47
        source_file: /src/rnp/src/lib/pass-provider.h
    typedefs:
    - item_type: typedef
      name: "pgp_password_callback_t(const pgp_password_ctx_t *ctx,\n                                     char
        *                    password,\n                                     size_t
        \                   password_size,\n                                     void
        *                    userdata)"
      pos:
        line_end: 45
        line_start: 42
        source_file: /src/rnp/src/lib/pass-provider.h
      type: bool
    union: []
- function_names:
  - rnp::SecurityRule
  - rnp::SecurityRule
  source_file: /src/rnp/src/lib/sec_profile.hpp
  types:
    enum:
    - enumerators:
      - name: Hash
      - name: Cipher
      - name: PublicKey
      item_type: enum
      name: FeatureType
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/rnp/src/lib/sec_profile.hpp
    - enumerators:
      - name: Disabled
      - name: Default
      - name: Insecure
      item_type: enum
      name: SecurityLevel
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/rnp/src/lib/sec_profile.hpp
    - enumerators:
      - name: Any
      - name: VerifyKey
      - name: VerifyData
      item_type: enum
      name: SecurityAction
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/rnp/src/lib/sec_profile.hpp
    - enumerators:
      - name: Hash
      - name: Cipher
      - name: PublicKey
      item_type: enum
      name: FeatureType
      pos:
        line_end: 36
        line_start: 36
        source_file: /src/rnp/src/lib/sec_profile.hpp
    - enumerators:
      - name: Disabled
      - name: Default
      - name: Insecure
      item_type: enum
      name: SecurityLevel
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/rnp/src/lib/sec_profile.hpp
    - enumerators:
      - name: Any
      - name: VerifyKey
      - name: VerifyData
      item_type: enum
      name: SecurityAction
      pos:
        line_end: 38
        line_start: 38
        source_file: /src/rnp/src/lib/sec_profile.hpp
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: FeatureType
      - name: feature
        type: int
      - name: level
        type: SecurityLevel
      - name: from
        type: uint64_t
      - name: override
        type: bool
      - name: action
        type: SecurityAction
      - name: operator==(const SecurityRule &src) const
        type: bool
      - name: operator!=(const SecurityRule &src) const
        type: bool
      - name: "matches(FeatureType    ftype,\n                 int            fval,\n
          \                uint64_t       ftime,\n                 SecurityAction
          faction) const noexcept"
        type: bool
      item_type: struct
      name: SecurityRule
      pos:
        line_end: 63
        line_start: 40
        source_file: /src/rnp/src/lib/sec_profile.hpp
    - fields:
      - name: type
        type: FeatureType
      - name: feature
        type: int
      - name: level
        type: SecurityLevel
      - name: from
        type: uint64_t
      - name: override
        type: bool
      - name: action
        type: SecurityAction
      - name: operator==(const SecurityRule &src) const
        type: bool
      - name: operator!=(const SecurityRule &src) const
        type: bool
      - name: "matches(FeatureType    ftype,\n                 int            fval,\n
          \                uint64_t       ftime,\n                 SecurityAction
          faction) const noexcept"
        type: bool
      item_type: struct
      name: SecurityRule
      pos:
        line_end: 63
        line_start: 40
        source_file: /src/rnp/src/lib/sec_profile.hpp
    typedefs: []
    union: []
- function_names:
  - pgp::SigMaterial::create
  - pgp::RSASigMaterial::parse
  - pgp::RSASigMaterial::write
  - pgp::DSASigMaterial::parse
  - pgp::DSASigMaterial::write
  - pgp::EGSigMaterial::parse
  - pgp::EGSigMaterial::write
  - pgp::ECSigMaterial::parse
  - pgp::ECSigMaterial::write
  - pgp::Ed25519SigMaterial::parse
  - pgp::Ed25519SigMaterial::write
  - pgp::Ed448SigMaterial::parse
  - pgp::Ed448SigMaterial::write
  - pgp::DilithiumSigMaterial::parse
  - pgp::DilithiumSigMaterial::write
  - pgp::SlhdsaSigMaterial::parse
  - pgp::SlhdsaSigMaterial::write
  - pgp::SigMaterial::create
  - pgp::RSASigMaterial::parse
  - pgp::RSASigMaterial::write
  - pgp::DSASigMaterial::parse
  - pgp::DSASigMaterial::write
  - pgp::EGSigMaterial::parse
  - pgp::EGSigMaterial::write
  - pgp::ECSigMaterial::parse
  - pgp::ECSigMaterial::write
  - pgp::Ed25519SigMaterial::parse
  - pgp::Ed25519SigMaterial::write
  - pgp::Ed448SigMaterial::parse
  - pgp::Ed448SigMaterial::write
  - pgp::DilithiumSigMaterial::parse
  - pgp::DilithiumSigMaterial::write
  - pgp::SlhdsaSigMaterial::parse
  - pgp::SlhdsaSigMaterial::write
  source_file: /src/rnp/src/lib/sig_material.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::KeySearch::type
  - ~KeySearch()
  - rnp::KeyProvider::KeyProvider
  - rnp::KeySearch::type
  - ~KeySearch()
  - rnp::KeyProvider::KeyProvider
  - pgp_key_request_ctx_t
  source_file: /src/rnp/src/lib/key-provider.h
  types:
    enum:
    - enumerators:
      - name: Unknown
      - name: KeyID
      - name: Grip
      - name: UserID
      - name: Fingerprint
      item_type: enum
      name: Type
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/rnp/src/lib/key-provider.h
    - enumerators:
      - name: Unknown
      - name: KeyID
      - name: Grip
      - name: UserID
      - name: Fingerprint
      item_type: enum
      name: Type
      pos:
        line_end: 43
        line_start: 43
        source_file: /src/rnp/src/lib/key-provider.h
    preproc_defs: []
    structs:
    - fields:
      - name: op
        type: pgp_op_t
      - name: secret
        type: bool
      - name: '&search'
        type: rnp::KeySearch
      item_type: struct
      name: pgp_key_request_ctx_t
      pos:
        line_end: 142
        line_start: 133
        source_file: /src/rnp/src/lib/key-provider.h
    typedefs:
    - item_type: typedef
      name: pgp_key_request_ctx_t
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/rnp/src/lib/key-provider.h
      type: pgp_key_request_ctx_t
    - item_type: typedef
      name: '*pgp_key_callback_t(const pgp_key_request_ctx_t *ctx, void *userdata)'
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/rnp/src/lib/key-provider.h
      type: Key
    union: []
- function_names:
  - operator()(pgp::Fingerprint const &fp) const noexcept
  - operator()(pgp::Fingerprint const &fp) const noexcept
  source_file: /src/rnp/src/lib/fingerprint.hpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PGP_KEY_ID_SIZE
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/rnp/src/lib/fingerprint.hpp
      type_or_value: '8'
    - item_type: preproc_def
      name: PGP_FINGERPRINT_V3_SIZE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/rnp/src/lib/fingerprint.hpp
      type_or_value: '16'
    - item_type: preproc_def
      name: PGP_FINGERPRINT_V4_SIZE
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/rnp/src/lib/fingerprint.hpp
      type_or_value: '20'
    - item_type: preproc_def
      name: PGP_FINGERPRINT_V5_SIZE
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/rnp/src/lib/fingerprint.hpp
      type_or_value: '32'
    - item_type: preproc_def
      name: PGP_MAX_FINGERPRINT_SIZE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/rnp/src/lib/fingerprint.hpp
      type_or_value: '32'
    - item_type: preproc_def
      name: PGP_FINGERPRINT_HEX_SIZE
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/rnp/src/lib/fingerprint.hpp
      type_or_value: (PGP_MAX_FINGERPRINT_SIZE * 2) + 1
    - item_type: preproc_def
      name: PGP_FINGERPRINT_V6_SIZE
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/rnp/src/lib/fingerprint.hpp
      type_or_value: '32'
    structs:
    - fields: []
      item_type: struct
      name: hash<pgp::Fingerprint>
      pos:
        line_end: 94
        line_start: 84
        source_file: /src/rnp/src/lib/fingerprint.hpp
    - fields: []
      item_type: struct
      name: hash<pgp::Fingerprint>
      pos:
        line_end: 94
        line_start: 84
        source_file: /src/rnp/src/lib/fingerprint.hpp
    typedefs:
    - item_type: typedef
      name: pgp_key_pkt_t
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/rnp/src/lib/fingerprint.hpp
      type: pgp_key_pkt_t
    union: []
- function_names:
  - rnp::SigValidity::SigValidity
  - "&\n    errors() const noexcept"
  - rnp::SigValidity::add_error
  - rnp::SigValidity::valid
  - rnp::SigValidity::validated
  - rnp::SigValidity::mark_validated
  - rnp::SigValidity::reset
  - rnp::SigValidity::unknown
  - rnp::SigValidity::expired
  - rnp::SigValidity::no_signer
  - rnp::Signature::Signature
  - rnp::Revocation::Revocation
  - rnp::SigValidity::SigValidity
  - "&\n    errors() const noexcept"
  - rnp::SigValidity::add_error
  - rnp::SigValidity::valid
  - rnp::SigValidity::validated
  - rnp::SigValidity::mark_validated
  - rnp::SigValidity::reset
  - rnp::SigValidity::unknown
  - rnp::SigValidity::expired
  - rnp::SigValidity::no_signer
  - rnp::Signature::Signature
  - rnp::Revocation::Revocation
  source_file: /src/rnp/src/lib/signature.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - SecurityRule::operator==(const SecurityRule &src) const
  - SecurityRule::operator!=(const SecurityRule &src) const
  - rnp::SecurityRule::matches
  - rnp::SecurityProfile::size
  - '&

    SecurityProfile::add_rule(const SecurityRule &rule)'
  - '&

    SecurityProfile::add_rule(SecurityRule &&rule)'
  - rnp::SecurityProfile::del_rule
  - rnp::SecurityProfile::clear_rules
  - rnp::SecurityProfile::clear_rules
  - rnp::SecurityProfile::clear_rules
  - rnp::SecurityProfile::has_rule
  - "&\nSecurityProfile::get_rule(FeatureType    type,\n                          int
    \           value,\n                          uint64_t       time,\n                          SecurityAction
    action) const"
  - rnp::SecurityProfile::hash_level
  - rnp::SecurityProfile::def_level
  - rnp::SecurityContext::SecurityContext
  - SecurityContext::~SecurityContext()
  - rnp::SecurityContext::s2k_iterations
  - rnp::SecurityContext::set_time
  - rnp::SecurityContext::time
  - SecurityRule::operator==(const SecurityRule &src) const
  - SecurityRule::operator!=(const SecurityRule &src) const
  - rnp::SecurityRule::matches
  - rnp::SecurityProfile::size
  - '&

    SecurityProfile::add_rule(const SecurityRule &rule)'
  - '&

    SecurityProfile::add_rule(SecurityRule &&rule)'
  - rnp::SecurityProfile::del_rule
  - rnp::SecurityProfile::clear_rules
  - rnp::SecurityProfile::clear_rules
  - rnp::SecurityProfile::clear_rules
  - rnp::SecurityProfile::has_rule
  - "&\nSecurityProfile::get_rule(FeatureType    type,\n                          int
    \           value,\n                          uint64_t       time,\n                          SecurityAction
    action) const"
  - rnp::SecurityProfile::hash_level
  - rnp::SecurityProfile::def_level
  - rnp::SecurityContext::SecurityContext
  - SecurityContext::~SecurityContext()
  - rnp::SecurityContext::s2k_iterations
  - rnp::SecurityContext::set_time
  - rnp::SecurityContext::time
  source_file: /src/rnp/src/lib/sec_profile.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - operator()(pgp::SigID const &sigid) const noexcept
  - operator()(pgp::SigID const &sigid) const noexcept
  - rnp::rnp_exception::rnp_exception
  - rnp::rnp_exception::what
  - rnp::rnp_exception::code
  - rnp::rnp_exception::rnp_exception
  - rnp::rnp_exception::what
  - rnp::rnp_exception::code
  - pgp_aead_hdr_t
  source_file: /src/rnp/src/lib/types.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PGP_SHA1_HASH_SIZE
      pos:
        line_end: 42
        line_start: 41
        source_file: /src/rnp/src/lib/types.h
      type_or_value: '20'
    - item_type: preproc_def
      name: PGP_MAX_HEADER_SIZE
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/rnp/src/lib/types.h
      type_or_value: '6'
    - item_type: preproc_def
      name: MAX_ID_LENGTH
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/rnp/src/lib/types.h
      type_or_value: '128'
    - item_type: preproc_def
      name: MAX_PASSWORD_LENGTH
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/rnp/src/lib/types.h
      type_or_value: '256'
    structs:
    - fields: []
      item_type: struct
      name: hash<pgp::SigID>
      pos:
        line_end: 92
        line_start: 81
        source_file: /src/rnp/src/lib/types.h
    - fields: []
      item_type: struct
      name: hash<pgp::SigID>
      pos:
        line_end: 92
        line_start: 81
        source_file: /src/rnp/src/lib/types.h
    - fields:
      - name: validated
        type: bool
      - name: valid
        type: bool
      - name: expired
        type: bool
      - name: mark_valid()
        type: void
      - name: reset()
        type: void
      item_type: struct
      name: pgp_validity_t
      pos:
        line_end: 123
        line_start: 115
        source_file: /src/rnp/src/lib/types.h
    - fields:
      - name: usage
        type: pgp_s2k_usage_t
      - name: specifier
        type: pgp_s2k_specifier_t
      - name: hash_alg
        type: pgp_hash_alg_t
      - name: iterations
        type: unsigned
      - name: gpg_ext_num
        type: pgp_s2k_gpg_extension_t
      - name: gpg_serial_len
        type: uint8_t
      - name: gpg_serial[16]
        type: uint8_t
      - name: experimental
        type: std::vector<uint8_t>
      - name: salt_size(pgp_s2k_specifier_t specifier)
        type: size_t
      - name: specifier_len(pgp_s2k_specifier_t specifier)
        type: uint8_t
      item_type: struct
      name: pgp_s2k_t
      pos:
        line_end: 153
        line_start: 125
        source_file: /src/rnp/src/lib/types.h
    - fields:
      - name: s2k
        type: pgp_s2k_t
      - name: symm_alg
        type: pgp_symm_alg_t
      - name: cipher_mode
        type: pgp_cipher_mode_t
      - name: iv[PGP_MAX_BLOCK_SIZE]
        type: uint8_t
      item_type: struct
      name: pgp_key_protection_t
      pos:
        line_end: 163
        line_start: 155
        source_file: /src/rnp/src/lib/types.h
    - fields:
      - name: format
        type: uint8_t
      - name: fname[256]
        type: char
      - name: fname_len
        type: uint8_t
      - name: timestamp
        type: uint32_t
      item_type: struct
      name: pgp_literal_hdr_t
      pos:
        line_end: 181
        line_start: 176
        source_file: /src/rnp/src/lib/types.h
    - fields:
      - name: version
        type: int
      - name: ealg
        type: pgp_symm_alg_t
      - name: aalg
        type: pgp_aead_alg_t
      - name: csize
        type: int
      - name: iv[PGP_AEAD_MAX_NONCE_LEN]
        type: uint8_t
      - name: ivlen
        type: size_t
      item_type: struct
      name: pgp_aead_hdr_t
      pos:
        line_end: 194
        line_start: 183
        source_file: /src/rnp/src/lib/types.h
    - fields:
      - name: version
        type: pgp_seipd_version_t
      - name: cipher_alg
        type: pgp_symm_alg_t
      - name: aead_alg
        type: pgp_aead_alg_t
      - name: chunk_size_octet
        type: uint8_t
      - name: salt[PGP_SEIPDV2_SALT_LEN]
        type: uint8_t
      item_type: struct
      name: pgp_seipdv2_hdr_t
      pos:
        line_end: 203
        line_start: 197
        source_file: /src/rnp/src/lib/types.h
    - fields:
      - name: symm_alg
        type: pgp_symm_alg_t
      - name: cipher_mode
        type: pgp_cipher_mode_t
      - name: iterations
        type: unsigned
      - name: hash_alg
        type: pgp_hash_alg_t
      item_type: struct
      name: rnp_key_protection_params_t
      pos:
        line_end: 220
        line_start: 215
        source_file: /src/rnp/src/lib/types.h
    typedefs: []
    union: []
- function_names:
  - rnp::RawPacket::RawPacket
  - rnp::RawPacket::RawPacket
  - rnp::RawPacket::RawPacket
  - rnp::RawPacket::RawPacket
  - rnp::RawPacket::write
  - rnp::RawPacket::RawPacket
  - rnp::RawPacket::RawPacket
  - rnp::RawPacket::RawPacket
  - rnp::RawPacket::RawPacket
  - rnp::RawPacket::write
  source_file: /src/rnp/src/lib/rawpacket.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - FFI_LOG
  - call_key_callback
  - find_key
  - ffi_key_provider
  - symm_alg_supported
  - hash_alg_supported
  - aead_alg_supported
  - pub_alg_supported
  - z_alg_supported
  - curve_str_to_type
  - curve_type_to_str
  - str_to_cipher
  - str_to_hash_alg
  - str_to_aead_alg
  - str_to_compression_alg
  - str_to_revocation_type
  - str_to_cipher_mode
  - str_to_pubkey_alg
  - str_to_key_flag
  - parse_ks_format
  - hex_encode_value
  - ret_str_value
  - ret_vec_value
  - get_map_value
  - ret_fingerprint
  - ret_keyid
  - ret_grip
  - ffi_exception
  - FFI_GUARD_FP
  - rnp_ffi_st::rnp_ffi_st
  - '&

    rnp_ffi_st::rng() noexcept'
  - '&

    rnp_ffi_st::profile() noexcept'
  - is_std_file
  - close_io_file
  - rnp_ffi_st::~rnp_ffi_st()
  - operation_description
  - rnp_password_cb_bounce
  - rnp_result_to_string
  - rnp_version_string
  - rnp_version_string_full
  - rnp_version
  - rnp_version_for
  - rnp_version_major
  - rnp_version_minor
  - rnp_version_patch
  - rnp_version_commit_timestamp
  - json_array_add_id_str
  - get_feature_sec_value
  - get_feature_sec_level
  - extract_flag
  - get_security_action
  - load_keys_from_input
  - key_needs_conversion
  - do_load_keys
  - flags_to_key_type
  - rnp_input_dearmor_if_needed
  - key_status_to_str
  - add_key_status
  - sig_status_to_str
  - add_sig_status
  - copy_store_keys
  - do_save_keys
  - '&

    rnp_input_st::operator=(rnp_input_st &&input)'
  - rnp_input_st::~rnp_input_st()
  - input_reader_bounce
  - input_closer_bounce
  - output_writer_bounce
  - output_closer_bounce
  - rnp_op_add_signature
  - rnp_op_set_armor
  - rnp_op_set_compression
  - rnp_op_set_hash
  - rnp_op_set_creation_time
  - rnp_op_set_expiration_time
  - rnp_op_set_flags
  - rnp_op_set_file_name
  - rnp_op_set_file_mtime
  - rnp_check_old_ciphers
  - rnp_op_add_signatures
  - rnp_op_verify_on_signatures
  - rnp_verify_src_provider
  - rnp_verify_dest_provider
  - recipient_handle_from_pk_sesskey
  - symenc_handle_from_sk_sesskey
  - rnp_verify_on_recipients
  - rnp_verify_on_decryption_start
  - rnp_verify_on_decryption_info
  - rnp_verify_on_decryption_done
  - ffi_decrypt_key_provider
  - get_protection_mode
  - get_protection_cipher
  - rnp_op_verify_st::~rnp_op_verify_st()
  - get_signer_handle
  - rnp_locate_key_int
  - rnp_key_get_revoker
  - fill_revocation_reason
  - rnp_key_get_revocation
  - report_signature_removal
  - signature_needs_removal
  - remove_key_signatures
  - pk_alg_allows_custom_curve
  - parse_preferences
  - parse_keygen_params
  - parse_protection
  - parse_keygen_common_fields
  - parse_keygen_primary
  - parse_keygen_sub
  - gen_json_grips
  - gen_json_primary_key
  - gen_json_subkey
  - rnp_op_generate_st::default_key_flags
  - rnp_buffer_destroy
  - rnp_buffer_clear
  - get_key_require_public
  - get_key_prefer_public
  - get_key_require_secret
  - key_get_uid_at
  - rnp_uid_handle_get_uid
  - rnp_key_return_signature
  - create_key_signature
  - create_key_signature
  - validation_status
  - write_signature
  - rnp_get_grip_by_fp
  - rnp_key_is_revoked_with_code
  - pgp_key_has_encryption_info
  - key_to_bytes
  - add_json_key_usage
  - add_json_key_flags
  - add_json_mpis
  - add_json_mpis
  - add_json_sig_mpis
  - add_json_array_lookup
  - add_json_user_prefs
  - add_json_subsig
  - key_to_json
  - rnp_dump_src_to_json
  - key_iter_next_key
  - key_iter_next_item
  - key_iter_first_key
  - key_iter_first_item
  - key_iter_get_item
  - rnp_backend_string
  - rnp_backend_version
  source_file: /src/rnp/src/lib/rnp.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: FFI_GUARD
      pos:
        line_end: 611
        line_start: 610
        source_file: /src/rnp/src/lib/rnp.cpp
      type_or_value: FFI_GUARD_FP((stderr))
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::Signature::Signature
  - rnp::Signature::is_cert
  - rnp::Signature::is_revocation
  - rnp::Signature::expired
  - rnp::Revocation::Revocation
  - rnp::Signature::Signature
  - rnp::Signature::is_cert
  - rnp::Signature::is_revocation
  - rnp::Signature::expired
  - rnp::Revocation::Revocation
  source_file: /src/rnp/src/lib/signature.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/json-utils.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp_key_handle_st
  - rnp_signature_handle_st
  - rnp_sig_subpacket_st
  - rnp_recipient_handle_st
  - rnp_symenc_handle_st
  - rnp_input_st
  - rnp_input_st
  - '&operator=(const rnp_input_st &)'
  - rnp_op_generate_st
  - rnp_op_generate_st
  - rnp_op_sign_st
  - rnp_op_verify_st
  - rnp_op_verify_st
  - rnp_op_encrypt_st
  - rnp_identifier_iterator_st
  - ~rnp_identifier_iterator_st()
  - rnp_decryption_kp_param_t
  source_file: /src/rnp/src/lib/ffi-priv-types.h
  types:
    enum:
    - enumerators:
      - name: KEY_TYPE_NONE
      - name: KEY_TYPE_PUBLIC
      - name: KEY_TYPE_ANY
      - name: KEY_TYPE_SECRET
      item_type: enum
      name: key_type_t
      pos:
        line_end: 333
        line_start: 328
        source_file: /src/rnp/src/lib/ffi-priv-types.h
    preproc_defs:
    - item_type: preproc_def
      name: RNP_LOCATOR_MAX_SIZE
      pos:
        line_end: 279
        line_start: 278
        source_file: /src/rnp/src/lib/ffi-priv-types.h
      type_or_value: (MAX_ID_LENGTH + 1)
    structs:
    - fields:
      - name: ffi
        type: rnp_ffi_t
      - name: '*pub'
        type: rnp::Key
      - name: '*sec'
        type: rnp::Key
      item_type: struct
      name: rnp_key_handle_st
      pos:
        line_end: 45
        line_start: 36
        source_file: /src/rnp/src/lib/ffi-priv-types.h
    - fields:
      - name: ffi
        type: rnp_ffi_t
      - name: '*key'
        type: rnp::Key
      - name: idx
        type: size_t
      item_type: struct
      name: rnp_uid_handle_st
      pos:
        line_end: 51
        line_start: 47
        source_file: /src/rnp/src/lib/ffi-priv-types.h
    - fields:
      - name: ffi
        type: rnp_ffi_t
      - name: '*key'
        type: rnp::Key
      - name: '*sig'
        type: rnp::Signature
      - name: own_sig
        type: bool
      - name: new_sig
        type: bool
      item_type: struct
      name: rnp_signature_handle_st
      pos:
        line_end: 77
        line_start: 53
        source_file: /src/rnp/src/lib/ffi-priv-types.h
    - fields:
      - name: '&sub'
        type: pgp::pkt::sigsub::Raw
      item_type: struct
      name: rnp_sig_subpacket_st
      pos:
        line_end: 85
        line_start: 79
        source_file: /src/rnp/src/lib/ffi-priv-types.h
    - fields:
      - name: ffi
        type: rnp_ffi_t
      - name: keyid
        type: pgp::KeyID
      - name: palg
        type: pgp_pubkey_alg_t
      item_type: struct
      name: rnp_recipient_handle_st
      pos:
        line_end: 95
        line_start: 87
        source_file: /src/rnp/src/lib/ffi-priv-types.h
    - fields:
      - name: ffi
        type: rnp_ffi_t
      - name: alg
        type: pgp_symm_alg_t
      - name: halg
        type: pgp_hash_alg_t
      - name: s2k_type
        type: pgp_s2k_specifier_t
      - name: iterations
        type: uint32_t
      - name: aalg
        type: pgp_aead_alg_t
      item_type: struct
      name: rnp_symenc_handle_st
      pos:
        line_end: 108
        line_start: 97
        source_file: /src/rnp/src/lib/ffi-priv-types.h
    - fields:
      - name: '*                  errs'
        type: FILE
      - name: '*         pubring'
        type: rnp::KeyStore
      - name: '*         secring'
        type: rnp::KeyStore
      - name: getkeycb
        type: rnp_get_key_cb
      - name: '*                  getkeycb_ctx'
        type: void
      - name: getpasscb
        type: rnp_password_cb
      - name: '*                  getpasscb_ctx'
        type: void
      - name: key_provider
        type: rnp::KeyProvider
      - name: pass_provider
        type: pgp_password_provider_t
      - name: context
        type: rnp::SecurityContext
      - name: '&            rng() noexcept'
        type: rnp::RNG
      - name: '&profile() noexcept'
        type: rnp::SecurityProfile
      item_type: struct
      name: rnp_ffi_st
      pos:
        line_end: 127
        line_start: 110
        source_file: /src/rnp/src/lib/ffi-priv-types.h
    - fields:
      - name: src
        type: pgp_source_t
      - name: src_directory
        type: std::string
      - name: '*reader'
        type: rnp_input_reader_t
      - name: '*closer'
        type: rnp_input_closer_t
      - name: '*              app_ctx'
        type: void
      - name: '&operator=(rnp_input_st &&src)'
        type: rnp_input_st
      item_type: struct
      name: rnp_input_st
      pos:
        line_end: 144
        line_start: 129
        source_file: /src/rnp/src/lib/ffi-priv-types.h
    - fields:
      - name: dst
        type: pgp_dest_t
      - name: '*               dst_directory'
        type: char
      - name: '*writer'
        type: rnp_output_writer_t
      - name: '*closer'
        type: rnp_output_closer_t
      - name: '*               app_ctx'
        type: void
      - name: keep
        type: bool
      item_type: struct
      name: rnp_output_st
      pos:
        line_end: 154
        line_start: 146
        source_file: /src/rnp/src/lib/ffi-priv-types.h
    - fields:
      - name: ffi
        type: rnp_ffi_t
      - name: primary
        type: bool
      - name: '*primary_sec'
        type: rnp::Key
      - name: '*primary_pub'
        type: rnp::Key
      - name: '*gen_sec'
        type: rnp::Key
      - name: '*gen_pub'
        type: rnp::Key
      - name: password
        type: rnp::secure_vector<char>
      - name: request_password
        type: bool
      - name: keygen
        type: rnp::KeygenParams
      - name: protection
        type: rnp_key_protection_params_t
      - name: cert
        type: rnp::CertParams
      - name: binding
        type: rnp::BindingParams
      - name: default_key_flags(pgp_pubkey_alg_t alg, bool subkey)
        type: pgp_key_flags_t
      item_type: struct
      name: rnp_op_generate_st
      pos:
        line_end: 190
        line_start: 156
        source_file: /src/rnp/src/lib/ffi-priv-types.h
    - fields:
      - name: ffi
        type: rnp_ffi_t
      - name: signer
        type: rnp_signer_info_t
      - name: expiry_set
        type: bool
      - name: create_set
        type: bool
      - name: hash_set
        type: bool
      item_type: struct
      name: rnp_op_sign_signature_st
      pos:
        line_end: 198
        line_start: 192
        source_file: /src/rnp/src/lib/ffi-priv-types.h
    - fields:
      - name: ffi
        type: rnp_ffi_t
      - name: input
        type: rnp_input_t
      - name: output
        type: rnp_output_t
      - name: rnpctx
        type: rnp_ctx_t
      - name: signatures
        type: rnp_op_sign_signatures_t
      item_type: struct
      name: rnp_op_sign_st
      pos:
        line_end: 214
        line_start: 202
        source_file: /src/rnp/src/lib/ffi-priv-types.h
    - fields:
      - name: ffi
        type: rnp_ffi_t
      - name: verify_status
        type: rnp_result_t
      - name: validity
        type: rnp::SigValidity
      - name: sig_pkt
        type: pgp::pkt::Signature
      item_type: struct
      name: rnp_op_verify_signature_st
      pos:
        line_end: 221
        line_start: 216
        source_file: /src/rnp/src/lib/ffi-priv-types.h
    - fields:
      - name: ffi
        type: rnp_ffi_t
      - name: input
        type: rnp_input_t
      - name: detached_input
        type: rnp_input_t
      - name: output
        type: rnp_output_t
      - name: rnpctx
        type: rnp_ctx_t
      - name: signatures_
        type: std::vector<rnp_op_verify_signature_st>
      - name: lithdr
        type: pgp_literal_hdr_t
      - name: encrypted
        type: bool
      - name: mdc
        type: bool
      - name: validated
        type: bool
      - name: aead
        type: pgp_aead_alg_t
      - name: salg
        type: pgp_symm_alg_t
      - name: ignore_sigs
        type: bool
      - name: require_all_sigs
        type: bool
      - name: allow_hidden
        type: bool
      - name: recipients
        type: std::vector<rnp_recipient_handle_st>
      - name: used_recipient
        type: rnp_recipient_handle_t
      - name: symencs
        type: std::vector<rnp_symenc_handle_st>
      - name: used_symenc
        type: rnp_symenc_handle_t
      - name: encrypted_layers
        type: size_t
      item_type: struct
      name: rnp_op_verify_st
      pos:
        line_end: 262
        line_start: 223
        source_file: /src/rnp/src/lib/ffi-priv-types.h
    - fields:
      - name: ffi
        type: rnp_ffi_t
      - name: input
        type: rnp_input_t
      - name: output
        type: rnp_output_t
      - name: rnpctx
        type: rnp_ctx_t
      - name: signatures
        type: rnp_op_sign_signatures_t
      item_type: struct
      name: rnp_op_encrypt_st
      pos:
        line_end: 276
        line_start: 264
        source_file: /src/rnp/src/lib/ffi-priv-types.h
    - fields:
      - name: ffi
        type: rnp_ffi_t
      - name: type
        type: rnp::KeySearch::Type
      - name: '*                 store'
        type: rnp::KeyStore
      - name: '* keyp'
        type: std::list<rnp::Key>::iterator
      - name: uididx
        type: size_t
      - name: tbl
        type: std::unordered_set<std::string>
      - name: item
        type: std::string
      item_type: struct
      name: rnp_identifier_iterator_st
      pos:
        line_end: 305
        line_start: 284
        source_file: /src/rnp/src/lib/ffi-priv-types.h
    - fields:
      - name: op
        type: rnp_op_verify_t
      - name: has_hidden
        type: bool
      - name: '*      last'
        type: rnp::Key
      item_type: struct
      name: rnp_decryption_kp_param_t
      pos:
        line_end: 314
        line_start: 307
        source_file: /src/rnp/src/lib/ffi-priv-types.h
    typedefs:
    - item_type: typedef
      name: rnp_op_sign_signatures_t
      pos:
        line_end: 200
        line_start: 200
        source_file: /src/rnp/src/lib/ffi-priv-types.h
      type: list<rnp_op_sign_signature_st>
    union: []
- function_names:
  - pgp::SigMaterial::SigMaterial
  - ~SigMaterial()
  - pgp::RSASigMaterial::RSASigMaterial
  - pgp::DSASigMaterial::DSASigMaterial
  - pgp::EGSigMaterial::EGSigMaterial
  - pgp::ECSigMaterial::ECSigMaterial
  - pgp::Ed25519SigMaterial::Ed25519SigMaterial
  - pgp::Ed448SigMaterial::Ed448SigMaterial
  - pgp::DilithiumSigMaterial::DilithiumSigMaterial
  - pgp::SlhdsaSigMaterial::SlhdsaSigMaterial
  - pgp::SigMaterial::SigMaterial
  - ~SigMaterial()
  - pgp::RSASigMaterial::RSASigMaterial
  - pgp::DSASigMaterial::DSASigMaterial
  - pgp::EGSigMaterial::EGSigMaterial
  - pgp::ECSigMaterial::ECSigMaterial
  - pgp::Ed25519SigMaterial::Ed25519SigMaterial
  - pgp::Ed448SigMaterial::Ed448SigMaterial
  - pgp::DilithiumSigMaterial::DilithiumSigMaterial
  - pgp::SlhdsaSigMaterial::SlhdsaSigMaterial
  source_file: /src/rnp/src/lib/sig_material.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: pgp_packet_body_t
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/rnp/src/lib/sig_material.hpp
      type: pgp_packet_body_t
    union: []
- function_names:
  - ~EncMaterial()
  - pgp::MlkemEcdhEncMaterial::MlkemEcdhEncMaterial
  - ~EncMaterial()
  - pgp::MlkemEcdhEncMaterial::MlkemEcdhEncMaterial
  source_file: /src/rnp/src/lib/enc_material.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: pgp_packet_body_t
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/rnp/src/lib/enc_material.hpp
      type: pgp_packet_body_t
    union: []
- function_names:
  - rnp::RawPacket::RawPacket
  - "&\n    data() const noexcept"
  - rnp::RawPacket::tag
  - rnp::RawPacket::RawPacket
  - "&\n    data() const noexcept"
  - rnp::RawPacket::tag
  source_file: /src/rnp/src/lib/rawpacket.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: pgp_key_pkt_t
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/rnp/src/lib/rawpacket.hpp
      type: pgp_key_pkt_t
    - item_type: typedef
      name: pgp_userid_pkt_t
      pos:
        line_end: 33
        line_start: 33
        source_file: /src/rnp/src/lib/rawpacket.hpp
      type: pgp_userid_pkt_t
    union: []
- function_names:
  - pgp::pkt::sigsub::Raw::raw_type
  - "&\n    data() const noexcept"
  - pgp::pkt::sigsub::Raw::type
  - pgp::pkt::sigsub::Raw::critical
  - pgp::pkt::sigsub::Raw::set_critical
  - pgp::pkt::sigsub::Raw::hashed
  - pgp::pkt::sigsub::Time::Time
  - pgp::pkt::sigsub::Time::time
  - pgp::pkt::sigsub::Time::set_time
  - pgp::pkt::sigsub::CreationTime::CreationTime
  - pgp::pkt::sigsub::ExpirationTime::ExpirationTime
  - pgp::pkt::sigsub::KeyExpirationTime::KeyExpirationTime
  - pgp::pkt::sigsub::Bool::Bool
  - pgp::pkt::sigsub::ExportableCert::ExportableCert
  - pgp::pkt::sigsub::ExportableCert::exportable
  - pgp::pkt::sigsub::ExportableCert::set_exportable
  - pgp::pkt::sigsub::Trust::Trust
  - pgp::pkt::sigsub::Trust::level
  - pgp::pkt::sigsub::Trust::amount
  - pgp::pkt::sigsub::Trust::set_level
  - pgp::pkt::sigsub::Trust::set_amount
  - pgp::pkt::sigsub::String::String
  - pgp::pkt::sigsub::RegExp::RegExp
  - "&\n    regexp() const noexcept"
  - pgp::pkt::sigsub::Revocable::Revocable
  - pgp::pkt::sigsub::Revocable::revocable
  - pgp::pkt::sigsub::Revocable::set_revocable
  - pgp::pkt::sigsub::Preferred::Preferred
  - "&\n    algs() const noexcept"
  - pgp::pkt::sigsub::Preferred::set_algs
  - pgp::pkt::sigsub::PreferredSymmetric::PreferredSymmetric
  - pgp::pkt::sigsub::PreferredHash::PreferredHash
  - pgp::pkt::sigsub::PreferredCompress::PreferredCompress
  - pgp::pkt::sigsub::PreferredAEAD::PreferredAEAD
  - pgp::pkt::sigsub::PreferredAEADv6::PreferredAEADv6
  - pgp::pkt::sigsub::RevocationKey::RevocationKey
  - pgp::pkt::sigsub::RevocationKey::rev_class
  - pgp::pkt::sigsub::RevocationKey::set_rev_class
  - pgp::pkt::sigsub::RevocationKey::alg
  - pgp::pkt::sigsub::RevocationKey::set_alg
  - "&\n    fp() const noexcept"
  - pgp::pkt::sigsub::RevocationKey::set_fp
  - pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
  - "&\n    keyid() const noexcept"
  - pgp::pkt::sigsub::IssuerKeyID::set_keyid
  - pgp::pkt::sigsub::NotationData::NotationData
  - pgp::pkt::sigsub::NotationData::human_readable
  - "&\n    name() const noexcept"
  - "&\n    value() const noexcept"
  - pgp::pkt::sigsub::Flags::Flags
  - pgp::pkt::sigsub::KeyserverPrefs::KeyserverPrefs
  - pgp::pkt::sigsub::KeyserverPrefs::no_modify
  - pgp::pkt::sigsub::KeyserverPrefs::set_no_modify
  - pgp::pkt::sigsub::KeyserverPrefs::raw
  - pgp::pkt::sigsub::KeyserverPrefs::set_raw
  - pgp::pkt::sigsub::PreferredKeyserver::PreferredKeyserver
  - "&\n    keyserver() const noexcept"
  - pgp::pkt::sigsub::PreferredKeyserver::set_keyserver
  - pgp::pkt::sigsub::PrimaryUserID::PrimaryUserID
  - pgp::pkt::sigsub::PrimaryUserID::primary
  - pgp::pkt::sigsub::PrimaryUserID::set_primary
  - pgp::pkt::sigsub::PolicyURI::PolicyURI
  - "&\n    URI() const noexcept"
  - pgp::pkt::sigsub::KeyFlags::KeyFlags
  - pgp::pkt::sigsub::KeyFlags::flags
  - pgp::pkt::sigsub::KeyFlags::set_flags
  - pgp::pkt::sigsub::SignersUserID::SignersUserID
  - "&\n    signer() const noexcept"
  - pgp::pkt::sigsub::SignersUserID::set_signer
  - pgp::pkt::sigsub::RevocationReason::RevocationReason
  - pgp::pkt::sigsub::RevocationReason::code
  - pgp::pkt::sigsub::RevocationReason::set_code
  - "&\n    reason() const noexcept"
  - pgp::pkt::sigsub::RevocationReason::set_reason
  - pgp::pkt::sigsub::Features::Features
  - pgp::pkt::sigsub::Features::features
  - pgp::pkt::sigsub::Features::set_features
  - pgp::pkt::sigsub::IssuerFingerprint::IssuerFingerprint
  - pgp::pkt::sigsub::IssuerFingerprint::version
  - pgp::pkt::sigsub::IssuerFingerprint::set_version
  - "&\n    fp() const noexcept"
  - pgp::pkt::sigsub::IssuerFingerprint::set_fp
  - pgp::pkt::sigsub::List::List
  - pgp::pkt::sigsub::List::begin
  - pgp::pkt::sigsub::List::end
  - pgp::pkt::sigsub::List::begin
  - pgp::pkt::sigsub::List::end
  - pgp::pkt::sigsub::List::size
  - "&\n    operator[](size_t idx)"
  - "&\n    operator[](size_t idx) const"
  - pgp::pkt::sigsub::Raw::raw_type
  - "&\n    data() const noexcept"
  - pgp::pkt::sigsub::Raw::type
  - pgp::pkt::sigsub::Raw::critical
  - pgp::pkt::sigsub::Raw::set_critical
  - pgp::pkt::sigsub::Raw::hashed
  - pgp::pkt::sigsub::Time::Time
  - pgp::pkt::sigsub::Time::time
  - pgp::pkt::sigsub::Time::set_time
  - pgp::pkt::sigsub::CreationTime::CreationTime
  - pgp::pkt::sigsub::ExpirationTime::ExpirationTime
  - pgp::pkt::sigsub::KeyExpirationTime::KeyExpirationTime
  - pgp::pkt::sigsub::Bool::Bool
  - pgp::pkt::sigsub::ExportableCert::ExportableCert
  - pgp::pkt::sigsub::ExportableCert::exportable
  - pgp::pkt::sigsub::ExportableCert::set_exportable
  - pgp::pkt::sigsub::Trust::Trust
  - pgp::pkt::sigsub::Trust::level
  - pgp::pkt::sigsub::Trust::amount
  - pgp::pkt::sigsub::Trust::set_level
  - pgp::pkt::sigsub::Trust::set_amount
  - pgp::pkt::sigsub::String::String
  - pgp::pkt::sigsub::RegExp::RegExp
  - "&\n    regexp() const noexcept"
  - pgp::pkt::sigsub::Revocable::Revocable
  - pgp::pkt::sigsub::Revocable::revocable
  - pgp::pkt::sigsub::Revocable::set_revocable
  - pgp::pkt::sigsub::Preferred::Preferred
  - "&\n    algs() const noexcept"
  - pgp::pkt::sigsub::Preferred::set_algs
  - pgp::pkt::sigsub::PreferredSymmetric::PreferredSymmetric
  - pgp::pkt::sigsub::PreferredHash::PreferredHash
  - pgp::pkt::sigsub::PreferredCompress::PreferredCompress
  - pgp::pkt::sigsub::PreferredAEAD::PreferredAEAD
  - pgp::pkt::sigsub::PreferredAEADv6::PreferredAEADv6
  - pgp::pkt::sigsub::RevocationKey::RevocationKey
  - pgp::pkt::sigsub::RevocationKey::rev_class
  - pgp::pkt::sigsub::RevocationKey::set_rev_class
  - pgp::pkt::sigsub::RevocationKey::alg
  - pgp::pkt::sigsub::RevocationKey::set_alg
  - "&\n    fp() const noexcept"
  - pgp::pkt::sigsub::RevocationKey::set_fp
  - pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
  - "&\n    keyid() const noexcept"
  - pgp::pkt::sigsub::IssuerKeyID::set_keyid
  - pgp::pkt::sigsub::NotationData::NotationData
  - pgp::pkt::sigsub::NotationData::human_readable
  - "&\n    name() const noexcept"
  - "&\n    value() const noexcept"
  - pgp::pkt::sigsub::Flags::Flags
  - pgp::pkt::sigsub::KeyserverPrefs::KeyserverPrefs
  - pgp::pkt::sigsub::KeyserverPrefs::no_modify
  - pgp::pkt::sigsub::KeyserverPrefs::set_no_modify
  - pgp::pkt::sigsub::KeyserverPrefs::raw
  - pgp::pkt::sigsub::KeyserverPrefs::set_raw
  - pgp::pkt::sigsub::PreferredKeyserver::PreferredKeyserver
  - "&\n    keyserver() const noexcept"
  - pgp::pkt::sigsub::PreferredKeyserver::set_keyserver
  - pgp::pkt::sigsub::PrimaryUserID::PrimaryUserID
  - pgp::pkt::sigsub::PrimaryUserID::primary
  - pgp::pkt::sigsub::PrimaryUserID::set_primary
  - pgp::pkt::sigsub::PolicyURI::PolicyURI
  - "&\n    URI() const noexcept"
  - pgp::pkt::sigsub::KeyFlags::KeyFlags
  - pgp::pkt::sigsub::KeyFlags::flags
  - pgp::pkt::sigsub::KeyFlags::set_flags
  - pgp::pkt::sigsub::SignersUserID::SignersUserID
  - "&\n    signer() const noexcept"
  - pgp::pkt::sigsub::SignersUserID::set_signer
  - pgp::pkt::sigsub::RevocationReason::RevocationReason
  - pgp::pkt::sigsub::RevocationReason::code
  - pgp::pkt::sigsub::RevocationReason::set_code
  - "&\n    reason() const noexcept"
  - pgp::pkt::sigsub::RevocationReason::set_reason
  - pgp::pkt::sigsub::Features::Features
  - pgp::pkt::sigsub::Features::features
  - pgp::pkt::sigsub::Features::set_features
  - pgp::pkt::sigsub::IssuerFingerprint::IssuerFingerprint
  - pgp::pkt::sigsub::IssuerFingerprint::version
  - pgp::pkt::sigsub::IssuerFingerprint::set_version
  - "&\n    fp() const noexcept"
  - pgp::pkt::sigsub::IssuerFingerprint::set_fp
  - pgp::pkt::sigsub::List::List
  - pgp::pkt::sigsub::List::begin
  - pgp::pkt::sigsub::List::end
  - pgp::pkt::sigsub::List::begin
  - pgp::pkt::sigsub::List::end
  - pgp::pkt::sigsub::List::size
  - "&\n    operator[](size_t idx)"
  - "&\n    operator[](size_t idx) const"
  - pgp::pkt::sigsub::Raw::raw_type
  - "&\n    data() const noexcept"
  - pgp::pkt::sigsub::Raw::type
  - pgp::pkt::sigsub::Raw::critical
  - pgp::pkt::sigsub::Raw::set_critical
  - pgp::pkt::sigsub::Raw::hashed
  - pgp::pkt::sigsub::Time::Time
  - pgp::pkt::sigsub::Time::time
  - pgp::pkt::sigsub::Time::set_time
  - pgp::pkt::sigsub::CreationTime::CreationTime
  - pgp::pkt::sigsub::ExpirationTime::ExpirationTime
  - pgp::pkt::sigsub::KeyExpirationTime::KeyExpirationTime
  - pgp::pkt::sigsub::Bool::Bool
  - pgp::pkt::sigsub::ExportableCert::ExportableCert
  - pgp::pkt::sigsub::ExportableCert::exportable
  - pgp::pkt::sigsub::ExportableCert::set_exportable
  - pgp::pkt::sigsub::Trust::Trust
  - pgp::pkt::sigsub::Trust::level
  - pgp::pkt::sigsub::Trust::amount
  - pgp::pkt::sigsub::Trust::set_level
  - pgp::pkt::sigsub::Trust::set_amount
  - pgp::pkt::sigsub::String::String
  - pgp::pkt::sigsub::RegExp::RegExp
  - "&\n    regexp() const noexcept"
  - pgp::pkt::sigsub::Revocable::Revocable
  - pgp::pkt::sigsub::Revocable::revocable
  - pgp::pkt::sigsub::Revocable::set_revocable
  - pgp::pkt::sigsub::Preferred::Preferred
  - "&\n    algs() const noexcept"
  - pgp::pkt::sigsub::Preferred::set_algs
  - pgp::pkt::sigsub::PreferredSymmetric::PreferredSymmetric
  - pgp::pkt::sigsub::PreferredHash::PreferredHash
  - pgp::pkt::sigsub::PreferredCompress::PreferredCompress
  - pgp::pkt::sigsub::PreferredAEAD::PreferredAEAD
  - pgp::pkt::sigsub::PreferredAEADv6::PreferredAEADv6
  - pgp::pkt::sigsub::RevocationKey::RevocationKey
  - pgp::pkt::sigsub::RevocationKey::rev_class
  - pgp::pkt::sigsub::RevocationKey::set_rev_class
  - pgp::pkt::sigsub::RevocationKey::alg
  - pgp::pkt::sigsub::RevocationKey::set_alg
  - "&\n    fp() const noexcept"
  - pgp::pkt::sigsub::RevocationKey::set_fp
  - pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
  - "&\n    keyid() const noexcept"
  - pgp::pkt::sigsub::IssuerKeyID::set_keyid
  - pgp::pkt::sigsub::NotationData::NotationData
  - pgp::pkt::sigsub::NotationData::human_readable
  - "&\n    name() const noexcept"
  - "&\n    value() const noexcept"
  - pgp::pkt::sigsub::Flags::Flags
  - pgp::pkt::sigsub::KeyserverPrefs::KeyserverPrefs
  - pgp::pkt::sigsub::KeyserverPrefs::no_modify
  - pgp::pkt::sigsub::KeyserverPrefs::set_no_modify
  - pgp::pkt::sigsub::KeyserverPrefs::raw
  - pgp::pkt::sigsub::KeyserverPrefs::set_raw
  - pgp::pkt::sigsub::PreferredKeyserver::PreferredKeyserver
  - "&\n    keyserver() const noexcept"
  - pgp::pkt::sigsub::PreferredKeyserver::set_keyserver
  - pgp::pkt::sigsub::PrimaryUserID::PrimaryUserID
  - pgp::pkt::sigsub::PrimaryUserID::primary
  - pgp::pkt::sigsub::PrimaryUserID::set_primary
  - pgp::pkt::sigsub::PolicyURI::PolicyURI
  - "&\n    URI() const noexcept"
  - pgp::pkt::sigsub::KeyFlags::KeyFlags
  - pgp::pkt::sigsub::KeyFlags::flags
  - pgp::pkt::sigsub::KeyFlags::set_flags
  - pgp::pkt::sigsub::SignersUserID::SignersUserID
  - "&\n    signer() const noexcept"
  - pgp::pkt::sigsub::SignersUserID::set_signer
  - pgp::pkt::sigsub::RevocationReason::RevocationReason
  - pgp::pkt::sigsub::RevocationReason::code
  - pgp::pkt::sigsub::RevocationReason::set_code
  - "&\n    reason() const noexcept"
  - pgp::pkt::sigsub::RevocationReason::set_reason
  - pgp::pkt::sigsub::Features::Features
  - pgp::pkt::sigsub::Features::features
  - pgp::pkt::sigsub::Features::set_features
  - pgp::pkt::sigsub::IssuerFingerprint::IssuerFingerprint
  - pgp::pkt::sigsub::IssuerFingerprint::version
  - pgp::pkt::sigsub::IssuerFingerprint::set_version
  - "&\n    fp() const noexcept"
  - pgp::pkt::sigsub::IssuerFingerprint::set_fp
  - pgp::pkt::sigsub::List::List
  - pgp::pkt::sigsub::List::begin
  - pgp::pkt::sigsub::List::end
  - pgp::pkt::sigsub::List::begin
  - pgp::pkt::sigsub::List::end
  - pgp::pkt::sigsub::List::size
  - "&\n    operator[](size_t idx)"
  - "&\n    operator[](size_t idx) const"
  - pgp::pkt::sigsub::Raw::raw_type
  - "&\n    data() const noexcept"
  - pgp::pkt::sigsub::Raw::type
  - pgp::pkt::sigsub::Raw::critical
  - pgp::pkt::sigsub::Raw::set_critical
  - pgp::pkt::sigsub::Raw::hashed
  - pgp::pkt::sigsub::Time::Time
  - pgp::pkt::sigsub::Time::time
  - pgp::pkt::sigsub::Time::set_time
  - pgp::pkt::sigsub::CreationTime::CreationTime
  - pgp::pkt::sigsub::ExpirationTime::ExpirationTime
  - pgp::pkt::sigsub::KeyExpirationTime::KeyExpirationTime
  - pgp::pkt::sigsub::Bool::Bool
  - pgp::pkt::sigsub::ExportableCert::ExportableCert
  - pgp::pkt::sigsub::ExportableCert::exportable
  - pgp::pkt::sigsub::ExportableCert::set_exportable
  - pgp::pkt::sigsub::Trust::Trust
  - pgp::pkt::sigsub::Trust::level
  - pgp::pkt::sigsub::Trust::amount
  - pgp::pkt::sigsub::Trust::set_level
  - pgp::pkt::sigsub::Trust::set_amount
  - pgp::pkt::sigsub::String::String
  - pgp::pkt::sigsub::RegExp::RegExp
  - "&\n    regexp() const noexcept"
  - pgp::pkt::sigsub::Revocable::Revocable
  - pgp::pkt::sigsub::Revocable::revocable
  - pgp::pkt::sigsub::Revocable::set_revocable
  - pgp::pkt::sigsub::Preferred::Preferred
  - "&\n    algs() const noexcept"
  - pgp::pkt::sigsub::Preferred::set_algs
  - pgp::pkt::sigsub::PreferredSymmetric::PreferredSymmetric
  - pgp::pkt::sigsub::PreferredHash::PreferredHash
  - pgp::pkt::sigsub::PreferredCompress::PreferredCompress
  - pgp::pkt::sigsub::PreferredAEAD::PreferredAEAD
  - pgp::pkt::sigsub::PreferredAEADv6::PreferredAEADv6
  - pgp::pkt::sigsub::RevocationKey::RevocationKey
  - pgp::pkt::sigsub::RevocationKey::rev_class
  - pgp::pkt::sigsub::RevocationKey::set_rev_class
  - pgp::pkt::sigsub::RevocationKey::alg
  - pgp::pkt::sigsub::RevocationKey::set_alg
  - "&\n    fp() const noexcept"
  - pgp::pkt::sigsub::RevocationKey::set_fp
  - pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
  - "&\n    keyid() const noexcept"
  - pgp::pkt::sigsub::IssuerKeyID::set_keyid
  - pgp::pkt::sigsub::NotationData::NotationData
  - pgp::pkt::sigsub::NotationData::human_readable
  - "&\n    name() const noexcept"
  - "&\n    value() const noexcept"
  - pgp::pkt::sigsub::Flags::Flags
  - pgp::pkt::sigsub::KeyserverPrefs::KeyserverPrefs
  - pgp::pkt::sigsub::KeyserverPrefs::no_modify
  - pgp::pkt::sigsub::KeyserverPrefs::set_no_modify
  - pgp::pkt::sigsub::KeyserverPrefs::raw
  - pgp::pkt::sigsub::KeyserverPrefs::set_raw
  - pgp::pkt::sigsub::PreferredKeyserver::PreferredKeyserver
  - "&\n    keyserver() const noexcept"
  - pgp::pkt::sigsub::PreferredKeyserver::set_keyserver
  - pgp::pkt::sigsub::PrimaryUserID::PrimaryUserID
  - pgp::pkt::sigsub::PrimaryUserID::primary
  - pgp::pkt::sigsub::PrimaryUserID::set_primary
  - pgp::pkt::sigsub::PolicyURI::PolicyURI
  - "&\n    URI() const noexcept"
  - pgp::pkt::sigsub::KeyFlags::KeyFlags
  - pgp::pkt::sigsub::KeyFlags::flags
  - pgp::pkt::sigsub::KeyFlags::set_flags
  - pgp::pkt::sigsub::SignersUserID::SignersUserID
  - "&\n    signer() const noexcept"
  - pgp::pkt::sigsub::SignersUserID::set_signer
  - pgp::pkt::sigsub::RevocationReason::RevocationReason
  - pgp::pkt::sigsub::RevocationReason::code
  - pgp::pkt::sigsub::RevocationReason::set_code
  - "&\n    reason() const noexcept"
  - pgp::pkt::sigsub::RevocationReason::set_reason
  - pgp::pkt::sigsub::Features::Features
  - pgp::pkt::sigsub::Features::features
  - pgp::pkt::sigsub::Features::set_features
  - pgp::pkt::sigsub::IssuerFingerprint::IssuerFingerprint
  - pgp::pkt::sigsub::IssuerFingerprint::version
  - pgp::pkt::sigsub::IssuerFingerprint::set_version
  - "&\n    fp() const noexcept"
  - pgp::pkt::sigsub::IssuerFingerprint::set_fp
  - pgp::pkt::sigsub::List::List
  - pgp::pkt::sigsub::List::begin
  - pgp::pkt::sigsub::List::end
  - pgp::pkt::sigsub::List::begin
  - pgp::pkt::sigsub::List::end
  - pgp::pkt::sigsub::List::size
  - "&\n    operator[](size_t idx)"
  - "&\n    operator[](size_t idx) const"
  - pgp::pkt::sigsub::Raw::raw_type
  - "&\n    data() const noexcept"
  - pgp::pkt::sigsub::Raw::type
  - pgp::pkt::sigsub::Raw::critical
  - pgp::pkt::sigsub::Raw::set_critical
  - pgp::pkt::sigsub::Raw::hashed
  - pgp::pkt::sigsub::Time::Time
  - pgp::pkt::sigsub::Time::time
  - pgp::pkt::sigsub::Time::set_time
  - pgp::pkt::sigsub::CreationTime::CreationTime
  - pgp::pkt::sigsub::ExpirationTime::ExpirationTime
  - pgp::pkt::sigsub::KeyExpirationTime::KeyExpirationTime
  - pgp::pkt::sigsub::Bool::Bool
  - pgp::pkt::sigsub::ExportableCert::ExportableCert
  - pgp::pkt::sigsub::ExportableCert::exportable
  - pgp::pkt::sigsub::ExportableCert::set_exportable
  - pgp::pkt::sigsub::Trust::Trust
  - pgp::pkt::sigsub::Trust::level
  - pgp::pkt::sigsub::Trust::amount
  - pgp::pkt::sigsub::Trust::set_level
  - pgp::pkt::sigsub::Trust::set_amount
  - pgp::pkt::sigsub::String::String
  - pgp::pkt::sigsub::RegExp::RegExp
  - "&\n    regexp() const noexcept"
  - pgp::pkt::sigsub::Revocable::Revocable
  - pgp::pkt::sigsub::Revocable::revocable
  - pgp::pkt::sigsub::Revocable::set_revocable
  - pgp::pkt::sigsub::Preferred::Preferred
  - "&\n    algs() const noexcept"
  - pgp::pkt::sigsub::Preferred::set_algs
  - pgp::pkt::sigsub::PreferredSymmetric::PreferredSymmetric
  - pgp::pkt::sigsub::PreferredHash::PreferredHash
  - pgp::pkt::sigsub::PreferredCompress::PreferredCompress
  - pgp::pkt::sigsub::PreferredAEAD::PreferredAEAD
  - pgp::pkt::sigsub::PreferredAEADv6::PreferredAEADv6
  - pgp::pkt::sigsub::RevocationKey::RevocationKey
  - pgp::pkt::sigsub::RevocationKey::rev_class
  - pgp::pkt::sigsub::RevocationKey::set_rev_class
  - pgp::pkt::sigsub::RevocationKey::alg
  - pgp::pkt::sigsub::RevocationKey::set_alg
  - "&\n    fp() const noexcept"
  - pgp::pkt::sigsub::RevocationKey::set_fp
  - pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
  - "&\n    keyid() const noexcept"
  - pgp::pkt::sigsub::IssuerKeyID::set_keyid
  - pgp::pkt::sigsub::NotationData::NotationData
  - pgp::pkt::sigsub::NotationData::human_readable
  - "&\n    name() const noexcept"
  - "&\n    value() const noexcept"
  - pgp::pkt::sigsub::Flags::Flags
  - pgp::pkt::sigsub::KeyserverPrefs::KeyserverPrefs
  - pgp::pkt::sigsub::KeyserverPrefs::no_modify
  - pgp::pkt::sigsub::KeyserverPrefs::set_no_modify
  - pgp::pkt::sigsub::KeyserverPrefs::raw
  - pgp::pkt::sigsub::KeyserverPrefs::set_raw
  - pgp::pkt::sigsub::PreferredKeyserver::PreferredKeyserver
  - "&\n    keyserver() const noexcept"
  - pgp::pkt::sigsub::PreferredKeyserver::set_keyserver
  - pgp::pkt::sigsub::PrimaryUserID::PrimaryUserID
  - pgp::pkt::sigsub::PrimaryUserID::primary
  - pgp::pkt::sigsub::PrimaryUserID::set_primary
  - pgp::pkt::sigsub::PolicyURI::PolicyURI
  - "&\n    URI() const noexcept"
  - pgp::pkt::sigsub::KeyFlags::KeyFlags
  - pgp::pkt::sigsub::KeyFlags::flags
  - pgp::pkt::sigsub::KeyFlags::set_flags
  - pgp::pkt::sigsub::SignersUserID::SignersUserID
  - "&\n    signer() const noexcept"
  - pgp::pkt::sigsub::SignersUserID::set_signer
  - pgp::pkt::sigsub::RevocationReason::RevocationReason
  - pgp::pkt::sigsub::RevocationReason::code
  - pgp::pkt::sigsub::RevocationReason::set_code
  - "&\n    reason() const noexcept"
  - pgp::pkt::sigsub::RevocationReason::set_reason
  - pgp::pkt::sigsub::Features::Features
  - pgp::pkt::sigsub::Features::features
  - pgp::pkt::sigsub::Features::set_features
  - pgp::pkt::sigsub::IssuerFingerprint::IssuerFingerprint
  - pgp::pkt::sigsub::IssuerFingerprint::version
  - pgp::pkt::sigsub::IssuerFingerprint::set_version
  - "&\n    fp() const noexcept"
  - pgp::pkt::sigsub::IssuerFingerprint::set_fp
  - pgp::pkt::sigsub::List::List
  - pgp::pkt::sigsub::List::begin
  - pgp::pkt::sigsub::List::end
  - pgp::pkt::sigsub::List::begin
  - pgp::pkt::sigsub::List::end
  - pgp::pkt::sigsub::List::size
  - "&\n    operator[](size_t idx)"
  - "&\n    operator[](size_t idx) const"
  - pgp::pkt::sigsub::Raw::raw_type
  - "&\n    data() const noexcept"
  - pgp::pkt::sigsub::Raw::type
  - pgp::pkt::sigsub::Raw::critical
  - pgp::pkt::sigsub::Raw::set_critical
  - pgp::pkt::sigsub::Raw::hashed
  - pgp::pkt::sigsub::Time::Time
  - pgp::pkt::sigsub::Time::time
  - pgp::pkt::sigsub::Time::set_time
  - pgp::pkt::sigsub::CreationTime::CreationTime
  - pgp::pkt::sigsub::ExpirationTime::ExpirationTime
  - pgp::pkt::sigsub::KeyExpirationTime::KeyExpirationTime
  - pgp::pkt::sigsub::Bool::Bool
  - pgp::pkt::sigsub::ExportableCert::ExportableCert
  - pgp::pkt::sigsub::ExportableCert::exportable
  - pgp::pkt::sigsub::ExportableCert::set_exportable
  - pgp::pkt::sigsub::Trust::Trust
  - pgp::pkt::sigsub::Trust::level
  - pgp::pkt::sigsub::Trust::amount
  - pgp::pkt::sigsub::Trust::set_level
  - pgp::pkt::sigsub::Trust::set_amount
  - pgp::pkt::sigsub::String::String
  - pgp::pkt::sigsub::RegExp::RegExp
  - "&\n    regexp() const noexcept"
  - pgp::pkt::sigsub::Revocable::Revocable
  - pgp::pkt::sigsub::Revocable::revocable
  - pgp::pkt::sigsub::Revocable::set_revocable
  - pgp::pkt::sigsub::Preferred::Preferred
  - "&\n    algs() const noexcept"
  - pgp::pkt::sigsub::Preferred::set_algs
  - pgp::pkt::sigsub::PreferredSymmetric::PreferredSymmetric
  - pgp::pkt::sigsub::PreferredHash::PreferredHash
  - pgp::pkt::sigsub::PreferredCompress::PreferredCompress
  - pgp::pkt::sigsub::PreferredAEAD::PreferredAEAD
  - pgp::pkt::sigsub::PreferredAEADv6::PreferredAEADv6
  - pgp::pkt::sigsub::RevocationKey::RevocationKey
  - pgp::pkt::sigsub::RevocationKey::rev_class
  - pgp::pkt::sigsub::RevocationKey::set_rev_class
  - pgp::pkt::sigsub::RevocationKey::alg
  - pgp::pkt::sigsub::RevocationKey::set_alg
  - "&\n    fp() const noexcept"
  - pgp::pkt::sigsub::RevocationKey::set_fp
  - pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
  - "&\n    keyid() const noexcept"
  - pgp::pkt::sigsub::IssuerKeyID::set_keyid
  - pgp::pkt::sigsub::NotationData::NotationData
  - pgp::pkt::sigsub::NotationData::human_readable
  - "&\n    name() const noexcept"
  - "&\n    value() const noexcept"
  - pgp::pkt::sigsub::Flags::Flags
  - pgp::pkt::sigsub::KeyserverPrefs::KeyserverPrefs
  - pgp::pkt::sigsub::KeyserverPrefs::no_modify
  - pgp::pkt::sigsub::KeyserverPrefs::set_no_modify
  - pgp::pkt::sigsub::KeyserverPrefs::raw
  - pgp::pkt::sigsub::KeyserverPrefs::set_raw
  - pgp::pkt::sigsub::PreferredKeyserver::PreferredKeyserver
  - "&\n    keyserver() const noexcept"
  - pgp::pkt::sigsub::PreferredKeyserver::set_keyserver
  - pgp::pkt::sigsub::PrimaryUserID::PrimaryUserID
  - pgp::pkt::sigsub::PrimaryUserID::primary
  - pgp::pkt::sigsub::PrimaryUserID::set_primary
  - pgp::pkt::sigsub::PolicyURI::PolicyURI
  - "&\n    URI() const noexcept"
  - pgp::pkt::sigsub::KeyFlags::KeyFlags
  - pgp::pkt::sigsub::KeyFlags::flags
  - pgp::pkt::sigsub::KeyFlags::set_flags
  - pgp::pkt::sigsub::SignersUserID::SignersUserID
  - "&\n    signer() const noexcept"
  - pgp::pkt::sigsub::SignersUserID::set_signer
  - pgp::pkt::sigsub::RevocationReason::RevocationReason
  - pgp::pkt::sigsub::RevocationReason::code
  - pgp::pkt::sigsub::RevocationReason::set_code
  - "&\n    reason() const noexcept"
  - pgp::pkt::sigsub::RevocationReason::set_reason
  - pgp::pkt::sigsub::Features::Features
  - pgp::pkt::sigsub::Features::features
  - pgp::pkt::sigsub::Features::set_features
  - pgp::pkt::sigsub::IssuerFingerprint::IssuerFingerprint
  - pgp::pkt::sigsub::IssuerFingerprint::version
  - pgp::pkt::sigsub::IssuerFingerprint::set_version
  - "&\n    fp() const noexcept"
  - pgp::pkt::sigsub::IssuerFingerprint::set_fp
  - pgp::pkt::sigsub::List::List
  - pgp::pkt::sigsub::List::begin
  - pgp::pkt::sigsub::List::end
  - pgp::pkt::sigsub::List::begin
  - pgp::pkt::sigsub::List::end
  - pgp::pkt::sigsub::List::size
  - "&\n    operator[](size_t idx)"
  - "&\n    operator[](size_t idx) const"
  - pgp::pkt::sigsub::Raw::raw_type
  - "&\n    data() const noexcept"
  - pgp::pkt::sigsub::Raw::type
  - pgp::pkt::sigsub::Raw::critical
  - pgp::pkt::sigsub::Raw::set_critical
  - pgp::pkt::sigsub::Raw::hashed
  - pgp::pkt::sigsub::Time::Time
  - pgp::pkt::sigsub::Time::time
  - pgp::pkt::sigsub::Time::set_time
  - pgp::pkt::sigsub::CreationTime::CreationTime
  - pgp::pkt::sigsub::ExpirationTime::ExpirationTime
  - pgp::pkt::sigsub::KeyExpirationTime::KeyExpirationTime
  - pgp::pkt::sigsub::Bool::Bool
  - pgp::pkt::sigsub::ExportableCert::ExportableCert
  - pgp::pkt::sigsub::ExportableCert::exportable
  - pgp::pkt::sigsub::ExportableCert::set_exportable
  - pgp::pkt::sigsub::Trust::Trust
  - pgp::pkt::sigsub::Trust::level
  - pgp::pkt::sigsub::Trust::amount
  - pgp::pkt::sigsub::Trust::set_level
  - pgp::pkt::sigsub::Trust::set_amount
  - pgp::pkt::sigsub::String::String
  - pgp::pkt::sigsub::RegExp::RegExp
  - "&\n    regexp() const noexcept"
  - pgp::pkt::sigsub::Revocable::Revocable
  - pgp::pkt::sigsub::Revocable::revocable
  - pgp::pkt::sigsub::Revocable::set_revocable
  - pgp::pkt::sigsub::Preferred::Preferred
  - "&\n    algs() const noexcept"
  - pgp::pkt::sigsub::Preferred::set_algs
  - pgp::pkt::sigsub::PreferredSymmetric::PreferredSymmetric
  - pgp::pkt::sigsub::PreferredHash::PreferredHash
  - pgp::pkt::sigsub::PreferredCompress::PreferredCompress
  - pgp::pkt::sigsub::PreferredAEAD::PreferredAEAD
  - pgp::pkt::sigsub::PreferredAEADv6::PreferredAEADv6
  - pgp::pkt::sigsub::RevocationKey::RevocationKey
  - pgp::pkt::sigsub::RevocationKey::rev_class
  - pgp::pkt::sigsub::RevocationKey::set_rev_class
  - pgp::pkt::sigsub::RevocationKey::alg
  - pgp::pkt::sigsub::RevocationKey::set_alg
  - "&\n    fp() const noexcept"
  - pgp::pkt::sigsub::RevocationKey::set_fp
  - pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
  - "&\n    keyid() const noexcept"
  - pgp::pkt::sigsub::IssuerKeyID::set_keyid
  - pgp::pkt::sigsub::NotationData::NotationData
  - pgp::pkt::sigsub::NotationData::human_readable
  - "&\n    name() const noexcept"
  - "&\n    value() const noexcept"
  - pgp::pkt::sigsub::Flags::Flags
  - pgp::pkt::sigsub::KeyserverPrefs::KeyserverPrefs
  - pgp::pkt::sigsub::KeyserverPrefs::no_modify
  - pgp::pkt::sigsub::KeyserverPrefs::set_no_modify
  - pgp::pkt::sigsub::KeyserverPrefs::raw
  - pgp::pkt::sigsub::KeyserverPrefs::set_raw
  - pgp::pkt::sigsub::PreferredKeyserver::PreferredKeyserver
  - "&\n    keyserver() const noexcept"
  - pgp::pkt::sigsub::PreferredKeyserver::set_keyserver
  - pgp::pkt::sigsub::PrimaryUserID::PrimaryUserID
  - pgp::pkt::sigsub::PrimaryUserID::primary
  - pgp::pkt::sigsub::PrimaryUserID::set_primary
  - pgp::pkt::sigsub::PolicyURI::PolicyURI
  - "&\n    URI() const noexcept"
  - pgp::pkt::sigsub::KeyFlags::KeyFlags
  - pgp::pkt::sigsub::KeyFlags::flags
  - pgp::pkt::sigsub::KeyFlags::set_flags
  - pgp::pkt::sigsub::SignersUserID::SignersUserID
  - "&\n    signer() const noexcept"
  - pgp::pkt::sigsub::SignersUserID::set_signer
  - pgp::pkt::sigsub::RevocationReason::RevocationReason
  - pgp::pkt::sigsub::RevocationReason::code
  - pgp::pkt::sigsub::RevocationReason::set_code
  - "&\n    reason() const noexcept"
  - pgp::pkt::sigsub::RevocationReason::set_reason
  - pgp::pkt::sigsub::Features::Features
  - pgp::pkt::sigsub::Features::features
  - pgp::pkt::sigsub::Features::set_features
  - pgp::pkt::sigsub::IssuerFingerprint::IssuerFingerprint
  - pgp::pkt::sigsub::IssuerFingerprint::version
  - pgp::pkt::sigsub::IssuerFingerprint::set_version
  - "&\n    fp() const noexcept"
  - pgp::pkt::sigsub::IssuerFingerprint::set_fp
  - pgp::pkt::sigsub::List::List
  - pgp::pkt::sigsub::List::begin
  - pgp::pkt::sigsub::List::end
  - pgp::pkt::sigsub::List::begin
  - pgp::pkt::sigsub::List::end
  - pgp::pkt::sigsub::List::size
  - "&\n    operator[](size_t idx)"
  - "&\n    operator[](size_t idx) const"
  - pgp::pkt::sigsub::Raw::raw_type
  - "&\n    data() const noexcept"
  - pgp::pkt::sigsub::Raw::type
  - pgp::pkt::sigsub::Raw::critical
  - pgp::pkt::sigsub::Raw::set_critical
  - pgp::pkt::sigsub::Raw::hashed
  - pgp::pkt::sigsub::Time::Time
  - pgp::pkt::sigsub::Time::time
  - pgp::pkt::sigsub::Time::set_time
  - pgp::pkt::sigsub::CreationTime::CreationTime
  - pgp::pkt::sigsub::ExpirationTime::ExpirationTime
  - pgp::pkt::sigsub::KeyExpirationTime::KeyExpirationTime
  - pgp::pkt::sigsub::Bool::Bool
  - pgp::pkt::sigsub::ExportableCert::ExportableCert
  - pgp::pkt::sigsub::ExportableCert::exportable
  - pgp::pkt::sigsub::ExportableCert::set_exportable
  - pgp::pkt::sigsub::Trust::Trust
  - pgp::pkt::sigsub::Trust::level
  - pgp::pkt::sigsub::Trust::amount
  - pgp::pkt::sigsub::Trust::set_level
  - pgp::pkt::sigsub::Trust::set_amount
  - pgp::pkt::sigsub::String::String
  - pgp::pkt::sigsub::RegExp::RegExp
  - "&\n    regexp() const noexcept"
  - pgp::pkt::sigsub::Revocable::Revocable
  - pgp::pkt::sigsub::Revocable::revocable
  - pgp::pkt::sigsub::Revocable::set_revocable
  - pgp::pkt::sigsub::Preferred::Preferred
  - "&\n    algs() const noexcept"
  - pgp::pkt::sigsub::Preferred::set_algs
  - pgp::pkt::sigsub::PreferredSymmetric::PreferredSymmetric
  - pgp::pkt::sigsub::PreferredHash::PreferredHash
  - pgp::pkt::sigsub::PreferredCompress::PreferredCompress
  - pgp::pkt::sigsub::PreferredAEAD::PreferredAEAD
  - pgp::pkt::sigsub::PreferredAEADv6::PreferredAEADv6
  - pgp::pkt::sigsub::RevocationKey::RevocationKey
  - pgp::pkt::sigsub::RevocationKey::rev_class
  - pgp::pkt::sigsub::RevocationKey::set_rev_class
  - pgp::pkt::sigsub::RevocationKey::alg
  - pgp::pkt::sigsub::RevocationKey::set_alg
  - "&\n    fp() const noexcept"
  - pgp::pkt::sigsub::RevocationKey::set_fp
  - pgp::pkt::sigsub::IssuerKeyID::IssuerKeyID
  - "&\n    keyid() const noexcept"
  - pgp::pkt::sigsub::IssuerKeyID::set_keyid
  - pgp::pkt::sigsub::NotationData::NotationData
  - pgp::pkt::sigsub::NotationData::human_readable
  - "&\n    name() const noexcept"
  - "&\n    value() const noexcept"
  - pgp::pkt::sigsub::Flags::Flags
  - pgp::pkt::sigsub::KeyserverPrefs::KeyserverPrefs
  - pgp::pkt::sigsub::KeyserverPrefs::no_modify
  - pgp::pkt::sigsub::KeyserverPrefs::set_no_modify
  - pgp::pkt::sigsub::KeyserverPrefs::raw
  - pgp::pkt::sigsub::KeyserverPrefs::set_raw
  - pgp::pkt::sigsub::PreferredKeyserver::PreferredKeyserver
  - "&\n    keyserver() const noexcept"
  - pgp::pkt::sigsub::PreferredKeyserver::set_keyserver
  - pgp::pkt::sigsub::PrimaryUserID::PrimaryUserID
  - pgp::pkt::sigsub::PrimaryUserID::primary
  - pgp::pkt::sigsub::PrimaryUserID::set_primary
  - pgp::pkt::sigsub::PolicyURI::PolicyURI
  - "&\n    URI() const noexcept"
  - pgp::pkt::sigsub::KeyFlags::KeyFlags
  - pgp::pkt::sigsub::KeyFlags::flags
  - pgp::pkt::sigsub::KeyFlags::set_flags
  - pgp::pkt::sigsub::SignersUserID::SignersUserID
  - "&\n    signer() const noexcept"
  - pgp::pkt::sigsub::SignersUserID::set_signer
  - pgp::pkt::sigsub::RevocationReason::RevocationReason
  - pgp::pkt::sigsub::RevocationReason::code
  - pgp::pkt::sigsub::RevocationReason::set_code
  - "&\n    reason() const noexcept"
  - pgp::pkt::sigsub::RevocationReason::set_reason
  - pgp::pkt::sigsub::Features::Features
  - pgp::pkt::sigsub::Features::features
  - pgp::pkt::sigsub::Features::set_features
  - pgp::pkt::sigsub::IssuerFingerprint::IssuerFingerprint
  - pgp::pkt::sigsub::IssuerFingerprint::version
  - pgp::pkt::sigsub::IssuerFingerprint::set_version
  - "&\n    fp() const noexcept"
  - pgp::pkt::sigsub::IssuerFingerprint::set_fp
  - pgp::pkt::sigsub::List::List
  - pgp::pkt::sigsub::List::begin
  - pgp::pkt::sigsub::List::end
  - pgp::pkt::sigsub::List::begin
  - pgp::pkt::sigsub::List::end
  - pgp::pkt::sigsub::List::size
  - "&\n    operator[](size_t idx)"
  - "&\n    operator[](size_t idx) const"
  source_file: /src/rnp/src/lib/sig_subpacket.hpp
  types:
    enum:
    - enumerators:
      - name: ExpirationTime
        value: '3'
      - name: Trust
        value: '5'
      - name: Revocable
        value: '7'
      - name: KeyExpirationTime
        value: '9'
      - name: Reserved_17
        value: '17'
      - name: Private_102
        value: '102'
      - name: Private_106
        value: '106'
      - name: PreferredAEAD
        value: '34'
      - name: Private_109
        value: '109'
      - name: CreationTime
        value: '2'
      - name: PreferredSymmetric
        value: '11'
      - name: IssuerKeyID
        value: '16'
      - name: Reserved_13
        value: '13'
      - name: PreferredHash
        value: '21'
      - name: KeyserverPrefs
        value: '23'
      - name: PrimaryUserID
        value: '25'
      - name: KeyFlags
        value: '27'
      - name: RevocationReason
        value: '29'
      - name: SignatureTarget
        value: '31'
      - name: Private_103
        value: '103'
      - name: IssuerFingerprint
        value: '33'
      - name: Private_108
        value: '108'
      - name: ExportableCert
        value: '4'
      - name: Reserved_1
        value: '1'
      - name: RegExp
        value: '6'
      - name: Reserved_8
        value: '8'
      - name: Reserved_15
        value: '15'
      - name: Reserved_18
        value: '18'
      - name: NotationData
        value: '20'
      - name: PreferredAEADv6
        value: '39'
      - name: Private_101
        value: '101'
      - name: Private_104
        value: '104'
      - name: Private_107
        value: '107'
      - name: Private_110
        value: '110'
      - name: Unknown
        value: '0'
      - name: RevocationKey
        value: '12'
      - name: Placeholder
        value: '10'
      - name: Reserved_14
        value: '14'
      - name: Reserved_19
        value: '19'
      - name: PreferredCompress
        value: '22'
      - name: PreferredKeyserver
        value: '24'
      - name: PolicyURI
        value: '26'
      - name: SignersUserID
        value: '28'
      - name: Features
        value: '30'
      - name: Private_105
        value: '105'
      - name: EmbeddedSignature
        value: '32'
      - name: Private_100
        value: '100'
      item_type: enum
      name: Type
      pos:
        line_end: 97
        line_start: 46
        source_file: /src/rnp/src/lib/sig_subpacket.hpp
    - enumerators:
      - name: ExpirationTime
        value: '3'
      - name: Trust
        value: '5'
      - name: Revocable
        value: '7'
      - name: KeyExpirationTime
        value: '9'
      - name: Reserved_17
        value: '17'
      - name: Private_102
        value: '102'
      - name: Private_106
        value: '106'
      - name: PreferredAEAD
        value: '34'
      - name: Private_109
        value: '109'
      - name: CreationTime
        value: '2'
      - name: PreferredSymmetric
        value: '11'
      - name: IssuerKeyID
        value: '16'
      - name: Reserved_13
        value: '13'
      - name: PreferredHash
        value: '21'
      - name: KeyserverPrefs
        value: '23'
      - name: PrimaryUserID
        value: '25'
      - name: KeyFlags
        value: '27'
      - name: RevocationReason
        value: '29'
      - name: SignatureTarget
        value: '31'
      - name: Private_103
        value: '103'
      - name: IssuerFingerprint
        value: '33'
      - name: Private_108
        value: '108'
      - name: ExportableCert
        value: '4'
      - name: Reserved_1
        value: '1'
      - name: RegExp
        value: '6'
      - name: Reserved_8
        value: '8'
      - name: Reserved_15
        value: '15'
      - name: Reserved_18
        value: '18'
      - name: NotationData
        value: '20'
      - name: PreferredAEADv6
        value: '39'
      - name: Private_101
        value: '101'
      - name: Private_104
        value: '104'
      - name: Private_107
        value: '107'
      - name: Private_110
        value: '110'
      - name: Unknown
        value: '0'
      - name: RevocationKey
        value: '12'
      - name: Placeholder
        value: '10'
      - name: Reserved_14
        value: '14'
      - name: Reserved_19
        value: '19'
      - name: PreferredCompress
        value: '22'
      - name: PreferredKeyserver
        value: '24'
      - name: PolicyURI
        value: '26'
      - name: SignersUserID
        value: '28'
      - name: Features
        value: '30'
      - name: Private_105
        value: '105'
      - name: EmbeddedSignature
        value: '32'
      - name: Private_100
        value: '100'
      item_type: enum
      name: Type
      pos:
        line_end: 97
        line_start: 46
        source_file: /src/rnp/src/lib/sig_subpacket.hpp
    - enumerators:
      - name: ExpirationTime
        value: '3'
      - name: Trust
        value: '5'
      - name: Revocable
        value: '7'
      - name: KeyExpirationTime
        value: '9'
      - name: Reserved_17
        value: '17'
      - name: Private_102
        value: '102'
      - name: Private_106
        value: '106'
      - name: PreferredAEAD
        value: '34'
      - name: Private_109
        value: '109'
      - name: CreationTime
        value: '2'
      - name: PreferredSymmetric
        value: '11'
      - name: IssuerKeyID
        value: '16'
      - name: Reserved_13
        value: '13'
      - name: PreferredHash
        value: '21'
      - name: KeyserverPrefs
        value: '23'
      - name: PrimaryUserID
        value: '25'
      - name: KeyFlags
        value: '27'
      - name: RevocationReason
        value: '29'
      - name: SignatureTarget
        value: '31'
      - name: Private_103
        value: '103'
      - name: IssuerFingerprint
        value: '33'
      - name: Private_108
        value: '108'
      - name: ExportableCert
        value: '4'
      - name: Reserved_1
        value: '1'
      - name: RegExp
        value: '6'
      - name: Reserved_8
        value: '8'
      - name: Reserved_15
        value: '15'
      - name: Reserved_18
        value: '18'
      - name: NotationData
        value: '20'
      - name: PreferredAEADv6
        value: '39'
      - name: Private_101
        value: '101'
      - name: Private_104
        value: '104'
      - name: Private_107
        value: '107'
      - name: Private_110
        value: '110'
      - name: Unknown
        value: '0'
      - name: RevocationKey
        value: '12'
      - name: Placeholder
        value: '10'
      - name: Reserved_14
        value: '14'
      - name: Reserved_19
        value: '19'
      - name: PreferredCompress
        value: '22'
      - name: PreferredKeyserver
        value: '24'
      - name: PolicyURI
        value: '26'
      - name: SignersUserID
        value: '28'
      - name: Features
        value: '30'
      - name: Private_105
        value: '105'
      - name: EmbeddedSignature
        value: '32'
      - name: Private_100
        value: '100'
      item_type: enum
      name: Type
      pos:
        line_end: 97
        line_start: 46
        source_file: /src/rnp/src/lib/sig_subpacket.hpp
    - enumerators:
      - name: ExpirationTime
        value: '3'
      - name: Trust
        value: '5'
      - name: Revocable
        value: '7'
      - name: KeyExpirationTime
        value: '9'
      - name: Reserved_17
        value: '17'
      - name: Private_102
        value: '102'
      - name: Private_106
        value: '106'
      - name: PreferredAEAD
        value: '34'
      - name: Private_109
        value: '109'
      - name: CreationTime
        value: '2'
      - name: PreferredSymmetric
        value: '11'
      - name: IssuerKeyID
        value: '16'
      - name: Reserved_13
        value: '13'
      - name: PreferredHash
        value: '21'
      - name: KeyserverPrefs
        value: '23'
      - name: PrimaryUserID
        value: '25'
      - name: KeyFlags
        value: '27'
      - name: RevocationReason
        value: '29'
      - name: SignatureTarget
        value: '31'
      - name: Private_103
        value: '103'
      - name: IssuerFingerprint
        value: '33'
      - name: Private_108
        value: '108'
      - name: ExportableCert
        value: '4'
      - name: Reserved_1
        value: '1'
      - name: RegExp
        value: '6'
      - name: Reserved_8
        value: '8'
      - name: Reserved_15
        value: '15'
      - name: Reserved_18
        value: '18'
      - name: NotationData
        value: '20'
      - name: PreferredAEADv6
        value: '39'
      - name: Private_101
        value: '101'
      - name: Private_104
        value: '104'
      - name: Private_107
        value: '107'
      - name: Private_110
        value: '110'
      - name: Unknown
        value: '0'
      - name: RevocationKey
        value: '12'
      - name: Placeholder
        value: '10'
      - name: Reserved_14
        value: '14'
      - name: Reserved_19
        value: '19'
      - name: PreferredCompress
        value: '22'
      - name: PreferredKeyserver
        value: '24'
      - name: PolicyURI
        value: '26'
      - name: SignersUserID
        value: '28'
      - name: Features
        value: '30'
      - name: Private_105
        value: '105'
      - name: EmbeddedSignature
        value: '32'
      - name: Private_100
        value: '100'
      item_type: enum
      name: Type
      pos:
        line_end: 97
        line_start: 46
        source_file: /src/rnp/src/lib/sig_subpacket.hpp
    - enumerators:
      - name: ExpirationTime
        value: '3'
      - name: Trust
        value: '5'
      - name: Revocable
        value: '7'
      - name: KeyExpirationTime
        value: '9'
      - name: Reserved_17
        value: '17'
      - name: Private_102
        value: '102'
      - name: Private_106
        value: '106'
      - name: PreferredAEAD
        value: '34'
      - name: Private_109
        value: '109'
      - name: CreationTime
        value: '2'
      - name: PreferredSymmetric
        value: '11'
      - name: IssuerKeyID
        value: '16'
      - name: Reserved_13
        value: '13'
      - name: PreferredHash
        value: '21'
      - name: KeyserverPrefs
        value: '23'
      - name: PrimaryUserID
        value: '25'
      - name: KeyFlags
        value: '27'
      - name: RevocationReason
        value: '29'
      - name: SignatureTarget
        value: '31'
      - name: Private_103
        value: '103'
      - name: IssuerFingerprint
        value: '33'
      - name: Private_108
        value: '108'
      - name: ExportableCert
        value: '4'
      - name: Reserved_1
        value: '1'
      - name: RegExp
        value: '6'
      - name: Reserved_8
        value: '8'
      - name: Reserved_15
        value: '15'
      - name: Reserved_18
        value: '18'
      - name: NotationData
        value: '20'
      - name: PreferredAEADv6
        value: '39'
      - name: Private_101
        value: '101'
      - name: Private_104
        value: '104'
      - name: Private_107
        value: '107'
      - name: Private_110
        value: '110'
      - name: Unknown
        value: '0'
      - name: RevocationKey
        value: '12'
      - name: Placeholder
        value: '10'
      - name: Reserved_14
        value: '14'
      - name: Reserved_19
        value: '19'
      - name: PreferredCompress
        value: '22'
      - name: PreferredKeyserver
        value: '24'
      - name: PolicyURI
        value: '26'
      - name: SignersUserID
        value: '28'
      - name: Features
        value: '30'
      - name: Private_105
        value: '105'
      - name: EmbeddedSignature
        value: '32'
      - name: Private_100
        value: '100'
      item_type: enum
      name: Type
      pos:
        line_end: 97
        line_start: 46
        source_file: /src/rnp/src/lib/sig_subpacket.hpp
    - enumerators:
      - name: ExpirationTime
        value: '3'
      - name: Trust
        value: '5'
      - name: Revocable
        value: '7'
      - name: KeyExpirationTime
        value: '9'
      - name: Reserved_17
        value: '17'
      - name: Private_102
        value: '102'
      - name: Private_106
        value: '106'
      - name: PreferredAEAD
        value: '34'
      - name: Private_109
        value: '109'
      - name: CreationTime
        value: '2'
      - name: PreferredSymmetric
        value: '11'
      - name: IssuerKeyID
        value: '16'
      - name: Reserved_13
        value: '13'
      - name: PreferredHash
        value: '21'
      - name: KeyserverPrefs
        value: '23'
      - name: PrimaryUserID
        value: '25'
      - name: KeyFlags
        value: '27'
      - name: RevocationReason
        value: '29'
      - name: SignatureTarget
        value: '31'
      - name: Private_103
        value: '103'
      - name: IssuerFingerprint
        value: '33'
      - name: Private_108
        value: '108'
      - name: ExportableCert
        value: '4'
      - name: Reserved_1
        value: '1'
      - name: RegExp
        value: '6'
      - name: Reserved_8
        value: '8'
      - name: Reserved_15
        value: '15'
      - name: Reserved_18
        value: '18'
      - name: NotationData
        value: '20'
      - name: PreferredAEADv6
        value: '39'
      - name: Private_101
        value: '101'
      - name: Private_104
        value: '104'
      - name: Private_107
        value: '107'
      - name: Private_110
        value: '110'
      - name: Unknown
        value: '0'
      - name: RevocationKey
        value: '12'
      - name: Placeholder
        value: '10'
      - name: Reserved_14
        value: '14'
      - name: Reserved_19
        value: '19'
      - name: PreferredCompress
        value: '22'
      - name: PreferredKeyserver
        value: '24'
      - name: PolicyURI
        value: '26'
      - name: SignersUserID
        value: '28'
      - name: Features
        value: '30'
      - name: Private_105
        value: '105'
      - name: EmbeddedSignature
        value: '32'
      - name: Private_100
        value: '100'
      item_type: enum
      name: Type
      pos:
        line_end: 97
        line_start: 46
        source_file: /src/rnp/src/lib/sig_subpacket.hpp
    - enumerators:
      - name: ExpirationTime
        value: '3'
      - name: Trust
        value: '5'
      - name: Revocable
        value: '7'
      - name: KeyExpirationTime
        value: '9'
      - name: Reserved_17
        value: '17'
      - name: Private_102
        value: '102'
      - name: Private_106
        value: '106'
      - name: PreferredAEAD
        value: '34'
      - name: Private_109
        value: '109'
      - name: CreationTime
        value: '2'
      - name: PreferredSymmetric
        value: '11'
      - name: IssuerKeyID
        value: '16'
      - name: Reserved_13
        value: '13'
      - name: PreferredHash
        value: '21'
      - name: KeyserverPrefs
        value: '23'
      - name: PrimaryUserID
        value: '25'
      - name: KeyFlags
        value: '27'
      - name: RevocationReason
        value: '29'
      - name: SignatureTarget
        value: '31'
      - name: Private_103
        value: '103'
      - name: IssuerFingerprint
        value: '33'
      - name: Private_108
        value: '108'
      - name: ExportableCert
        value: '4'
      - name: Reserved_1
        value: '1'
      - name: RegExp
        value: '6'
      - name: Reserved_8
        value: '8'
      - name: Reserved_15
        value: '15'
      - name: Reserved_18
        value: '18'
      - name: NotationData
        value: '20'
      - name: PreferredAEADv6
        value: '39'
      - name: Private_101
        value: '101'
      - name: Private_104
        value: '104'
      - name: Private_107
        value: '107'
      - name: Private_110
        value: '110'
      - name: Unknown
        value: '0'
      - name: RevocationKey
        value: '12'
      - name: Placeholder
        value: '10'
      - name: Reserved_14
        value: '14'
      - name: Reserved_19
        value: '19'
      - name: PreferredCompress
        value: '22'
      - name: PreferredKeyserver
        value: '24'
      - name: PolicyURI
        value: '26'
      - name: SignersUserID
        value: '28'
      - name: Features
        value: '30'
      - name: Private_105
        value: '105'
      - name: EmbeddedSignature
        value: '32'
      - name: Private_100
        value: '100'
      item_type: enum
      name: Type
      pos:
        line_end: 97
        line_start: 46
        source_file: /src/rnp/src/lib/sig_subpacket.hpp
    - enumerators:
      - name: ExpirationTime
        value: '3'
      - name: Trust
        value: '5'
      - name: Revocable
        value: '7'
      - name: KeyExpirationTime
        value: '9'
      - name: Reserved_17
        value: '17'
      - name: Private_102
        value: '102'
      - name: Private_106
        value: '106'
      - name: PreferredAEAD
        value: '34'
      - name: Private_109
        value: '109'
      - name: CreationTime
        value: '2'
      - name: PreferredSymmetric
        value: '11'
      - name: IssuerKeyID
        value: '16'
      - name: Reserved_13
        value: '13'
      - name: PreferredHash
        value: '21'
      - name: KeyserverPrefs
        value: '23'
      - name: PrimaryUserID
        value: '25'
      - name: KeyFlags
        value: '27'
      - name: RevocationReason
        value: '29'
      - name: SignatureTarget
        value: '31'
      - name: Private_103
        value: '103'
      - name: IssuerFingerprint
        value: '33'
      - name: Private_108
        value: '108'
      - name: ExportableCert
        value: '4'
      - name: Reserved_1
        value: '1'
      - name: RegExp
        value: '6'
      - name: Reserved_8
        value: '8'
      - name: Reserved_15
        value: '15'
      - name: Reserved_18
        value: '18'
      - name: NotationData
        value: '20'
      - name: PreferredAEADv6
        value: '39'
      - name: Private_101
        value: '101'
      - name: Private_104
        value: '104'
      - name: Private_107
        value: '107'
      - name: Private_110
        value: '110'
      - name: Unknown
        value: '0'
      - name: RevocationKey
        value: '12'
      - name: Placeholder
        value: '10'
      - name: Reserved_14
        value: '14'
      - name: Reserved_19
        value: '19'
      - name: PreferredCompress
        value: '22'
      - name: PreferredKeyserver
        value: '24'
      - name: PolicyURI
        value: '26'
      - name: SignersUserID
        value: '28'
      - name: Features
        value: '30'
      - name: Private_105
        value: '105'
      - name: EmbeddedSignature
        value: '32'
      - name: Private_100
        value: '100'
      item_type: enum
      name: Type
      pos:
        line_end: 97
        line_start: 46
        source_file: /src/rnp/src/lib/sig_subpacket.hpp
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::Key::Key
  - '&operator=(const Key &)'
  - '&operator=(Key &&)'
  - rnp::KeyLocker::KeyLocker
  - ~KeyLocker()
  - rnp::Key::Key
  - '&operator=(const Key &)'
  - '&operator=(Key &&)'
  - rnp::KeyLocker::KeyLocker
  - ~KeyLocker()
  source_file: /src/rnp/src/lib/key.hpp
  types:
    enum:
    - enumerators:
      - name: Unknown
      - name: GPG
      - name: KBX
      - name: G10
      item_type: enum
      name: KeyFormat
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/rnp/src/lib/key.hpp
    - enumerators:
      - name: Unknown
      - name: GPG
      - name: KBX
      - name: G10
      item_type: enum
      name: KeyFormat
      pos:
        line_end: 49
        line_start: 49
        source_file: /src/rnp/src/lib/key.hpp
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::ecdsa::decode_sig
  - pgp::ecdsa::encode_sig
  - pgp::ecdsa::validate_key
  - pgp::ecdsa::sign
  - pgp::ecdsa::verify
  - pgp::ecdsa::decode_sig
  - pgp::ecdsa::encode_sig
  - pgp::ecdsa::validate_key
  - pgp::ecdsa::sign
  - pgp::ecdsa::verify
  - pgp::ecdsa::decode_sig
  - pgp::ecdsa::encode_sig
  - pgp::ecdsa::validate_key
  - pgp::ecdsa::sign
  - pgp::ecdsa::verify
  - pgp::ecdsa::decode_sig
  - pgp::ecdsa::encode_sig
  - pgp::ecdsa::validate_key
  - pgp::ecdsa::sign
  - pgp::ecdsa::verify
  source_file: /src/rnp/src/lib/crypto/ecdsa_ossl.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp_sa_to_botan_string
  - pgp_aead_to_botan_string
  - pgp_cipher_cfb_start
  - pgp_cipher_cfb_finish
  - pgp_cipher_encrypt_block
  - pgp_is_sa_supported
  - pgp_cipher_aead_init
  - pgp_cipher_aead_set_ad
  - pgp_cipher_aead_start
  - pgp_cipher_aead_update
  - pgp_cipher_aead_reset
  - pgp_cipher_aead_finish
  - pgp_cipher_aead_destroy
  source_file: /src/rnp/src/lib/crypto/symmetric.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/backend_version.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/eddsa.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp_kyber_ecdh_composite_key_t::~pgp_kyber_ecdh_composite_key_t()
  - pgp_kyber_ecdh_composite_key_t::initialized_or_throw
  - pgp_kyber_ecdh_composite_key_t::gen_keypair
  - pgp_kyber_ecdh_composite_key_t::ecdh_curve_privkey_size
  - pgp_kyber_ecdh_composite_key_t::ecdh_curve_pubkey_size
  - pgp_kyber_ecdh_composite_key_t::ecdh_curve_ephemeral_size
  - pgp_kyber_ecdh_composite_key_t::ecdh_curve_keyshare_size
  - pgp_kyber_ecdh_composite_key_t::pk_alg_to_kyber_id
  - pgp_kyber_ecdh_composite_key_t::pk_alg_to_curve_id
  - pgp_kyber_ecdh_composite_private_key_t::pgp_kyber_ecdh_composite_private_key_t
  - pgp_kyber_ecdh_composite_private_key_t::pgp_kyber_ecdh_composite_private_key_t
  - pgp_kyber_ecdh_composite_private_key_t::pgp_kyber_ecdh_composite_private_key_t
  - "&\npgp_kyber_ecdh_composite_private_key_t::operator=(\n  const pgp_kyber_ecdh_composite_private_key_t
    &other)"
  - pgp_kyber_ecdh_composite_private_key_t::pgp_kyber_ecdh_composite_private_key_t
  - pgp_kyber_ecdh_composite_private_key_t::encoded_size
  - pgp_kyber_ecdh_composite_private_key_t::parse_component_keys
  - pgp_kyber_ecdh_composite_private_key_t::decrypt
  - pgp_kyber_ecdh_composite_private_key_t::secure_clear
  - pgp_kyber_ecdh_composite_private_key_t::get_encoded
  - pgp_kyber_ecdh_composite_public_key_t::pgp_kyber_ecdh_composite_public_key_t
  - pgp_kyber_ecdh_composite_public_key_t::pgp_kyber_ecdh_composite_public_key_t
  - pgp_kyber_ecdh_composite_public_key_t::pgp_kyber_ecdh_composite_public_key_t
  - pgp_kyber_ecdh_composite_public_key_t::encoded_size
  - pgp_kyber_ecdh_composite_public_key_t::parse_component_keys
  - pgp_kyber_ecdh_composite_public_key_t::encrypt
  - pgp_kyber_ecdh_composite_public_key_t::get_encoded
  - pgp_kyber_ecdh_composite_public_key_t::get_kyber_encoded
  - pgp_kyber_ecdh_composite_public_key_t::get_ecdh_encoded
  - pgp_kyber_ecdh_composite_public_key_t::is_valid
  - pgp_kyber_ecdh_composite_private_key_t::is_valid
  - kyber_ecdh_validate_key
  source_file: /src/rnp/src/lib/crypto/kyber_ecdh_composite.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/ec_ossl.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - secure_clear
  - rnp::hex_encode
  - rnp::hex_char_decode
  - rnp::hex_decode
  - rnp::hex_encode
  - rnp::hex_char_decode
  - rnp::hex_decode
  source_file: /src/rnp/src/lib/crypto/mem_ossl.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp_kyber_param_to_botan_kyber_mode
  - kyber_key_share_size
  - kyber_pubkey_from_bytes
  - kyber_privkey_from_bytes
  - rnp_kyber_param_to_botan_kyber_mode
  - kyber_key_share_size
  - kyber_pubkey_from_bytes
  - kyber_privkey_from_bytes
  - kyber_generate_keypair
  - pgp_kyber_public_key_t::encapsulate
  - pgp_kyber_private_key_t::decapsulate
  - pgp_kyber_public_key_t::is_valid
  - pgp_kyber_private_key_t::is_valid
  source_file: /src/rnp/src/lib/crypto/kyber.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/hash_crc24.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp_sphincsplus_alg_to_botan_param
  - sphincsplus_pubkey_from_bytes
  - sphincsplus_privkey_from_bytes
  - rnp_sphincsplus_alg_to_botan_param
  - sphincsplus_pubkey_from_bytes
  - sphincsplus_privkey_from_bytes
  - pgp_sphincsplus_public_key_t::pgp_sphincsplus_public_key_t
  - pgp_sphincsplus_public_key_t::pgp_sphincsplus_public_key_t
  - pgp_sphincsplus_private_key_t::pgp_sphincsplus_private_key_t
  - pgp_sphincsplus_private_key_t::pgp_sphincsplus_private_key_t
  - pgp_sphincsplus_private_key_t::sign
  - pgp_sphincsplus_public_key_t::verify
  - sphincsplus_generate_keypair
  - pgp_sphincsplus_generate
  - pgp_sphincsplus_public_key_t::is_valid
  - pgp_sphincsplus_private_key_t::is_valid
  - sphincsplus_validate_key
  - sphincsplus_privkey_size
  - sphincsplus_pubkey_size
  - sphincsplus_signature_size
  source_file: /src/rnp/src/lib/crypto/sphincsplus.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::bn::bn
  - rnp::bn::bn
  - rnp::bn::bn
  - rnp::bn::bn
  - ~bn()
  - operator bool() const
  - rnp::bn::get
  - rnp::bn::mpi
  - rnp::bn::bin
  - rnp::bn::bytes
  - rnp::botan::Pubkey::Pubkey
  - rnp::botan::Pubkey::Pubkey
  - ~Pubkey()
  - "&\n    get() noexcept"
  - rnp::botan::Privkey::Privkey
  - rnp::botan::Privkey::Privkey
  - ~Privkey()
  - "&\n    get() noexcept"
  - "&\n    get() const noexcept"
  - rnp::botan::op::Encrypt::Encrypt
  - rnp::botan::op::Encrypt::Encrypt
  - ~Encrypt()
  - "&\n    get() noexcept"
  - rnp::botan::op::Decrypt::Decrypt
  - rnp::botan::op::Decrypt::Decrypt
  - ~Decrypt()
  - "&\n    get() noexcept"
  - rnp::botan::op::Verify::Verify
  - rnp::botan::op::Verify::Verify
  - ~Verify()
  - "&\n    get() noexcept"
  - rnp::botan::op::Sign::Sign
  - rnp::botan::op::Sign::Sign
  - ~Sign()
  - "&\n    get() noexcept"
  - rnp::botan::op::KeyAgreement::KeyAgreement
  - rnp::botan::op::KeyAgreement::KeyAgreement
  - ~KeyAgreement()
  - "&\n    get() noexcept"
  - rnp::botan::op::Encrypt::Encrypt
  - rnp::botan::op::Encrypt::Encrypt
  - ~Encrypt()
  - "&\n    get() noexcept"
  - rnp::botan::op::Decrypt::Decrypt
  - rnp::botan::op::Decrypt::Decrypt
  - ~Decrypt()
  - "&\n    get() noexcept"
  - rnp::botan::op::Verify::Verify
  - rnp::botan::op::Verify::Verify
  - ~Verify()
  - "&\n    get() noexcept"
  - rnp::botan::op::Sign::Sign
  - rnp::botan::op::Sign::Sign
  - ~Sign()
  - "&\n    get() noexcept"
  - rnp::botan::op::KeyAgreement::KeyAgreement
  - rnp::botan::op::KeyAgreement::KeyAgreement
  - ~KeyAgreement()
  - "&\n    get() noexcept"
  - rnp::botan::Pubkey::Pubkey
  - rnp::botan::Pubkey::Pubkey
  - ~Pubkey()
  - "&\n    get() noexcept"
  - rnp::botan::Privkey::Privkey
  - rnp::botan::Privkey::Privkey
  - ~Privkey()
  - "&\n    get() noexcept"
  - "&\n    get() const noexcept"
  - rnp::botan::op::Encrypt::Encrypt
  - rnp::botan::op::Encrypt::Encrypt
  - ~Encrypt()
  - "&\n    get() noexcept"
  - rnp::botan::op::Decrypt::Decrypt
  - rnp::botan::op::Decrypt::Decrypt
  - ~Decrypt()
  - "&\n    get() noexcept"
  - rnp::botan::op::Verify::Verify
  - rnp::botan::op::Verify::Verify
  - ~Verify()
  - "&\n    get() noexcept"
  - rnp::botan::op::Sign::Sign
  - rnp::botan::op::Sign::Sign
  - ~Sign()
  - "&\n    get() noexcept"
  - rnp::botan::op::KeyAgreement::KeyAgreement
  - rnp::botan::op::KeyAgreement::KeyAgreement
  - ~KeyAgreement()
  - "&\n    get() noexcept"
  - rnp::botan::op::Encrypt::Encrypt
  - rnp::botan::op::Encrypt::Encrypt
  - ~Encrypt()
  - "&\n    get() noexcept"
  - rnp::botan::op::Decrypt::Decrypt
  - rnp::botan::op::Decrypt::Decrypt
  - ~Decrypt()
  - "&\n    get() noexcept"
  - rnp::botan::op::Verify::Verify
  - rnp::botan::op::Verify::Verify
  - ~Verify()
  - "&\n    get() noexcept"
  - rnp::botan::op::Sign::Sign
  - rnp::botan::op::Sign::Sign
  - ~Sign()
  - "&\n    get() noexcept"
  - rnp::botan::op::KeyAgreement::KeyAgreement
  - rnp::botan::op::KeyAgreement::KeyAgreement
  - ~KeyAgreement()
  - "&\n    get() noexcept"
  - rnp::bn::bn
  - rnp::bn::bn
  - rnp::bn::bn
  - rnp::bn::bn
  - ~bn()
  - operator bool() const
  - rnp::bn::get
  - rnp::bn::mpi
  - rnp::bn::bin
  - rnp::bn::bytes
  - rnp::botan::Pubkey::Pubkey
  - rnp::botan::Pubkey::Pubkey
  - ~Pubkey()
  - "&\n    get() noexcept"
  - rnp::botan::Privkey::Privkey
  - rnp::botan::Privkey::Privkey
  - ~Privkey()
  - "&\n    get() noexcept"
  - "&\n    get() const noexcept"
  - rnp::botan::op::Encrypt::Encrypt
  - rnp::botan::op::Encrypt::Encrypt
  - ~Encrypt()
  - "&\n    get() noexcept"
  - rnp::botan::op::Decrypt::Decrypt
  - rnp::botan::op::Decrypt::Decrypt
  - ~Decrypt()
  - "&\n    get() noexcept"
  - rnp::botan::op::Verify::Verify
  - rnp::botan::op::Verify::Verify
  - ~Verify()
  - "&\n    get() noexcept"
  - rnp::botan::op::Sign::Sign
  - rnp::botan::op::Sign::Sign
  - ~Sign()
  - "&\n    get() noexcept"
  - rnp::botan::op::KeyAgreement::KeyAgreement
  - rnp::botan::op::KeyAgreement::KeyAgreement
  - ~KeyAgreement()
  - "&\n    get() noexcept"
  - rnp::botan::op::Encrypt::Encrypt
  - rnp::botan::op::Encrypt::Encrypt
  - ~Encrypt()
  - "&\n    get() noexcept"
  - rnp::botan::op::Decrypt::Decrypt
  - rnp::botan::op::Decrypt::Decrypt
  - ~Decrypt()
  - "&\n    get() noexcept"
  - rnp::botan::op::Verify::Verify
  - rnp::botan::op::Verify::Verify
  - ~Verify()
  - "&\n    get() noexcept"
  - rnp::botan::op::Sign::Sign
  - rnp::botan::op::Sign::Sign
  - ~Sign()
  - "&\n    get() noexcept"
  - rnp::botan::op::KeyAgreement::KeyAgreement
  - rnp::botan::op::KeyAgreement::KeyAgreement
  - ~KeyAgreement()
  - "&\n    get() noexcept"
  - rnp::botan::Pubkey::Pubkey
  - rnp::botan::Pubkey::Pubkey
  - ~Pubkey()
  - "&\n    get() noexcept"
  - rnp::botan::Privkey::Privkey
  - rnp::botan::Privkey::Privkey
  - ~Privkey()
  - "&\n    get() noexcept"
  - "&\n    get() const noexcept"
  - rnp::botan::op::Encrypt::Encrypt
  - rnp::botan::op::Encrypt::Encrypt
  - ~Encrypt()
  - "&\n    get() noexcept"
  - rnp::botan::op::Decrypt::Decrypt
  - rnp::botan::op::Decrypt::Decrypt
  - ~Decrypt()
  - "&\n    get() noexcept"
  - rnp::botan::op::Verify::Verify
  - rnp::botan::op::Verify::Verify
  - ~Verify()
  - "&\n    get() noexcept"
  - rnp::botan::op::Sign::Sign
  - rnp::botan::op::Sign::Sign
  - ~Sign()
  - "&\n    get() noexcept"
  - rnp::botan::op::KeyAgreement::KeyAgreement
  - rnp::botan::op::KeyAgreement::KeyAgreement
  - ~KeyAgreement()
  - "&\n    get() noexcept"
  - rnp::botan::op::Encrypt::Encrypt
  - rnp::botan::op::Encrypt::Encrypt
  - ~Encrypt()
  - "&\n    get() noexcept"
  - rnp::botan::op::Decrypt::Decrypt
  - rnp::botan::op::Decrypt::Decrypt
  - ~Decrypt()
  - "&\n    get() noexcept"
  - rnp::botan::op::Verify::Verify
  - rnp::botan::op::Verify::Verify
  - ~Verify()
  - "&\n    get() noexcept"
  - rnp::botan::op::Sign::Sign
  - rnp::botan::op::Sign::Sign
  - ~Sign()
  - "&\n    get() noexcept"
  - rnp::botan::op::KeyAgreement::KeyAgreement
  - rnp::botan::op::KeyAgreement::KeyAgreement
  - ~KeyAgreement()
  - "&\n    get() noexcept"
  source_file: /src/rnp/src/lib/crypto/botan_utils.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::rsa::Key::clear_secret
  - ~Key()
  - pgp::rsa::Key::clear_secret
  - ~Key()
  - pgp::rsa::Key::clear_secret
  - ~Key()
  - pgp::rsa::Key::clear_secret
  - ~Key()
  source_file: /src/rnp/src/lib/crypto/rsa.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/s2k.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: pgp_s2k_t
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/rnp/src/lib/crypto/s2k.h
      type: pgp_s2k_t
    union: []
- function_names:
  - pgp::mpi::bits
  - pgp::mpi::size
  - pgp::mpi::data
  - pgp::mpi::data
  - mpi::operator==(const mpi &src) const
  - mpi::operator!=(const mpi &src) const
  - '&

    mpi::operator[](size_t idx)'
  - '&

    mpi::operator[](size_t idx) const'
  - pgp::mpi::assign
  - pgp::mpi::copy
  - pgp::mpi::resize
  - pgp::mpi::forget
  - pgp::mpi::bits
  - pgp::mpi::size
  - pgp::mpi::data
  - pgp::mpi::data
  - mpi::operator==(const mpi &src) const
  - mpi::operator!=(const mpi &src) const
  - '&

    mpi::operator[](size_t idx)'
  - '&

    mpi::operator[](size_t idx) const'
  - pgp::mpi::assign
  - pgp::mpi::copy
  - pgp::mpi::resize
  - pgp::mpi::forget
  source_file: /src/rnp/src/lib/crypto/mpi.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - x_hkdf
  - x25519_native_encrypt
  - x25519_native_decrypt
  - x25519_validate_key_native
  - generate_x25519_native
  - generate_x448_native
  - x448_native_encrypt
  - x448_native_decrypt
  - x448_validate_key_native
  source_file: /src/rnp/src/lib/crypto/x25519_x448.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/hkdf_ossl.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp_dilithium_private_key_t::pgp_dilithium_private_key_t
  - pgp_dilithium_private_key_t::param
  - pgp_dilithium_private_key_t::get_encoded
  - pgp_dilithium_public_key_t::pgp_dilithium_public_key_t
  - operator==(const pgp_dilithium_public_key_t &rhs) const
  - pgp_dilithium_public_key_t::get_encoded
  source_file: /src/rnp/src/lib/crypto/dilithium.h
  types:
    enum:
    - enumerators:
      - name: dilithium_L3
      - name: dilithium_L5
      item_type: enum
      name: dilithium_parameter_e
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/rnp/src/lib/crypto/dilithium.h
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::backend_string
  - rnp::backend_version
  - rnp::backend_init
  - rnp::backend_finish
  - rnp::backend_init
  - rnp::backend_finish
  - rnp::backend_string
  - rnp::backend_version
  - rnp::backend_init
  - rnp::backend_finish
  - rnp::backend_init
  - rnp::backend_finish
  source_file: /src/rnp/src/lib/crypto/backend_version.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: '*def'
        type: OSSL_PROVIDER
      item_type: struct
      name: openssl3_state
      pos:
        line_end: 126
        line_start: 121
        source_file: /src/rnp/src/lib/crypto/backend_version.cpp
    - fields:
      - name: '*def'
        type: OSSL_PROVIDER
      item_type: struct
      name: openssl3_state
      pos:
        line_end: 126
        line_start: 121
        source_file: /src/rnp/src/lib/crypto/backend_version.cpp
    typedefs: []
    union: []
- function_names:
  - ec_key_t::~ec_key_t()
  - ec_key_t::ec_key_t
  - ecdh_kem_public_key_t::ecdh_kem_public_key_t
  - ecdh_kem_public_key_t::ecdh_kem_public_key_t
  - ecdh_kem_private_key_t::ecdh_kem_private_key_t
  - ecdh_kem_private_key_t::ecdh_kem_private_key_t
  - ecdh_kem_privkey_from_bytes
  - ecdh_kem_pubkey_from_bytes
  - x25519_privkey_from_bytes
  - x25519_pubkey_from_bytes
  - x448_privkey_from_bytes
  - x448_pubkey_from_bytes
  - ecdh_kem_private_key_t::get_pubkey_encoded
  - ecdh_kem_public_key_t::encapsulate
  - ecdh_kem_private_key_t::decapsulate
  - ec_key_t::generate_ecdh_kem_key_pair
  - exdsa_public_key_t::exdsa_public_key_t
  - exdsa_public_key_t::exdsa_public_key_t
  - exdsa_private_key_t::exdsa_private_key_t
  - exdsa_private_key_t::exdsa_private_key_t
  - ec_key_t::generate_exdsa_key_pair
  - exdsa_privkey_from_bytes
  - exdsa_pubkey_from_bytes
  - exdsa_private_key_t::sign
  - exdsa_public_key_t::verify
  - exdsa_public_key_t::is_valid
  - exdsa_private_key_t::is_valid
  - ecdh_kem_public_key_t::is_valid
  - ecdh_kem_private_key_t::is_valid
  source_file: /src/rnp/src/lib/crypto/exdsa_ecdhkem.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::RNG::RNG
  - RNG::~RNG()
  - rnp::RNG::get
  - rnp::RNG::RNG
  - RNG::~RNG()
  - rnp::RNG::get
  source_file: /src/rnp/src/lib/crypto/rng_ossl.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Cipher_Botan::create
  - make_name
  - Cipher_Botan::encryption
  - Cipher_Botan::decryption
  - Cipher_Botan::update_granularity
  - Cipher_Botan::set_key
  - Cipher_Botan::set_iv
  - Cipher_Botan::set_ad
  - Cipher_Botan::start
  - Cipher_Botan::update
  - Cipher_Botan::finish
  - Cipher_Botan::Cipher_Botan
  - Cipher_Botan::~Cipher_Botan()
  source_file: /src/rnp/src/lib/crypto/cipher_botan.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/hash_ossl.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::eg::load_public_key
  - pgp::eg::load_secret_key
  - pgp::eg::Key::validate
  - pgp::eg::Key::encrypt_pkcs1
  - pgp::eg::Key::decrypt_pkcs1
  - pgp::eg::Key::generate
  - pgp::eg::load_public_key
  - pgp::eg::load_secret_key
  - pgp::eg::Key::validate
  - pgp::eg::Key::encrypt_pkcs1
  - pgp::eg::Key::decrypt_pkcs1
  - pgp::eg::Key::generate
  - pgp::eg::load_public_key
  - pgp::eg::load_secret_key
  - pgp::eg::Key::validate
  - pgp::eg::Key::encrypt_pkcs1
  - pgp::eg::Key::decrypt_pkcs1
  - pgp::eg::Key::generate
  - pgp::eg::load_public_key
  - pgp::eg::load_secret_key
  - pgp::eg::Key::validate
  - pgp::eg::Key::encrypt_pkcs1
  - pgp::eg::Key::decrypt_pkcs1
  - pgp::eg::Key::generate
  source_file: /src/rnp/src/lib/crypto/elgamal.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ELGAMAL_MAX_P_BYTELEN
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/rnp/src/lib/crypto/elgamal.cpp
      type_or_value: BITS_TO_BYTES(PGP_MPINT_BITS)
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/sm2.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ec_key_t::~ec_key_t()
  - ec_key_t::ec_key_t
  - ecdh_kem_public_key_t::ecdh_kem_public_key_t
  - ecdh_kem_public_key_t::ecdh_kem_public_key_t
  - ecdh_kem_private_key_t::ecdh_kem_private_key_t
  - ecdh_kem_private_key_t::ecdh_kem_private_key_t
  - derive_secret
  - load_nist_pubkey
  - load_nist_privkey
  - ecdh_kem_private_key_t::get_pubkey_encoded
  - ecdh_kem_public_key_t::encapsulate
  - ecdh_kem_private_key_t::decapsulate
  - ec_key_t::generate_ecdh_kem_key_pair
  - ecdh_kem_public_key_t::is_valid
  - ecdh_kem_private_key_t::is_valid
  - exdsa_public_key_t::exdsa_public_key_t
  - exdsa_public_key_t::exdsa_public_key_t
  - exdsa_private_key_t::exdsa_private_key_t
  - exdsa_private_key_t::exdsa_private_key_t
  - ec_key_t::generate_exdsa_key_pair
  - exdsa_private_key_t::sign
  - exdsa_public_key_t::verify
  - exdsa_public_key_t::is_valid
  - exdsa_private_key_t::is_valid
  source_file: /src/rnp/src/lib/crypto/exdsa_ecdhkem_ossl.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp_cipher_cfb_resync
  - pgp_cipher_block_size
  - pgp_cipher_cfb_encrypt
  - pgp_cipher_cfb_decrypt
  - pgp_block_size
  - pgp_key_size
  - pgp_is_sa_aes
  - pgp_cipher_aead_granularity
  - pgp_cipher_aead_nonce
  - pgp_cipher_aead_nonce_len
  - pgp_cipher_aead_tag_len
  source_file: /src/rnp/src/lib/crypto/symmetric_common.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - generate_ed25519_native
  - ed25519_sign_native
  - ed25519_verify_native
  - ed25519_validate_key_native
  - generate_ed448_native
  - ed448_sign_native
  - ed448_verify_native
  - ed448_validate_key_native
  source_file: /src/rnp/src/lib/crypto/ed25519_ed448.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - secure_clear
  - rnp::hex_encode
  - rnp::hex_decode
  - rnp::hex_encode
  - rnp::hex_decode
  source_file: /src/rnp/src/lib/crypto/mem.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dilithium_alg_name
  - load_dilithium_pubkey
  - load_dilithium_privkey
  - dilithium_alg_name
  - load_dilithium_pubkey
  - load_dilithium_privkey
  - dilithium_generate_keypair
  - pgp_dilithium_private_key_t::sign
  - pgp_dilithium_public_key_t::verify_signature
  - pgp_dilithium_public_key_t::is_valid
  - pgp_dilithium_private_key_t::is_valid
  source_file: /src/rnp/src/lib/crypto/dilithium_ossl.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/hash_sha1cd.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::Hkdf_Botan::Hkdf_Botan
  - rnp::Hkdf_Botan::create
  - rnp::Hkdf_Botan::alg
  - rnp::Hkdf_Botan::extract_expand
  - Hkdf_Botan::~Hkdf_Botan()
  - rnp::Hkdf_Botan::Hkdf_Botan
  - rnp::Hkdf_Botan::create
  - rnp::Hkdf_Botan::alg
  - rnp::Hkdf_Botan::extract_expand
  - Hkdf_Botan::~Hkdf_Botan()
  source_file: /src/rnp/src/lib/crypto/hkdf_botan.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::ec::is_raw_key
  - pgp::ec::Key::generate_x25519
  - pgp::ec::generate_pkey
  - pgp::ec::write_raw_seckey
  - pgp::ec::write_seckey
  - pgp::ec::Key::generate
  - pgp::ec::load_raw_key
  - pgp::ec::build_params
  - pgp::ec::load_key_openssl3
  - pgp::ec::load_key
  - pgp::ec::validate_key
  - pgp::ec::write_pubkey
  - pgp::ec::is_raw_key
  - pgp::ec::Key::generate_x25519
  - pgp::ec::generate_pkey
  - pgp::ec::write_raw_seckey
  - pgp::ec::write_seckey
  - pgp::ec::Key::generate
  - pgp::ec::load_raw_key
  - pgp::ec::build_params
  - pgp::ec::load_key_openssl3
  - pgp::ec::load_key
  - pgp::ec::validate_key
  - pgp::ec::write_pubkey
  - pgp::ec::is_raw_key
  - pgp::ec::Key::generate_x25519
  - pgp::ec::generate_pkey
  - pgp::ec::write_raw_seckey
  - pgp::ec::write_seckey
  - pgp::ec::Key::generate
  - pgp::ec::load_raw_key
  - pgp::ec::build_params
  - pgp::ec::load_key_openssl3
  - pgp::ec::load_key
  - pgp::ec::validate_key
  - pgp::ec::write_pubkey
  - pgp::ec::is_raw_key
  - pgp::ec::Key::generate_x25519
  - pgp::ec::generate_pkey
  - pgp::ec::write_raw_seckey
  - pgp::ec::write_seckey
  - pgp::ec::Key::generate
  - pgp::ec::load_raw_key
  - pgp::ec::build_params
  - pgp::ec::load_key_openssl3
  - pgp::ec::load_key
  - pgp::ec::validate_key
  - pgp::ec::write_pubkey
  - ec_generate_generic_native
  - ec_generate_native
  source_file: /src/rnp/src/lib/crypto/ec_ossl.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/hash_botan.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/cipher.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::PqcKemCombiner::compute
  - rnp::PqcKemCombiner::compute
  source_file: /src/rnp/src/lib/crypto/kem_combiner.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - compute_kek
  - load_public_key
  - load_secret_key
  - validate_key
  - decrypt_pkcs5
  source_file: /src/rnp/src/lib/crypto/ecdh.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/ecdh_utils.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_SESSION_KEY_SIZE
      pos:
        line_end: 33
        line_start: 32
        source_file: /src/rnp/src/lib/crypto/ecdh_utils.h
      type_or_value: '40'
    - item_type: preproc_def
      name: MAX_AES_KEY_SIZE
      pos:
        line_end: 34
        line_start: 33
        source_file: /src/rnp/src/lib/crypto/ecdh_utils.h
      type_or_value: '32'
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::eddsa::validate_key
  - pgp::eddsa::generate
  - pgp::eddsa::verify
  - pgp::eddsa::sign
  - pgp::eddsa::validate_key
  - pgp::eddsa::generate
  - pgp::eddsa::verify
  - pgp::eddsa::sign
  - pgp::eddsa::validate_key
  - pgp::eddsa::generate
  - pgp::eddsa::verify
  - pgp::eddsa::sign
  - pgp::eddsa::validate_key
  - pgp::eddsa::generate
  - pgp::eddsa::verify
  - pgp::eddsa::sign
  source_file: /src/rnp/src/lib/crypto/eddsa_ossl.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - kyber_alg_name
  - load_mlkem_pubkey
  - load_mlkem_privkey
  - kyber_alg_name
  - load_mlkem_pubkey
  - load_mlkem_privkey
  - kyber_generate_keypair
  - pgp_kyber_public_key_t::encapsulate
  - pgp_kyber_private_key_t::decapsulate
  - pgp_kyber_public_key_t::is_valid
  - pgp_kyber_private_key_t::is_valid
  source_file: /src/rnp/src/lib/crypto/kyber_ossl.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp_dilithium_exdsa_composite_key_t::~pgp_dilithium_exdsa_composite_key_t()
  - pgp_dilithium_exdsa_composite_key_t::initialized_or_throw
  - pgp_dilithium_exdsa_composite_key_t::gen_keypair
  - pgp_dilithium_exdsa_composite_key_t::exdsa_curve_privkey_size
  - pgp_dilithium_exdsa_composite_key_t::exdsa_curve_pubkey_size
  - pgp_dilithium_exdsa_composite_key_t::exdsa_curve_signature_size
  - pgp_dilithium_exdsa_composite_key_t::pk_alg_to_dilithium_id
  - pgp_dilithium_exdsa_composite_key_t::pk_alg_to_curve_id
  - pgp_dilithium_exdsa_composite_public_key_t::pgp_dilithium_exdsa_composite_public_key_t
  - pgp_dilithium_exdsa_composite_public_key_t::pgp_dilithium_exdsa_composite_public_key_t
  - pgp_dilithium_exdsa_composite_public_key_t::pgp_dilithium_exdsa_composite_public_key_t
  - pgp_dilithium_exdsa_composite_private_key_t::pgp_dilithium_exdsa_composite_private_key_t
  - pgp_dilithium_exdsa_composite_private_key_t::pgp_dilithium_exdsa_composite_private_key_t
  - "&\npgp_dilithium_exdsa_composite_private_key_t::operator=(\n  const pgp_dilithium_exdsa_composite_private_key_t
    &other)"
  - pgp_dilithium_exdsa_composite_private_key_t::pgp_dilithium_exdsa_composite_private_key_t
  - pgp_dilithium_exdsa_composite_private_key_t::pgp_dilithium_exdsa_composite_private_key_t
  - pgp_dilithium_exdsa_composite_private_key_t::encoded_size
  - pgp_dilithium_exdsa_composite_private_key_t::parse_component_keys
  - pgp_dilithium_exdsa_composite_private_key_t::get_encoded
  - pgp_dilithium_exdsa_composite_private_key_t::sign
  - pgp_dilithium_exdsa_composite_private_key_t::secure_clear
  - pgp_dilithium_exdsa_composite_public_key_t::encoded_size
  - pgp_dilithium_exdsa_composite_public_key_t::parse_component_keys
  - pgp_dilithium_exdsa_composite_public_key_t::get_encoded
  - pgp_dilithium_exdsa_composite_public_key_t::verify
  - pgp_dilithium_exdsa_composite_public_key_t::is_valid
  - pgp_dilithium_exdsa_composite_private_key_t::is_valid
  - dilithium_exdsa_validate_key
  source_file: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::dsa::Key::clear_secret
  - ~Key()
  - pgp::dsa::Key::clear_secret
  - ~Key()
  - pgp::dsa::Key::clear_secret
  - ~Key()
  - pgp::dsa::Key::clear_secret
  - ~Key()
  source_file: /src/rnp/src/lib/crypto/dsa.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::PqcKemCombiner::domSeparation
  - rnp::PqcKemCombiner::domSeparation
  source_file: /src/rnp/src/lib/crypto/kem_combiner.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::Hash::alg
  - rnp::Hash::size
  - rnp::Hash::create
  - rnp::CRC24::create
  - rnp::Hash::add
  - rnp::Hash::add
  - rnp::Hash::add
  - rnp::Hash::finish
  - rnp::Hash::sec_finish
  - Hash::~Hash()
  - rnp::Hash::alg
  - rnp::Hash::name
  - rnp::Hash::size
  - rnp::HashList::add_alg
  - rnp::HashList::get
  - rnp::HashList::add
  - rnp::HashList::hash_algs
  - rnp::HashList::add_alg
  - rnp::HashList::get
  - rnp::Hash::alg
  - rnp::Hash::size
  - rnp::Hash::create
  - rnp::CRC24::create
  - rnp::Hash::add
  - rnp::Hash::add
  - rnp::Hash::add
  - rnp::Hash::finish
  - rnp::Hash::sec_finish
  - Hash::~Hash()
  - rnp::Hash::alg
  - rnp::Hash::name
  - rnp::Hash::size
  - rnp::HashList::add_alg
  - rnp::HashList::get
  - rnp::HashList::add
  - rnp::HashList::hash_algs
  - rnp::HashList::add_alg
  - rnp::HashList::get
  source_file: /src/rnp/src/lib/crypto/hash_common.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: type
        type: pgp_hash_alg_t
      - name: '*   name'
        type: char
      - name: len
        type: size_t
      item_type: struct
      name: hash_alg_map_t
      pos:
        line_end: 46
        line_start: 42
        source_file: /src/rnp/src/lib/crypto/hash_common.cpp
    typedefs: []
    union: []
- function_names:
  - kyber_privkey_size
  - kyber_pubkey_size
  - kyber_ciphertext_size
  - pgp_kyber_public_key_t::pgp_kyber_public_key_t
  - pgp_kyber_public_key_t::pgp_kyber_public_key_t
  - pgp_kyber_private_key_t::pgp_kyber_private_key_t
  - pgp_kyber_private_key_t::pgp_kyber_private_key_t
  source_file: /src/rnp/src/lib/crypto/kyber_common.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/kyber_common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp_kyber_private_key_t::pgp_kyber_private_key_t
  - pgp_kyber_private_key_t::get_encoded
  - pgp_kyber_private_key_t::param
  - pgp_kyber_public_key_t::pgp_kyber_public_key_t
  - operator==(const pgp_kyber_public_key_t &rhs) const
  - pgp_kyber_public_key_t::get_encoded
  source_file: /src/rnp/src/lib/crypto/kyber.h
  types:
    enum:
    - enumerators:
      - name: kyber_768
      - name: kyber_1024
      item_type: enum
      name: kyber_parameter_e
      pos:
        line_end: 37
        line_start: 37
        source_file: /src/rnp/src/lib/crypto/kyber.h
    preproc_defs: []
    structs:
    - fields:
      - name: ciphertext
        type: std::vector<uint8_t>
      - name: symmetric_key
        type: std::vector<uint8_t>
      item_type: struct
      name: kyber_encap_result_t
      pos:
        line_end: 42
        line_start: 39
        source_file: /src/rnp/src/lib/crypto/kyber.h
    typedefs: []
    union: []
- function_names:
  - rnp::Hash::Hash
  - rnp::CRC24::CRC24
  - ~CRC24()
  - rnp::Hash::Hash
  - rnp::CRC24::CRC24
  - ~CRC24()
  source_file: /src/rnp/src/lib/crypto/hash.hpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PGP_MAX_HASH_SIZE
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/rnp/src/lib/crypto/hash.hpp
      type_or_value: (64)
    structs: []
    typedefs: []
    union: []
- function_names:
  - process8
  - process32
  - LOAD32LE
  - crc24_update
  - BSWAP32
  - BSWAP32
  - crc24_final
  - rnp::CRC24_RNP::CRC24_RNP
  - CRC24_RNP::~CRC24_RNP()
  - rnp::CRC24_RNP::create
  - rnp::CRC24_RNP::add
  - rnp::CRC24_RNP::finish
  - rnp::CRC24_RNP::CRC24_RNP
  - CRC24_RNP::~CRC24_RNP()
  - rnp::CRC24_RNP::create
  - rnp::CRC24_RNP::add
  - rnp::CRC24_RNP::finish
  source_file: /src/rnp/src/lib/crypto/hash_crc24.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: CRC24_FAST_INIT
      pos:
        line_end: 191
        line_start: 190
        source_file: /src/rnp/src/lib/crypto/hash_crc24.cpp
      type_or_value: 0xce04b7L
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/symmetric.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PGP_AEAD_EAX_NONCE_LEN
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/rnp/src/lib/crypto/symmetric.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PGP_AEAD_OCB_NONCE_LEN
      pos:
        line_end: 67
        line_start: 66
        source_file: /src/rnp/src/lib/crypto/symmetric.h
      type_or_value: '15'
    - item_type: preproc_def
      name: PGP_AEAD_MAX_NONCE_LEN
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/rnp/src/lib/crypto/symmetric.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PGP_AEAD_MAX_NONCE_OR_SALT_LEN
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/rnp/src/lib/crypto/symmetric.h
      type_or_value: PGP_SEIPDV2_SALT_LEN
    - item_type: preproc_def
      name: PGP_AEAD_MAX_NONCE_OR_SALT_LEN
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/rnp/src/lib/crypto/symmetric.h
      type_or_value: PGP_AEAD_MAX_NONCE_LEN
    - item_type: preproc_def
      name: PGP_AEAD_EAX_OCB_TAG_LEN
      pos:
        line_end: 79
        line_start: 78
        source_file: /src/rnp/src/lib/crypto/symmetric.h
      type_or_value: '16'
    - item_type: preproc_def
      name: MAX_SYMM_KEY_SIZE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/rnp/src/lib/crypto/symmetric.h
      type_or_value: '32'
    - item_type: preproc_def
      name: PGP_AEAD_MAX_TAG_LEN
      pos:
        line_end: 85
        line_start: 84
        source_file: /src/rnp/src/lib/crypto/symmetric.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PGP_AEAD_MAX_AD_LEN
      pos:
        line_end: 88
        line_start: 87
        source_file: /src/rnp/src/lib/crypto/symmetric.h
      type_or_value: '32'
    structs:
    - fields:
      - name: remaining
        type: size_t
      - name: iv[PGP_MAX_BLOCK_SIZE]
        type: uint8_t
      item_type: struct
      name: pgp_crypt_cfb_param_t
      pos:
        line_end: 98
        line_start: 89
        source_file: /src/rnp/src/lib/crypto/symmetric.h
    - fields:
      - name: alg
        type: pgp_aead_alg_t
      - name: decrypt
        type: bool
      - name: granularity
        type: size_t
      - name: taglen
        type: size_t
      item_type: struct
      name: pgp_crypt_aead_param_t
      pos:
        line_end: 118
        line_start: 100
        source_file: /src/rnp/src/lib/crypto/symmetric.h
    - fields:
      - name: alg
        type: pgp_symm_alg_t
      - name: blocksize
        type: size_t
      - name: '*     rng'
        type: rnp::RNG
      item_type: struct
      name: pgp_crypt_t
      pos:
        line_end: 132
        line_start: 121
        source_file: /src/rnp/src/lib/crypto/symmetric.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/mpi.hpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PGP_MPINT_BITS
      pos:
        line_end: 35
        line_start: 34
        source_file: /src/rnp/src/lib/crypto/mpi.hpp
      type_or_value: (16384)
    - item_type: preproc_def
      name: PGP_MPINT_SIZE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/rnp/src/lib/crypto/mpi.hpp
      type_or_value: (PGP_MPINT_BITS >> 3)
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::Hash_OpenSSL::Hash_OpenSSL
  - rnp::Hash_OpenSSL::Hash_OpenSSL
  - rnp::Hash_OpenSSL::create
  - rnp::Hash_OpenSSL::clone
  - rnp::Hash_OpenSSL::add
  - rnp::Hash_OpenSSL::finish
  - Hash_OpenSSL::~Hash_OpenSSL()
  - rnp::Hash_OpenSSL::name_backend
  - rnp::Hash_OpenSSL::Hash_OpenSSL
  - rnp::Hash_OpenSSL::Hash_OpenSSL
  - rnp::Hash_OpenSSL::create
  - rnp::Hash_OpenSSL::clone
  - rnp::Hash_OpenSSL::add
  - rnp::Hash_OpenSSL::finish
  - Hash_OpenSSL::~Hash_OpenSSL()
  - rnp::Hash_OpenSSL::name_backend
  source_file: /src/rnp/src/lib/crypto/hash_ossl.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::dsa::decode_sig
  - pgp::dsa::encode_sig
  - pgp::dsa::build_params
  - pgp::dsa::load_key
  - pgp::dsa::Key::validate
  - pgp::dsa::Key::sign
  - pgp::dsa::Key::verify
  - pgp::dsa::extract_key
  - pgp::dsa::Key::generate
  - pgp::dsa::decode_sig
  - pgp::dsa::encode_sig
  - pgp::dsa::build_params
  - pgp::dsa::load_key
  - pgp::dsa::Key::validate
  - pgp::dsa::Key::sign
  - pgp::dsa::Key::verify
  - pgp::dsa::extract_key
  - pgp::dsa::Key::generate
  - pgp::dsa::decode_sig
  - pgp::dsa::encode_sig
  - pgp::dsa::build_params
  - pgp::dsa::load_key
  - pgp::dsa::Key::validate
  - pgp::dsa::Key::sign
  - pgp::dsa::Key::verify
  - pgp::dsa::extract_key
  - pgp::dsa::Key::generate
  - pgp::dsa::decode_sig
  - pgp::dsa::encode_sig
  - pgp::dsa::build_params
  - pgp::dsa::load_key
  - pgp::dsa::Key::validate
  - pgp::dsa::Key::sign
  - pgp::dsa::Key::verify
  - pgp::dsa::extract_key
  - pgp::dsa::Key::generate
  source_file: /src/rnp/src/lib/crypto/dsa_ossl.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::ecdh::validate_key
  - pgp::ecdh::derive_kek
  - pgp::ecdh::rfc3394_wrap_ctx
  - pgp::ecdh::rfc3394_wrap
  - pgp::ecdh::rfc3394_unwrap
  - pgp::ecdh::derive_secret
  - pgp::ecdh::ecdh_kek_len
  - pgp::ecdh::encrypt_pkcs5
  - pgp::ecdh::decrypt_pkcs5
  - pgp::ecdh::validate_key
  - pgp::ecdh::derive_kek
  - pgp::ecdh::rfc3394_wrap_ctx
  - pgp::ecdh::rfc3394_wrap
  - pgp::ecdh::rfc3394_unwrap
  - pgp::ecdh::derive_secret
  - pgp::ecdh::ecdh_kek_len
  - pgp::ecdh::encrypt_pkcs5
  - pgp::ecdh::decrypt_pkcs5
  - pgp::ecdh::validate_key
  - pgp::ecdh::derive_kek
  - pgp::ecdh::rfc3394_wrap_ctx
  - pgp::ecdh::rfc3394_wrap
  - pgp::ecdh::rfc3394_unwrap
  - pgp::ecdh::derive_secret
  - pgp::ecdh::ecdh_kek_len
  - pgp::ecdh::encrypt_pkcs5
  - pgp::ecdh::decrypt_pkcs5
  - pgp::ecdh::validate_key
  - pgp::ecdh::derive_kek
  - pgp::ecdh::rfc3394_wrap_ctx
  - pgp::ecdh::rfc3394_wrap
  - pgp::ecdh::rfc3394_unwrap
  - pgp::ecdh::derive_secret
  - pgp::ecdh::ecdh_kek_len
  - pgp::ecdh::encrypt_pkcs5
  - pgp::ecdh::decrypt_pkcs5
  source_file: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: alg
        type: pgp_symm_alg_t
      - name: '*   name'
        type: char
      item_type: struct
      name: ecdh_wrap_alg_map_t
      pos:
        line_end: 46
        line_start: 43
        source_file: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    - fields:
      - name: alg
        type: pgp_symm_alg_t
      - name: '*   name'
        type: char
      item_type: struct
      name: ecdh_wrap_alg_map_t
      pos:
        line_end: 46
        line_start: 43
        source_file: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    - fields:
      - name: alg
        type: pgp_symm_alg_t
      - name: '*   name'
        type: char
      item_type: struct
      name: ecdh_wrap_alg_map_t
      pos:
        line_end: 46
        line_start: 43
        source_file: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    - fields:
      - name: alg
        type: pgp_symm_alg_t
      - name: '*   name'
        type: char
      item_type: struct
      name: ecdh_wrap_alg_map_t
      pos:
        line_end: 46
        line_start: 43
        source_file: /src/rnp/src/lib/crypto/ecdh_ossl.cpp
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/hkdf_botan.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/dl_ossl.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::ecdh::kdf_other_info_serialize
  - pgp::ecdh::pad_pkcs7
  - pgp::ecdh::unpad_pkcs7
  - pgp::ecdh::set_params
  - pgp::ecdh::kdf_other_info_serialize
  - pgp::ecdh::pad_pkcs7
  - pgp::ecdh::unpad_pkcs7
  - pgp::ecdh::set_params
  - pgp::ecdh::kdf_other_info_serialize
  - pgp::ecdh::pad_pkcs7
  - pgp::ecdh::unpad_pkcs7
  - pgp::ecdh::set_params
  - pgp::ecdh::kdf_other_info_serialize
  - pgp::ecdh::pad_pkcs7
  - pgp::ecdh::unpad_pkcs7
  - pgp::ecdh::set_params
  - x25519_tweak_bits
  - x25519_bits_tweaked
  source_file: /src/rnp/src/lib/crypto/ecdh_utils.cpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: curve
        type: pgp_curve_t
      - name: hash
        type: pgp_hash_alg_t
      - name: wrap_alg
        type: pgp_symm_alg_t
      item_type: struct
      name: ecdh_params_t
      pos:
        line_end: 42
        line_start: 38
        source_file: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    - fields:
      - name: curve
        type: pgp_curve_t
      - name: hash
        type: pgp_hash_alg_t
      - name: wrap_alg
        type: pgp_symm_alg_t
      item_type: struct
      name: ecdh_params_t
      pos:
        line_end: 42
        line_start: 38
        source_file: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    - fields:
      - name: curve
        type: pgp_curve_t
      - name: hash
        type: pgp_hash_alg_t
      - name: wrap_alg
        type: pgp_symm_alg_t
      item_type: struct
      name: ecdh_params_t
      pos:
        line_end: 42
        line_start: 38
        source_file: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    - fields:
      - name: curve
        type: pgp_curve_t
      - name: hash
        type: pgp_hash_alg_t
      - name: wrap_alg
        type: pgp_symm_alg_t
      item_type: struct
      name: ecdh_params_t
      pos:
        line_end: 42
        line_start: 38
        source_file: /src/rnp/src/lib/crypto/ecdh_utils.cpp
    typedefs: []
    union: []
- function_names:
  - rnp::SecureBytes::SecureBytes
  - rnp::SecureBytes::SecureBytes
  - rnp::SecureBytes::SecureBytes
  - rnp::SecureBytes::SecureBytes
  - rnp::SecureBytes::SecureBytes
  - ~SecureBytes()
  - rnp::SecureBytes::SecureBytes
  - '&operator=(const SecureBytes &)'
  - rnp::SecureBytes::SecureBytes
  - "&\n    operator=(SecureBytes &&o) noexcept"
  - rnp::SecureBytes::data
  - rnp::SecureBytes::data
  - rnp::SecureBytes::size
  - rnp::SecureBytes::empty
  - rnp::SecureBytes::begin
  - rnp::SecureBytes::begin
  - rnp::SecureBytes::end
  - rnp::SecureBytes::end
  - rnp::SecureBytes::unlock
  - rnp::SecureBytes::SecureBytes
  - rnp::SecureBytes::SecureBytes
  - rnp::SecureBytes::SecureBytes
  - rnp::SecureBytes::SecureBytes
  - rnp::SecureBytes::SecureBytes
  - ~SecureBytes()
  - rnp::SecureBytes::SecureBytes
  - '&operator=(const SecureBytes &)'
  - rnp::SecureBytes::SecureBytes
  - "&\n    operator=(SecureBytes &&o) noexcept"
  - rnp::SecureBytes::data
  - rnp::SecureBytes::data
  - rnp::SecureBytes::size
  - rnp::SecureBytes::empty
  - rnp::SecureBytes::begin
  - rnp::SecureBytes::begin
  - rnp::SecureBytes::end
  - rnp::SecureBytes::end
  - rnp::SecureBytes::unlock
  source_file: /src/rnp/src/lib/crypto/secure_bytes.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/ecdh.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ECDH_WRAPPED_KEY_SIZE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/rnp/src/lib/crypto/ecdh.h
      type_or_value: '48'
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp_s2k_argon2
  - pgp_s2k_iterated
  source_file: /src/rnp/src/lib/crypto/s2k_ossl.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/ecdsa.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::bn::bn
  - rnp::bn::bn
  - rnp::bn::bn
  - rnp::bn::bn
  - rnp::bn::bn
  - "&\n    operator=(bn &&src)"
  - ~bn()
  - operator bool() const
  - rnp::bn::ptr
  - rnp::bn::cptr
  - rnp::bn::get
  - rnp::bn::c_get
  - rnp::bn::own
  - rnp::bn::bytes
  - rnp::bn::bin
  - rnp::bn::mpi
  - rnp::bn::mpi
  - operator()(BN_CTX *ptr) const
  - operator()(BN_RECP_CTX *ptr) const
  - operator()(BN_MONT_CTX *ptr) const
  - operator()(EVP_PKEY *ptr) const
  - operator()(EVP_PKEY_CTX *ptr) const
  - operator()(EVP_CIPHER_CTX *ptr) const
  - operator()(EVP_MD_CTX *ptr) const
  - operator()(EVP_PKEY *ptr) const
  - operator()(EVP_PKEY_CTX *ptr) const
  - operator()(EVP_CIPHER_CTX *ptr) const
  - operator()(EVP_MD_CTX *ptr) const
  - operator()(DSA_SIG *ptr) const
  - operator()(::ECDSA_SIG *ptr) const
  - operator()(::RSA *ptr) const
  - operator()(::DSA *ptr) const
  - operator()(::DH *ptr) const
  - operator()(::EC_KEY *ptr) const
  - operator()(::EC_POINT *ptr) const
  - operator()(OSSL_PARAM *ptr) const
  - operator()(OSSL_PARAM_BLD *ptr) const
  - rnp::ossl::latest_err
  - operator()(BN_CTX *ptr) const
  - operator()(BN_RECP_CTX *ptr) const
  - operator()(BN_MONT_CTX *ptr) const
  - operator()(EVP_PKEY *ptr) const
  - operator()(EVP_PKEY_CTX *ptr) const
  - operator()(EVP_CIPHER_CTX *ptr) const
  - operator()(EVP_MD_CTX *ptr) const
  - operator()(EVP_PKEY *ptr) const
  - operator()(EVP_PKEY_CTX *ptr) const
  - operator()(EVP_CIPHER_CTX *ptr) const
  - operator()(EVP_MD_CTX *ptr) const
  - operator()(DSA_SIG *ptr) const
  - operator()(::ECDSA_SIG *ptr) const
  - operator()(::RSA *ptr) const
  - operator()(::DSA *ptr) const
  - operator()(::DH *ptr) const
  - operator()(::EC_KEY *ptr) const
  - operator()(::EC_POINT *ptr) const
  - operator()(OSSL_PARAM *ptr) const
  - operator()(OSSL_PARAM_BLD *ptr) const
  - rnp::ossl::latest_err
  - rnp::bn::bn
  - rnp::bn::bn
  - rnp::bn::bn
  - rnp::bn::bn
  - rnp::bn::bn
  - "&\n    operator=(bn &&src)"
  - ~bn()
  - operator bool() const
  - rnp::bn::ptr
  - rnp::bn::cptr
  - rnp::bn::get
  - rnp::bn::c_get
  - rnp::bn::own
  - rnp::bn::bytes
  - rnp::bn::bin
  - rnp::bn::mpi
  - rnp::bn::mpi
  - operator()(BN_CTX *ptr) const
  - operator()(BN_RECP_CTX *ptr) const
  - operator()(BN_MONT_CTX *ptr) const
  - operator()(EVP_PKEY *ptr) const
  - operator()(EVP_PKEY_CTX *ptr) const
  - operator()(EVP_CIPHER_CTX *ptr) const
  - operator()(EVP_MD_CTX *ptr) const
  - operator()(EVP_PKEY *ptr) const
  - operator()(EVP_PKEY_CTX *ptr) const
  - operator()(EVP_CIPHER_CTX *ptr) const
  - operator()(EVP_MD_CTX *ptr) const
  - operator()(DSA_SIG *ptr) const
  - operator()(::ECDSA_SIG *ptr) const
  - operator()(::RSA *ptr) const
  - operator()(::DSA *ptr) const
  - operator()(::DH *ptr) const
  - operator()(::EC_KEY *ptr) const
  - operator()(::EC_POINT *ptr) const
  - operator()(OSSL_PARAM *ptr) const
  - operator()(OSSL_PARAM_BLD *ptr) const
  - rnp::ossl::latest_err
  - operator()(BN_CTX *ptr) const
  - operator()(BN_RECP_CTX *ptr) const
  - operator()(BN_MONT_CTX *ptr) const
  - operator()(EVP_PKEY *ptr) const
  - operator()(EVP_PKEY_CTX *ptr) const
  - operator()(EVP_CIPHER_CTX *ptr) const
  - operator()(EVP_MD_CTX *ptr) const
  - operator()(EVP_PKEY *ptr) const
  - operator()(EVP_PKEY_CTX *ptr) const
  - operator()(EVP_CIPHER_CTX *ptr) const
  - operator()(EVP_MD_CTX *ptr) const
  - operator()(DSA_SIG *ptr) const
  - operator()(::ECDSA_SIG *ptr) const
  - operator()(::RSA *ptr) const
  - operator()(::DSA *ptr) const
  - operator()(::DH *ptr) const
  - operator()(::EC_KEY *ptr) const
  - operator()(::EC_POINT *ptr) const
  - operator()(OSSL_PARAM *ptr) const
  - operator()(OSSL_PARAM_BLD *ptr) const
  - rnp::ossl::latest_err
  source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields: []
      item_type: struct
      name: BNCtxDeleter
      pos:
        line_end: 185
        line_start: 179
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: BNRecpCtxDeleter
      pos:
        line_end: 195
        line_start: 189
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: BNMontCtxDeleter
      pos:
        line_end: 205
        line_start: 199
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: PKeyDeleter
      pos:
        line_end: 217
        line_start: 211
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: PKeyCtxDeleter
      pos:
        line_end: 227
        line_start: 221
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: CipherCtxDeleter
      pos:
        line_end: 237
        line_start: 231
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: MDCtxDeleter
      pos:
        line_end: 247
        line_start: 241
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: PKeyDeleter
      pos:
        line_end: 217
        line_start: 211
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: PKeyCtxDeleter
      pos:
        line_end: 227
        line_start: 221
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: CipherCtxDeleter
      pos:
        line_end: 237
        line_start: 231
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: MDCtxDeleter
      pos:
        line_end: 247
        line_start: 241
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: DSASigDeleter
      pos:
        line_end: 258
        line_start: 252
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: ECDSASigDeleter
      pos:
        line_end: 268
        line_start: 262
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: RSADeleter
      pos:
        line_end: 279
        line_start: 273
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: DSADeleter
      pos:
        line_end: 289
        line_start: 283
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: DHDeleter
      pos:
        line_end: 299
        line_start: 293
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: ECKeyDeleter
      pos:
        line_end: 309
        line_start: 303
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: ECPointDeleter
      pos:
        line_end: 319
        line_start: 313
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: ParamDeleter
      pos:
        line_end: 329
        line_start: 323
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: ParamBldDeleter
      pos:
        line_end: 339
        line_start: 333
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: BNCtxDeleter
      pos:
        line_end: 185
        line_start: 179
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: BNRecpCtxDeleter
      pos:
        line_end: 195
        line_start: 189
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: BNMontCtxDeleter
      pos:
        line_end: 205
        line_start: 199
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: PKeyDeleter
      pos:
        line_end: 217
        line_start: 211
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: PKeyCtxDeleter
      pos:
        line_end: 227
        line_start: 221
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: CipherCtxDeleter
      pos:
        line_end: 237
        line_start: 231
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: MDCtxDeleter
      pos:
        line_end: 247
        line_start: 241
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: PKeyDeleter
      pos:
        line_end: 217
        line_start: 211
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: PKeyCtxDeleter
      pos:
        line_end: 227
        line_start: 221
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: CipherCtxDeleter
      pos:
        line_end: 237
        line_start: 231
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: MDCtxDeleter
      pos:
        line_end: 247
        line_start: 241
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: DSASigDeleter
      pos:
        line_end: 258
        line_start: 252
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: ECDSASigDeleter
      pos:
        line_end: 268
        line_start: 262
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: RSADeleter
      pos:
        line_end: 279
        line_start: 273
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: DSADeleter
      pos:
        line_end: 289
        line_start: 283
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: DHDeleter
      pos:
        line_end: 299
        line_start: 293
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: ECKeyDeleter
      pos:
        line_end: 309
        line_start: 303
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: ECPointDeleter
      pos:
        line_end: 319
        line_start: 313
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: ParamDeleter
      pos:
        line_end: 329
        line_start: 323
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: ParamBldDeleter
      pos:
        line_end: 339
        line_start: 333
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: BNCtxDeleter
      pos:
        line_end: 185
        line_start: 179
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: BNRecpCtxDeleter
      pos:
        line_end: 195
        line_start: 189
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: BNMontCtxDeleter
      pos:
        line_end: 205
        line_start: 199
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: PKeyDeleter
      pos:
        line_end: 217
        line_start: 211
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: PKeyCtxDeleter
      pos:
        line_end: 227
        line_start: 221
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: CipherCtxDeleter
      pos:
        line_end: 237
        line_start: 231
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: MDCtxDeleter
      pos:
        line_end: 247
        line_start: 241
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: PKeyDeleter
      pos:
        line_end: 217
        line_start: 211
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: PKeyCtxDeleter
      pos:
        line_end: 227
        line_start: 221
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: CipherCtxDeleter
      pos:
        line_end: 237
        line_start: 231
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: MDCtxDeleter
      pos:
        line_end: 247
        line_start: 241
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: DSASigDeleter
      pos:
        line_end: 258
        line_start: 252
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: ECDSASigDeleter
      pos:
        line_end: 268
        line_start: 262
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: RSADeleter
      pos:
        line_end: 279
        line_start: 273
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: DSADeleter
      pos:
        line_end: 289
        line_start: 283
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: DHDeleter
      pos:
        line_end: 299
        line_start: 293
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: ECKeyDeleter
      pos:
        line_end: 309
        line_start: 303
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: ECPointDeleter
      pos:
        line_end: 319
        line_start: 313
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: ParamDeleter
      pos:
        line_end: 329
        line_start: 323
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: ParamBldDeleter
      pos:
        line_end: 339
        line_start: 333
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: BNCtxDeleter
      pos:
        line_end: 185
        line_start: 179
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: BNRecpCtxDeleter
      pos:
        line_end: 195
        line_start: 189
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: BNMontCtxDeleter
      pos:
        line_end: 205
        line_start: 199
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: PKeyDeleter
      pos:
        line_end: 217
        line_start: 211
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: PKeyCtxDeleter
      pos:
        line_end: 227
        line_start: 221
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: CipherCtxDeleter
      pos:
        line_end: 237
        line_start: 231
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: MDCtxDeleter
      pos:
        line_end: 247
        line_start: 241
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: PKeyDeleter
      pos:
        line_end: 217
        line_start: 211
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: PKeyCtxDeleter
      pos:
        line_end: 227
        line_start: 221
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: CipherCtxDeleter
      pos:
        line_end: 237
        line_start: 231
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: MDCtxDeleter
      pos:
        line_end: 247
        line_start: 241
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: DSASigDeleter
      pos:
        line_end: 258
        line_start: 252
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: ECDSASigDeleter
      pos:
        line_end: 268
        line_start: 262
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: RSADeleter
      pos:
        line_end: 279
        line_start: 273
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: DSADeleter
      pos:
        line_end: 289
        line_start: 283
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: DHDeleter
      pos:
        line_end: 299
        line_start: 293
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: ECKeyDeleter
      pos:
        line_end: 309
        line_start: 303
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: ECPointDeleter
      pos:
        line_end: 319
        line_start: 313
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: ParamDeleter
      pos:
        line_end: 329
        line_start: 323
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    - fields: []
      item_type: struct
      name: ParamBldDeleter
      pos:
        line_end: 339
        line_start: 333
        source_file: /src/rnp/src/lib/crypto/ossl_utils.hpp
    typedefs: []
    union: []
- function_names:
  - rnp::Hkdf::create
  - rnp::Hkdf::size
  - rnp::Hkdf::alg
  - Hkdf::~Hkdf()
  - rnp::Hkdf::create
  - rnp::Hkdf::size
  - rnp::Hkdf::alg
  - Hkdf::~Hkdf()
  source_file: /src/rnp/src/lib/crypto/hkdf.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::eg::Key::validate
  - pgp::eg::pkcs1v15_pad
  - pgp::eg::pkcs1v15_unpad
  - pgp::eg::Key::encrypt_pkcs1
  - pgp::eg::Key::decrypt_pkcs1
  - pgp::eg::Key::generate
  - pgp::eg::Key::validate
  - pgp::eg::pkcs1v15_pad
  - pgp::eg::pkcs1v15_unpad
  - pgp::eg::Key::encrypt_pkcs1
  - pgp::eg::Key::decrypt_pkcs1
  - pgp::eg::Key::generate
  - pgp::eg::Key::validate
  - pgp::eg::pkcs1v15_pad
  - pgp::eg::pkcs1v15_unpad
  - pgp::eg::Key::encrypt_pkcs1
  - pgp::eg::Key::decrypt_pkcs1
  - pgp::eg::Key::generate
  - pgp::eg::Key::validate
  - pgp::eg::pkcs1v15_pad
  - pgp::eg::pkcs1v15_unpad
  - pgp::eg::Key::encrypt_pkcs1
  - pgp::eg::Key::decrypt_pkcs1
  - pgp::eg::Key::generate
  source_file: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: ELGAMAL_MAX_P_BYTELEN
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/rnp/src/lib/crypto/elgamal_ossl.cpp
      type_or_value: BITS_TO_BYTES(PGP_MPINT_BITS)
    structs: []
    typedefs: []
    union: []
- function_names:
  - Cipher_OpenSSL::create
  - make_name
  - Cipher_OpenSSL::encryption
  - Cipher_OpenSSL::decryption
  - Cipher_OpenSSL::set_key
  - Cipher_OpenSSL::set_iv
  - Cipher_OpenSSL::set_ad
  - Cipher_OpenSSL::update_granularity
  - Cipher_OpenSSL::update
  - Cipher_OpenSSL::finish
  - Cipher_OpenSSL::Cipher_OpenSSL
  - Cipher_OpenSSL::~Cipher_OpenSSL()
  source_file: /src/rnp/src/lib/crypto/cipher_ossl.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sm2_validate_key
  - sm2_sign
  - sm2_verify
  - sm2_encrypt
  - sm2_decrypt
  source_file: /src/rnp/src/lib/crypto/sm2_ossl.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - signature_hash_finish
  - signature_init
  - signature_calculate
  - signature_validate
  source_file: /src/rnp/src/lib/crypto/signatures.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/signatures.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::rsa::load_public_key
  - pgp::rsa::load_secret_key
  - pgp::rsa::Key::validate
  - pgp::rsa::Key::encrypt_pkcs1
  - pgp::rsa::Key::verify_pkcs1
  - pgp::rsa::Key::sign_pkcs1
  - pgp::rsa::Key::decrypt_pkcs1
  - pgp::rsa::Key::generate
  - pgp::rsa::load_public_key
  - pgp::rsa::load_secret_key
  - pgp::rsa::Key::validate
  - pgp::rsa::Key::encrypt_pkcs1
  - pgp::rsa::Key::verify_pkcs1
  - pgp::rsa::Key::sign_pkcs1
  - pgp::rsa::Key::decrypt_pkcs1
  - pgp::rsa::Key::generate
  - pgp::rsa::load_public_key
  - pgp::rsa::load_secret_key
  - pgp::rsa::Key::validate
  - pgp::rsa::Key::encrypt_pkcs1
  - pgp::rsa::Key::verify_pkcs1
  - pgp::rsa::Key::sign_pkcs1
  - pgp::rsa::Key::decrypt_pkcs1
  - pgp::rsa::Key::generate
  - pgp::rsa::load_public_key
  - pgp::rsa::load_secret_key
  - pgp::rsa::Key::validate
  - pgp::rsa::Key::encrypt_pkcs1
  - pgp::rsa::Key::verify_pkcs1
  - pgp::rsa::Key::sign_pkcs1
  - pgp::rsa::Key::decrypt_pkcs1
  - pgp::rsa::Key::generate
  source_file: /src/rnp/src/lib/crypto/rsa.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::ec::Curve::bytes
  - pgp::ec::Key::clear_secret
  - ~Key()
  - pgp::ec::Curve::bytes
  - pgp::ec::Key::clear_secret
  - ~Key()
  - pgp::ec::Curve::bytes
  - pgp::ec::Key::clear_secret
  - ~Key()
  - pgp::ec::Curve::bytes
  - pgp::ec::Key::clear_secret
  - ~Key()
  - clear_secret
  - ~pgp_ed25519_key_t()
  - clear_secret
  - ~pgp_x25519_key_t()
  source_file: /src/rnp/src/lib/crypto/ec.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: MAX_CURVE_BIT_SIZE
      pos:
        line_end: 38
        line_start: 37
        source_file: /src/rnp/src/lib/crypto/ec.h
      type_or_value: 521 // secp521r1
    - item_type: preproc_def
      name: MAX_CURVE_BYTELEN
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/rnp/src/lib/crypto/ec.h
      type_or_value: ((MAX_CURVE_BIT_SIZE + 7) / 8)
    structs:
    - fields:
      - name: pub
        type: std::vector<uint8_t>
      - name: priv
        type: std::vector<uint8_t>
      item_type: struct
      name: pgp_ed25519_key_t
      pos:
        line_end: 197
        line_start: 182
        source_file: /src/rnp/src/lib/crypto/ec.h
    - fields:
      - name: sig
        type: std::vector<uint8_t>
      item_type: struct
      name: pgp_ed25519_signature_t
      pos:
        line_end: 201
        line_start: 199
        source_file: /src/rnp/src/lib/crypto/ec.h
    - fields:
      - name: pub
        type: std::vector<uint8_t>
      - name: priv
        type: std::vector<uint8_t>
      item_type: struct
      name: pgp_x25519_key_t
      pos:
        line_end: 221
        line_start: 206
        source_file: /src/rnp/src/lib/crypto/ec.h
    - fields:
      - name: eph_key
        type: std::vector<uint8_t>
      - name: enc_sess_key
        type: std::vector<uint8_t>
      item_type: struct
      name: pgp_x25519_encrypted_t
      pos:
        line_end: 228
        line_start: 225
        source_file: /src/rnp/src/lib/crypto/ec.h
    typedefs:
    - item_type: typedef
      name: pgp_ed448_key_t
      pos:
        line_end: 203
        line_start: 203
        source_file: /src/rnp/src/lib/crypto/ec.h
      type: pgp_ed25519_key_t
    - item_type: typedef
      name: pgp_ed448_signature_t
      pos:
        line_end: 204
        line_start: 204
        source_file: /src/rnp/src/lib/crypto/ec.h
      type: pgp_ed25519_signature_t
    - item_type: typedef
      name: pgp_x448_key_t
      pos:
        line_end: 223
        line_start: 223
        source_file: /src/rnp/src/lib/crypto/ec.h
      type: pgp_x25519_key_t
    - item_type: typedef
      name: pgp_x448_encrypted_t
      pos:
        line_end: 230
        line_start: 230
        source_file: /src/rnp/src/lib/crypto/ec.h
      type: pgp_x25519_encrypted_t
    union: []
- function_names:
  - pgp_sphincsplus_private_key_t::pgp_sphincsplus_private_key_t
  - pgp_sphincsplus_private_key_t::alg
  - pgp_sphincsplus_private_key_t::secure_clear
  - pgp_sphincsplus_private_key_t::get_encoded
  - pgp_sphincsplus_public_key_t::pgp_sphincsplus_public_key_t
  - operator==(const pgp_sphincsplus_public_key_t &rhs) const
  - pgp_sphincsplus_public_key_t::alg
  - pgp_sphincsplus_public_key_t::get_encoded
  source_file: /src/rnp/src/lib/crypto/sphincsplus.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: sig
        type: std::vector<uint8_t>
      item_type: struct
      name: pgp_sphincsplus_signature_t
      pos:
        line_end: 42
        line_start: 40
        source_file: /src/rnp/src/lib/crypto/sphincsplus.h
    - fields:
      - name: pub
        type: pgp_sphincsplus_public_key_t
      - name: priv
        type: pgp_sphincsplus_private_key_t
      item_type: struct
      name: pgp_sphincsplus_key_t
      pos:
        line_end: 136
        line_start: 133
        source_file: /src/rnp/src/lib/crypto/sphincsplus.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/cipher_botan.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~pgp_kyber_ecdh_composite_key_t()
  - pgp_kyber_ecdh_composite_key_t::is_initialized
  - composite_ciphertext_size
  - pgp_kyber_ecdh_composite_private_key_t::pgp_kyber_ecdh_composite_private_key_t
  - pgp_kyber_ecdh_composite_private_key_t::pk_alg
  - pgp_kyber_ecdh_composite_public_key_t::pgp_kyber_ecdh_composite_public_key_t
  - operator==(const pgp_kyber_ecdh_composite_public_key_t &rhs) const
  - pgp_kyber_ecdh_composite_public_key_t::pk_alg
  source_file: /src/rnp/src/lib/crypto/kyber_ecdh_composite.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: composite_ciphertext
        type: std::vector<uint8_t>
      - name: wrapped_sesskey
        type: std::vector<uint8_t>
      item_type: struct
      name: pgp_kyber_ecdh_encrypted_t
      pos:
        line_end: 81
        line_start: 69
        source_file: /src/rnp/src/lib/crypto/kyber_ecdh_composite.h
    - fields:
      - name: priv
        type: pgp_kyber_ecdh_composite_private_key_t
      - name: pub
        type: pgp_kyber_ecdh_composite_public_key_t
      item_type: struct
      name: pgp_kyber_ecdh_key_t
      pos:
        line_end: 183
        line_start: 180
        source_file: /src/rnp/src/lib/crypto/kyber_ecdh_composite.h
    typedefs: []
    union: []
- function_names:
  - ed_generate_native
  - ed_sign_native
  - ed_verify_native
  - generate_ed25519_native
  - ed25519_sign_native
  - ed25519_verify_native
  - ed25519_validate_key_native
  - generate_ed448_native
  - ed448_sign_native
  - ed448_verify_native
  - ed448_validate_key_native
  source_file: /src/rnp/src/lib/crypto/ed25519_ed448_ossl.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::ec::Key::generate_x25519
  - pgp::ec::Key::generate
  - pgp::ec::Key::generate_x25519
  - pgp::ec::Key::generate
  - pgp::ec::Key::generate_x25519
  - pgp::ec::Key::generate
  - pgp::ec::Key::generate_x25519
  - pgp::ec::Key::generate
  - is_generic_prime_curve
  - ec_generate_generic_native
  - ec_generate_native
  source_file: /src/rnp/src/lib/crypto/ec.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - x_hkdf
  - rfc3394_wrap
  - rfc3394_unwrap
  - generate_x25519_native
  - x25519_native_encrypt
  - x25519_native_decrypt
  - x25519_validate_key_native
  - generate_x448_native
  - x448_native_encrypt
  - x448_native_decrypt
  - x448_validate_key_native
  source_file: /src/rnp/src/lib/crypto/x25519_x448_ossl.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~ec_key_t()
  - ec_key_t::ec_key_t
  - ec_key_t::get_curve
  - ecdh_kem_public_key_t::ecdh_kem_public_key_t
  - operator==(const ecdh_kem_public_key_t &rhs) const
  - ecdh_kem_public_key_t::get_encoded
  - ecdh_kem_private_key_t::ecdh_kem_private_key_t
  - ecdh_kem_private_key_t::get_encoded
  - exdsa_public_key_t::exdsa_public_key_t
  - operator==(const exdsa_public_key_t &rhs) const
  - exdsa_public_key_t::get_encoded
  - exdsa_private_key_t::exdsa_private_key_t
  - exdsa_private_key_t::get_encoded
  source_file: /src/rnp/src/lib/crypto/exdsa_ecdhkem.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: priv
        type: ecdh_kem_private_key_t
      - name: pub
        type: ecdh_kem_public_key_t
      item_type: struct
      name: ecdh_kem_key_t
      pos:
        line_end: 123
        line_start: 120
        source_file: /src/rnp/src/lib/crypto/exdsa_ecdhkem.h
    - fields:
      - name: priv
        type: exdsa_private_key_t
      - name: pub
        type: exdsa_public_key_t
      item_type: struct
      name: exdsa_key_t
      pos:
        line_end: 182
        line_start: 179
        source_file: /src/rnp/src/lib/crypto/exdsa_ecdhkem.h
    typedefs: []
    union: []
- function_names:
  - pgp::rsa::load_public_key
  - pgp::rsa::load_secret_key
  - pgp::rsa::init_context
  - pgp::rsa::bld_params
  - pgp::rsa::load_key
  - pgp::rsa::init_context
  - pgp::rsa::Key::validate
  - pgp::rsa::setup_context
  - pgp::rsa::setup_signature_hash
  - pgp::rsa::Key::encrypt_pkcs1
  - pgp::rsa::Key::verify_pkcs1
  - pgp::rsa::Key::sign_pkcs1
  - pgp::rsa::Key::decrypt_pkcs1
  - pgp::rsa::calculate_pqu
  - pgp::rsa::extract_key
  - pgp::rsa::Key::generate
  - pgp::rsa::load_public_key
  - pgp::rsa::load_secret_key
  - pgp::rsa::init_context
  - pgp::rsa::bld_params
  - pgp::rsa::load_key
  - pgp::rsa::init_context
  - pgp::rsa::Key::validate
  - pgp::rsa::setup_context
  - pgp::rsa::setup_signature_hash
  - pgp::rsa::Key::encrypt_pkcs1
  - pgp::rsa::Key::verify_pkcs1
  - pgp::rsa::Key::sign_pkcs1
  - pgp::rsa::Key::decrypt_pkcs1
  - pgp::rsa::calculate_pqu
  - pgp::rsa::extract_key
  - pgp::rsa::Key::generate
  - pgp::rsa::load_public_key
  - pgp::rsa::load_secret_key
  - pgp::rsa::init_context
  - pgp::rsa::bld_params
  - pgp::rsa::load_key
  - pgp::rsa::init_context
  - pgp::rsa::Key::validate
  - pgp::rsa::setup_context
  - pgp::rsa::setup_signature_hash
  - pgp::rsa::Key::encrypt_pkcs1
  - pgp::rsa::Key::verify_pkcs1
  - pgp::rsa::Key::sign_pkcs1
  - pgp::rsa::Key::decrypt_pkcs1
  - pgp::rsa::calculate_pqu
  - pgp::rsa::extract_key
  - pgp::rsa::Key::generate
  - pgp::rsa::load_public_key
  - pgp::rsa::load_secret_key
  - pgp::rsa::init_context
  - pgp::rsa::bld_params
  - pgp::rsa::load_key
  - pgp::rsa::init_context
  - pgp::rsa::Key::validate
  - pgp::rsa::setup_context
  - pgp::rsa::setup_signature_hash
  - pgp::rsa::Key::encrypt_pkcs1
  - pgp::rsa::Key::verify_pkcs1
  - pgp::rsa::Key::sign_pkcs1
  - pgp::rsa::Key::decrypt_pkcs1
  - pgp::rsa::calculate_pqu
  - pgp::rsa::extract_key
  - pgp::rsa::Key::generate
  source_file: /src/rnp/src/lib/crypto/rsa_ossl.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::ecdsa::load_public_key
  - pgp::ecdsa::load_secret_key
  - pgp::ecdsa::validate_key
  - pgp::ecdsa::padding_str_for
  - pgp::ecdsa::sign
  - pgp::ecdsa::verify
  - pgp::ecdsa::load_public_key
  - pgp::ecdsa::load_secret_key
  - pgp::ecdsa::validate_key
  - pgp::ecdsa::padding_str_for
  - pgp::ecdsa::sign
  - pgp::ecdsa::verify
  - pgp::ecdsa::load_public_key
  - pgp::ecdsa::load_secret_key
  - pgp::ecdsa::validate_key
  - pgp::ecdsa::padding_str_for
  - pgp::ecdsa::sign
  - pgp::ecdsa::verify
  - pgp::ecdsa::load_public_key
  - pgp::ecdsa::load_secret_key
  - pgp::ecdsa::validate_key
  - pgp::ecdsa::padding_str_for
  - pgp::ecdsa::sign
  - pgp::ecdsa::verify
  source_file: /src/rnp/src/lib/crypto/ecdsa.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp_s2k_derive_key
  - pgp_s2k_argon2
  - pgp_s2k_iterated
  - pgp_s2k_decode_iterations
  - pgp_s2k_round_iterations
  - pgp_s2k_encode_iterations
  - get_timestamp_usec
  - pgp_s2k_compute_iters
  - pgp_s2k_t::salt_size
  - pgp_s2k_t::specifier_len
  source_file: /src/rnp/src/lib/crypto/s2k.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::dsa::Key::validate
  - pgp::dsa::Key::sign
  - pgp::dsa::Key::verify
  - pgp::dsa::Key::generate
  - pgp::dsa::Key::validate
  - pgp::dsa::Key::sign
  - pgp::dsa::Key::verify
  - pgp::dsa::Key::generate
  - pgp::dsa::Key::validate
  - pgp::dsa::Key::sign
  - pgp::dsa::Key::verify
  - pgp::dsa::Key::generate
  - pgp::dsa::Key::validate
  - pgp::dsa::Key::sign
  - pgp::dsa::Key::verify
  - pgp::dsa::Key::generate
  source_file: /src/rnp/src/lib/crypto/dsa.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::ec::Curve::by_OID
  - pgp::ec::Curve::by_name
  - pgp::ec::Curve::get
  - pgp::ec::Curve::alg_allows
  - pgp::ec::Curve::is_supported
  - pgp::ec::Curve::by_OID
  - pgp::ec::Curve::by_name
  - pgp::ec::Curve::get
  - pgp::ec::Curve::alg_allows
  - pgp::ec::Curve::is_supported
  - pgp::ec::Curve::by_OID
  - pgp::ec::Curve::by_name
  - pgp::ec::Curve::get
  - pgp::ec::Curve::alg_allows
  - pgp::ec::Curve::is_supported
  - pgp::ec::Curve::by_OID
  - pgp::ec::Curve::by_name
  - pgp::ec::Curve::get
  - pgp::ec::Curve::alg_allows
  - pgp::ec::Curve::is_supported
  source_file: /src/rnp/src/lib/crypto/ec_curves.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::dsa::Key::get_min_hash
  - pgp::dsa::Key::choose_qsize
  - pgp::dsa::Key::get_min_hash
  - pgp::dsa::Key::choose_qsize
  - pgp::ecdsa::get_min_hash
  - pgp::ecdsa::get_min_hash
  - pgp::dsa::Key::get_min_hash
  - pgp::dsa::Key::choose_qsize
  - pgp::dsa::Key::get_min_hash
  - pgp::dsa::Key::choose_qsize
  - pgp::ecdsa::get_min_hash
  - pgp::ecdsa::get_min_hash
  source_file: /src/rnp/src/lib/crypto/dsa_common.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::Hkdf::Hkdf
  - rnp::Hkdf::Hkdf
  source_file: /src/rnp/src/lib/crypto/hkdf.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - dl_build_params
  - dl_load_key
  - dl_validate_secret_key
  - dl_validate_key
  source_file: /src/rnp/src/lib/crypto/dl_ossl.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - Cipher::encryption
  - Cipher::decryption
  - Cipher::Cipher
  - Cipher::~Cipher()
  - Cipher::block_size
  source_file: /src/rnp/src/lib/crypto/cipher.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::Hash_Botan::Hash_Botan
  - rnp::Hash_Botan::Hash_Botan
  - Hash_Botan::~Hash_Botan()
  - rnp::Hash_Botan::create
  - rnp::Hash_Botan::clone
  - rnp::Hash_Botan::add
  - rnp::Hash_Botan::finish
  - rnp::Hash_Botan::name_backend
  - rnp::CRC24_Botan::CRC24_Botan
  - CRC24_Botan::~CRC24_Botan()
  - rnp::CRC24_Botan::create
  - rnp::CRC24_Botan::add
  - rnp::CRC24_Botan::finish
  - rnp::Hash_Botan::Hash_Botan
  - rnp::Hash_Botan::Hash_Botan
  - Hash_Botan::~Hash_Botan()
  - rnp::Hash_Botan::create
  - rnp::Hash_Botan::clone
  - rnp::Hash_Botan::add
  - rnp::Hash_Botan::finish
  - rnp::Hash_Botan::name_backend
  - rnp::CRC24_Botan::CRC24_Botan
  - CRC24_Botan::~CRC24_Botan()
  - rnp::CRC24_Botan::create
  - rnp::CRC24_Botan::add
  - rnp::CRC24_Botan::finish
  source_file: /src/rnp/src/lib/crypto/hash.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/cipher_ossl.hpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::Hash_SHA1CD::Hash_SHA1CD
  - rnp::Hash_SHA1CD::Hash_SHA1CD
  - Hash_SHA1CD::~Hash_SHA1CD()
  - rnp::Hash_SHA1CD::create
  - rnp::Hash_SHA1CD::clone
  - rnp::Hash_SHA1CD::add
  - rnp::Hash_SHA1CD::finish
  - rnp::Hash_SHA1CD::Hash_SHA1CD
  - rnp::Hash_SHA1CD::Hash_SHA1CD
  - Hash_SHA1CD::~Hash_SHA1CD()
  - rnp::Hash_SHA1CD::create
  - rnp::Hash_SHA1CD::clone
  - rnp::Hash_SHA1CD::add
  - rnp::Hash_SHA1CD::finish
  source_file: /src/rnp/src/lib/crypto/hash_sha1cd.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::secure_wipe
  - rnp::secure_wipe
  source_file: /src/rnp/src/lib/crypto/secure_bytes.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - ~pgp_dilithium_exdsa_composite_key_t()
  - pgp_dilithium_exdsa_composite_key_t::is_initialized
  - composite_signature_size
  - pgp_dilithium_exdsa_composite_private_key_t::pgp_dilithium_exdsa_composite_private_key_t
  - pgp_dilithium_exdsa_composite_private_key_t::pk_alg
  - pgp_dilithium_exdsa_composite_public_key_t::pgp_dilithium_exdsa_composite_public_key_t
  - operator==(const pgp_dilithium_exdsa_composite_public_key_t &rhs) const
  - pgp_dilithium_exdsa_composite_public_key_t::pk_alg
  source_file: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: sig
        type: std::vector<uint8_t>
      item_type: struct
      name: pgp_dilithium_exdsa_signature_t
      pos:
        line_end: 77
        line_start: 66
        source_file: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.h
    - fields:
      - name: priv
        type: pgp_dilithium_exdsa_composite_private_key_t
      - name: pub
        type: pgp_dilithium_exdsa_composite_public_key_t
      item_type: struct
      name: pgp_dilithium_exdsa_key_t
      pos:
        line_end: 179
        line_start: 176
        source_file: /src/rnp/src/lib/crypto/dilithium_exdsa_composite.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/dilithium_common.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/rng.h
  types:
    enum:
    - enumerators:
      - name: DRBG
      - name: System
      item_type: enum
      name: Type
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/rnp/src/lib/crypto/rng.h
    - enumerators:
      - name: DRBG
      - name: System
      item_type: enum
      name: Type
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/rnp/src/lib/crypto/rng.h
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: '*botan_rng_t'
      pos:
        line_end: 35
        line_start: 35
        source_file: /src/rnp/src/lib/crypto/rng.h
      type: botan_rng_struct
    union: []
- function_names:
  - pgp_sa_to_openssl_string
  - pgp_cipher_cfb_start
  - pgp_cipher_cfb_finish
  - pgp_cipher_encrypt_block
  - pgp_is_sa_supported
  - openssl_aead_name
  - pgp_cipher_aead_init
  - pgp_cipher_aead_set_ad
  - pgp_cipher_aead_start
  - pgp_cipher_aead_update
  - pgp_cipher_aead_reset
  - pgp_cipher_aead_finish
  - pgp_cipher_aead_destroy
  source_file: /src/rnp/src/lib/crypto/symmetric_ossl.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/x25519_x448.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - sphincsplus_alg_name
  - load_slhdsa_pubkey
  - load_slhdsa_privkey
  - sphincsplus_alg_name
  - load_slhdsa_pubkey
  - load_slhdsa_privkey
  - pgp_sphincsplus_public_key_t::pgp_sphincsplus_public_key_t
  - pgp_sphincsplus_public_key_t::pgp_sphincsplus_public_key_t
  - pgp_sphincsplus_private_key_t::pgp_sphincsplus_private_key_t
  - pgp_sphincsplus_private_key_t::pgp_sphincsplus_private_key_t
  - sphincsplus_generate_keypair
  - pgp_sphincsplus_generate
  - pgp_sphincsplus_private_key_t::sign
  - pgp_sphincsplus_public_key_t::verify
  - pgp_sphincsplus_public_key_t::is_valid
  - pgp_sphincsplus_private_key_t::is_valid
  - sphincsplus_validate_key
  - sphincsplus_privkey_size
  - sphincsplus_pubkey_size
  - sphincsplus_signature_size
  source_file: /src/rnp/src/lib/crypto/sphincsplus_ossl.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::ossl_allocator::ossl_allocator
  - rnp::ossl_allocator::ossl_allocator
  - '&operator=(const ossl_allocator &) noexcept'
  - ~ossl_allocator() noexcept
  - rnp::ossl_allocator::ossl_allocator
  - rnp::ossl_allocator::allocate
  - rnp::ossl_allocator::deallocate
  - rnp::secure_array
  - rnp::data
  - rnp::data
  - rnp::size
  - operator[](size_t idx) const
  - "&\n    operator[](size_t idx)"
  - ~secure_array()
  - rnp::bin_to_hex
  - rnp::bin_to_hex
  - rnp::hex_to_bin
  - rnp::ossl_allocator::ossl_allocator
  - rnp::ossl_allocator::ossl_allocator
  - '&operator=(const ossl_allocator &) noexcept'
  - ~ossl_allocator() noexcept
  - rnp::ossl_allocator::ossl_allocator
  - rnp::ossl_allocator::allocate
  - rnp::ossl_allocator::deallocate
  - rnp::secure_array
  - rnp::data
  - rnp::data
  - rnp::size
  - operator[](size_t idx) const
  - "&\n    operator[](size_t idx)"
  - ~secure_array()
  - rnp::bin_to_hex
  - rnp::bin_to_hex
  - rnp::hex_to_bin
  source_file: /src/rnp/src/lib/crypto/mem.h
  types:
    enum:
    - enumerators:
      - name: Lowercase
      - name: Uppercase
      item_type: enum
      name: HexFormat
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/rnp/src/lib/crypto/mem.h
    - enumerators:
      - name: Lowercase
      - name: Uppercase
      item_type: enum
      name: HexFormat
      pos:
        line_end: 162
        line_start: 162
        source_file: /src/rnp/src/lib/crypto/mem.h
    preproc_defs: []
    structs:
    - fields:
      - name: data_
        type: std::array<T, N>
      item_type: struct
      name: secure_array
      pos:
        line_end: 160
        line_start: 106
        source_file: /src/rnp/src/lib/crypto/mem.h
    - fields:
      - name: data_
        type: std::array<T, N>
      item_type: struct
      name: secure_array
      pos:
        line_end: 160
        line_start: 106
        source_file: /src/rnp/src/lib/crypto/mem.h
    typedefs:
    - item_type: typedef
      name: value_type
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/rnp/src/lib/crypto/mem.h
      type: T
    - item_type: typedef
      name: size_type
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/rnp/src/lib/crypto/mem.h
      type: size_t
    - item_type: typedef
      name: value_type
      pos:
        line_end: 53
        line_start: 53
        source_file: /src/rnp/src/lib/crypto/mem.h
      type: T
    - item_type: typedef
      name: size_type
      pos:
        line_end: 54
        line_start: 54
        source_file: /src/rnp/src/lib/crypto/mem.h
      type: size_t
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/ed25519_ed448.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp_dilithium_public_key_t::pgp_dilithium_public_key_t
  - pgp_dilithium_public_key_t::pgp_dilithium_public_key_t
  - pgp_dilithium_private_key_t::pgp_dilithium_private_key_t
  - pgp_dilithium_private_key_t::pgp_dilithium_private_key_t
  - dilithium_privkey_size
  - dilithium_pubkey_size
  - dilithium_signature_size
  source_file: /src/rnp/src/lib/crypto/dilithium_common.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::sm2::load_public_key
  - pgp::sm2::load_secret_key
  - pgp::sm2::compute_za
  - pgp::sm2::validate_key
  - pgp::sm2::sign
  - pgp::sm2::verify
  - pgp::sm2::encrypt
  - pgp::sm2::decrypt
  - pgp::sm2::load_public_key
  - pgp::sm2::load_secret_key
  - pgp::sm2::compute_za
  - pgp::sm2::validate_key
  - pgp::sm2::sign
  - pgp::sm2::verify
  - pgp::sm2::encrypt
  - pgp::sm2::decrypt
  - pgp::sm2::load_public_key
  - pgp::sm2::load_secret_key
  - pgp::sm2::compute_za
  - pgp::sm2::validate_key
  - pgp::sm2::sign
  - pgp::sm2::verify
  - pgp::sm2::encrypt
  - pgp::sm2::decrypt
  - pgp::sm2::load_public_key
  - pgp::sm2::load_secret_key
  - pgp::sm2::compute_za
  - pgp::sm2::validate_key
  - pgp::sm2::sign
  - pgp::sm2::verify
  - pgp::sm2::encrypt
  - pgp::sm2::decrypt
  source_file: /src/rnp/src/lib/crypto/sm2.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::RNG::RNG
  - RNG::~RNG()
  - rnp::RNG::get
  - rnp::RNG::handle
  - rnp::RNG::obj
  - rnp::RNG::RNG
  - RNG::~RNG()
  - rnp::RNG::get
  - rnp::RNG::handle
  - rnp::RNG::obj
  source_file: /src/rnp/src/lib/crypto/rng.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp_dilithium_param_to_botan_dimension
  - dilithium_pubkey_from_bytes
  - dilithium_privkey_from_bytes
  - rnp_dilithium_param_to_botan_dimension
  - dilithium_pubkey_from_bytes
  - dilithium_privkey_from_bytes
  - pgp_dilithium_private_key_t::sign
  - pgp_dilithium_public_key_t::verify_signature
  - dilithium_generate_keypair
  - pgp_dilithium_public_key_t::is_valid
  - pgp_dilithium_private_key_t::is_valid
  source_file: /src/rnp/src/lib/crypto/dilithium.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::eg::Key::clear_secret
  - ~Key()
  - pgp::eg::Key::clear_secret
  - ~Key()
  - pgp::eg::Key::clear_secret
  - ~Key()
  - pgp::eg::Key::clear_secret
  - ~Key()
  source_file: /src/rnp/src/lib/crypto/elgamal.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - rnp::Hkdf_OpenSSL::Hkdf_OpenSSL
  - rnp::Hkdf_OpenSSL::create
  - rnp::Hkdf_OpenSSL::extract_expand
  - Hkdf_OpenSSL::~Hkdf_OpenSSL()
  - rnp::Hkdf_OpenSSL::Hkdf_OpenSSL
  - rnp::Hkdf_OpenSSL::create
  - rnp::Hkdf_OpenSSL::extract_expand
  - Hkdf_OpenSSL::~Hkdf_OpenSSL()
  source_file: /src/rnp/src/lib/crypto/hkdf_ossl.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - pgp::eddsa::load_public_key
  - pgp::eddsa::load_secret_key
  - pgp::eddsa::validate_key
  - pgp::eddsa::generate
  - pgp::eddsa::verify
  - pgp::eddsa::sign
  - pgp::eddsa::load_public_key
  - pgp::eddsa::load_secret_key
  - pgp::eddsa::validate_key
  - pgp::eddsa::generate
  - pgp::eddsa::verify
  - pgp::eddsa::sign
  - pgp::eddsa::load_public_key
  - pgp::eddsa::load_secret_key
  - pgp::eddsa::validate_key
  - pgp::eddsa::generate
  - pgp::eddsa::verify
  - pgp::eddsa::sign
  - pgp::eddsa::load_public_key
  - pgp::eddsa::load_secret_key
  - pgp::eddsa::validate_key
  - pgp::eddsa::generate
  - pgp::eddsa::verify
  - pgp::eddsa::sign
  source_file: /src/rnp/src/lib/crypto/eddsa.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - CHECK_DVMASK
  source_file: /src/rnp/src/lib/crypto/sha1cd/ubc_check.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: DVMASKSIZE
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/rnp/src/lib/crypto/sha1cd/ubc_check.h
      type_or_value: '1'
    structs:
    - fields:
      - name: dvType
        type: int
      - name: dvK
        type: int
      - name: dvB
        type: int
      - name: testt
        type: int
      - name: maski
        type: int
      - name: maskb
        type: int
      - name: dm[80]
        type: uint32_t
      item_type: struct
      name: dv_info_t
      pos:
        line_end: 44
        line_start: 36
        source_file: /src/rnp/src/lib/crypto/sha1cd/ubc_check.h
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/lib/crypto/sha1cd/sha1.h
  types:
    enum: []
    preproc_defs: []
    structs:
    - fields:
      - name: total
        type: uint64_t
      - name: ihv[5]
        type: uint32_t
      - name: buffer[64]
        type: unsigned char
      - name: found_collision
        type: int
      - name: safe_hash
        type: int
      - name: detect_coll
        type: int
      - name: ubc_check
        type: int
      - name: reduced_round_coll
        type: int
      - name: callback
        type: collision_block_callback
      - name: ihv1[5]
        type: uint32_t
      - name: ihv2[5]
        type: uint32_t
      - name: m1[80]
        type: uint32_t
      - name: m2[80]
        type: uint32_t
      - name: states[80][5]
        type: uint32_t
      item_type: struct
      name: SHA1_CTX
      pos:
        line_end: 65
        line_start: 49
        source_file: /src/rnp/src/lib/crypto/sha1cd/sha1.h
    typedefs:
    - item_type: typedef
      name: "(*sha1_recompression_type)(uint32_t *,\n                                        uint32_t
        *,\n                                        const uint32_t *,\n                                        const
        uint32_t *)"
      pos:
        line_end: 39
        line_start: 36
        source_file: /src/rnp/src/lib/crypto/sha1cd/sha1.h
      type: void
    - item_type: typedef
      name: "(*collision_block_callback)(\n  uint64_t, const uint32_t *, const uint32_t
        *, const uint32_t *, const uint32_t *)"
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/rnp/src/lib/crypto/sha1cd/sha1.h
      type: void
    union: []
- function_names:
  - rotate_right
  - rotate_left
  - sha1_bswap32
  - sha1_mix
  - sha1_load
  - sha1_load
  - sha1_store
  - sha1_f1
  - sha1_f2
  - sha1_f3
  - sha1_f4
  - HASHCLASH_SHA1COMPRESS_ROUND1_STEP
  - HASHCLASH_SHA1COMPRESS_ROUND2_STEP
  - HASHCLASH_SHA1COMPRESS_ROUND3_STEP
  - HASHCLASH_SHA1COMPRESS_ROUND4_STEP
  - HASHCLASH_SHA1COMPRESS_ROUND1_STEP_BW
  - HASHCLASH_SHA1COMPRESS_ROUND2_STEP_BW
  - HASHCLASH_SHA1COMPRESS_ROUND3_STEP_BW
  - HASHCLASH_SHA1COMPRESS_ROUND4_STEP_BW
  - SHA1COMPRESS_FULL_ROUND1_STEP_LOAD
  - SHA1COMPRESS_FULL_ROUND1_STEP_EXPAND
  - SHA1COMPRESS_FULL_ROUND2_STEP
  - SHA1COMPRESS_FULL_ROUND3_STEP
  - SHA1COMPRESS_FULL_ROUND4_STEP
  - SHA1_STORE_STATE
  - sha1_compression
  - sha1_compression_W
  - sha1_compression_states
  - SHA1_RECOMPRESS
  - sha1_recompression_step
  - sha1_process
  - SHA1DCInit
  - SHA1DCSetSafeHash
  - SHA1DCSetUseUBC
  - SHA1DCSetUseDetectColl
  - SHA1DCSetDetectReducedRoundCollision
  - SHA1DCSetCallback
  - SHA1DCUpdate
  - SHA1DCFinal
  source_file: /src/rnp/src/lib/crypto/sha1cd/sha1.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: SHA1DC_INIT_SAFE_HASH_DEFAULT
      pos:
        line_end: 23
        line_start: 22
        source_file: /src/rnp/src/lib/crypto/sha1cd/sha1.c
      type_or_value: '1'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ubc_check
  source_file: /src/rnp/src/lib/crypto/sha1cd/ubc_check.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - NLOHMANN_JSON_ABI_TAGS_CONCAT_EX
  - NLOHMANN_JSON_ABI_TAGS_CONCAT
  - NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX
  - NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT
  - NLOHMANN_JSON_NAMESPACE_CONCAT_EX
  - NLOHMANN_JSON_NAMESPACE_CONCAT
  - namespace
  - NLOHMANN_JSON_NAMESPACE_BEGIN
  - nonesuch
  - ~nonesuch()
  - nonesuch
  - nonesuch
  - operator=(nonesuch const&)
  - operator=(nonesuch&&)
  - JSON_HEDLEY_STRINGIFY_EX
  - JSON_HEDLEY_STRINGIFY
  - JSON_HEDLEY_CONCAT_EX
  - JSON_HEDLEY_CONCAT
  - JSON_HEDLEY_CONCAT3_EX
  - JSON_HEDLEY_CONCAT3
  - JSON_HEDLEY_VERSION_ENCODE
  - JSON_HEDLEY_VERSION_DECODE_MAJOR
  - JSON_HEDLEY_VERSION_DECODE_MINOR
  - JSON_HEDLEY_VERSION_DECODE_REVISION
  - JSON_HEDLEY_GNUC_VERSION_CHECK
  - JSON_HEDLEY_GNUC_VERSION_CHECK
  - JSON_HEDLEY_MSVC_VERSION_CHECK
  - JSON_HEDLEY_MSVC_VERSION_CHECK
  - JSON_HEDLEY_MSVC_VERSION_CHECK
  - JSON_HEDLEY_MSVC_VERSION_CHECK
  - JSON_HEDLEY_INTEL_VERSION_CHECK
  - JSON_HEDLEY_INTEL_VERSION_CHECK
  - JSON_HEDLEY_INTEL_CL_VERSION_CHECK
  - JSON_HEDLEY_INTEL_CL_VERSION_CHECK
  - JSON_HEDLEY_PGI_VERSION_CHECK
  - JSON_HEDLEY_PGI_VERSION_CHECK
  - JSON_HEDLEY_SUNPRO_VERSION_CHECK
  - JSON_HEDLEY_SUNPRO_VERSION_CHECK
  - JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK
  - JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK
  - JSON_HEDLEY_ARM_VERSION_CHECK
  - JSON_HEDLEY_ARM_VERSION_CHECK
  - JSON_HEDLEY_IBM_VERSION_CHECK
  - JSON_HEDLEY_IBM_VERSION_CHECK
  - JSON_HEDLEY_TI_VERSION_CHECK
  - JSON_HEDLEY_TI_VERSION_CHECK
  - JSON_HEDLEY_TI_CL2000_VERSION_CHECK
  - JSON_HEDLEY_TI_CL2000_VERSION_CHECK
  - JSON_HEDLEY_TI_CL430_VERSION_CHECK
  - JSON_HEDLEY_TI_CL430_VERSION_CHECK
  - JSON_HEDLEY_TI_ARMCL_VERSION_CHECK
  - JSON_HEDLEY_TI_ARMCL_VERSION_CHECK
  - JSON_HEDLEY_TI_CL6X_VERSION_CHECK
  - JSON_HEDLEY_TI_CL6X_VERSION_CHECK
  - JSON_HEDLEY_TI_CL7X_VERSION_CHECK
  - JSON_HEDLEY_TI_CL7X_VERSION_CHECK
  - JSON_HEDLEY_TI_CLPRU_VERSION_CHECK
  - JSON_HEDLEY_TI_CLPRU_VERSION_CHECK
  - JSON_HEDLEY_CRAY_VERSION_CHECK
  - JSON_HEDLEY_CRAY_VERSION_CHECK
  - JSON_HEDLEY_IAR_VERSION_CHECK
  - JSON_HEDLEY_IAR_VERSION_CHECK
  - JSON_HEDLEY_TINYC_VERSION_CHECK
  - JSON_HEDLEY_TINYC_VERSION_CHECK
  - JSON_HEDLEY_DMC_VERSION_CHECK
  - JSON_HEDLEY_DMC_VERSION_CHECK
  - JSON_HEDLEY_COMPCERT_VERSION_CHECK
  - JSON_HEDLEY_COMPCERT_VERSION_CHECK
  - JSON_HEDLEY_PELLES_VERSION_CHECK
  - JSON_HEDLEY_PELLES_VERSION_CHECK
  - JSON_HEDLEY_MCST_LCC_VERSION_CHECK
  - JSON_HEDLEY_MCST_LCC_VERSION_CHECK
  - JSON_HEDLEY_GCC_VERSION_CHECK
  - JSON_HEDLEY_GCC_VERSION_CHECK
  - JSON_HEDLEY_HAS_ATTRIBUTE
  - JSON_HEDLEY_HAS_ATTRIBUTE
  - JSON_HEDLEY_GNUC_HAS_ATTRIBUTE
  - JSON_HEDLEY_GNUC_HAS_ATTRIBUTE
  - JSON_HEDLEY_GCC_HAS_ATTRIBUTE
  - JSON_HEDLEY_GCC_HAS_ATTRIBUTE
  - JSON_HEDLEY_HAS_CPP_ATTRIBUTE
  - JSON_HEDLEY_HAS_CPP_ATTRIBUTE
  - JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS
  - JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS
  - JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS
  - JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE
  - JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE
  - JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE
  - JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE
  - JSON_HEDLEY_HAS_BUILTIN
  - JSON_HEDLEY_HAS_BUILTIN
  - JSON_HEDLEY_GNUC_HAS_BUILTIN
  - JSON_HEDLEY_GNUC_HAS_BUILTIN
  - JSON_HEDLEY_GCC_HAS_BUILTIN
  - JSON_HEDLEY_GCC_HAS_BUILTIN
  - JSON_HEDLEY_HAS_FEATURE
  - JSON_HEDLEY_HAS_FEATURE
  - JSON_HEDLEY_GNUC_HAS_FEATURE
  - JSON_HEDLEY_GNUC_HAS_FEATURE
  - JSON_HEDLEY_GCC_HAS_FEATURE
  - JSON_HEDLEY_GCC_HAS_FEATURE
  - JSON_HEDLEY_HAS_EXTENSION
  - JSON_HEDLEY_HAS_EXTENSION
  - JSON_HEDLEY_GNUC_HAS_EXTENSION
  - JSON_HEDLEY_GNUC_HAS_EXTENSION
  - JSON_HEDLEY_GCC_HAS_EXTENSION
  - JSON_HEDLEY_GCC_HAS_EXTENSION
  - JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE
  - JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE
  - JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE
  - JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE
  - JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE
  - JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE
  - JSON_HEDLEY_HAS_WARNING
  - JSON_HEDLEY_HAS_WARNING
  - JSON_HEDLEY_GNUC_HAS_WARNING
  - JSON_HEDLEY_GNUC_HAS_WARNING
  - JSON_HEDLEY_GCC_HAS_WARNING
  - JSON_HEDLEY_GCC_HAS_WARNING
  - JSON_HEDLEY_PRAGMA
  - JSON_HEDLEY_PRAGMA
  - JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_
  - JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_
  - JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_
  - JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_
  - JSON_HEDLEY_CONST_CAST
  - JSON_HEDLEY_CONST_CAST
  - JSON_HEDLEY_CONST_CAST
  - JSON_HEDLEY_REINTERPRET_CAST
  - JSON_HEDLEY_REINTERPRET_CAST
  - JSON_HEDLEY_STATIC_CAST
  - JSON_HEDLEY_STATIC_CAST
  - JSON_HEDLEY_CPP_CAST
  - JSON_HEDLEY_CPP_CAST
  - JSON_HEDLEY_CPP_CAST
  - JSON_HEDLEY_CPP_CAST
  - JSON_HEDLEY_DEPRECATED
  - JSON_HEDLEY_DEPRECATED_FOR
  - JSON_HEDLEY_DEPRECATED
  - JSON_HEDLEY_DEPRECATED_FOR
  - JSON_HEDLEY_DEPRECATED
  - JSON_HEDLEY_DEPRECATED_FOR
  - JSON_HEDLEY_DEPRECATED
  - JSON_HEDLEY_DEPRECATED_FOR
  - JSON_HEDLEY_DEPRECATED
  - JSON_HEDLEY_DEPRECATED_FOR
  - JSON_HEDLEY_DEPRECATED
  - JSON_HEDLEY_DEPRECATED_FOR
  - JSON_HEDLEY_UNAVAILABLE
  - JSON_HEDLEY_WARN_UNUSED_RESULT_MSG
  - JSON_HEDLEY_WARN_UNUSED_RESULT_MSG
  - JSON_HEDLEY_WARN_UNUSED_RESULT_MSG
  - JSON_HEDLEY_WARN_UNUSED_RESULT_MSG
  - JSON_HEDLEY_SENTINEL
  - JSON_HEDLEY_ASSUME
  - JSON_HEDLEY_ASSUME
  - JSON_HEDLEY_ASSUME
  - JSON_HEDLEY_ASSUME
  - JSON_HEDLEY_UNREACHABLE
  - JSON_HEDLEY_UNREACHABLE
  - JSON_HEDLEY_ASSUME
  - JSON_HEDLEY_ASSUME
  - JSON_HEDLEY_UNREACHABLE_RETURN
  - JSON_HEDLEY_UNREACHABLE_RETURN
  - JSON_HEDLEY_UNREACHABLE_RETURN
  - JSON_HEDLEY_UNREACHABLE
  - JSON_HEDLEY_NON_NULL
  - JSON_HEDLEY_PRINTF_FORMAT
  - JSON_HEDLEY_PRINTF_FORMAT
  - JSON_HEDLEY_PRINTF_FORMAT
  - JSON_HEDLEY_PRINTF_FORMAT
  - JSON_HEDLEY_UNPREDICTABLE
  - JSON_HEDLEY_PREDICT
  - JSON_HEDLEY_PREDICT_TRUE
  - JSON_HEDLEY_PREDICT_FALSE
  - JSON_HEDLEY_LIKELY
  - JSON_HEDLEY_UNLIKELY
  - JSON_HEDLEY_PREDICT
  - JSON_HEDLEY_PREDICT_TRUE
  - JSON_HEDLEY_PREDICT_FALSE
  - JSON_HEDLEY_LIKELY
  - JSON_HEDLEY_UNLIKELY
  - JSON_HEDLEY_PREDICT
  - JSON_HEDLEY_PREDICT_TRUE
  - JSON_HEDLEY_PREDICT_FALSE
  - JSON_HEDLEY_LIKELY
  - JSON_HEDLEY_UNLIKELY
  - JSON_HEDLEY_UNPREDICTABLE
  - JSON_HEDLEY_ARRAY_PARAM
  - JSON_HEDLEY_IS_CONSTANT
  - JSON_HEDLEY_IS_CONSTEXPR_
  - JSON_HEDLEY_IS_CONSTEXPR_
  - JSON_HEDLEY_IS_CONSTEXPR_
  - JSON_HEDLEY_IS_CONSTEXPR_
  - JSON_HEDLEY_IS_CONSTEXPR_
  - JSON_HEDLEY_IS_CONSTANT
  - JSON_HEDLEY_REQUIRE_CONSTEXPR
  - JSON_HEDLEY_IS_CONSTANT
  - JSON_HEDLEY_REQUIRE_CONSTEXPR
  - JSON_HEDLEY_STATIC_ASSERT
  - JSON_HEDLEY_STATIC_ASSERT
  - JSON_HEDLEY_MESSAGE
  - JSON_HEDLEY_MESSAGE
  - JSON_HEDLEY_MESSAGE
  - JSON_HEDLEY_MESSAGE
  - JSON_HEDLEY_MESSAGE
  - JSON_HEDLEY_WARNING
  - JSON_HEDLEY_WARNING
  - JSON_HEDLEY_WARNING
  - JSON_HEDLEY_WARNING
  - JSON_HEDLEY_REQUIRE
  - JSON_HEDLEY_REQUIRE_MSG
  - JSON_HEDLEY_REQUIRE
  - JSON_HEDLEY_REQUIRE_MSG
  - JSON_HEDLEY_FLAGS_CAST
  - JSON_HEDLEY_FLAGS_CAST
  - JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK
  - JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK
  - JSON_HEDLEY_CLANG_HAS_ATTRIBUTE
  - JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE
  - JSON_HEDLEY_CLANG_HAS_BUILTIN
  - JSON_HEDLEY_CLANG_HAS_FEATURE
  - JSON_HEDLEY_CLANG_HAS_EXTENSION
  - JSON_HEDLEY_CLANG_HAS_DECLSPEC_ATTRIBUTE
  - JSON_HEDLEY_CLANG_HAS_WARNING
  - JSON_THROW
  - JSON_CATCH
  - JSON_INTERNAL_CATCH
  - JSON_THROW
  - JSON_CATCH
  - JSON_INTERNAL_CATCH
  - JSON_ASSERT
  - NLOHMANN_JSON_SERIALIZE_ENUM
  - NLOHMANN_JSON_EXPAND
  - NLOHMANN_JSON_GET_MACRO
  - NLOHMANN_JSON_PASTE
  - NLOHMANN_JSON_PASTE2
  - NLOHMANN_JSON_PASTE3
  - NLOHMANN_JSON_PASTE4
  - NLOHMANN_JSON_PASTE5
  - NLOHMANN_JSON_PASTE6
  - NLOHMANN_JSON_PASTE7
  - NLOHMANN_JSON_PASTE8
  - NLOHMANN_JSON_PASTE9
  - NLOHMANN_JSON_PASTE10
  - NLOHMANN_JSON_PASTE11
  - NLOHMANN_JSON_PASTE12
  - NLOHMANN_JSON_PASTE13
  - NLOHMANN_JSON_PASTE14
  - NLOHMANN_JSON_PASTE15
  - NLOHMANN_JSON_PASTE16
  - NLOHMANN_JSON_PASTE17
  - NLOHMANN_JSON_PASTE18
  - NLOHMANN_JSON_PASTE19
  - NLOHMANN_JSON_PASTE20
  - NLOHMANN_JSON_PASTE21
  - NLOHMANN_JSON_PASTE22
  - NLOHMANN_JSON_PASTE23
  - NLOHMANN_JSON_PASTE24
  - NLOHMANN_JSON_PASTE25
  - NLOHMANN_JSON_PASTE26
  - NLOHMANN_JSON_PASTE27
  - NLOHMANN_JSON_PASTE28
  - NLOHMANN_JSON_PASTE29
  - NLOHMANN_JSON_PASTE30
  - NLOHMANN_JSON_PASTE31
  - NLOHMANN_JSON_PASTE32
  - NLOHMANN_JSON_PASTE33
  - NLOHMANN_JSON_PASTE34
  - NLOHMANN_JSON_PASTE35
  - NLOHMANN_JSON_PASTE36
  - NLOHMANN_JSON_PASTE37
  - NLOHMANN_JSON_PASTE38
  - NLOHMANN_JSON_PASTE39
  - NLOHMANN_JSON_PASTE40
  - NLOHMANN_JSON_PASTE41
  - NLOHMANN_JSON_PASTE42
  - NLOHMANN_JSON_PASTE43
  - NLOHMANN_JSON_PASTE44
  - NLOHMANN_JSON_PASTE45
  - NLOHMANN_JSON_PASTE46
  - NLOHMANN_JSON_PASTE47
  - NLOHMANN_JSON_PASTE48
  - NLOHMANN_JSON_PASTE49
  - NLOHMANN_JSON_PASTE50
  - NLOHMANN_JSON_PASTE51
  - NLOHMANN_JSON_PASTE52
  - NLOHMANN_JSON_PASTE53
  - NLOHMANN_JSON_PASTE54
  - NLOHMANN_JSON_PASTE55
  - NLOHMANN_JSON_PASTE56
  - NLOHMANN_JSON_PASTE57
  - NLOHMANN_JSON_PASTE58
  - NLOHMANN_JSON_PASTE59
  - NLOHMANN_JSON_PASTE60
  - NLOHMANN_JSON_PASTE61
  - NLOHMANN_JSON_PASTE62
  - NLOHMANN_JSON_PASTE63
  - NLOHMANN_JSON_PASTE64
  - NLOHMANN_JSON_TO
  - NLOHMANN_JSON_FROM
  - NLOHMANN_JSON_FROM_WITH_DEFAULT
  - NLOHMANN_DEFINE_TYPE_INTRUSIVE
  - NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT
  - NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE
  - NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE
  - NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE
  - NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT
  - NLOHMANN_CAN_CALL_STD_FUNC_IMPL
  - namespace
  - operator<(const value_t lhs, const value_t rhs) noexcept
  - operator<(const value_t lhs, const value_t rhs) noexcept
  - NLOHMANN_JSON_NAMESPACE_BEGIN
  - replace_substring
  - escape
  - unescape
  - namespace
  - operator size_t() const
  - namespace
  - size
  - make_array
  - detail
  - namespace
  - to_int_type
  - to_char_type
  - eof
  - to_int_type
  - to_char_type
  - eof
  - conditional_static_cast
  - conditional_static_cast
  - test
  - test
  - test
  - test
  - test
  - test
  - value_in_range_of
  - impl::is_c_string
  - impl::is_c_string
  - impl::is_transparent
  - impl::is_transparent
  - namespace
  - concat_length
  - concat_length
  - concat_length
  - concat_length
  - concat_into
  - concat_into
  - concat_into
  - concat_into
  - concat_into
  - concat
  - NLOHMANN_JSON_NAMESPACE_BEGIN
  - exception::what
  - "(3)\n    exception(int id_, const char* what_arg) : id(id_), m(what_arg)"
  - exception::name
  - exception::diagnostics
  - exception::diagnostics
  - parse_error::create
  - parse_error::create
  - parse_error::parse_error
  - parse_error::position_string
  - invalid_iterator::create
  - "(3)\n    invalid_iterator(int id_, const char* what_arg)\n        : exception(id_,
    what_arg)"
  - type_error::create
  - "(3)\n    type_error(int id_, const char* what_arg) : exception(id_, what_arg)"
  - out_of_range::create
  - "(3)\n    out_of_range(int id_, const char* what_arg) : exception(id_, what_arg)"
  - other_error::create
  - "(3)\n    other_error(int id_, const char* what_arg) : exception(id_, what_arg)"
  - NLOHMANN_JSON_NAMESPACE_BEGIN
  - namespace
  - namespace
  - namespace
  - from_json
  - get_arithmetic_value
  - from_json
  - from_json
  - from_json
  - from_json
  - from_json
  - from_json
  - from_json
  - from_json
  - from_json
  - from_json
  - from_json_array_impl
  - from_json_array_impl
  - from_json_array_impl
  - from_json_array_impl
  - from_json
  - from_json_inplace_array_impl
  - from_json
  - from_json
  - from_json
  - from_json
  - from_json_tuple_impl_base
  - from_json_tuple_impl
  - from_json_tuple_impl
  - from_json_tuple_impl
  - from_json_tuple_impl
  - from_json
  - from_json
  - from_json
  - from_json
  - "operator()(const BasicJsonType& j, T&& val) const\n    noexcept(noexcept(from_json(j,
    std::forward<T>(val))))\n    -> decltype(from_json(j, std::forward<T>(val)))"
  - namespace
  - int_to_string
  - iteration_proxy_value::iteration_proxy_value
  - iteration_proxy_value::iteration_proxy_value
  - iteration_proxy_value::iteration_proxy_value
  - '& operator=(iteration_proxy_value const&)'
  - iteration_proxy_value::iteration_proxy_value
  - "& operator=(iteration_proxy_value&&)\n    noexcept(std::is_nothrow_move_assignable<IteratorType>::value\n
    \            && std::is_nothrow_move_assignable<string_type>::value)"
  - ~iteration_proxy_value()
  - '& operator*() const'
  - '& operator++()'
  - operator++(int)&
  - operator==(const iteration_proxy_value& o) const
  - operator!=(const iteration_proxy_value& o) const
  - '& key() const'
  - iteration_proxy_value::value
  - iteration_proxy::iteration_proxy
  - iteration_proxy::iteration_proxy
  - iteration_proxy::iteration_proxy
  - '& operator=(iteration_proxy const&)'
  - iteration_proxy::iteration_proxy
  - '& operator=(iteration_proxy&&) noexcept'
  - ~iteration_proxy()
  - iteration_proxy::begin
  - iteration_proxy::end
  - get
  - get
  - namespace
  - namespace
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json_tuple_impl
  - to_json
  - to_json
  - "operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(to_json(j, std::forward<T>(val))))\n
    \   -> decltype(to_json(j, std::forward<T>(val)), void())"
  - from_json
  - from_json
  - to_json
  - from_json
  - from_json
  - to_json
  - operator!=(const byte_container_with_subtype& rhs) const
  - set_subtype
  - subtype
  - has_subtype
  - clear_subtype
  - namespace
  - combine
  - hash
  - namespace
  - file_input_adapter
  - file_input_adapter
  - file_input_adapter
  - get_character
  - ~input_stream_adapter()
  - input_stream_adapter::input_stream_adapter
  - input_stream_adapter::input_stream_adapter
  - '& operator=(input_stream_adapter&)'
  - '& operator=(input_stream_adapter&&)'
  - input_stream_adapter::input_stream_adapter
  - input_stream_adapter::get_character
  - iterator_input_adapter::iterator_input_adapter
  - iterator_input_adapter::get_character
  - iterator_input_adapter::empty
  - fill_buffer
  - fill_buffer
  - wide_string_input_adapter::wide_string_input_adapter
  - wide_string_input_adapter::get_character
  - wide_string_input_adapter::fill_buffer
  - create
  - create
  - input_adapter
  - container_input_adapter_factory_impl::create
  - container_input_adapter_factory_impl::create
  - input_adapter
  - input_adapter
  - input_adapter
  - input_adapter
  - input_adapter
  - input_adapter
  - span_input_adapter::span_input_adapter
  - span_input_adapter::span_input_adapter
  - '&& get()'
  - json_sax_dom_parser
  - json_sax_dom_parser
  - json_sax_dom_parser
  - ~json_sax_dom_parser()
  - 'null'
  - boolean
  - number_integer
  - number_unsigned
  - number_float
  - string
  - binary
  - start_object
  - key
  - end_object
  - start_array
  - end_array
  - parse_error
  - is_errored
  - namespace
  - int_to_string
  - iteration_proxy_value::iteration_proxy_value
  - iteration_proxy_value::iteration_proxy_value
  - iteration_proxy_value::iteration_proxy_value
  - '& operator=(iteration_proxy_value const&)'
  - iteration_proxy_value::iteration_proxy_value
  - "& operator=(iteration_proxy_value&&)\n    noexcept(std::is_nothrow_move_assignable<IteratorType>::value\n
    \            && std::is_nothrow_move_assignable<string_type>::value)"
  - ~iteration_proxy_value()
  - '& operator*() const'
  - '& operator++()'
  - operator++(int)&
  - operator==(const iteration_proxy_value& o) const
  - operator!=(const iteration_proxy_value& o) const
  - '& key() const'
  - iteration_proxy_value::value
  - iteration_proxy::iteration_proxy
  - iteration_proxy::iteration_proxy
  - iteration_proxy::iteration_proxy
  - '& operator=(iteration_proxy const&)'
  - iteration_proxy::iteration_proxy
  - '& operator=(iteration_proxy&&) noexcept'
  - ~iteration_proxy()
  - iteration_proxy::begin
  - iteration_proxy::end
  - get
  - get
  - namespace
  - namespace
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - construct
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json
  - to_json_tuple_impl
  - to_json
  - to_json
  - "operator()(BasicJsonType& j, T&& val) const noexcept(noexcept(to_json(j, std::forward<T>(val))))\n
    \   -> decltype(to_json(j, std::forward<T>(val)), void())"
  - from_json
  - from_json
  - to_json
  - from_json
  - from_json
  - to_json
  - operator!=(const byte_container_with_subtype& rhs) const
  - set_subtype
  - subtype
  - has_subtype
  - clear_subtype
  - namespace
  - combine
  - hash
  - namespace
  - file_input_adapter
  - file_input_adapter
  - file_input_adapter
  - get_character
  - ~input_stream_adapter()
  - input_stream_adapter::input_stream_adapter
  - input_stream_adapter::input_stream_adapter
  - '& operator=(input_stream_adapter&)'
  - '& operator=(input_stream_adapter&&)'
  - input_stream_adapter::input_stream_adapter
  - input_stream_adapter::get_character
  - iterator_input_adapter::iterator_input_adapter
  - iterator_input_adapter::get_character
  - iterator_input_adapter::empty
  - fill_buffer
  - fill_buffer
  - wide_string_input_adapter::wide_string_input_adapter
  - wide_string_input_adapter::get_character
  - wide_string_input_adapter::fill_buffer
  - create
  - create
  - input_adapter
  - container_input_adapter_factory_impl::create
  - container_input_adapter_factory_impl::create
  - input_adapter
  - input_adapter
  - input_adapter
  - input_adapter
  - input_adapter
  - input_adapter
  - span_input_adapter::span_input_adapter
  - span_input_adapter::span_input_adapter
  - '&& get()'
  - json_sax_dom_parser
  - json_sax_dom_parser
  - json_sax_dom_parser
  - ~json_sax_dom_parser()
  - 'null'
  - boolean
  - number_integer
  - number_unsigned
  - number_float
  - string
  - binary
  - start_object
  - key
  - end_object
  - start_array
  - end_array
  - parse_error
  - is_errored
  - json_sax_dom_callback_parser::json_sax_dom_callback_parser
  - json_sax_dom_callback_parser::json_sax_dom_callback_parser
  - json_sax_dom_callback_parser::json_sax_dom_callback_parser
  - '& operator=(const json_sax_dom_callback_parser&)'
  - '& operator=(json_sax_dom_callback_parser&&)'
  - ~json_sax_dom_callback_parser()
  - json_sax_dom_callback_parser::null
  - json_sax_dom_callback_parser::boolean
  - json_sax_dom_callback_parser::number_integer
  - json_sax_dom_callback_parser::number_unsigned
  - json_sax_dom_callback_parser::number_float
  - json_sax_dom_callback_parser::string
  - json_sax_dom_callback_parser::binary
  - json_sax_dom_callback_parser::start_object
  - json_sax_dom_callback_parser::key
  - json_sax_dom_callback_parser::end_object
  - json_sax_dom_callback_parser::start_array
  - json_sax_dom_callback_parser::end_array
  - json_sax_dom_callback_parser::parse_error
  - json_sax_dom_callback_parser::is_errored
  - json_sax_dom_callback_parser::handle_value
  - json_sax_acceptor::null
  - json_sax_acceptor::boolean
  - json_sax_acceptor::number_integer
  - json_sax_acceptor::number_unsigned
  - json_sax_acceptor::number_float
  - json_sax_acceptor::string
  - json_sax_acceptor::binary
  - json_sax_acceptor::start_object
  - json_sax_acceptor::key
  - json_sax_acceptor::end_object
  - json_sax_acceptor::start_array
  - json_sax_acceptor::end_array
  - json_sax_acceptor::parse_error
  - namespace
  - lexer_base::token_type_name
  - lexer::lexer
  - lexer::lexer
  - lexer::lexer
  - '& operator=(lexer&)'
  - '& operator=(lexer&&)'
  - ~lexer()
  - lexer::get_decimal_point
  - lexer::get_codepoint
  - lexer::next_byte_in_range
  - lexer::scan_string
  - lexer::scan_comment
  - lexer::strtof
  - lexer::strtof
  - lexer::strtof
  - lexer::scan_number
  - reset
  - get
  - unget
  - add
  - get_number_unsigned
  - get_number_float
  - get_string
  - get_position
  - get_token_string
  - get_error_message
  - skip_bom
  - skip_whitespace
  - scan
  - namespace
  - NLOHMANN_JSON_NAMESPACE_BEGIN
  - little_endianness
  - binary_reader::binary_reader
  - binary_reader::binary_reader
  - binary_reader::binary_reader
  - '& operator=(const binary_reader&)'
  - '& operator=(binary_reader&&)'
  - ~binary_reader()
  - "(3)\n    bool sax_parse(const input_format_t format,\n                   json_sax_t*
    sax_,\n                   const bool strict = true,\n                   const
    cbor_tag_handler_t tag_handler = cbor_tag_handler_t::error)"
  - binary_reader::parse_bson_internal
  - binary_reader::get_bson_cstr
  - binary_reader::get_bson_string
  - binary_reader::get_bson_binary
  - binary_reader::parse_bson_element_internal
  - binary_reader::parse_bson_element_list
  - binary_reader::parse_bson_array
  - binary_reader::parse_cbor_internal
  - binary_reader::get_cbor_string
  - binary_reader::get_cbor_binary
  - binary_reader::get_cbor_array
  - binary_reader::get_cbor_object
  - binary_reader::parse_msgpack_internal
  - binary_reader::get_msgpack_string
  - binary_reader::get_msgpack_binary
  - binary_reader::get_msgpack_array
  - binary_reader::get_msgpack_object
  - binary_reader::parse_ubjson_internal
  - binary_reader::get_ubjson_string
  - binary_reader::get_ubjson_ndarray_size
  - binary_reader::get_ubjson_size_value
  - binary_reader::get_ubjson_size_type
  - binary_reader::get_ubjson_value
  - binary_reader::get_ubjson_array
  - binary_reader::get_ubjson_object
  - binary_reader::get_ubjson_high_precision_number
  - binary_reader::get
  - binary_reader::get_ignore_noop
  - binary_reader::get_number
  - binary_reader::get_string
  - binary_reader::get_binary
  - "(3)\n    bool unexpect_eof(const input_format_t format, const char* context)
    const"
  - binary_reader::get_token_string
  - binary_reader::exception_message
  - namespace
  - parser::parser
  - parser::parse
  - parser::accept
  - "(2)\n    bool sax_parse(SAX* sax, const bool strict = true)"
  - parser::sax_parse_internal
  - parser::get_token
  - parser::exception_message
  - namespace
  - primitive_iterator_t::get_value
  - primitive_iterator_t::set_begin
  - primitive_iterator_t::set_end
  - primitive_iterator_t::is_begin
  - primitive_iterator_t::is_end
  - operator==(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
  - operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
  - operator+(difference_type n) noexcept
  - operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
  - '& operator++() noexcept'
  - operator++(int)& noexcept
  - '& operator--() noexcept'
  - operator--(int)& noexcept
  - '& operator+=(difference_type n) noexcept'
  - '& operator-=(difference_type n) noexcept'
  - NLOHMANN_JSON_NAMESPACE_BEGIN
  - namespace
  - set_end
  - iter_impl::iter_impl
  - ~iter_impl()
  - iter_impl::iter_impl
  - '& operator=(iter_impl&&) noexcept'
  - iter_impl::iter_impl
  - iter_impl::iter_impl
  - '& operator=(const iter_impl<const BasicJsonType>& other) noexcept'
  - iter_impl::iter_impl
  - '& operator=(const iter_impl<typename std::remove_const<BasicJsonType>::type>&
    other) noexcept'
  - (m_object->m_data.m_type)
  - operator->() const
  - operator++(int)&
  - '& operator++()'
  - operator--(int)&
  - '& operator--()'
  - operator==(const IterImpl& other) const
  - operator!=(const IterImpl& other) const
  - operator<(const iter_impl& other) const
  - operator<=(const iter_impl& other) const
  - operator>(const iter_impl& other) const
  - operator>=(const iter_impl& other) const
  - '& operator+=(difference_type i)'
  - '& operator-=(difference_type i)'
  - operator+(difference_type i) const
  - operator+(difference_type i, const iter_impl& it)
  - operator-(difference_type i) const
  - operator-(const iter_impl& other) const
  - operator[](difference_type n) const
  - key
  - value
  - namespace
  - json_reverse_iterator::json_reverse_iterator
  - json_reverse_iterator::json_reverse_iterator
  - operator++(int)&
  - '& operator++()'
  - operator--(int)&
  - '& operator--()'
  - '& operator+=(difference_type i)'
  - operator+(difference_type i) const
  - operator-(difference_type i) const
  - operator-(const json_reverse_iterator& other) const
  - operator[](difference_type n) const
  - json_reverse_iterator::key
  - json_reverse_iterator::value
  - namespace
  - string_t_helper
  - string_t_helper
  - json_pointer
  - to_string
  - operator string_t() const
  - '& operator<<(std::ostream& o, const json_pointer& ptr)'
  - '& operator/=(const json_pointer& ptr)'
  - '& operator/=(string_t token)'
  - '& operator/=(std::size_t array_idx)'
  - "json_pointer operator/(const json_pointer& lhs,\n                                  const
    json_pointer& rhs)"
  - json_pointer operator/(const json_pointer& lhs, string_t token)
  - json_pointer operator/(const json_pointer& lhs, std::size_t array_idx)
  - parent_pointer
  - pop_back
  - back
  - push_back
  - push_back
  - empty
  - get_and_create
  - get_unchecked
  - get_checked
  - get_unchecked
  - get_checked
  - contains
  - split
  - convert
  - convert
  - operator==(const json_pointer<RefStringTypeRhs>& rhs) const noexcept
  - operator==(const string_t& rhs) const
  - operator<=>(const json_pointer<RefStringTypeRhs>& rhs) const noexcept
  - "operator==(const json_pointer<RefStringTypeLhs>& lhs,\n                       const
    json_pointer<RefStringTypeRhs>& rhs) noexcept"
  - "operator==(const json_pointer<RefStringTypeLhs>& lhs,\n                       const
    StringType& rhs)"
  - "operator==(const StringType& lhs,\n                       const json_pointer<RefStringTypeRhs>&
    rhs)"
  - "operator!=(const json_pointer<RefStringTypeLhs>& lhs,\n                       const
    json_pointer<RefStringTypeRhs>& rhs) noexcept"
  - "operator!=(const json_pointer<RefStringTypeLhs>& lhs,\n                       const
    StringType& rhs)"
  - "operator!=(const StringType& lhs,\n                       const json_pointer<RefStringTypeRhs>&
    rhs)"
  - "operator<(const json_pointer<RefStringTypeLhs>& lhs,\n                      const
    json_pointer<RefStringTypeRhs>& rhs) noexcept"
  - namespace
  - json_ref::json_ref
  - json_ref::json_ref
  - json_ref::json_ref
  - json_ref::json_ref
  - json_ref::json_ref
  - json_ref::json_ref
  - '& operator=(const json_ref&)'
  - '& operator=(json_ref&&)'
  - ~json_ref()
  - json_ref::moved_or_copied
  - '& operator*() const'
  - '* operator->() const'
  - namespace
  - ~output_adapter_protocol()
  - output_adapter_protocol
  - output_adapter_protocol
  - output_adapter_protocol
  - '& operator=(const output_adapter_protocol&)'
  - '& operator=(output_adapter_protocol&&) noexcept'
  - output_vector_adapter::output_vector_adapter
  - output_vector_adapter::write_character
  - "(2)\n    void write_characters(const CharType* s, std::size_t length) override"
  - output_stream_adapter::output_stream_adapter
  - output_stream_adapter::write_character
  - "(2)\n    void write_characters(const CharType* s, std::size_t length) override"
  - output_string_adapter::output_string_adapter
  - output_string_adapter::write_character
  - "(2)\n    void write_characters(const CharType* s, std::size_t length) override"
  - output_adapter::output_adapter
  - output_adapter::output_adapter
  - output_adapter::output_adapter
  - operator output_adapter_t<CharType>()
  - NLOHMANN_JSON_NAMESPACE_BEGIN
  - binary_writer::binary_writer
  - binary_writer::write_bson
  - binary_writer::write_cbor
  - binary_writer::write_msgpack
  - binary_writer::write_ubjson
  - binary_writer::calc_bson_entry_header_size
  - binary_writer::write_bson_entry_header
  - binary_writer::write_bson_boolean
  - binary_writer::write_bson_double
  - binary_writer::calc_bson_string_size
  - binary_writer::write_bson_string
  - binary_writer::write_bson_null
  - binary_writer::calc_bson_integer_size
  - binary_writer::write_bson_integer
  - binary_writer::calc_bson_unsigned_size
  - binary_writer::write_bson_unsigned
  - binary_writer::write_bson_object_entry
  - binary_writer::calc_bson_array_size
  - binary_writer::calc_bson_binary_size
  - binary_writer::write_bson_array
  - binary_writer::write_bson_binary
  - binary_writer::calc_bson_element_size
  - binary_writer::write_bson_element
  - binary_writer::calc_bson_object_size
  - binary_writer::write_bson_object
  - binary_writer::get_cbor_float_prefix
  - binary_writer::get_cbor_float_prefix
  - binary_writer::get_msgpack_float_prefix
  - binary_writer::get_msgpack_float_prefix
  - binary_writer::write_number_with_ubjson_prefix
  - binary_writer::write_number_with_ubjson_prefix
  - binary_writer::write_number_with_ubjson_prefix
  - binary_writer::ubjson_prefix
  - binary_writer::get_ubjson_float_prefix
  - binary_writer::get_ubjson_float_prefix
  - binary_writer::write_bjdata_ndarray
  - binary_writer::write_number
  - binary_writer::write_compact_float
  - binary_writer::to_char_type
  - binary_writer::to_char_type
  - binary_writer::to_char_type
  - binary_writer::to_char_type
  - namespace
  - dtoa_impl::reinterpret_bits
  - dtoa_impl::diyfp
  - dtoa_impl::sub
  - dtoa_impl::mul
  - dtoa_impl::normalize
  - dtoa_impl::normalize_to
  - dtoa_impl::compute_boundaries
  - dtoa_impl::get_cached_power_for_binary_exponent
  - dtoa_impl::find_largest_pow10
  - dtoa_impl::grisu2_round
  - dtoa_impl::grisu2_digit_gen
  - dtoa_impl::grisu2
  - '(1)

    void grisu2(char* buf, int& len, int& decimal_exponent, FloatType value)'
  - dtoa_impl::append_exponent
  - dtoa_impl::format_buffer
  - dtoa_impl::reinterpret_bits
  - dtoa_impl::diyfp
  - dtoa_impl::sub
  - dtoa_impl::mul
  - dtoa_impl::normalize
  - dtoa_impl::normalize_to
  - dtoa_impl::compute_boundaries
  - dtoa_impl::get_cached_power_for_binary_exponent
  - dtoa_impl::find_largest_pow10
  - dtoa_impl::grisu2_round
  - dtoa_impl::grisu2_digit_gen
  - dtoa_impl::grisu2
  - '(1)

    void grisu2(char* buf, int& len, int& decimal_exponent, FloatType value)'
  - dtoa_impl::append_exponent
  - dtoa_impl::format_buffer
  - NLOHMANN_JSON_NAMESPACE_BEGIN
  - serializer::serializer
  - serializer::serializer
  - '& operator=(const serializer&)'
  - serializer::serializer
  - '& operator=(serializer&&)'
  - ~serializer()
  - serializer::dump
  - serializer::switch
  - hex_bytes
  - is_negative_number
  - is_negative_number
  - dump_integer
  - dump_float
  - dump_float
  - dump_float
  - decode
  - remove_sign
  - remove_sign
  - ordered_map
  - ordered_map
  - ordered_map
  - ordered_map
  - emplace
  - emplace
  - '& operator[](const key_type& key)'
  - '& operator[](KeyType && key)'
  - '& operator[](const key_type& key) const'
  - '& operator[](KeyType && key) const'
  - at
  - at
  - at
  - at
  - erase
  - erase
  - erase
  - erase
  - count
  - count
  - find
  - find
  - find
  - insert
  - insert
  - insert
  - "NLOHMANN_BASIC_JSON_TPL_DECLARATION\nclass basic_json // NOLINT(cppcoreguidelines-special-member-functions,hicpp-special-member-functions)\n
    \   : public ::nlohmann::detail::json_base_class<CustomBaseClass>"
  - parser
  - get_allocator
  - meta
  - create
  - json_value
  - json_value
  - json_value
  - json_value
  - json_value
  - json_value
  - json_value
  - json_value
  - json_value
  - json_value
  - json_value
  - json_value
  - json_value
  - json_value
  - json_value
  - json_value
  - destroy
  - JSON_CATCH
  - set_parents
  - set_parents
  - set_parent
  - basic_json
  - basic_json
  - basic_json
  - basic_json
  - basic_json
  - binary
  - binary
  - binary
  - binary
  - array
  - object
  - basic_json
  - basic_json
  - basic_json
  - basic_json
  - basic_json
  - "& operator=(basic_json other) noexcept (\n        std::is_nothrow_move_constructible<value_t>::value&&\n
    \       std::is_nothrow_move_assignable<value_t>::value&&\n        std::is_nothrow_move_constructible<json_value>::value&&\n
    \       std::is_nothrow_move_assignable<json_value>::value&&\n        std::is_nothrow_move_assignable<json_base_class_t>::value\n
    \   )"
  - ~basic_json() noexcept
  - type
  - is_primitive
  - is_structured
  - is_null
  - is_boolean
  - is_number
  - is_number_integer
  - is_number_unsigned
  - is_number_float
  - is_object
  - is_array
  - is_string
  - is_binary
  - is_discarded
  - operator value_t() const noexcept
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_impl_ptr
  - get_ref_impl
  - get_ptr
  - noexcept
  - get_impl
  - get_impl
  - get_impl
  - get_impl
  - get
  - get_to
  - get_to
  - get_to
  - get_ref
  - get_ref
  - get_binary
  - get_binary
  - at
  - JSON_CATCH
  - at
  - JSON_CATCH
  - at
  - at
  - at
  - at
  - operator[](size_type idx)
  - operator[](size_type idx) const
  - operator[](typename object_t::key_type key)
  - operator[](const typename object_t::key_type& key) const
  - operator[](T* key)
  - operator[](T* key) const
  - operator[](KeyType && key)
  - operator[](KeyType && key) const
  - value
  - value
  - value
  - value
  - value
  - JSON_INTERNAL_CATCH
  - value
  - JSON_INTERNAL_CATCH
  - value
  - value
  - front
  - front
  - back
  - back
  - erase
  - erase
  - erase_internal
  - erase_internal
  - erase
  - erase
  - find
  - find
  - find
  - find
  - count
  - count
  - contains
  - contains
  - contains
  - contains
  - begin
  - begin
  - cbegin
  - end
  - end
  - cend
  - rbegin
  - rbegin
  - rend
  - rend
  - crbegin
  - crend
  - iterator_wrapper
  - iterator_wrapper
  - items
  - items
  - empty
  - size
  - max_size
  - clear
  - push_back
  - operator+=(basic_json&& val)
  - push_back
  - operator+=(const basic_json& val)
  - push_back
  - operator+=(const typename object_t::value_type& val)
  - push_back
  - operator+=(initializer_list_t init)
  - emplace_back
  - emplace
  - insert_iterator
  - insert
  - insert
  - insert
  - insert
  - insert
  - insert
  - update
  - update
  - swap
  - swap
  - swap
  - swap
  - swap
  - swap
  - swap
  - JSON_IMPLEMENT_OPERATOR
  - if
  - compares_unordered
  - operator==(const_reference rhs) const noexcept
  - operator==(ScalarType rhs) const noexcept
  - operator!=(const_reference rhs) const noexcept
  - operator<=>(const_reference rhs) const noexcept
  - operator<=>(ScalarType rhs) const noexcept
  - operator<=(const_reference rhs) const noexcept
  - operator<=(ScalarType rhs) const noexcept
  - operator>=(const_reference rhs) const noexcept
  - operator>=(ScalarType rhs) const noexcept
  - operator==(const_reference lhs, const_reference rhs) noexcept
  - operator==(const_reference lhs, ScalarType rhs) noexcept
  - operator==(ScalarType lhs, const_reference rhs) noexcept
  - operator!=(const_reference lhs, const_reference rhs) noexcept
  - operator!=(const_reference lhs, ScalarType rhs) noexcept
  - operator!=(ScalarType lhs, const_reference rhs) noexcept
  - operator<(const_reference lhs, ScalarType rhs) noexcept
  - operator<(ScalarType lhs, const_reference rhs) noexcept
  - operator<=(const_reference lhs, const_reference rhs) noexcept
  - operator<=(const_reference lhs, ScalarType rhs) noexcept
  - operator<=(ScalarType lhs, const_reference rhs) noexcept
  - operator>(const_reference lhs, const_reference rhs) noexcept
  - operator>(const_reference lhs, ScalarType rhs) noexcept
  - operator>(ScalarType lhs, const_reference rhs) noexcept
  - operator>=(const_reference lhs, const_reference rhs) noexcept
  - operator>=(const_reference lhs, ScalarType rhs) noexcept
  - operator>=(ScalarType lhs, const_reference rhs) noexcept
  - '& operator<<(std::ostream& o, const basic_json& j)'
  - parse
  - parse
  - parse
  - accept
  - accept
  - accept
  - sax_parse
  - sax_parse
  - sax_parse
  - type_name
  - data
  - data
  - data
  - data
  - data
  - '& operator=(data&&) noexcept'
  - '& operator=(const data&) noexcept'
  - ~data() noexcept
  - to_cbor
  - to_cbor
  - to_msgpack
  - to_msgpack
  - to_msgpack
  - to_ubjson
  - to_ubjson
  - to_ubjson
  - to_bjdata
  - to_bjdata
  - to_bjdata
  - to_bson
  - to_bson
  - to_bson
  - from_cbor
  - from_cbor
  - from_cbor
  - from_cbor
  - from_msgpack
  - from_msgpack
  - from_msgpack
  - from_msgpack
  - from_ubjson
  - from_ubjson
  - from_ubjson
  - from_ubjson
  - from_bjdata
  - from_bjdata
  - from_bson
  - from_bson
  - from_bson
  - from_bson
  - operator[](const json_pointer& ptr)
  - operator[](const ::nlohmann::json_pointer<BasicJsonType>& ptr)
  - operator[](const json_pointer& ptr) const
  - operator[](const ::nlohmann::json_pointer<BasicJsonType>& ptr) const
  - at
  - at
  - at
  - at
  - flatten
  - unflatten
  - patch_inplace
  - patch
  - diff
  - merge_patch
  - std::string to_string(const NLOHMANN_BASIC_JSON_TPL& j)
  - operator "" _json(const char* s, std::size_t n)
  - operator "" _json_pointer(const char* s, std::size_t n)
  - namespace
  - struct
  - operator()(const nlohmann::NLOHMANN_BASIC_JSON_TPL& j) const
  - "operator()(::nlohmann::detail::value_t lhs,\n                    ::nlohmann::detail::value_t
    rhs) const noexcept"
  - swap
  source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
  types:
    enum:
    - enumerators:
      - name: 'null'
      - name: string
      - name: array
      - name: boolean
      - name: object
      - name: number_integer
      - name: number_unsigned
      - name: number_float
      - name: binary
      - name: discarded
      item_type: enum
      name: value_t
      pos:
        line_end: 2883
        line_start: 2871
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - enumerators:
      - name: json
      - name: bson
      - name: msgpack
      - name: cbor
      - name: ubjson
      - name: bjdata
      item_type: enum
      name: input_format_t
      pos:
        line_end: 6175
        line_start: 6175
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - enumerators:
      - name: json
      - name: bson
      - name: msgpack
      - name: cbor
      - name: ubjson
      - name: bjdata
      item_type: enum
      name: input_format_t
      pos:
        line_end: 6175
        line_start: 6175
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - enumerators:
      - name: uninitialized
      - name: literal_null
      - name: literal_false
      - name: literal_true
      - name: value_string
      - name: value_unsigned
      - name: value_integer
      - name: value_float
      - name: begin_array
      - name: begin_object
      - name: end_of_input
      - name: end_array
      - name: name_separator
      - name: parse_error
      - name: literal_or_value
      - name: end_object
      - name: value_separator
      item_type: enum
      name: token_type
      pos:
        line_end: 7428
        line_start: 7409
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - enumerators:
      - name: error
      - name: ignore
      - name: store
      item_type: enum
      name: cbor_tag_handler_t
      pos:
        line_end: 9188
        line_start: 9183
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - enumerators:
      - name: object_start
      - name: key
      - name: array_end
      - name: array_start
      - name: object_end
      - name: value
      item_type: enum
      name: parse_event_t
      pos:
        line_end: 12215
        line_start: 12201
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - enumerators:
      - name: strict
      - name: ignore
      - name: replace
      item_type: enum
      name: error_handler_t
      pos:
        line_end: 18055
        line_start: 18050
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - enumerators:
      - name: add
      - name: remove
      - name: copy
      - name: replace
      - name: move
      - name: test
      - name: invalid
      item_type: enum
      name: patch_operations
      pos:
        line_end: 24004
        line_start: 24004
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    preproc_defs:
    - item_type: preproc_def
      name: NLOHMANN_JSON_VERSION_MAJOR
      pos:
        line_end: 68
        line_start: 67
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: 3   // NOLINT(modernize-macro-to-enum)
    - item_type: preproc_def
      name: NLOHMANN_JSON_VERSION_MINOR
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: 11  // NOLINT(modernize-macro-to-enum)
    - item_type: preproc_def
      name: NLOHMANN_JSON_VERSION_PATCH
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: 3   // NOLINT(modernize-macro-to-enum)
    - item_type: preproc_def
      name: JSON_DIAGNOSTICS
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: '0'
    - item_type: preproc_def
      name: JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
      pos:
        line_end: 77
        line_start: 76
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: '0'
    - item_type: preproc_def
      name: NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _diag
    - item_type: preproc_def
      name: NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON
      pos:
        line_end: 87
        line_start: 86
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _ldvcmp
    - item_type: preproc_def
      name: NLOHMANN_JSON_NAMESPACE_NO_VERSION
      pos:
        line_end: 93
        line_start: 92
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: '0'
    - item_type: preproc_def
      name: NLOHMANN_JSON_ABI_TAGS
      pos:
        line_end: 104
        line_start: 100
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: "NLOHMANN_JSON_ABI_TAGS_CONCAT(                                   \\\n
        \           NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS,                       \\\n
        \           NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON)"
    - item_type: preproc_def
      name: NLOHMANN_JSON_NAMESPACE_VERSION
      pos:
        line_end: 118
        line_start: 114
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: "NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(NLOHMANN_JSON_VERSION_MAJOR,
        \\\n                                           NLOHMANN_JSON_VERSION_MINOR,
        \\\n                                           NLOHMANN_JSON_VERSION_PATCH)"
    - item_type: preproc_def
      name: NLOHMANN_JSON_NAMESPACE
      pos:
        line_end: 130
        line_start: 126
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: "nlohmann::NLOHMANN_JSON_NAMESPACE_CONCAT( \\\n            NLOHMANN_JSON_ABI_TAGS,
        \          \\\n            NLOHMANN_JSON_NAMESPACE_VERSION)"
    - item_type: preproc_def
      name: NLOHMANN_JSON_NAMESPACE_BEGIN
      pos:
        line_end: 140
        line_start: 133
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: "namespace nlohmann                               \\\n    {                                                \\\n
        \   inline namespace NLOHMANN_JSON_NAMESPACE_CONCAT( \\\n                NLOHMANN_JSON_ABI_TAGS,
        \             \\\n                NLOHMANN_JSON_NAMESPACE_VERSION)     \\\n
        \   {"
    - item_type: preproc_def
      name: JSON_HEDLEY_VERSION
      pos:
        line_end: 338
        line_start: 337
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: '15'
    - item_type: preproc_def
      name: JSON_HEDLEY_GNUC_VERSION
      pos:
        line_end: 394
        line_start: 393
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__)
    - item_type: preproc_def
      name: JSON_HEDLEY_GNUC_VERSION
      pos:
        line_end: 396
        line_start: 395
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, 0)
    - item_type: preproc_def
      name: JSON_HEDLEY_MSVC_VERSION
      pos:
        line_end: 412
        line_start: 411
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 10000000, (_MSC_FULL_VER
        % 10000000) / 100000, (_MSC_FULL_VER % 100000) / 100)
    - item_type: preproc_def
      name: JSON_HEDLEY_MSVC_VERSION
      pos:
        line_end: 414
        line_start: 413
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 1000000, (_MSC_FULL_VER
        % 1000000) / 10000, (_MSC_FULL_VER % 10000) / 10)
    - item_type: preproc_def
      name: JSON_HEDLEY_MSVC_VERSION
      pos:
        line_end: 416
        line_start: 415
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(_MSC_VER / 100, _MSC_VER % 100, 0)
    - item_type: preproc_def
      name: JSON_HEDLEY_INTEL_VERSION
      pos:
        line_end: 436
        line_start: 435
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER
        % 100, __INTEL_COMPILER_UPDATE)
    - item_type: preproc_def
      name: JSON_HEDLEY_INTEL_VERSION
      pos:
        line_end: 438
        line_start: 437
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER
        % 100, 0)
    - item_type: preproc_def
      name: JSON_HEDLEY_INTEL_CL_VERSION
      pos:
        line_end: 454
        line_start: 453
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER, __INTEL_COMPILER_UPDATE,
        0)
    - item_type: preproc_def
      name: JSON_HEDLEY_PGI_VERSION
      pos:
        line_end: 470
        line_start: 469
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__PGIC__, __PGIC_MINOR__, __PGIC_PATCHLEVEL__)
    - item_type: preproc_def
      name: JSON_HEDLEY_SUNPRO_VERSION
      pos:
        line_end: 486
        line_start: 485
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE((((__SUNPRO_C >> 16) & 0xf) * 10)
        + ((__SUNPRO_C >> 12) & 0xf), (((__SUNPRO_C >> 8) & 0xf) * 10) + ((__SUNPRO_C
        >> 4) & 0xf), (__SUNPRO_C & 0xf) * 10)
    - item_type: preproc_def
      name: JSON_HEDLEY_SUNPRO_VERSION
      pos:
        line_end: 488
        line_start: 487
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE((__SUNPRO_C >> 8) & 0xf, (__SUNPRO_C
        >> 4) & 0xf, (__SUNPRO_C) & 0xf)
    - item_type: preproc_def
      name: JSON_HEDLEY_SUNPRO_VERSION
      pos:
        line_end: 490
        line_start: 489
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE((((__SUNPRO_CC >> 16) & 0xf) * 10)
        + ((__SUNPRO_CC >> 12) & 0xf), (((__SUNPRO_CC >> 8) & 0xf) * 10) + ((__SUNPRO_CC
        >> 4) & 0xf), (__SUNPRO_CC & 0xf) * 10)
    - item_type: preproc_def
      name: JSON_HEDLEY_SUNPRO_VERSION
      pos:
        line_end: 492
        line_start: 491
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE((__SUNPRO_CC >> 8) & 0xf, (__SUNPRO_CC
        >> 4) & 0xf, (__SUNPRO_CC) & 0xf)
    - item_type: preproc_def
      name: JSON_HEDLEY_EMSCRIPTEN_VERSION
      pos:
        line_end: 508
        line_start: 507
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__EMSCRIPTEN_major__, __EMSCRIPTEN_minor__,
        __EMSCRIPTEN_tiny__)
    - item_type: preproc_def
      name: JSON_HEDLEY_ARM_VERSION
      pos:
        line_end: 524
        line_start: 523
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__ARMCOMPILER_VERSION / 1000000, (__ARMCOMPILER_VERSION
        % 1000000) / 10000, (__ARMCOMPILER_VERSION % 10000) / 100)
    - item_type: preproc_def
      name: JSON_HEDLEY_ARM_VERSION
      pos:
        line_end: 526
        line_start: 525
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__ARMCC_VERSION / 1000000, (__ARMCC_VERSION
        % 1000000) / 10000, (__ARMCC_VERSION % 10000) / 100)
    - item_type: preproc_def
      name: JSON_HEDLEY_IBM_VERSION
      pos:
        line_end: 542
        line_start: 541
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__ibmxl_version__, __ibmxl_release__,
        __ibmxl_modification__)
    - item_type: preproc_def
      name: JSON_HEDLEY_IBM_VERSION
      pos:
        line_end: 544
        line_start: 543
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, (__xlC_ver__
        >> 8) & 0xff)
    - item_type: preproc_def
      name: JSON_HEDLEY_IBM_VERSION
      pos:
        line_end: 546
        line_start: 545
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, 0)
    - item_type: preproc_def
      name: JSON_HEDLEY_TI_VERSION
      pos:
        line_end: 569
        line_start: 568
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000,
        (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000))
    - item_type: preproc_def
      name: JSON_HEDLEY_TI_CL2000_VERSION
      pos:
        line_end: 586
        line_start: 585
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000,
        (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000))
    - item_type: preproc_def
      name: JSON_HEDLEY_TI_CL430_VERSION
      pos:
        line_end: 602
        line_start: 601
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000,
        (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000))
    - item_type: preproc_def
      name: JSON_HEDLEY_TI_ARMCL_VERSION
      pos:
        line_end: 618
        line_start: 617
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000,
        (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000))
    - item_type: preproc_def
      name: JSON_HEDLEY_TI_CL6X_VERSION
      pos:
        line_end: 634
        line_start: 633
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000,
        (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000))
    - item_type: preproc_def
      name: JSON_HEDLEY_TI_CL7X_VERSION
      pos:
        line_end: 650
        line_start: 649
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000,
        (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000))
    - item_type: preproc_def
      name: JSON_HEDLEY_TI_CLPRU_VERSION
      pos:
        line_end: 666
        line_start: 665
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000,
        (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000))
    - item_type: preproc_def
      name: JSON_HEDLEY_CRAY_VERSION
      pos:
        line_end: 683
        line_start: 682
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, _RELEASE_PATCHLEVEL)
    - item_type: preproc_def
      name: JSON_HEDLEY_CRAY_VERSION
      pos:
        line_end: 685
        line_start: 684
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, 0)
    - item_type: preproc_def
      name: JSON_HEDLEY_IAR_VERSION
      pos:
        line_end: 703
        line_start: 702
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE((__VER__ / 1000000), ((__VER__ / 1000)
        % 1000), (__VER__ % 1000))
    - item_type: preproc_def
      name: JSON_HEDLEY_IAR_VERSION
      pos:
        line_end: 705
        line_start: 704
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__VER__ / 100, __VER__ % 100, 0)
    - item_type: preproc_def
      name: JSON_HEDLEY_TINYC_VERSION
      pos:
        line_end: 722
        line_start: 721
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__TINYC__ / 1000, (__TINYC__ / 100)
        % 10, __TINYC__ % 100)
    - item_type: preproc_def
      name: JSON_HEDLEY_DMC_VERSION
      pos:
        line_end: 738
        line_start: 737
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__DMC__ >> 8, (__DMC__ >> 4) & 0xf,
        __DMC__ & 0xf)
    - item_type: preproc_def
      name: JSON_HEDLEY_COMPCERT_VERSION
      pos:
        line_end: 754
        line_start: 753
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__COMPCERT_VERSION__ / 10000, (__COMPCERT_VERSION__
        / 100) % 100, __COMPCERT_VERSION__ % 100)
    - item_type: preproc_def
      name: JSON_HEDLEY_PELLES_VERSION
      pos:
        line_end: 770
        line_start: 769
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__POCC__ / 100, __POCC__ % 100, 0)
    - item_type: preproc_def
      name: JSON_HEDLEY_MCST_LCC_VERSION
      pos:
        line_end: 786
        line_start: 785
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_VERSION_ENCODE(__LCC__ / 100, __LCC__ % 100, __LCC_MINOR__)
    - item_type: preproc_def
      name: JSON_HEDLEY_GCC_VERSION
      pos:
        line_end: 817
        line_start: 816
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_GNUC_VERSION
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_PUSH
      pos:
        line_end: 1073
        line_start: 1072
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("clang diagnostic push")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_POP
      pos:
        line_end: 1074
        line_start: 1073
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("clang diagnostic pop")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_PUSH
      pos:
        line_end: 1076
        line_start: 1075
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("warning(push)")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_POP
      pos:
        line_end: 1077
        line_start: 1076
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("warning(pop)")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_PUSH
      pos:
        line_end: 1079
        line_start: 1078
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("GCC diagnostic push")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_POP
      pos:
        line_end: 1080
        line_start: 1079
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("GCC diagnostic pop")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_PUSH
      pos:
        line_end: 1084
        line_start: 1083
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __pragma(warning(push))
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_POP
      pos:
        line_end: 1085
        line_start: 1084
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __pragma(warning(pop))
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_PUSH
      pos:
        line_end: 1087
        line_start: 1086
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("push")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_POP
      pos:
        line_end: 1088
        line_start: 1087
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("pop")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_PUSH
      pos:
        line_end: 1096
        line_start: 1095
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("diag_push")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_POP
      pos:
        line_end: 1097
        line_start: 1096
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("diag_pop")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_PUSH
      pos:
        line_end: 1099
        line_start: 1098
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("warning(push)")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_POP
      pos:
        line_end: 1100
        line_start: 1099
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("warning(pop)")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED
      pos:
        line_end: 1206
        line_start: 1205
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED
      pos:
        line_end: 1208
        line_start: 1207
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("warning(disable:1478 1786)")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED
      pos:
        line_end: 1210
        line_start: 1209
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __pragma(warning(disable:1478 1786))
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED
      pos:
        line_end: 1212
        line_start: 1211
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("diag_suppress 1215,1216,1444,1445")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED
      pos:
        line_end: 1214
        line_start: 1213
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("diag_suppress 1215,1444")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED
      pos:
        line_end: 1216
        line_start: 1215
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED
      pos:
        line_end: 1218
        line_start: 1217
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __pragma(warning(disable:4996))
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED
      pos:
        line_end: 1220
        line_start: 1219
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("diag_suppress 1215,1444")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED
      pos:
        line_end: 1233
        line_start: 1232
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("diag_suppress 1291,1718")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED
      pos:
        line_end: 1235
        line_start: 1234
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("error_messages(off,E_DEPRECATED_ATT,E_DEPRECATED_ATT_MESS)")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED
      pos:
        line_end: 1237
        line_start: 1236
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("error_messages(off,symdeprecated,symdeprecated2)")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED
      pos:
        line_end: 1239
        line_start: 1238
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("diag_suppress=Pe1444,Pe1215")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED
      pos:
        line_end: 1241
        line_start: 1240
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("warn(disable:2241)")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS
      pos:
        line_end: 1250
        line_start: 1249
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("clang diagnostic ignored \"-Wunknown-pragmas\"")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS
      pos:
        line_end: 1252
        line_start: 1251
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("warning(disable:161)")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS
      pos:
        line_end: 1254
        line_start: 1253
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __pragma(warning(disable:161))
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS
      pos:
        line_end: 1256
        line_start: 1255
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("diag_suppress 1675")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS
      pos:
        line_end: 1258
        line_start: 1257
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS
      pos:
        line_end: 1260
        line_start: 1259
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __pragma(warning(disable:4068))
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS
      pos:
        line_end: 1266
        line_start: 1265
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("diag_suppress 163")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS
      pos:
        line_end: 1268
        line_start: 1267
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("diag_suppress 163")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS
      pos:
        line_end: 1270
        line_start: 1269
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("diag_suppress=Pe161")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS
      pos:
        line_end: 1272
        line_start: 1271
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("diag_suppress 161")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES
      pos:
        line_end: 1281
        line_start: 1280
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("clang diagnostic ignored \"-Wunknown-attributes\"")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES
      pos:
        line_end: 1283
        line_start: 1282
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES
      pos:
        line_end: 1285
        line_start: 1284
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("warning(disable:1292)")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES
      pos:
        line_end: 1287
        line_start: 1286
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __pragma(warning(disable:1292))
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES
      pos:
        line_end: 1289
        line_start: 1288
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __pragma(warning(disable:5030))
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES
      pos:
        line_end: 1291
        line_start: 1290
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("diag_suppress 1097,1098")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES
      pos:
        line_end: 1293
        line_start: 1292
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("diag_suppress 1097")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES
      pos:
        line_end: 1295
        line_start: 1294
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("error_messages(off,attrskipunsup)")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES
      pos:
        line_end: 1300
        line_start: 1299
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("diag_suppress 1173")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES
      pos:
        line_end: 1302
        line_start: 1301
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("diag_suppress=Pe1097")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES
      pos:
        line_end: 1304
        line_start: 1303
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("diag_suppress 1097")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL
      pos:
        line_end: 1313
        line_start: 1312
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("clang diagnostic ignored \"-Wcast-qual\"")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL
      pos:
        line_end: 1315
        line_start: 1314
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("warning(disable:2203 2331)")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL
      pos:
        line_end: 1317
        line_start: 1316
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("GCC diagnostic ignored \"-Wcast-qual\"")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION
      pos:
        line_end: 1326
        line_start: 1325
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("clang diagnostic ignored \"-Wunused-function\"")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION
      pos:
        line_end: 1328
        line_start: 1327
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("GCC diagnostic ignored \"-Wunused-function\"")
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION
      pos:
        line_end: 1330
        line_start: 1329
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __pragma(warning(disable:4505))
    - item_type: preproc_def
      name: JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION
      pos:
        line_end: 1332
        line_start: 1331
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("diag_suppress 3142")
    - item_type: preproc_def
      name: JSON_HEDLEY_WARN_UNUSED_RESULT
      pos:
        line_end: 1436
        line_start: 1435
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __attribute__((__warn_unused_result__))
    - item_type: preproc_def
      name: JSON_HEDLEY_WARN_UNUSED_RESULT
      pos:
        line_end: 1439
        line_start: 1438
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]])
    - item_type: preproc_def
      name: JSON_HEDLEY_WARN_UNUSED_RESULT
      pos:
        line_end: 1442
        line_start: 1441
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]])
    - item_type: preproc_def
      name: JSON_HEDLEY_WARN_UNUSED_RESULT
      pos:
        line_end: 1445
        line_start: 1444
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Check_return_
    - item_type: preproc_def
      name: JSON_HEDLEY_NO_RETURN
      pos:
        line_end: 1470
        line_start: 1469
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __noreturn
    - item_type: preproc_def
      name: JSON_HEDLEY_NO_RETURN
      pos:
        line_end: 1474
        line_start: 1473
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __attribute__((__noreturn__))
    - item_type: preproc_def
      name: JSON_HEDLEY_NO_RETURN
      pos:
        line_end: 1476
        line_start: 1475
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Noreturn
    - item_type: preproc_def
      name: JSON_HEDLEY_NO_RETURN
      pos:
        line_end: 1478
        line_start: 1477
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[noreturn]])
    - item_type: preproc_def
      name: JSON_HEDLEY_NO_RETURN
      pos:
        line_end: 1497
        line_start: 1496
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __attribute__((__noreturn__))
    - item_type: preproc_def
      name: JSON_HEDLEY_NO_RETURN
      pos:
        line_end: 1499
        line_start: 1498
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("does_not_return")
    - item_type: preproc_def
      name: JSON_HEDLEY_NO_RETURN
      pos:
        line_end: 1503
        line_start: 1502
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __declspec(noreturn)
    - item_type: preproc_def
      name: JSON_HEDLEY_NO_RETURN
      pos:
        line_end: 1505
        line_start: 1504
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("FUNC_NEVER_RETURNS;")
    - item_type: preproc_def
      name: JSON_HEDLEY_NO_RETURN
      pos:
        line_end: 1507
        line_start: 1506
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __attribute((noreturn))
    - item_type: preproc_def
      name: JSON_HEDLEY_NO_RETURN
      pos:
        line_end: 1509
        line_start: 1508
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __declspec(noreturn)
    - item_type: preproc_def
      name: JSON_HEDLEY_NO_ESCAPE
      pos:
        line_end: 1518
        line_start: 1517
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __attribute__((__noescape__))
    - item_type: preproc_def
      name: JSON_HEDLEY_CONSTEXPR
      pos:
        line_end: 1647
        line_start: 1646
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(constexpr)
    - item_type: preproc_def
      name: JSON_HEDLEY_MALLOC
      pos:
        line_end: 1742
        line_start: 1741
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __attribute__((__malloc__))
    - item_type: preproc_def
      name: JSON_HEDLEY_MALLOC
      pos:
        line_end: 1744
        line_start: 1743
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("returns_new_memory")
    - item_type: preproc_def
      name: JSON_HEDLEY_MALLOC
      pos:
        line_end: 1748
        line_start: 1747
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __declspec(restrict)
    - item_type: preproc_def
      name: JSON_HEDLEY_PURE
      pos:
        line_end: 1776
        line_start: 1775
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __attribute__((__pure__))
    - item_type: preproc_def
      name: JSON_HEDLEY_PURE
      pos:
        line_end: 1778
        line_start: 1777
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("does_not_write_global_data")
    - item_type: preproc_def
      name: JSON_HEDLEY_PURE
      pos:
        line_end: 1785
        line_start: 1784
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("FUNC_IS_PURE;")
    - item_type: preproc_def
      name: JSON_HEDLEY_CONST
      pos:
        line_end: 1813
        line_start: 1812
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __attribute__((__const__))
    - item_type: preproc_def
      name: JSON_HEDLEY_CONST
      pos:
        line_end: 1816
        line_start: 1815
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("no_side_effect")
    - item_type: preproc_def
      name: JSON_HEDLEY_CONST
      pos:
        line_end: 1818
        line_start: 1817
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_PURE
    - item_type: preproc_def
      name: JSON_HEDLEY_RESTRICT
      pos:
        line_end: 1825
        line_start: 1824
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: restrict
    - item_type: preproc_def
      name: JSON_HEDLEY_RESTRICT
      pos:
        line_end: 1842
        line_start: 1841
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __restrict
    - item_type: preproc_def
      name: JSON_HEDLEY_RESTRICT
      pos:
        line_end: 1844
        line_start: 1843
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Restrict
    - item_type: preproc_def
      name: JSON_HEDLEY_INLINE
      pos:
        line_end: 1855
        line_start: 1854
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: inline
    - item_type: preproc_def
      name: JSON_HEDLEY_INLINE
      pos:
        line_end: 1859
        line_start: 1858
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __inline__
    - item_type: preproc_def
      name: JSON_HEDLEY_INLINE
      pos:
        line_end: 1871
        line_start: 1870
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __inline
    - item_type: preproc_def
      name: JSON_HEDLEY_ALWAYS_INLINE
      pos:
        line_end: 1899
        line_start: 1898
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __attribute__((__always_inline__)) JSON_HEDLEY_INLINE
    - item_type: preproc_def
      name: JSON_HEDLEY_ALWAYS_INLINE
      pos:
        line_end: 1903
        line_start: 1902
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __forceinline
    - item_type: preproc_def
      name: JSON_HEDLEY_ALWAYS_INLINE
      pos:
        line_end: 1913
        line_start: 1912
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("FUNC_ALWAYS_INLINE;")
    - item_type: preproc_def
      name: JSON_HEDLEY_ALWAYS_INLINE
      pos:
        line_end: 1915
        line_start: 1914
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("inline=forced")
    - item_type: preproc_def
      name: JSON_HEDLEY_ALWAYS_INLINE
      pos:
        line_end: 1917
        line_start: 1916
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_INLINE
    - item_type: preproc_def
      name: JSON_HEDLEY_NEVER_INLINE
      pos:
        line_end: 1943
        line_start: 1942
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __attribute__((__noinline__))
    - item_type: preproc_def
      name: JSON_HEDLEY_NEVER_INLINE
      pos:
        line_end: 1947
        line_start: 1946
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __declspec(noinline)
    - item_type: preproc_def
      name: JSON_HEDLEY_NEVER_INLINE
      pos:
        line_end: 1949
        line_start: 1948
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("noinline")
    - item_type: preproc_def
      name: JSON_HEDLEY_NEVER_INLINE
      pos:
        line_end: 1951
        line_start: 1950
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("FUNC_CANNOT_INLINE;")
    - item_type: preproc_def
      name: JSON_HEDLEY_NEVER_INLINE
      pos:
        line_end: 1953
        line_start: 1952
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Pragma("inline=never")
    - item_type: preproc_def
      name: JSON_HEDLEY_NEVER_INLINE
      pos:
        line_end: 1955
        line_start: 1954
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __attribute((noinline))
    - item_type: preproc_def
      name: JSON_HEDLEY_NEVER_INLINE
      pos:
        line_end: 1957
        line_start: 1956
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __declspec(noinline)
    - item_type: preproc_def
      name: JSON_HEDLEY_PUBLIC
      pos:
        line_end: 1973
        line_start: 1972
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __declspec(dllexport)
    - item_type: preproc_def
      name: JSON_HEDLEY_IMPORT
      pos:
        line_end: 1974
        line_start: 1973
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __declspec(dllimport)
    - item_type: preproc_def
      name: JSON_HEDLEY_PRIVATE
      pos:
        line_end: 1991
        line_start: 1990
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __attribute__((__visibility__("hidden")))
    - item_type: preproc_def
      name: JSON_HEDLEY_PUBLIC
      pos:
        line_end: 1992
        line_start: 1991
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __attribute__((__visibility__("default")))
    - item_type: preproc_def
      name: JSON_HEDLEY_IMPORT
      pos:
        line_end: 1997
        line_start: 1996
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: extern
    - item_type: preproc_def
      name: JSON_HEDLEY_NO_THROW
      pos:
        line_end: 2008
        line_start: 2007
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __attribute__((__nothrow__))
    - item_type: preproc_def
      name: JSON_HEDLEY_NO_THROW
      pos:
        line_end: 2013
        line_start: 2012
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __declspec(nothrow)
    - item_type: preproc_def
      name: JSON_HEDLEY_FALL_THROUGH
      pos:
        line_end: 2025
        line_start: 2024
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __attribute__((__fallthrough__))
    - item_type: preproc_def
      name: JSON_HEDLEY_FALL_THROUGH
      pos:
        line_end: 2027
        line_start: 2026
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[clang::fallthrough]])
    - item_type: preproc_def
      name: JSON_HEDLEY_FALL_THROUGH
      pos:
        line_end: 2029
        line_start: 2028
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[fallthrough]])
    - item_type: preproc_def
      name: JSON_HEDLEY_FALL_THROUGH
      pos:
        line_end: 2031
        line_start: 2030
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __fallthrough
    - item_type: preproc_def
      name: JSON_HEDLEY_RETURNS_NON_NULL
      pos:
        line_end: 2043
        line_start: 2042
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __attribute__((__returns_nonnull__))
    - item_type: preproc_def
      name: JSON_HEDLEY_RETURNS_NON_NULL
      pos:
        line_end: 2045
        line_start: 2044
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: _Ret_notnull_
    - item_type: preproc_def
      name: JSON_HEDLEY_BEGIN_C_DECLS
      pos:
        line_end: 2164
        line_start: 2163
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: extern "C" {
    - item_type: preproc_def
      name: JSON_HEDLEY_END_C_DECLS
      pos:
        line_end: 2165
        line_start: 2164
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: '}'
    - item_type: preproc_def
      name: JSON_HEDLEY_C_DECL
      pos:
        line_end: 2166
        line_start: 2165
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: extern "C"
    - item_type: preproc_def
      name: JSON_HEDLEY_NULL
      pos:
        line_end: 2199
        line_start: 2198
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(nullptr)
    - item_type: preproc_def
      name: JSON_HEDLEY_NULL
      pos:
        line_end: 2201
        line_start: 2200
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: JSON_HEDLEY_NULL
      pos:
        line_end: 2203
        line_start: 2202
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_HEDLEY_STATIC_CAST(void*, 0)
    - item_type: preproc_def
      name: JSON_HEDLEY_NULL
      pos:
        line_end: 2206
        line_start: 2205
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: 'NULL'
    - item_type: preproc_def
      name: JSON_HEDLEY_NULL
      pos:
        line_end: 2208
        line_start: 2207
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: ((void*) 0)
    - item_type: preproc_def
      name: JSON_HEDLEY_FLAGS
      pos:
        line_end: 2287
        line_start: 2286
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __attribute__((__flag_enum__))
    - item_type: preproc_def
      name: JSON_HEDLEY_EMPTY_BASES
      pos:
        line_end: 2312
        line_start: 2311
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: __declspec(empty_bases)
    - item_type: preproc_def
      name: JSON_HAS_FILESYSTEM
      pos:
        line_end: 2411
        line_start: 2410
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: '1'
    - item_type: preproc_def
      name: JSON_HAS_EXPERIMENTAL_FILESYSTEM
      pos:
        line_end: 2413
        line_start: 2412
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: '1'
    - item_type: preproc_def
      name: JSON_HAS_EXPERIMENTAL_FILESYSTEM
      pos:
        line_end: 2415
        line_start: 2414
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: '1'
    - item_type: preproc_def
      name: JSON_HAS_FILESYSTEM
      pos:
        line_end: 2417
        line_start: 2416
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: '1'
    - item_type: preproc_def
      name: JSON_HAS_EXPERIMENTAL_FILESYSTEM
      pos:
        line_end: 2419
        line_start: 2418
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: '1'
    - item_type: preproc_def
      name: JSON_HAS_EXPERIMENTAL_FILESYSTEM
      pos:
        line_end: 2461
        line_start: 2460
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: '0'
    - item_type: preproc_def
      name: JSON_HAS_FILESYSTEM
      pos:
        line_end: 2465
        line_start: 2464
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: '0'
    - item_type: preproc_def
      name: JSON_HAS_THREE_WAY_COMPARISON
      pos:
        line_end: 2471
        line_start: 2470
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: '1'
    - item_type: preproc_def
      name: JSON_HAS_THREE_WAY_COMPARISON
      pos:
        line_end: 2473
        line_start: 2472
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: '0'
    - item_type: preproc_def
      name: JSON_HAS_RANGES
      pos:
        line_end: 2480
        line_start: 2479
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: '0'
    - item_type: preproc_def
      name: JSON_HAS_RANGES
      pos:
        line_end: 2482
        line_start: 2481
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: '1'
    - item_type: preproc_def
      name: JSON_HAS_RANGES
      pos:
        line_end: 2484
        line_start: 2483
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: '0'
    - item_type: preproc_def
      name: JSON_HAS_STATIC_RTTI
      pos:
        line_end: 2490
        line_start: 2489
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: '1'
    - item_type: preproc_def
      name: JSON_HAS_STATIC_RTTI
      pos:
        line_end: 2492
        line_start: 2491
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: '0'
    - item_type: preproc_def
      name: JSON_INLINE_VARIABLE
      pos:
        line_end: 2497
        line_start: 2496
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: inline
    - item_type: preproc_def
      name: JSON_NO_UNIQUE_ADDRESS
      pos:
        line_end: 2503
        line_start: 2502
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: '[[no_unique_address]]'
    - item_type: preproc_def
      name: JSON_TRY
      pos:
        line_end: 2518
        line_start: 2517
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: try
    - item_type: preproc_def
      name: JSON_TRY
      pos:
        line_end: 2524
        line_start: 2523
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: if(true)
    - item_type: preproc_def
      name: JSON_THROW
      pos:
        line_end: 2532
        line_start: 2531
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_THROW_USER
    - item_type: preproc_def
      name: JSON_TRY
      pos:
        line_end: 2536
        line_start: 2535
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_TRY_USER
    - item_type: preproc_def
      name: JSON_CATCH
      pos:
        line_end: 2540
        line_start: 2539
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_CATCH_USER
    - item_type: preproc_def
      name: JSON_INTERNAL_CATCH
      pos:
        line_end: 2542
        line_start: 2541
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_CATCH_USER
    - item_type: preproc_def
      name: JSON_INTERNAL_CATCH
      pos:
        line_end: 2546
        line_start: 2545
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: JSON_INTERNAL_CATCH_USER
    - item_type: preproc_def
      name: JSON_PRIVATE_UNLESS_TESTED
      pos:
        line_end: 2557
        line_start: 2556
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: public
    - item_type: preproc_def
      name: JSON_PRIVATE_UNLESS_TESTED
      pos:
        line_end: 2559
        line_start: 2558
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: private
    - item_type: preproc_def
      name: NLOHMANN_BASIC_JSON_TPL_DECLARATION
      pos:
        line_end: 2604
        line_start: 2595
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: "template<template<typename, typename, typename...> class ObjectType,
        \  \\\n             template<typename, typename...> class ArrayType,              \\\n
        \            class StringType, class BooleanType, class NumberIntegerType,
        \\\n             class NumberUnsignedType, class NumberFloatType,              \\\n
        \            template<typename> class AllocatorType,                       \\\n
        \            template<typename, typename = void> class JSONSerializer,     \\\n
        \            class BinaryType,                                             \\\n
        \            class CustomBaseClass>"
    - item_type: preproc_def
      name: NLOHMANN_BASIC_JSON_TPL
      pos:
        line_end: 2609
        line_start: 2605
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: "basic_json<ObjectType, ArrayType, StringType, BooleanType,             \\\n
        \   NumberIntegerType, NumberUnsignedType, NumberFloatType,                \\\n
        \   AllocatorType, JSONSerializer, BinaryType, CustomBaseClass>"
    - item_type: preproc_def
      name: JSON_USE_IMPLICIT_CONVERSIONS
      pos:
        line_end: 2819
        line_start: 2818
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: '1'
    - item_type: preproc_def
      name: JSON_EXPLICIT
      pos:
        line_end: 2825
        line_start: 2824
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: explicit
    - item_type: preproc_def
      name: JSON_DISABLE_ENUM_SERIALIZATION
      pos:
        line_end: 2829
        line_start: 2828
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: '0'
    - item_type: preproc_def
      name: JSON_USE_GLOBAL_UDLS
      pos:
        line_end: 2833
        line_start: 2832
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: '1'
    - item_type: preproc_def
      name: JSON_BINARY_READER_MAKE_BJD_OPTIMIZED_TYPE_MARKERS_
      pos:
        line_end: 12117
        line_start: 12115
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: make_array<char_int_type>('F', 'H', 'N', 'S', 'T', 'Z', '[',
        '{')
    - item_type: preproc_def
      name: JSON_BINARY_READER_MAKE_BJD_TYPES_MAP_
      pos:
        line_end: 12131
        line_start: 12118
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
      type_or_value: "make_array<bjd_type>(                      \\\n    bjd_type{'C',
        \"char\"},                     \\\n    bjd_type{'D', \"double\"},                   \\\n
        \   bjd_type{'I', \"int16\"},                    \\\n    bjd_type{'L', \"int64\"},
        \                   \\\n    bjd_type{'M', \"uint64\"},                   \\\n
        \   bjd_type{'U', \"uint8\"},                    \\\n    bjd_type{'d', \"single\"},
        \                  \\\n    bjd_type{'i', \"int8\"},                     \\\n
        \   bjd_type{'l', \"int32\"},                    \\\n    bjd_type{'m', \"uint32\"},
        \                  \\\n    bjd_type{'u', \"uint16\"})"
    structs:
    - fields: []
      item_type: struct
      name: make_void
      pos:
        line_end: 253
        line_start: 250
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: nonesuch
      pos:
        line_end: 273
        line_start: 265
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: detector
      pos:
        line_end: 283
        line_start: 279
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: detector<Default, void_t<Op<Args...>>, Op, Args...>
      pos:
        line_end: 290
        line_start: 286
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_detected_lazy
      pos:
        line_end: 296
        line_start: 296
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: chars_read_total
        type: std::size_t
      - name: chars_read_current_line
        type: std::size_t
      - name: lines_read
        type: std::size_t
      item_type: struct
      name: position_t
      pos:
        line_end: 3048
        line_start: 3034
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: integer_sequence
      pos:
        line_end: 3128
        line_start: 3121
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: Extend<integer_sequence<T, Ints...>, SeqSize, 0>
      pos:
        line_end: 3149
        line_start: 3146
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: Extend<integer_sequence<T, Ints...>, SeqSize, 1>
      pos:
        line_end: 3155
        line_start: 3152
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: Gen
      pos:
        line_end: 3164
        line_start: 3160
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: Gen<T, 0>
      pos:
        line_end: 3170
        line_start: 3167
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: Extend<integer_sequence<T, Ints...>, SeqSize, 0>
      pos:
        line_end: 3149
        line_start: 3146
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: Extend<integer_sequence<T, Ints...>, SeqSize, 1>
      pos:
        line_end: 3155
        line_start: 3152
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: Gen
      pos:
        line_end: 3164
        line_start: 3160
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: Gen<T, 0>
      pos:
        line_end: 3170
        line_start: 3167
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: priority_tag
      pos:
        line_end: 3205
        line_start: 3205
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: priority_tag<0>
      pos:
        line_end: 3206
        line_start: 3206
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: value
        type: JSON_INLINE_VARIABLE
      item_type: struct
      name: static_const
      pos:
        line_end: 3213
        line_start: 3210
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: iterator_types
      pos:
        line_end: 3271
        line_start: 3271
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: "iterator_types <\n    It,\n    void_t<typename It::difference_type, typename
        It::value_type, typename It::pointer,\n    typename It::reference, typename
        It::iterator_category >>"
      pos:
        line_end: 3284
        line_start: 3274
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: iterator_traits
      pos:
        line_end: 3291
        line_start: 3289
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: iterator_traits < T, enable_if_t < !std::is_pointer<T>::value >>
      pos:
        line_end: 3297
        line_start: 3294
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: iterator_traits<T*, enable_if_t<std::is_object<T>::value>>
      pos:
        line_end: 3307
        line_start: 3300
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_basic_json
      pos:
        line_end: 3462
        line_start: 3462
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_basic_json_context
      pos:
        line_end: 3475
        line_start: 3471
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_json_ref
      pos:
        line_end: 3485
        line_start: 3485
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_json_ref<json_ref<T>>
      pos:
        line_end: 3488
        line_start: 3488
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: has_from_json
      pos:
        line_end: 3526
        line_start: 3526
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: is_getable
      pos:
        line_end: 3536
        line_start: 3533
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: has_from_json < BasicJsonType, T, enable_if_t < !is_basic_json<T>::value
        >>
      pos:
        line_end: 3546
        line_start: 3539
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: has_non_default_from_json
      pos:
        line_end: 3551
        line_start: 3551
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: has_non_default_from_json < BasicJsonType, T, enable_if_t < !is_basic_json<T>::value
        >>
      pos:
        line_end: 3561
        line_start: 3554
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: has_to_json
      pos:
        line_end: 3566
        line_start: 3566
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: has_to_json < BasicJsonType, T, enable_if_t < !is_basic_json<T>::value
        >>
      pos:
        line_end: 3576
        line_start: 3569
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: has_key_compare
      pos:
        line_end: 3582
        line_start: 3582
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: actual_object_comparator
      pos:
        line_end: 3592
        line_start: 3586
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: char_traits
      pos:
        line_end: 3604
        line_start: 3603
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: char_traits<unsigned char>
      pos:
        line_end: 3628
        line_start: 3608
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: char_traits<signed char>
      pos:
        line_end: 3652
        line_start: 3632
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: conjunction
      pos:
        line_end: 3659
        line_start: 3659
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: conjunction<B>
      pos:
        line_end: 3660
        line_start: 3660
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: conjunction<B, Bn...>
      pos:
        line_end: 3663
        line_start: 3662
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: negation
      pos:
        line_end: 3666
        line_start: 3666
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_default_constructible
      pos:
        line_end: 3672
        line_start: 3672
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_default_constructible<std::pair<T1, T2>>
      pos:
        line_end: 3676
        line_start: 3675
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_default_constructible<const std::pair<T1, T2>>
      pos:
        line_end: 3680
        line_start: 3679
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_default_constructible<std::tuple<Ts...>>
      pos:
        line_end: 3684
        line_start: 3683
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_default_constructible<const std::tuple<Ts...>>
      pos:
        line_end: 3688
        line_start: 3687
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_constructible
      pos:
        line_end: 3691
        line_start: 3691
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_constructible<std::pair<T1, T2>>
      pos:
        line_end: 3694
        line_start: 3694
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_constructible<const std::pair<T1, T2>>
      pos:
        line_end: 3697
        line_start: 3697
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_constructible<std::tuple<Ts...>>
      pos:
        line_end: 3700
        line_start: 3700
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_constructible<const std::tuple<Ts...>>
      pos:
        line_end: 3703
        line_start: 3703
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_iterator_traits
      pos:
        line_end: 3706
        line_start: 3706
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: value
        type: auto
      item_type: struct
      name: is_iterator_traits<iterator_traits<T>>
      pos:
        line_end: 3721
        line_start: 3709
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: is_iterator_begin
        type: auto
      - name: value
        type: bool
      item_type: struct
      name: is_range
      pos:
        line_end: 3740
        line_start: 3724
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_complete_type
      pos:
        line_end: 3753
        line_start: 3753
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_complete_type<T, decltype(void(sizeof(T)))>
      pos:
        line_end: 3756
        line_start: 3756
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_compatible_object_type_impl
      pos:
        line_end: 3760
        line_start: 3760
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_compatible_object_type_impl <\n    BasicJsonType, CompatibleObjectType,\n
        \   enable_if_t < is_detected<mapped_type_t, CompatibleObjectType>::value&&\n
        \   is_detected<key_type_t, CompatibleObjectType>::value >>"
      pos:
        line_end: 3776
        line_start: 3763
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_compatible_object_type
      pos:
        line_end: 3780
        line_start: 3779
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_constructible_object_type_impl
      pos:
        line_end: 3784
        line_start: 3784
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_constructible_object_type_impl <\n    BasicJsonType, ConstructibleObjectType,\n
        \   enable_if_t < is_detected<mapped_type_t, ConstructibleObjectType>::value&&\n
        \   is_detected<key_type_t, ConstructibleObjectType>::value >>"
      pos:
        line_end: 3808
        line_start: 3787
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_constructible_object_type
      pos:
        line_end: 3813
        line_start: 3811
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: value
        type: auto
      item_type: struct
      name: is_compatible_string_type
      pos:
        line_end: 3820
        line_start: 3816
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: value
        type: auto
      item_type: struct
      name: is_constructible_string_type
      pos:
        line_end: 3837
        line_start: 3823
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_compatible_array_type_impl
      pos:
        line_end: 3840
        line_start: 3840
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_compatible_array_type_impl <\n    BasicJsonType, CompatibleArrayType,\n
        \   enable_if_t <\n    is_detected<iterator_t, CompatibleArrayType>::value&&\n
        \   is_iterator_traits<iterator_traits<detected_t<iterator_t, CompatibleArrayType>>>::value&&\n//
        special case for types like std::filesystem::path whose iterator's value_type
        are themselves\n// c.f. https://github.com/nlohmann/json/pull/3073\n    !std::is_same<CompatibleArrayType,
        detected_t<range_value_t, CompatibleArrayType>>::value >>"
      pos:
        line_end: 3855
        line_start: 3843
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_compatible_array_type
      pos:
        line_end: 3859
        line_start: 3858
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_constructible_array_type_impl
      pos:
        line_end: 3862
        line_start: 3862
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: "is_constructible_array_type_impl <\n    BasicJsonType, ConstructibleArrayType,\n
        \   enable_if_t<std::is_same<ConstructibleArrayType,\n    typename BasicJsonType::value_type>::value
        >>"
      pos:
        line_end: 3869
        line_start: 3865
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_constructible_array_type_impl <\n    BasicJsonType, ConstructibleArrayType,\n
        \   enable_if_t < !std::is_same<ConstructibleArrayType,\n    typename BasicJsonType::value_type>::value&&\n
        \   !is_compatible_string_type<BasicJsonType, ConstructibleArrayType>::value&&\n
        \   is_default_constructible<ConstructibleArrayType>::value&&\n(std::is_move_assignable<ConstructibleArrayType>::value
        ||\n std::is_copy_assignable<ConstructibleArrayType>::value)&&\nis_detected<iterator_t,
        ConstructibleArrayType>::value&&\nis_iterator_traits<iterator_traits<detected_t<iterator_t,
        ConstructibleArrayType>>>::value&&\nis_detected<range_value_t, ConstructibleArrayType>::value&&\n//
        special case for types like std::filesystem::path whose iterator's value_type
        are themselves\n// c.f. https://github.com/nlohmann/json/pull/3073\n!std::is_same<ConstructibleArrayType,
        detected_t<range_value_t, ConstructibleArrayType>>::value&&\n        is_complete_type
        <\n        detected_t<range_value_t, ConstructibleArrayType >>::value >>"
      pos:
        line_end: 3899
        line_start: 3872
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_constructible_array_type
      pos:
        line_end: 3903
        line_start: 3902
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_compatible_integer_type_impl
      pos:
        line_end: 3907
        line_start: 3907
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: value
        type: auto
      item_type: struct
      name: "is_compatible_integer_type_impl <\n    RealIntegerType, CompatibleNumberIntegerType,\n
        \   enable_if_t < std::is_integral<RealIntegerType>::value&&\n    std::is_integral<CompatibleNumberIntegerType>::value&&\n
        \   !std::is_same<bool, CompatibleNumberIntegerType>::value >>"
      pos:
        line_end: 3925
        line_start: 3910
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_compatible_integer_type
      pos:
        line_end: 3930
        line_start: 3928
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_compatible_type_impl
      pos:
        line_end: 3933
        line_start: 3933
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: "is_compatible_type_impl <\n    BasicJsonType, CompatibleType,\n    enable_if_t<is_complete_type<CompatibleType>::value
        >>"
      pos:
        line_end: 3942
        line_start: 3936
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_compatible_type
      pos:
        line_end: 3946
        line_start: 3945
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_constructible_tuple
      pos:
        line_end: 3949
        line_start: 3949
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_constructible_tuple<T1, std::tuple<Args...>>
      pos:
        line_end: 3952
        line_start: 3952
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_json_iterator_of
      pos:
        line_end: 3955
        line_start: 3955
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_json_iterator_of<BasicJsonType, typename BasicJsonType::iterator>
      pos:
        line_end: 3958
        line_start: 3958
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_json_iterator_of<BasicJsonType, typename BasicJsonType::const_iterator>
      pos:
        line_end: 3962
        line_start: 3961
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_specialization_of
      pos:
        line_end: 3966
        line_start: 3966
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_specialization_of<Primary, Primary<Args...>>
      pos:
        line_end: 3969
        line_start: 3969
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_comparable
      pos:
        line_end: 3976
        line_start: 3976
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: 'is_comparable<Compare, A, B, void_t<

        decltype(std::declval<Compare>()(std::declval<A>(), std::declval<B>())),

        decltype(std::declval<Compare>()(std::declval<B>(), std::declval<A>()))

        >>'
      pos:
        line_end: 3982
        line_start: 3979
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_ordered_map
      pos:
        line_end: 4045
        line_start: 4032
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: x[2]
        type: char
      item_type: struct
      name: two
      pos:
        line_end: 4039
        line_start: 4036
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: value_in_range_of_impl2<OfType, T, false, false>
      pos:
        line_end: 4092
        line_start: 4085
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: value_in_range_of_impl2<OfType, T, true, false>
      pos:
        line_end: 4102
        line_start: 4095
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: value_in_range_of_impl2<OfType, T, false, true>
      pos:
        line_end: 4112
        line_start: 4105
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: value_in_range_of_impl2<OfType, T, true, true>
      pos:
        line_end: 4123
        line_start: 4115
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: value_in_range_of_impl1<OfType, T, false>
      pos:
        line_end: 4137
        line_start: 4131
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: value_in_range_of_impl1<OfType, T, true>
      pos:
        line_end: 4146
        line_start: 4140
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_c_string
      pos:
        line_end: 4180
        line_start: 4180
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_transparent
      pos:
        line_end: 4202
        line_start: 4202
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: identity_tag
      pos:
        line_end: 4614
        line_start: 4614
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: from_json_fn
      pos:
        line_end: 5106
        line_start: 5097
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: external_constructor<value_t::boolean>
      pos:
        line_end: 5431
        line_start: 5421
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: external_constructor<value_t::string>
      pos:
        line_end: 5464
        line_start: 5434
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: external_constructor<value_t::binary>
      pos:
        line_end: 5486
        line_start: 5467
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: external_constructor<value_t::number_float>
      pos:
        line_end: 5499
        line_start: 5489
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: external_constructor<value_t::number_unsigned>
      pos:
        line_end: 5512
        line_start: 5502
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: external_constructor<value_t::number_integer>
      pos:
        line_end: 5525
        line_start: 5515
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: external_constructor<value_t::array>
      pos:
        line_end: 5595
        line_start: 5528
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: external_constructor<value_t::object>
      pos:
        line_end: 5633
        line_start: 5598
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: to_json_fn
      pos:
        line_end: 5806
        line_start: 5798
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: adl_serializer
      pos:
        line_end: 5862
        line_start: 5831
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: adl_serializer
      pos:
        line_end: 5862
        line_start: 5831
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: wide_string_input_helper<BaseInputAdapter, 4>
      pos:
        line_end: 6372
        line_start: 6317
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: wide_string_input_helper<BaseInputAdapter, 2>
      pos:
        line_end: 6434
        line_start: 6375
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: iterator_input_adapter_factory
      pos:
        line_end: 6492
        line_start: 6482
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_iterator_of_multibyte
      pos:
        line_end: 6502
        line_start: 6495
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: iterator_input_adapter_factory<IteratorType, enable_if_t<is_iterator_of_multibyte<IteratorType>::value>>
      pos:
        line_end: 6516
        line_start: 6505
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: container_input_adapter_factory
      pos:
        line_end: 6537
        line_start: 6537
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: "container_input_adapter_factory< ContainerType,\n       void_t<decltype(begin(std::declval<ContainerType>()),
        end(std::declval<ContainerType>()))>>"
      pos:
        line_end: 6549
        line_start: 6540
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: container_input_adapter_factory
      pos:
        line_end: 6537
        line_start: 6537
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: "container_input_adapter_factory< ContainerType,\n       void_t<decltype(begin(std::declval<ContainerType>()),
        end(std::declval<ContainerType>()))>>"
      pos:
        line_end: 6549
        line_start: 6540
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: external_constructor<value_t::boolean>
      pos:
        line_end: 5431
        line_start: 5421
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: external_constructor<value_t::string>
      pos:
        line_end: 5464
        line_start: 5434
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: external_constructor<value_t::binary>
      pos:
        line_end: 5486
        line_start: 5467
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: external_constructor<value_t::number_float>
      pos:
        line_end: 5499
        line_start: 5489
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: external_constructor<value_t::number_unsigned>
      pos:
        line_end: 5512
        line_start: 5502
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: external_constructor<value_t::number_integer>
      pos:
        line_end: 5525
        line_start: 5515
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: external_constructor<value_t::array>
      pos:
        line_end: 5595
        line_start: 5528
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: external_constructor<value_t::object>
      pos:
        line_end: 5633
        line_start: 5598
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: to_json_fn
      pos:
        line_end: 5806
        line_start: 5798
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: adl_serializer
      pos:
        line_end: 5862
        line_start: 5831
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: adl_serializer
      pos:
        line_end: 5862
        line_start: 5831
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: wide_string_input_helper<BaseInputAdapter, 4>
      pos:
        line_end: 6372
        line_start: 6317
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: wide_string_input_helper<BaseInputAdapter, 2>
      pos:
        line_end: 6434
        line_start: 6375
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: iterator_input_adapter_factory
      pos:
        line_end: 6492
        line_start: 6482
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_iterator_of_multibyte
      pos:
        line_end: 6502
        line_start: 6495
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: iterator_input_adapter_factory<IteratorType, enable_if_t<is_iterator_of_multibyte<IteratorType>::value>>
      pos:
        line_end: 6516
        line_start: 6505
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: container_input_adapter_factory
      pos:
        line_end: 6537
        line_start: 6537
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: "container_input_adapter_factory< ContainerType,\n       void_t<decltype(begin(std::declval<ContainerType>()),
        end(std::declval<ContainerType>()))>>"
      pos:
        line_end: 6549
        line_start: 6540
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: container_input_adapter_factory
      pos:
        line_end: 6537
        line_start: 6537
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: "container_input_adapter_factory< ContainerType,\n       void_t<decltype(begin(std::declval<ContainerType>()),
        end(std::declval<ContainerType>()))>>"
      pos:
        line_end: 6549
        line_start: 6540
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: value
        type: bool
      item_type: struct
      name: is_sax
      pos:
        line_end: 9112
        line_start: 9084
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: is_sax_static_asserts
      pos:
        line_end: 9166
        line_start: 9115
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: object_iterator
        type: typename BasicJsonType::object_t::iterator
      - name: array_iterator
        type: typename BasicJsonType::array_t::iterator
      - name: primitive_iterator
        type: primitive_iterator_t
      item_type: struct
      name: internal_iterator
      pos:
        line_end: 12855
        line_start: 12847
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: json_default_base
      pos:
        line_end: 13787
        line_start: 13787
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: write_character(CharType c)
        type: void
      - name: write_characters(const CharType* s, std::size_t length)
        type: void
      item_type: struct
      name: output_adapter_protocol
      pos:
        line_end: 14954
        line_start: 14943
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: kPrecision
        type: int
      - name: f
        type: std::uint64_t
      - name: e
        type: int
      item_type: struct
      name: diyfp
      pos:
        line_end: 17079
        line_start: 16963
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: w
        type: diyfp
      - name: minus
        type: diyfp
      - name: plus
        type: diyfp
      item_type: struct
      name: boundaries
      pos:
        line_end: 17086
        line_start: 17081
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: f
        type: std::uint64_t
      - name: e
        type: int
      - name: k
        type: int
      item_type: struct
      name: cached_power
      pos:
        line_end: 17225
        line_start: 17220
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: kPrecision
        type: int
      - name: f
        type: std::uint64_t
      - name: e
        type: int
      item_type: struct
      name: diyfp
      pos:
        line_end: 17079
        line_start: 16963
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: w
        type: diyfp
      - name: minus
        type: diyfp
      - name: plus
        type: diyfp
      item_type: struct
      name: boundaries
      pos:
        line_end: 17086
        line_start: 17081
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: f
        type: std::uint64_t
      - name: e
        type: int
      - name: k
        type: int
      item_type: struct
      name: cached_power
      pos:
        line_end: 17225
        line_start: 17220
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields:
      - name: m_type
        type: value_t
      - name: m_value
        type: json_value
      item_type: struct
      name: data
      pos:
        line_end: 23519
        line_start: 23490
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    - fields: []
      item_type: struct
      name: less< ::nlohmann::detail::value_t>
      pos:
        line_end: 24528
        line_start: 24513
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
    typedefs: []
    union:
    - fields:
      - name: '* object'
        type: object_t
      - name: '* array'
        type: array_t
      - name: '* string'
        type: string_t
      - name: '* binary'
        type: binary_t
      - name: boolean
        type: boolean_t
      - name: number_integer
        type: number_integer_t
      - name: number_unsigned
        type: number_unsigned_t
      - name: number_float
        type: number_float_t
      item_type: union
      name: json_value
      pos:
        line_end: 19962
        line_start: 19724
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json.hpp
- function_names:
  - NLOHMANN_JSON_ABI_TAGS_CONCAT_EX
  - NLOHMANN_JSON_ABI_TAGS_CONCAT
  - NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX
  - NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT
  - NLOHMANN_JSON_NAMESPACE_CONCAT_EX
  - NLOHMANN_JSON_NAMESPACE_CONCAT
  source_file: /src/rnp/src/lib/nlohmann/nlohmann/json_fwd.hpp
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: NLOHMANN_JSON_VERSION_MAJOR
      pos:
        line_end: 39
        line_start: 38
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json_fwd.hpp
      type_or_value: 3   // NOLINT(modernize-macro-to-enum)
    - item_type: preproc_def
      name: NLOHMANN_JSON_VERSION_MINOR
      pos:
        line_end: 40
        line_start: 39
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json_fwd.hpp
      type_or_value: 11  // NOLINT(modernize-macro-to-enum)
    - item_type: preproc_def
      name: NLOHMANN_JSON_VERSION_PATCH
      pos:
        line_end: 41
        line_start: 40
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json_fwd.hpp
      type_or_value: 3   // NOLINT(modernize-macro-to-enum)
    - item_type: preproc_def
      name: JSON_DIAGNOSTICS
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json_fwd.hpp
      type_or_value: '0'
    - item_type: preproc_def
      name: JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON
      pos:
        line_end: 48
        line_start: 47
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json_fwd.hpp
      type_or_value: '0'
    - item_type: preproc_def
      name: NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json_fwd.hpp
      type_or_value: _diag
    - item_type: preproc_def
      name: NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON
      pos:
        line_end: 58
        line_start: 57
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json_fwd.hpp
      type_or_value: _ldvcmp
    - item_type: preproc_def
      name: NLOHMANN_JSON_NAMESPACE_NO_VERSION
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json_fwd.hpp
      type_or_value: '0'
    - item_type: preproc_def
      name: NLOHMANN_JSON_ABI_TAGS
      pos:
        line_end: 75
        line_start: 71
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json_fwd.hpp
      type_or_value: "NLOHMANN_JSON_ABI_TAGS_CONCAT(                                   \\\n
        \           NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS,                       \\\n
        \           NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON)"
    - item_type: preproc_def
      name: NLOHMANN_JSON_NAMESPACE_VERSION
      pos:
        line_end: 89
        line_start: 85
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json_fwd.hpp
      type_or_value: "NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(NLOHMANN_JSON_VERSION_MAJOR,
        \\\n                                           NLOHMANN_JSON_VERSION_MINOR,
        \\\n                                           NLOHMANN_JSON_VERSION_PATCH)"
    - item_type: preproc_def
      name: NLOHMANN_JSON_NAMESPACE
      pos:
        line_end: 101
        line_start: 97
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json_fwd.hpp
      type_or_value: "nlohmann::NLOHMANN_JSON_NAMESPACE_CONCAT( \\\n            NLOHMANN_JSON_ABI_TAGS,
        \          \\\n            NLOHMANN_JSON_NAMESPACE_VERSION)"
    - item_type: preproc_def
      name: NLOHMANN_JSON_NAMESPACE_BEGIN
      pos:
        line_end: 111
        line_start: 104
        source_file: /src/rnp/src/lib/nlohmann/nlohmann/json_fwd.hpp
      type_or_value: "namespace nlohmann                               \\\n    {                                                \\\n
        \   inline namespace NLOHMANN_JSON_NAMESPACE_CONCAT( \\\n                NLOHMANN_JSON_ABI_TAGS,
        \             \\\n                NLOHMANN_JSON_NAMESPACE_VERSION)     \\\n
        \   {"
    structs: []
    typedefs: []
    union: []
- function_names:
  - example_key_provider
  - ffi_verify
  - main
  source_file: /src/rnp/src/examples/verify.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RNP_SUCCESS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/rnp/src/examples/verify.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - ffi_encrypt
  - main
  source_file: /src/rnp/src/examples/encrypt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RNP_SUCCESS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/rnp/src/examples/encrypt.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - print_usage
  - stdin_reader
  - stdout_writer
  - main
  source_file: /src/rnp/src/examples/dump.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: PFX
      pos:
        line_end: 36
        line_start: 35
        source_file: /src/rnp/src/examples/dump.c
      type_or_value: '"dump: "'
    structs: []
    typedefs: []
    union: []
- function_names:
  - example_pass_provider
  - ffi_sign
  - main
  source_file: /src/rnp/src/examples/sign.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RNP_SUCCESS
      pos:
        line_end: 31
        line_start: 30
        source_file: /src/rnp/src/examples/sign.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - example_pass_provider
  - ffi_decrypt
  - main
  source_file: /src/rnp/src/examples/decrypt.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RNP_SUCCESS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/rnp/src/examples/decrypt.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names:
  - example_pass_provider
  - ffi_print_key
  - ffi_export_key
  - ffi_generate_keys
  - ffi_output_keys
  - main
  source_file: /src/rnp/src/examples/generate.c
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RNP_SUCCESS
      pos:
        line_end: 30
        line_start: 29
        source_file: /src/rnp/src/examples/generate.c
      type_or_value: '0'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/fuzzing/keyring.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/fuzzing/verify.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names:
  - LLVMFuzzerTestOneInput
  source_file: /src/rnp/src/fuzzing/keyimport.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/fuzzing/keyring_g10.cpp
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/fuzzing/sigimport.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/fuzzing/dump.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/fuzzing/keyring_kbx.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/src/fuzzing/verify_detached.c
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/include/rnp.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/include/repgp/repgp_def.h
  types:
    enum:
    - enumerators:
      - name: PGP_OP_UNKNOWN
        value: '0'
      - name: PGP_OP_UNLOCK
        value: '4'
      - name: PGP_OP_DECRYPT
        value: '3'
      - name: PGP_OP_ADD_SUBKEY
        value: '1'
      - name: PGP_OP_SIGN
        value: '2'
      - name: PGP_OP_PROTECT
        value: '5'
      - name: PGP_OP_UNPROTECT
        value: '6'
      - name: PGP_OP_DECRYPT_SYM
        value: '7'
      - name: PGP_OP_ENCRYPT_SYM
        value: '8'
      - name: PGP_OP_VERIFY
        value: '9'
      - name: PGP_OP_ENCRYPT
        value: '12'
      - name: PGP_OP_CERTIFY
        value: '13'
      - name: PGP_OP_MERGE_INFO
        value: '11'
      - name: PGP_OP_ADD_USERID
        value: '10'
      item_type: enum
      name: pgp_op_t
      pos:
        line_end: 549
        line_start: 534
        source_file: /src/rnp/include/repgp/repgp_def.h
    - enumerators:
      - name: None
      - name: AEADv2
      - name: AEADv1
      - name: MDC
      item_type: enum
      name: AuthType
      pos:
        line_end: 584
        line_start: 577
        source_file: /src/rnp/include/repgp/repgp_def.h
    - enumerators:
      - name: None
      - name: AEADv2
      - name: AEADv1
      - name: MDC
      item_type: enum
      name: AuthType
      pos:
        line_end: 584
        line_start: 577
        source_file: /src/rnp/include/repgp/repgp_def.h
    preproc_defs:
    - item_type: preproc_def
      name: PGP_PTAG_ALWAYS_SET
      pos:
        line_end: 47
        line_start: 46
        source_file: /src/rnp/include/repgp/repgp_def.h
      type_or_value: '0x80'
    - item_type: preproc_def
      name: PGP_PTAG_NEW_FORMAT
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/rnp/include/repgp/repgp_def.h
      type_or_value: '0x40'
    - item_type: preproc_def
      name: PGP_PTAG_OF_CONTENT_TAG_MASK
      pos:
        line_end: 66
        line_start: 65
        source_file: /src/rnp/include/repgp/repgp_def.h
      type_or_value: '0x3c'
    - item_type: preproc_def
      name: PGP_PTAG_OF_CONTENT_TAG_SHIFT
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/rnp/include/repgp/repgp_def.h
      type_or_value: '2'
    - item_type: preproc_def
      name: PGP_PTAG_OF_LENGTH_TYPE_MASK
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/rnp/include/repgp/repgp_def.h
      type_or_value: '0x03'
    - item_type: preproc_def
      name: PGP_MAX_BLOCK_SIZE
      pos:
        line_end: 86
        line_start: 85
        source_file: /src/rnp/include/repgp/repgp_def.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PGP_MAX_KEY_SIZE
      pos:
        line_end: 89
        line_start: 88
        source_file: /src/rnp/include/repgp/repgp_def.h
      type_or_value: '32'
    - item_type: preproc_def
      name: PGP_SALT_SIZE
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/rnp/include/repgp/repgp_def.h
      type_or_value: '8'
    - item_type: preproc_def
      name: PGP_MAX_S2K_SALT_SIZE
      pos:
        line_end: 96
        line_start: 95
        source_file: /src/rnp/include/repgp/repgp_def.h
      type_or_value: '16'
    - item_type: preproc_def
      name: PGP_SEIPDV2_SALT_LEN
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/rnp/include/repgp/repgp_def.h
      type_or_value: '32'
    - item_type: preproc_def
      name: PGP_KEY_GRIP_SIZE
      pos:
        line_end: 105
        line_start: 104
        source_file: /src/rnp/include/repgp/repgp_def.h
      type_or_value: '20'
    - item_type: preproc_def
      name: PGP_MARKER_CONTENTS
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/rnp/include/repgp/repgp_def.h
      type_or_value: '"PGP"'
    - item_type: preproc_def
      name: PGP_MARKER_LEN
      pos:
        line_end: 109
        line_start: 108
        source_file: /src/rnp/include/repgp/repgp_def.h
      type_or_value: '3'
    - item_type: preproc_def
      name: PGP_PTAG_NF_CONTENT_TAG_MASK
      pos:
        line_end: 137
        line_start: 136
        source_file: /src/rnp/include/repgp/repgp_def.h
      type_or_value: '0x3f'
    - item_type: preproc_def
      name: PGP_PTAG_NF_CONTENT_TAG_SHIFT
      pos:
        line_end: 145
        line_start: 144
        source_file: /src/rnp/include/repgp/repgp_def.h
      type_or_value: '0'
    - item_type: preproc_def
      name: MDC_PKT_TAG
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/rnp/include/repgp/repgp_def.h
      type_or_value: '0xd3'
    - item_type: preproc_def
      name: MDC_V1_SIZE
      pos:
        line_end: 148
        line_start: 147
        source_file: /src/rnp/include/repgp/repgp_def.h
      type_or_value: '22'
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/include/rnp/rnp_err.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs: []
    union: []
- function_names: []
  source_file: /src/rnp/include/rnp/rnp.h
  types:
    enum: []
    preproc_defs:
    - item_type: preproc_def
      name: RNP_KEY_EXPORT_ARMORED
      pos:
        line_end: 43
        line_start: 42
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: RNP_KEY_EXPORT_PUBLIC
      pos:
        line_end: 44
        line_start: 43
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: RNP_KEY_EXPORT_SECRET
      pos:
        line_end: 45
        line_start: 44
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 2)
    - item_type: preproc_def
      name: RNP_KEY_EXPORT_SUBKEYS
      pos:
        line_end: 46
        line_start: 45
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 3)
    - item_type: preproc_def
      name: RNP_KEY_EXPORT_BASE64
      pos:
        line_end: 49
        line_start: 48
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 9)
    - item_type: preproc_def
      name: RNP_KEY_REMOVE_PUBLIC
      pos:
        line_end: 51
        line_start: 50
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: RNP_KEY_REMOVE_SECRET
      pos:
        line_end: 52
        line_start: 51
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: RNP_KEY_REMOVE_SUBKEYS
      pos:
        line_end: 53
        line_start: 52
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 2)
    - item_type: preproc_def
      name: RNP_KEY_UNLOAD_PUBLIC
      pos:
        line_end: 55
        line_start: 54
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: RNP_KEY_UNLOAD_SECRET
      pos:
        line_end: 56
        line_start: 55
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: RNP_JSON_PUBLIC_MPIS
      pos:
        line_end: 61
        line_start: 60
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: RNP_JSON_SECRET_MPIS
      pos:
        line_end: 62
        line_start: 61
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: RNP_JSON_SIGNATURES
      pos:
        line_end: 63
        line_start: 62
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 2)
    - item_type: preproc_def
      name: RNP_JSON_SIGNATURE_MPIS
      pos:
        line_end: 64
        line_start: 63
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 3)
    - item_type: preproc_def
      name: RNP_JSON_DUMP_MPI
      pos:
        line_end: 69
        line_start: 68
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: RNP_JSON_DUMP_RAW
      pos:
        line_end: 70
        line_start: 69
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: RNP_JSON_DUMP_GRIP
      pos:
        line_end: 71
        line_start: 70
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 2)
    - item_type: preproc_def
      name: RNP_DUMP_MPI
      pos:
        line_end: 73
        line_start: 72
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: RNP_DUMP_RAW
      pos:
        line_end: 74
        line_start: 73
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: RNP_DUMP_GRIP
      pos:
        line_end: 75
        line_start: 74
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 2)
    - item_type: preproc_def
      name: RNP_LOAD_SAVE_PUBLIC_KEYS
      pos:
        line_end: 80
        line_start: 79
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: RNP_LOAD_SAVE_SECRET_KEYS
      pos:
        line_end: 81
        line_start: 80
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: RNP_LOAD_SAVE_PERMISSIVE
      pos:
        line_end: 82
        line_start: 81
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 8)
    - item_type: preproc_def
      name: RNP_LOAD_SAVE_SINGLE
      pos:
        line_end: 83
        line_start: 82
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 9)
    - item_type: preproc_def
      name: RNP_LOAD_SAVE_BASE64
      pos:
        line_end: 84
        line_start: 83
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 10)
    - item_type: preproc_def
      name: RNP_KEY_SIGNATURE_INVALID
      pos:
        line_end: 90
        line_start: 89
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: RNP_KEY_SIGNATURE_UNKNOWN_KEY
      pos:
        line_end: 91
        line_start: 90
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: RNP_KEY_SIGNATURE_NON_SELF_SIG
      pos:
        line_end: 92
        line_start: 91
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 2)
    - item_type: preproc_def
      name: RNP_KEY_SIGNATURE_KEEP
      pos:
        line_end: 94
        line_start: 93
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (0U)
    - item_type: preproc_def
      name: RNP_KEY_SIGNATURE_REMOVE
      pos:
        line_end: 95
        line_start: 94
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U)
    - item_type: preproc_def
      name: RNP_OUTPUT_FILE_OVERWRITE
      pos:
        line_end: 100
        line_start: 99
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: RNP_OUTPUT_FILE_RANDOM
      pos:
        line_end: 101
        line_start: 100
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: RNP_KEY_SUBKEYS_ONLY
      pos:
        line_end: 106
        line_start: 105
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: RNP_KEY_PREFER_PQC_ENC_SUBKEY
      pos:
        line_end: 108
        line_start: 107
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: RNP_USER_ID
      pos:
        line_end: 114
        line_start: 113
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U)
    - item_type: preproc_def
      name: RNP_USER_ATTR
      pos:
        line_end: 115
        line_start: 114
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (2U)
    - item_type: preproc_def
      name: RNP_SECURITY_PROHIBITED
      pos:
        line_end: 120
        line_start: 119
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (0U)
    - item_type: preproc_def
      name: RNP_SECURITY_INSECURE
      pos:
        line_end: 121
        line_start: 120
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U)
    - item_type: preproc_def
      name: RNP_SECURITY_DEFAULT
      pos:
        line_end: 122
        line_start: 121
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (2U)
    - item_type: preproc_def
      name: RNP_SECURITY_OVERRIDE
      pos:
        line_end: 127
        line_start: 126
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: RNP_SECURITY_VERIFY_KEY
      pos:
        line_end: 128
        line_start: 127
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: RNP_SECURITY_VERIFY_DATA
      pos:
        line_end: 129
        line_start: 128
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 2)
    - item_type: preproc_def
      name: RNP_SECURITY_REMOVE_ALL
      pos:
        line_end: 130
        line_start: 129
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 16)
    - item_type: preproc_def
      name: RNP_ENCRYPT_NOWRAP
      pos:
        line_end: 135
        line_start: 134
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: RNP_VERIFY_IGNORE_SIGS_ON_DECRYPT
      pos:
        line_end: 140
        line_start: 139
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: RNP_VERIFY_REQUIRE_ALL_SIGS
      pos:
        line_end: 141
        line_start: 140
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: RNP_VERIFY_ALLOW_HIDDEN_RECIPIENT
      pos:
        line_end: 142
        line_start: 141
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 2)
    - item_type: preproc_def
      name: RNP_REVOKER_SENSITIVE
      pos:
        line_end: 147
        line_start: 146
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: RNP_KEY_FEATURE_MDC
      pos:
        line_end: 152
        line_start: 151
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: RNP_KEY_FEATURE_AEAD
      pos:
        line_end: 153
        line_start: 152
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: RNP_KEY_FEATURE_V5
      pos:
        line_end: 154
        line_start: 153
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 2)
    - item_type: preproc_def
      name: RNP_KEY_USAGE_CERTIFY
      pos:
        line_end: 160
        line_start: 159
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: RNP_KEY_USAGE_SIGN
      pos:
        line_end: 161
        line_start: 160
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 1)
    - item_type: preproc_def
      name: RNP_KEY_USAGE_ENCRYPT_COMMS
      pos:
        line_end: 162
        line_start: 161
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 2)
    - item_type: preproc_def
      name: RNP_KEY_USAGE_ENCRYPT_STORAGE
      pos:
        line_end: 163
        line_start: 162
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 3)
    - item_type: preproc_def
      name: RNP_KEY_SERVER_NO_MODIFY
      pos:
        line_end: 169
        line_start: 168
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 7)
    - item_type: preproc_def
      name: RNP_SIGNATURE_REVALIDATE
      pos:
        line_end: 175
        line_start: 174
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: (1U << 0)
    - item_type: preproc_def
      name: RNP_FEATURE_SYMM_ALG
      pos:
        line_end: 4072
        line_start: 4071
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"symmetric algorithm"'
    - item_type: preproc_def
      name: RNP_FEATURE_AEAD_ALG
      pos:
        line_end: 4073
        line_start: 4072
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"aead algorithm"'
    - item_type: preproc_def
      name: RNP_FEATURE_PROT_MODE
      pos:
        line_end: 4074
        line_start: 4073
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"protection mode"'
    - item_type: preproc_def
      name: RNP_FEATURE_PK_ALG
      pos:
        line_end: 4075
        line_start: 4074
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"public key algorithm"'
    - item_type: preproc_def
      name: RNP_FEATURE_HASH_ALG
      pos:
        line_end: 4076
        line_start: 4075
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"hash algorithm"'
    - item_type: preproc_def
      name: RNP_FEATURE_COMP_ALG
      pos:
        line_end: 4077
        line_start: 4076
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"compression algorithm"'
    - item_type: preproc_def
      name: RNP_FEATURE_CURVE
      pos:
        line_end: 4078
        line_start: 4077
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"elliptic curve"'
    - item_type: preproc_def
      name: RNP_CERTIFICATION_GENERIC
      pos:
        line_end: 4085
        line_start: 4084
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"generic"'
    - item_type: preproc_def
      name: RNP_CERTIFICATION_PERSONA
      pos:
        line_end: 4086
        line_start: 4085
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"persona"'
    - item_type: preproc_def
      name: RNP_CERTIFICATION_CASUAL
      pos:
        line_end: 4087
        line_start: 4086
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"casual"'
    - item_type: preproc_def
      name: RNP_CERTIFICATION_POSITIVE
      pos:
        line_end: 4088
        line_start: 4087
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"positive"'
    - item_type: preproc_def
      name: RNP_ALGNAME_PLAINTEXT
      pos:
        line_end: 4094
        line_start: 4093
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"PLAINTEXT"'
    - item_type: preproc_def
      name: RNP_ALGNAME_RSA
      pos:
        line_end: 4095
        line_start: 4094
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"RSA"'
    - item_type: preproc_def
      name: RNP_ALGNAME_ELGAMAL
      pos:
        line_end: 4096
        line_start: 4095
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"ELGAMAL"'
    - item_type: preproc_def
      name: RNP_ALGNAME_DSA
      pos:
        line_end: 4097
        line_start: 4096
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"DSA"'
    - item_type: preproc_def
      name: RNP_ALGNAME_ECDH
      pos:
        line_end: 4098
        line_start: 4097
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"ECDH"'
    - item_type: preproc_def
      name: RNP_ALGNAME_ECDSA
      pos:
        line_end: 4099
        line_start: 4098
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"ECDSA"'
    - item_type: preproc_def
      name: RNP_ALGNAME_EDDSA
      pos:
        line_end: 4100
        line_start: 4099
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"EDDSA"'
    - item_type: preproc_def
      name: RNP_ALGNAME_ED25519
      pos:
        line_end: 4102
        line_start: 4101
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"ED25519"'
    - item_type: preproc_def
      name: RNP_ALGNAME_X25519
      pos:
        line_end: 4103
        line_start: 4102
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"X25519"'
    - item_type: preproc_def
      name: RNP_ALGNAME_ED448
      pos:
        line_end: 4104
        line_start: 4103
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"ED448"'
    - item_type: preproc_def
      name: RNP_ALGNAME_X448
      pos:
        line_end: 4105
        line_start: 4104
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"X448"'
    - item_type: preproc_def
      name: RNP_ALGNAME_KYBER768_X25519
      pos:
        line_end: 4108
        line_start: 4107
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"ML-KEM-768+X25519"'
    - item_type: preproc_def
      name: RNP_ALGNAME_KYBER1024_X448
      pos:
        line_end: 4109
        line_start: 4108
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"ML-KEM-1024+X448"'
    - item_type: preproc_def
      name: RNP_ALGNAME_KYBER768_P384
      pos:
        line_end: 4110
        line_start: 4109
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"ML-KEM-768+ECDH-P384"'
    - item_type: preproc_def
      name: RNP_ALGNAME_KYBER1024_P521
      pos:
        line_end: 4111
        line_start: 4110
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"ML-KEM-1024+ECDH-P521"'
    - item_type: preproc_def
      name: RNP_ALGNAME_KYBER768_BP384
      pos:
        line_end: 4112
        line_start: 4111
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"ML-KEM-768+ECDH-BP384"'
    - item_type: preproc_def
      name: RNP_ALGNAME_KYBER1024_BP512
      pos:
        line_end: 4113
        line_start: 4112
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"ML-KEM-1024+ECDH-BP512"'
    - item_type: preproc_def
      name: RNP_ALGNAME_DILITHIUM3_ED25519
      pos:
        line_end: 4114
        line_start: 4113
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"ML-DSA-65+ED25519"'
    - item_type: preproc_def
      name: RNP_ALGNAME_DILITHIUM5_ED448
      pos:
        line_end: 4115
        line_start: 4114
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"ML-DSA-87+ED448"'
    - item_type: preproc_def
      name: RNP_ALGNAME_DILITHIUM3_P384
      pos:
        line_end: 4116
        line_start: 4115
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"ML-DSA-65+ECDSA-P384"'
    - item_type: preproc_def
      name: RNP_ALGNAME_DILITHIUM5_P521
      pos:
        line_end: 4117
        line_start: 4116
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"ML-DSA-87+ECDSA-P521"'
    - item_type: preproc_def
      name: RNP_ALGNAME_DILITHIUM3_BP384
      pos:
        line_end: 4118
        line_start: 4117
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"ML-DSA-65+ECDSA-BP384"'
    - item_type: preproc_def
      name: RNP_ALGNAME_DILITHIUM5_BP512
      pos:
        line_end: 4119
        line_start: 4118
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"ML-DSA-87+ECDSA-BP512"'
    - item_type: preproc_def
      name: RNP_ALGNAME_SPHINCSPLUS_SHAKE_128f
      pos:
        line_end: 4120
        line_start: 4119
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"SLH-DSA-SHAKE-128f"'
    - item_type: preproc_def
      name: RNP_ALGNAME_SPHINCSPLUS_SHAKE_128s
      pos:
        line_end: 4121
        line_start: 4120
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"SLH-DSA-SHAKE-128s"'
    - item_type: preproc_def
      name: RNP_ALGNAME_SPHINCSPLUS_SHAKE_256s
      pos:
        line_end: 4122
        line_start: 4121
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"SLH-DSA-SHAKE-256s"'
    - item_type: preproc_def
      name: RNP_ALGNAME_IDEA
      pos:
        line_end: 4124
        line_start: 4123
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"IDEA"'
    - item_type: preproc_def
      name: RNP_ALGNAME_TRIPLEDES
      pos:
        line_end: 4125
        line_start: 4124
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"TRIPLEDES"'
    - item_type: preproc_def
      name: RNP_ALGNAME_CAST5
      pos:
        line_end: 4126
        line_start: 4125
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"CAST5"'
    - item_type: preproc_def
      name: RNP_ALGNAME_BLOWFISH
      pos:
        line_end: 4127
        line_start: 4126
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"BLOWFISH"'
    - item_type: preproc_def
      name: RNP_ALGNAME_TWOFISH
      pos:
        line_end: 4128
        line_start: 4127
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"TWOFISH"'
    - item_type: preproc_def
      name: RNP_ALGNAME_AES_128
      pos:
        line_end: 4129
        line_start: 4128
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"AES128"'
    - item_type: preproc_def
      name: RNP_ALGNAME_AES_192
      pos:
        line_end: 4130
        line_start: 4129
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"AES192"'
    - item_type: preproc_def
      name: RNP_ALGNAME_AES_256
      pos:
        line_end: 4131
        line_start: 4130
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"AES256"'
    - item_type: preproc_def
      name: RNP_ALGNAME_CAMELLIA_128
      pos:
        line_end: 4132
        line_start: 4131
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"CAMELLIA128"'
    - item_type: preproc_def
      name: RNP_ALGNAME_CAMELLIA_192
      pos:
        line_end: 4133
        line_start: 4132
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"CAMELLIA192"'
    - item_type: preproc_def
      name: RNP_ALGNAME_CAMELLIA_256
      pos:
        line_end: 4134
        line_start: 4133
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"CAMELLIA256"'
    - item_type: preproc_def
      name: RNP_ALGNAME_SM2
      pos:
        line_end: 4135
        line_start: 4134
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"SM2"'
    - item_type: preproc_def
      name: RNP_ALGNAME_SM3
      pos:
        line_end: 4136
        line_start: 4135
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"SM3"'
    - item_type: preproc_def
      name: RNP_ALGNAME_SM4
      pos:
        line_end: 4137
        line_start: 4136
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"SM4"'
    - item_type: preproc_def
      name: RNP_ALGNAME_MD5
      pos:
        line_end: 4138
        line_start: 4137
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"MD5"'
    - item_type: preproc_def
      name: RNP_ALGNAME_SHA1
      pos:
        line_end: 4139
        line_start: 4138
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"SHA1"'
    - item_type: preproc_def
      name: RNP_ALGNAME_SHA256
      pos:
        line_end: 4140
        line_start: 4139
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"SHA256"'
    - item_type: preproc_def
      name: RNP_ALGNAME_SHA384
      pos:
        line_end: 4141
        line_start: 4140
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"SHA384"'
    - item_type: preproc_def
      name: RNP_ALGNAME_SHA512
      pos:
        line_end: 4142
        line_start: 4141
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"SHA512"'
    - item_type: preproc_def
      name: RNP_ALGNAME_SHA224
      pos:
        line_end: 4143
        line_start: 4142
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"SHA224"'
    - item_type: preproc_def
      name: RNP_ALGNAME_SHA3_256
      pos:
        line_end: 4144
        line_start: 4143
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"SHA3-256"'
    - item_type: preproc_def
      name: RNP_ALGNAME_SHA3_512
      pos:
        line_end: 4145
        line_start: 4144
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"SHA3-512"'
    - item_type: preproc_def
      name: RNP_ALGNAME_RIPEMD160
      pos:
        line_end: 4146
        line_start: 4145
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"RIPEMD160"'
    - item_type: preproc_def
      name: RNP_ALGNAME_CRC24
      pos:
        line_end: 4147
        line_start: 4146
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"CRC24"'
    - item_type: preproc_def
      name: RNP_ALGNAME_ZLIB
      pos:
        line_end: 4148
        line_start: 4147
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"ZLib"'
    - item_type: preproc_def
      name: RNP_ALGNAME_BZIP2
      pos:
        line_end: 4149
        line_start: 4148
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"BZip2"'
    - item_type: preproc_def
      name: RNP_ALGNAME_ZIP
      pos:
        line_end: 4150
        line_start: 4149
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: '"ZIP"'
    - item_type: preproc_def
      name: DEFAULT_HASH_ALG
      pos:
        line_end: 4157
        line_start: 4156
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: RNP_ALGNAME_SHA256
    - item_type: preproc_def
      name: DEFAULT_SYMM_ALG
      pos:
        line_end: 4160
        line_start: 4159
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: RNP_ALGNAME_AES_256
    - item_type: preproc_def
      name: RNP_KEYSTORE_GPG
      pos:
        line_end: 4163
        line_start: 4162
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: ("GPG")
    - item_type: preproc_def
      name: RNP_KEYSTORE_KBX
      pos:
        line_end: 4164
        line_start: 4163
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: ("KBX")
    - item_type: preproc_def
      name: RNP_KEYSTORE_G10
      pos:
        line_end: 4165
        line_start: 4164
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: ("G10")
    - item_type: preproc_def
      name: RNP_KEYSTORE_GPG21
      pos:
        line_end: 4166
        line_start: 4165
        source_file: /src/rnp/include/rnp/rnp.h
      type_or_value: ("GPG21")
    structs: []
    typedefs:
    - item_type: typedef
      name: rnp_result_t
      pos:
        line_end: 40
        line_start: 40
        source_file: /src/rnp/include/rnp/rnp.h
      type: uint32_t
    - item_type: typedef
      name: '*                rnp_ffi_t'
      pos:
        line_end: 254
        line_start: 254
        source_file: /src/rnp/include/rnp/rnp.h
      type: rnp_ffi_st
    - item_type: typedef
      name: '*         rnp_key_handle_t'
      pos:
        line_end: 255
        line_start: 255
        source_file: /src/rnp/include/rnp/rnp.h
      type: rnp_key_handle_st
    - item_type: typedef
      name: '*              rnp_input_t'
      pos:
        line_end: 256
        line_start: 256
        source_file: /src/rnp/include/rnp/rnp.h
      type: rnp_input_st
    - item_type: typedef
      name: '*             rnp_output_t'
      pos:
        line_end: 257
        line_start: 257
        source_file: /src/rnp/include/rnp/rnp.h
      type: rnp_output_st
    - item_type: typedef
      name: '*        rnp_op_generate_t'
      pos:
        line_end: 258
        line_start: 258
        source_file: /src/rnp/include/rnp/rnp.h
      type: rnp_op_generate_st
    - item_type: typedef
      name: '*            rnp_op_sign_t'
      pos:
        line_end: 259
        line_start: 259
        source_file: /src/rnp/include/rnp/rnp.h
      type: rnp_op_sign_st
    - item_type: typedef
      name: '*  rnp_op_sign_signature_t'
      pos:
        line_end: 260
        line_start: 260
        source_file: /src/rnp/include/rnp/rnp.h
      type: rnp_op_sign_signature_st
    - item_type: typedef
      name: '*          rnp_op_verify_t'
      pos:
        line_end: 261
        line_start: 261
        source_file: /src/rnp/include/rnp/rnp.h
      type: rnp_op_verify_st
    - item_type: typedef
      name: '*rnp_op_verify_signature_t'
      pos:
        line_end: 262
        line_start: 262
        source_file: /src/rnp/include/rnp/rnp.h
      type: rnp_op_verify_signature_st
    - item_type: typedef
      name: '*         rnp_op_encrypt_t'
      pos:
        line_end: 263
        line_start: 263
        source_file: /src/rnp/include/rnp/rnp.h
      type: rnp_op_encrypt_st
    - item_type: typedef
      name: '*rnp_identifier_iterator_t'
      pos:
        line_end: 264
        line_start: 264
        source_file: /src/rnp/include/rnp/rnp.h
      type: rnp_identifier_iterator_st
    - item_type: typedef
      name: '*         rnp_uid_handle_t'
      pos:
        line_end: 265
        line_start: 265
        source_file: /src/rnp/include/rnp/rnp.h
      type: rnp_uid_handle_st
    - item_type: typedef
      name: '*   rnp_signature_handle_t'
      pos:
        line_end: 266
        line_start: 266
        source_file: /src/rnp/include/rnp/rnp.h
      type: rnp_signature_handle_st
    - item_type: typedef
      name: '*      rnp_sig_subpacket_t'
      pos:
        line_end: 267
        line_start: 267
        source_file: /src/rnp/include/rnp/rnp.h
      type: rnp_sig_subpacket_st
    - item_type: typedef
      name: '*   rnp_recipient_handle_t'
      pos:
        line_end: 268
        line_start: 268
        source_file: /src/rnp/include/rnp/rnp.h
      type: rnp_recipient_handle_st
    - item_type: typedef
      name: '*      rnp_symenc_handle_t'
      pos:
        line_end: 269
        line_start: 269
        source_file: /src/rnp/include/rnp/rnp.h
      type: rnp_symenc_handle_st
    - item_type: typedef
      name: rnp_input_reader_t(void *app_ctx, void *buf, size_t len, size_t *read)
      pos:
        line_end: 283
        line_start: 283
        source_file: /src/rnp/include/rnp/rnp.h
      type: bool
    - item_type: typedef
      name: rnp_input_closer_t(void *app_ctx)
      pos:
        line_end: 290
        line_start: 290
        source_file: /src/rnp/include/rnp/rnp.h
      type: void
    - item_type: typedef
      name: rnp_output_writer_t(void *app_ctx, const void *buf, size_t len)
      pos:
        line_end: 299
        line_start: 299
        source_file: /src/rnp/include/rnp/rnp.h
      type: bool
    - item_type: typedef
      name: rnp_output_closer_t(void *app_ctx, bool discard)
      pos:
        line_end: 308
        line_start: 308
        source_file: /src/rnp/include/rnp/rnp.h
      type: void
    - item_type: typedef
      name: "(*rnp_password_cb)(rnp_ffi_t        ffi,\n                                void
        *           app_ctx,\n                                rnp_key_handle_t key,\n
        \                               const char *     pgp_context,\n                                char
        \            buf[],\n                                size_t           buf_len)"
      pos:
        line_end: 340
        line_start: 335
        source_file: /src/rnp/include/rnp/rnp.h
      type: bool
    - item_type: typedef
      name: "(*rnp_get_key_cb)(rnp_ffi_t   ffi,\n                               void
        *      app_ctx,\n                               const char *identifier_type,\n
        \                              const char *identifier,\n                               bool
        \       secret)"
      pos:
        line_end: 371
        line_start: 367
        source_file: /src/rnp/include/rnp/rnp.h
      type: void
    - item_type: typedef
      name: "(*rnp_key_signatures_cb)(rnp_ffi_t              ffi,\n                                      void
        *                 app_ctx,\n                                      rnp_signature_handle_t
        sig,\n                                      uint32_t *             action)"
      pos:
        line_end: 389
        line_start: 386
        source_file: /src/rnp/include/rnp/rnp.h
      type: void
    union: []
- function_names: []
  source_file: /src/rnp/include/rnp/rnp_def.h
  types:
    enum: []
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: rnp_result_t
      pos:
        line_end: 32
        line_start: 32
        source_file: /src/rnp/include/rnp/rnp_def.h
      type: uint32_t
    union: []
- function_names:
  - rnp::KeyStore::KeyStore
  - rnp::KeyStore::KeyStore
  - '&operator=(KeyStore &&)'
  - rnp::KeyStore::KeyStore
  - '&operator=(const KeyStore &)'
  - rnp::KeyStore::KeyStore
  - rnp::KeyStore::KeyStore
  - '&operator=(KeyStore &&)'
  - rnp::KeyStore::KeyStore
  - '&operator=(const KeyStore &)'
  source_file: /src/rnp/include/rekey/rnp_key_store.h
  types:
    enum:
    - enumerators:
      - name: PGP_KEY_IMPORT_STATUS_UNKNOWN
        value: '0'
      - name: PGP_KEY_IMPORT_STATUS_NEW
      - name: PGP_KEY_IMPORT_STATUS_UPDATED
      - name: PGP_KEY_IMPORT_STATUS_UNCHANGED
      item_type: enum
      name: pgp_key_import_status_t
      pos:
        line_end: 48
        line_start: 43
        source_file: /src/rnp/include/rekey/rnp_key_store.h
    - enumerators:
      - name: PGP_SIG_IMPORT_STATUS_UNKNOWN
        value: '0'
      - name: PGP_SIG_IMPORT_STATUS_UNCHANGED
      - name: PGP_SIG_IMPORT_STATUS_UNKNOWN_KEY
      - name: PGP_SIG_IMPORT_STATUS_NEW
      item_type: enum
      name: pgp_sig_import_status_t
      pos:
        line_end: 55
        line_start: 50
        source_file: /src/rnp/include/rekey/rnp_key_store.h
    preproc_defs: []
    structs: []
    typedefs:
    - item_type: typedef
      name: KeyFingerprintMap
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/rnp/include/rekey/rnp_key_store.h
      type: unordered_map<pgp::Fingerprint, std::list<Key>::iterator>
    - item_type: typedef
      name: KeyFingerprintMap
      pos:
        line_end: 59
        line_start: 59
        source_file: /src/rnp/include/rekey/rnp_key_store.h
      type: unordered_map<pgp::Fingerprint, std::list<Key>::iterator>
    union: []
